@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
22include (GenerateExportHeader)
33include (GNUInstallDirs)
44
5- project (Zydis VERSION 2.0)
5+ project (Zydis VERSION 2.0.2 )
66
77# =============================================================================================== #
88# Overridable options #
@@ -67,8 +67,19 @@ endif ()
6767# Library configuration #
6868# =============================================================================================== #
6969
70- add_library ("Zydis" )
70+ function (_set_common_flags target )
71+ if ("${CMAKE_C_COMPILER_ID} " STREQUAL "GNU" OR
72+ "${CMAKE_C_COMPILER_ID} " STREQUAL "Clang" OR
73+ "${CMAKE_C_COMPILER_ID} " STREQUAL "AppleClang" )
74+ target_compile_options ("${target} " PRIVATE "-std=c99" )
75+ endif ()
76+ if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" )
77+ target_compile_options ("${target} " PRIVATE "-fPIC" )
78+ endif ()
79+ endfunction ()
7180
81+ add_library ("Zydis" )
82+ _set_common_flags("Zydis" )
7283target_include_directories ("Zydis"
7384 PUBLIC "include" ${PROJECT_BINARY_DIR}
7485 PRIVATE "src" )
@@ -170,11 +181,13 @@ install(DIRECTORY "include/" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
170181if (ZYDIS_BUILD_EXAMPLES)
171182 if (ZYDIS_FEATURE_DECODER AND ZYDIS_FEATURE_FORMATTER)
172183 add_executable ("FormatterHooks" "examples/FormatterHooks.c" )
184+ _set_common_flags("FormatterHooks" )
173185 target_link_libraries ("FormatterHooks" "Zydis" )
174186 set_target_properties ("FormatterHooks" PROPERTIES FOLDER "Examples/Formatter" )
175187 target_compile_definitions ("FormatterHooks" PRIVATE "_CRT_SECURE_NO_WARNINGS" )
176188
177189 add_executable ("ZydisFuzzIn" "examples/ZydisFuzzIn.c" )
190+ _set_common_flags("ZydisFuzzIn" )
178191 target_link_libraries ("ZydisFuzzIn" "Zydis" )
179192 set_target_properties ("FormatterHooks" PROPERTIES FOLDER "Examples" )
180193 target_compile_definitions ("ZydisFuzzIn" PRIVATE "_CRT_SECURE_NO_WARNINGS" )
@@ -187,6 +200,7 @@ if (ZYDIS_BUILD_EXAMPLES)
187200 endif ()
188201
189202 add_executable ("ZydisPerfTest" "examples/ZydisPerfTest.c" )
203+ _set_common_flags("ZydisPerfTest" )
190204 target_link_libraries ("ZydisPerfTest" "Zydis" )
191205 set_target_properties ("FormatterHooks" PROPERTIES FOLDER "Examples" )
192206 target_compile_definitions ("ZydisPerfTest" PRIVATE "_CRT_SECURE_NO_WARNINGS" )
@@ -199,6 +213,10 @@ if (ZYDIS_BUILD_EXAMPLES)
199213 find_package (Threads REQUIRED)
200214 target_link_libraries ("ZydisPerfTest" Threads::Threads)
201215 endif ()
216+ if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" )
217+ find_package (Threads REQUIRED)
218+ target_link_libraries ("ZydisPerfTest" Threads::Threads)
219+ endif ()
202220 endif ()
203221endif ()
204222
@@ -209,6 +227,7 @@ endif ()
209227if (ZYDIS_BUILD_TOOLS)
210228 if (ZYDIS_FEATURE_DECODER AND ZYDIS_FEATURE_FORMATTER)
211229 add_executable ("ZydisDisasm" "tools/ZydisDisasm.c" )
230+ _set_common_flags("ZydisDisasm" )
212231 target_link_libraries ("ZydisDisasm" "Zydis" )
213232 set_target_properties ("ZydisDisasm" PROPERTIES FOLDER "Tools" )
214233 target_compile_definitions ("ZydisDisasm" PRIVATE "_CRT_SECURE_NO_WARNINGS" )
@@ -218,6 +237,7 @@ if (ZYDIS_BUILD_TOOLS)
218237 endif ()
219238
220239 add_executable ("ZydisInfo" "tools/ZydisInfo.c" )
240+ _set_common_flags("ZydisInfo" )
221241 target_link_libraries ("ZydisInfo" "Zydis" )
222242 set_target_properties ("ZydisInfo" PROPERTIES FOLDER "Tools" )
223243 target_compile_definitions ("ZydisInfo" PRIVATE "_CRT_SECURE_NO_WARNINGS" )
0 commit comments