@@ -118,77 +118,81 @@ find_program(TPDE_CLANG NO_CACHE REQUIRED
118118 VALIDATOR check_clang_version )
119119message (STATUS "Found Clang: " ${TPDE_CLANG} )
120120
121- add_custom_command (
122- OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.bc
123- COMMAND ${TPDE_CLANG} -c -emit-llvm -ffreestanding -fcf-protection=none
124- -O3 -fomit-frame-pointer -fno-math-errno
125- --target=x86_64-linux -march=x86-64-v4
126- -o ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.bc
127- ${CMAKE_CURRENT_SOURCE_DIR} /src/encode_template.c
128- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /src/encode_template.c
129- )
130- add_custom_command (
131- OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.hpp
132- COMMAND tpde_encodegen
133- -o ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.hpp
134- ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.bc
135- DEPENDS
136- tpde_encodegen
137- ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.bc
138- )
139-
140- target_compile_definitions (tpde_llvm PRIVATE TPDE_LLVM_X64 )
141- target_sources (tpde_llvm PRIVATE
142- src/x64/LLVMCompilerX64.cpp
143-
144- PRIVATE
145- FILE_SET priv_headers TYPE HEADERS
146- BASE_DIRS src
147- FILES
148- src/x64/LLVMCompilerX64.hpp
149-
150- PRIVATE
151- FILE_SET encodegen TYPE HEADERS
152- BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
153- FILES
154- ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.hpp
155- )
156-
157- add_custom_command (
158- OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.bc
159- COMMAND ${TPDE_CLANG} -c -emit-llvm -ffreestanding -fcf-protection=none
160- -O3 -fomit-frame-pointer -fno-math-errno
161- --target=aarch64 -march=armv8.1-a
162- -o ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.bc
163- ${CMAKE_CURRENT_SOURCE_DIR} /src/encode_template.c
164- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /src/encode_template.c
165- )
166- add_custom_command (
167- OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.hpp
168- COMMAND tpde_encodegen
169- -o ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.hpp
170- ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.bc
171- DEPENDS
172- tpde_encodegen
173- ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.bc
174- )
175-
176- target_compile_definitions (tpde_llvm PRIVATE TPDE_LLVM_ARM64 )
177- target_sources (tpde_llvm PRIVATE
178- src/arm64/LLVMCompilerArm64.cpp
121+ if ("x86_64" IN_LIST TPDE_TARGETS)
122+ add_custom_command (
123+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.bc
124+ COMMAND ${TPDE_CLANG} -c -emit-llvm -ffreestanding -fcf-protection=none
125+ -O3 -fomit-frame-pointer -fno-math-errno
126+ --target=x86_64-linux -march=x86-64-v4
127+ -o ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.bc
128+ ${CMAKE_CURRENT_SOURCE_DIR} /src/encode_template.c
129+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /src/encode_template.c
130+ )
131+ add_custom_command (
132+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.hpp
133+ COMMAND tpde_encodegen
134+ -o ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.hpp
135+ ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.bc
136+ DEPENDS
137+ tpde_encodegen
138+ ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.bc
139+ )
179140
180- PRIVATE
181- FILE_SET priv_headers TYPE HEADERS
182- BASE_DIRS src
183- FILES
184- src/arm64/LLVMCompilerArm64.hpp
141+ target_compile_definitions (tpde_llvm PRIVATE TPDE_LLVM_X64 )
142+ target_sources (tpde_llvm PRIVATE
143+ src/x64/LLVMCompilerX64.cpp
144+
145+ PRIVATE
146+ FILE_SET priv_headers TYPE HEADERS
147+ BASE_DIRS src
148+ FILES
149+ src/x64/LLVMCompilerX64.hpp
150+
151+ PRIVATE
152+ FILE_SET encodegen TYPE HEADERS
153+ BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
154+ FILES
155+ ${CMAKE_CURRENT_BINARY_DIR} /encode_template_x64.hpp
156+ )
157+ endif ()
158+
159+ if ("aarch64" IN_LIST TPDE_TARGETS)
160+ add_custom_command (
161+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.bc
162+ COMMAND ${TPDE_CLANG} -c -emit-llvm -ffreestanding -fcf-protection=none
163+ -O3 -fomit-frame-pointer -fno-math-errno
164+ --target=aarch64 -march=armv8.1-a
165+ -o ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.bc
166+ ${CMAKE_CURRENT_SOURCE_DIR} /src/encode_template.c
167+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /src/encode_template.c
168+ )
169+ add_custom_command (
170+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.hpp
171+ COMMAND tpde_encodegen
172+ -o ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.hpp
173+ ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.bc
174+ DEPENDS
175+ tpde_encodegen
176+ ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.bc
177+ )
185178
186- PRIVATE
187- FILE_SET encodegen TYPE HEADERS
188- BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
189- FILES
190- ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.hpp
191- )
179+ target_compile_definitions (tpde_llvm PRIVATE TPDE_LLVM_ARM64 )
180+ target_sources (tpde_llvm PRIVATE
181+ src/arm64/LLVMCompilerArm64.cpp
182+
183+ PRIVATE
184+ FILE_SET priv_headers TYPE HEADERS
185+ BASE_DIRS src
186+ FILES
187+ src/arm64/LLVMCompilerArm64.hpp
188+
189+ PRIVATE
190+ FILE_SET encodegen TYPE HEADERS
191+ BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
192+ FILES
193+ ${CMAKE_CURRENT_BINARY_DIR} /encode_template_arm64.hpp
194+ )
195+ endif ()
192196
193197
194198# tpde-llc binary
0 commit comments