mirror of https://github.com/x64dbg/zydis
Added `WHOLE_PROGRAM_OPTIMIZATION` option to the CMake file
This commit is contained in:
parent
5a90a4d628
commit
dd90a66d99
|
@ -26,6 +26,9 @@ option(ZYDIS_FEATURE_MVEX
|
||||||
option(BUILD_SHARED_LIBS
|
option(BUILD_SHARED_LIBS
|
||||||
"Build shared libraries"
|
"Build shared libraries"
|
||||||
OFF)
|
OFF)
|
||||||
|
option(WHOLE_PROGRAM_OPTIMIZATION
|
||||||
|
"Enable whole program optimization"
|
||||||
|
OFF)
|
||||||
option(ZYDIS_NO_LIBC
|
option(ZYDIS_NO_LIBC
|
||||||
"Don't use any C standard library functions (for exotic build-envs like kernel drivers)"
|
"Don't use any C standard library functions (for exotic build-envs like kernel drivers)"
|
||||||
OFF)
|
OFF)
|
||||||
|
@ -70,6 +73,11 @@ target_include_directories("Zydis"
|
||||||
PUBLIC "include" ${PROJECT_BINARY_DIR}
|
PUBLIC "include" ${PROJECT_BINARY_DIR}
|
||||||
PRIVATE "src")
|
PRIVATE "src")
|
||||||
target_compile_definitions("Zydis" PRIVATE "_CRT_SECURE_NO_WARNINGS" "ZYDIS_EXPORTS")
|
target_compile_definitions("Zydis" PRIVATE "_CRT_SECURE_NO_WARNINGS" "ZYDIS_EXPORTS")
|
||||||
|
if (WHOLE_PROGRAM_OPTIMIZATION AND MSVC)
|
||||||
|
set_target_properties("Zydis" PROPERTIES COMPILE_FLAGS "/GL")
|
||||||
|
set_target_properties("Zydis" PROPERTIES LINK_FLAGS_RELEASE "/LTCG")
|
||||||
|
set_target_properties("Zydis" PROPERTIES STATIC_LIBRARY_FLAGS_RELEASE "/LTCG")
|
||||||
|
endif ()
|
||||||
generate_export_header("Zydis" BASE_NAME "ZYDIS" EXPORT_FILE_NAME "ZydisExportConfig.h")
|
generate_export_header("Zydis" BASE_NAME "ZYDIS" EXPORT_FILE_NAME "ZydisExportConfig.h")
|
||||||
|
|
||||||
if (NOT ZYDIS_FEATURE_ENCODER AND NOT ZYDIS_FEATURE_DECODER)
|
if (NOT ZYDIS_FEATURE_ENCODER AND NOT ZYDIS_FEATURE_DECODER)
|
||||||
|
@ -159,6 +167,10 @@ if (ZYDIS_BUILD_EXAMPLES)
|
||||||
target_link_libraries("ZydisFuzzIn" "Zydis")
|
target_link_libraries("ZydisFuzzIn" "Zydis")
|
||||||
set_target_properties("FormatterHooks" PROPERTIES FOLDER "Examples")
|
set_target_properties("FormatterHooks" PROPERTIES FOLDER "Examples")
|
||||||
target_compile_definitions("ZydisFuzzIn" PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
target_compile_definitions("ZydisFuzzIn" PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||||
|
if (WHOLE_PROGRAM_OPTIMIZATION AND MSVC)
|
||||||
|
set_target_properties("ZydisFuzzIn" PROPERTIES COMPILE_FLAGS "/GL")
|
||||||
|
set_target_properties("ZydisFuzzIn" PROPERTIES LINK_FLAGS_RELEASE "/LTCG")
|
||||||
|
endif ()
|
||||||
if (ZYDIS_FUZZ_AFL_FAST)
|
if (ZYDIS_FUZZ_AFL_FAST)
|
||||||
target_compile_definitions("ZydisFuzzIn" PRIVATE "ZYDIS_FUZZ_AFL_FAST")
|
target_compile_definitions("ZydisFuzzIn" PRIVATE "ZYDIS_FUZZ_AFL_FAST")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -167,6 +179,10 @@ if (ZYDIS_BUILD_EXAMPLES)
|
||||||
target_link_libraries("ZydisPerfTest" "Zydis")
|
target_link_libraries("ZydisPerfTest" "Zydis")
|
||||||
set_target_properties("FormatterHooks" PROPERTIES FOLDER "Examples")
|
set_target_properties("FormatterHooks" PROPERTIES FOLDER "Examples")
|
||||||
target_compile_definitions("ZydisPerfTest" PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
target_compile_definitions("ZydisPerfTest" PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||||
|
if (WHOLE_PROGRAM_OPTIMIZATION AND MSVC)
|
||||||
|
set_target_properties("ZydisPerfTest" PROPERTIES COMPILE_FLAGS "/GL")
|
||||||
|
set_target_properties("ZydisPerfTest" PROPERTIES LINK_FLAGS_RELEASE "/LTCG")
|
||||||
|
endif ()
|
||||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||||
target_compile_definitions("ZydisPerfTest" PRIVATE "_GNU_SOURCE")
|
target_compile_definitions("ZydisPerfTest" PRIVATE "_GNU_SOURCE")
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
@ -185,10 +201,18 @@ if (ZYDIS_BUILD_TOOLS)
|
||||||
target_link_libraries("ZydisDisasm" "Zydis")
|
target_link_libraries("ZydisDisasm" "Zydis")
|
||||||
set_target_properties ("ZydisDisasm" PROPERTIES FOLDER "Tools")
|
set_target_properties ("ZydisDisasm" PROPERTIES FOLDER "Tools")
|
||||||
target_compile_definitions("ZydisDisasm" PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
target_compile_definitions("ZydisDisasm" PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||||
|
if (WHOLE_PROGRAM_OPTIMIZATION AND MSVC)
|
||||||
|
set_target_properties("ZydisDisasm" PROPERTIES COMPILE_FLAGS "/GL")
|
||||||
|
set_target_properties("ZydisDisasm" PROPERTIES LINK_FLAGS_RELEASE "/LTCG")
|
||||||
|
endif ()
|
||||||
|
|
||||||
add_executable("ZydisInfo" "tools/ZydisInfo.c")
|
add_executable("ZydisInfo" "tools/ZydisInfo.c")
|
||||||
target_link_libraries("ZydisInfo" "Zydis")
|
target_link_libraries("ZydisInfo" "Zydis")
|
||||||
set_target_properties ("ZydisInfo" PROPERTIES FOLDER "Tools")
|
set_target_properties ("ZydisInfo" PROPERTIES FOLDER "Tools")
|
||||||
target_compile_definitions("ZydisInfo" PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
target_compile_definitions("ZydisInfo" PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||||
|
if (WHOLE_PROGRAM_OPTIMIZATION AND MSVC)
|
||||||
|
set_target_properties("ZydisInfo" PROPERTIES COMPILE_FLAGS "/GL")
|
||||||
|
set_target_properties("ZydisInfo" PROPERTIES LINK_FLAGS_RELEASE "/LTCG")
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
Loading…
Reference in New Issue