Skip to content

Commit 3c84f75

Browse files
committed
Update CMakeLists.txt
1 parent 660c4cc commit 3c84f75

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,45 @@ else()
4444
#target_compile_options(${PROJECT_NAME} INTERFACE -Wall -Wextra -Wpendantic -Werror)
4545
endif()
4646

47+
# Optimizations
48+
target_compile_options(${PROJECT_NAME} INTERFACE
49+
# MSVC/clang with MSVC frontend
50+
$<$<OR:$<CXX_COMPILER_ID:MSVC>,$<AND:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_FRONTEND_VARIANT:MSVC>>>:
51+
$<$<CONFIG:Release>:/O2>
52+
$<$<CONFIG:Release>:/GL>
53+
$<$<CONFIG:Debug>:/RTC1>
54+
/Zc:preprocessor
55+
>
56+
# GCC/clang with GNU frontend
57+
$<$<OR:$<CXX_COMPILER_ID:GNU>,$<AND:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_FRONTEND_VARIANT:GNU>>>:
58+
$<$<CONFIG:Release>:-O3>
59+
$<$<CONFIG:Release>:-flto>
60+
>
61+
# disable noexcept type warning on GCC
62+
$<$<CXX_COMPILER_ID:GNU>:
63+
$<$<CONFIG:Release>:-O3>
64+
$<$<CONFIG:Release>:-flto>
65+
>
66+
)
67+
68+
target_link_options(${PROJECT_NAME} INTERFACE
69+
# MSVC/clang with MSVC frontend
70+
$<$<OR:$<CXX_COMPILER_ID:MSVC>,$<AND:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_FRONTEND_VARIANT:MSVC>>>:
71+
$<$<CONFIG:Release>:/LTCG>
72+
>
73+
# GCC/clang with GNU frontend
74+
$<$<OR:$<CXX_COMPILER_ID:GNU>,$<AND:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_FRONTEND_VARIANT:GNU>>>:
75+
$<$<CONFIG:Release>:-flto>
76+
-static
77+
$<$<CONFIG:Release>:-fuse-ld=lld>
78+
>
79+
# disable noexcept type warning on GCC
80+
$<$<CXX_COMPILER_ID:GNU>:
81+
$<$<CONFIG:Release>:-flto>
82+
-static
83+
>
84+
)
85+
4786
if(BUILD_PCRE2CPP_TESTS)
4887
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tests)
4988
endif()

0 commit comments

Comments
 (0)