diff --git a/byond-extools/CMakeLists.txt b/byond-extools/CMakeLists.txt index e2c9285d..a3308d45 100644 --- a/byond-extools/CMakeLists.txt +++ b/byond-extools/CMakeLists.txt @@ -32,17 +32,23 @@ set(SRC_FILES ${SRC_FILES} "${SRC_DIR}/third_party/subhook/subhook.c") add_library(byond-extools SHARED ${SRC_FILES}) source_group(TREE ${SRC_DIR} FILES ${SRC_FILES}) +set_target_properties(byond-extools PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) if (WIN32) set_property(TARGET byond-extools PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - if (MSVC) + if (MSVC OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")) target_compile_options(byond-extools PRIVATE "/MP") - target_compile_options(byond-extools PRIVATE "$<$:/Ob2;/Zc:inline;/arch:AVX2;/Oi;/Ot;/fp:fast;/GL;/Qvec-report:1;/std:c++latest>") - target_compile_options(byond-extools PRIVATE "$<$:/Ob2;/Zc:inline;/arch:AVX2;/Oi;/Ot;/fp:fast;/GL;/Qvec-report:1;/std:c++latest>") - target_compile_options(byond-extools PRIVATE "$<$:/Ob2;/Zc:inline;/arch:AVX2;/Oi;/Os;/fp:fast;/GL;/Qvec-report:1;/std:c++latest>") + target_compile_options(byond-extools PRIVATE "$<$:/Ob2;/Zc:inline;/arch:AVX;/Oi;/Ot;/fp:fast;/Qvec-report:1;/std:c++latest>") + target_compile_options(byond-extools PRIVATE "$<$:/Ob2;/Zc:inline;/arch:AVX;/Oi;/Ot;/fp:fast;/Qvec-report:1;/std:c++latest>") + target_compile_options(byond-extools PRIVATE "$<$:/Ob2;/Zc:inline;/arch:AVX;/Oi;/Os;/fp:fast;/Qvec-report:1;/std:c++latest>") else() target_link_libraries(byond-extools PRIVATE "ws2_32" "psapi" "-static-libgcc" "-static-libstdc++" "-static") endif() target_compile_definitions(byond-extools PRIVATE WIN32_LEAN_AND_MEAN SUBHOOK_IMPLEMENTATION) else() set_target_properties(byond-extools PROPERTIES COMPILE_OPTIONS "-m32" LINK_FLAGS "-m32") + if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") + target_compile_options(byond-extools PRIVATE "$<$:-Ofast>") + target_compile_options(byond-extools PRIVATE "$<$:-Ofast>") + endif() endif()