From: Viktor Szakats Date: Tue, 24 Dec 2024 09:09:13 +0000 (+0100) Subject: cmake: allow `CURL_LTO` regardless of `CURL_BUILD_TYPE`, enable in CI X-Git-Tag: curl-8_12_0~267 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a1eaa12a8397026aa34e04d6ed4280ddfe6c4c93;p=thirdparty%2Fcurl.git cmake: allow `CURL_LTO` regardless of `CURL_BUILD_TYPE`, enable in CI Before this patch `CURL_LTO` only applied to builds explicitly configured for `Release` or `RelWithDebInfo` via `CURL_BUILD_TYPE`. After this patch it enables LTO regardess of build type. Also: - GHA/linux: enable LTO in an existing job. Follow-up to 4ccf7622db04af58442c460b8091b952585de5c7 #4799 Closes #15829 --- diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 4cf07ad719..880d54337b 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -169,10 +169,10 @@ jobs: install_packages: zlib1g-dev libkrb5-dev clang configure: CC=clang --with-openssl --with-gssapi --enable-debug --disable-docs --disable-manual - - name: openssl clang krb5 + - name: openssl clang krb5 LTO install_packages: zlib1g-dev libkrb5-dev clang install_steps: skipall - generate: -DCURL_USE_OPENSSL=ON -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON + generate: -DCURL_USE_OPENSSL=ON -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON -DCURL_LTO=ON - name: openssl !ipv6 configure: --with-openssl --disable-ipv6 --enable-debug --disable-unity diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 9cf0c6fdf9..c1863b0de3 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -105,9 +105,7 @@ if(SHARE_LIB_OBJECT) set_property(TARGET ${LIB_OBJECT} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS") endif() if(CURL_HAS_LTO) - set_target_properties(${LIB_OBJECT} PROPERTIES - INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE - INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE) + set_target_properties(${LIB_OBJECT} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) endif() target_include_directories(${LIB_OBJECT} INTERFACE @@ -138,9 +136,7 @@ if(BUILD_STATIC_LIBS) set_property(TARGET ${LIB_STATIC} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS") endif() if(CURL_HAS_LTO) - set_target_properties(${LIB_STATIC} PROPERTIES - INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE - INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE) + set_target_properties(${LIB_STATIC} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) endif() target_include_directories(${LIB_STATIC} INTERFACE @@ -177,9 +173,7 @@ if(BUILD_SHARED_LIBS) set_property(TARGET ${LIB_SHARED} APPEND PROPERTY COMPILE_DEFINITIONS "CURL_HIDDEN_SYMBOLS") endif() if(CURL_HAS_LTO) - set_target_properties(${LIB_SHARED} PROPERTIES - INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE - INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE) + set_target_properties(${LIB_SHARED} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) endif() target_include_directories(${LIB_SHARED} INTERFACE diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2683e4b031..f9292249b2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -104,9 +104,7 @@ target_compile_definitions(curltool PUBLIC "UNITTESTS" "CURL_STATICLIB") target_link_libraries(curltool PRIVATE ${CURL_LIBS}) if(CURL_HAS_LTO) - set_target_properties(${EXE_NAME} PROPERTIES - INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE - INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE) + set_target_properties(${EXE_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) endif() if(ENABLE_UNICODE AND MINGW)