diff options
author | Slávek Banko <[email protected]> | 2020-05-10 12:43:42 +0200 |
---|---|---|
committer | Slávek Banko <[email protected]> | 2020-05-11 00:42:15 +0200 |
commit | 778522d10450a8a45133c65ae0175224c6abc700 (patch) | |
tree | e3ed06dd939195c5c60bd7f5a66adc51a3b9cad3 /modules/TDEMacros.cmake | |
parent | 4ced9fd928bfdf8a44152492b504bba4e0f98da5 (diff) | |
download | tde-cmake-778522d10450a8a45133c65ae0175224c6abc700.tar.gz tde-cmake-778522d10450a8a45133c65ae0175224c6abc700.zip |
Add caching of variables from checks results and add conditions
to avoid unnecessary repetition of checks.
Signed-off-by: Slávek Banko <[email protected]>
Diffstat (limited to 'modules/TDEMacros.cmake')
-rw-r--r-- | modules/TDEMacros.cmake | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/modules/TDEMacros.cmake b/modules/TDEMacros.cmake index 89705fd..7f4b05a 100644 --- a/modules/TDEMacros.cmake +++ b/modules/TDEMacros.cmake @@ -2311,19 +2311,21 @@ endif( ) ##### tde_setup_architecture_flags macro( tde_setup_architecture_flags ) - message( STATUS "Detected ${CMAKE_SYSTEM_PROCESSOR} CPU architecture" ) - ## Immediate symbol binding is available only for gcc but not on ARM architectures - if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" AND NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES arm* AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD" ) - set( LINKER_IMMEDIATE_BINDING_FLAGS "-z\ now" CACHE INTERNAL "" FORCE ) - else( ) - set( LINKER_IMMEDIATE_BINDING_FLAGS "" CACHE INTERNAL "" FORCE ) - endif( ) + if( NOT DEFINED LINKER_IMMEDIATE_BINDING_FLAGS ) + message( STATUS "Detected ${CMAKE_SYSTEM_PROCESSOR} CPU architecture" ) + ## Immediate symbol binding is available only for gcc but not on ARM architectures + if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" AND NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES arm* AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD" ) + set( LINKER_IMMEDIATE_BINDING_FLAGS "-z\ now" CACHE INTERNAL "" FORCE ) + else( ) + set( LINKER_IMMEDIATE_BINDING_FLAGS "" CACHE INTERNAL "" FORCE ) + endif( ) - check_cxx_compiler_flag( -fPIE HAVE_PIE_SUPPORT ) - if( HAVE_PIE_SUPPORT ) - set( TDE_PIE_CFLAGS -fPIE ) - set( TDE_PIE_LDFLAGS -pie ) - endif( HAVE_PIE_SUPPORT ) + check_cxx_compiler_flag( -fPIE HAVE_PIE_SUPPORT ) + if( HAVE_PIE_SUPPORT ) + set( TDE_PIE_CFLAGS -fPIE ) + set( TDE_PIE_LDFLAGS -pie ) + endif( HAVE_PIE_SUPPORT ) + endif( ) endmacro( ) @@ -2337,7 +2339,7 @@ macro( tde_setup_gcc_visibility ) tde_message_fatal( "gcc visibility support was requested, but your system is not *NIX" ) endif( NOT UNIX ) - if( TQT_FOUND ) + if( TQT_FOUND AND NOT DEFINED HAVE_TQT_VISIBILITY ) find_library( TQT_LIBFILE tqt-mt HINTS "${TQT_LIBRARY_DIRS}" ) if( NOT "${TQT_LIBFILE}" STREQUAL "TQT_LIBFILE-NOTFOUND" ) message( STATUS "Performing Test HAVE_TQT_VISIBILITY" ) @@ -2350,11 +2352,12 @@ macro( tde_setup_gcc_visibility ) message( STATUS "Performing Test HAVE_TQT_VISIBILITY - Failed" ) tde_message_fatal( "gcc visibility support was requested, but not supported in tqt library" ) endif( ) + set( HAVE_TQT_VISIBILITY 1 CACHE INTERNAL "" ) message( STATUS "Performing Test HAVE_TQT_VISIBILITY - Success" ) endif( ) - endif( TQT_FOUND ) + endif( TQT_FOUND AND NOT DEFINED HAVE_TQT_VISIBILITY ) - if( TDE_FOUND ) + if( TDE_FOUND AND NOT DEFINED HAVE_TDE_VISIBILITY ) find_file( TDEMACROS_H kdemacros.h HINTS "${TDE_INCLUDE_DIR}" ) if( NOT "${TDEMACROS_H}" STREQUAL "TDEMACROS_H-NOTFOUND" ) tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${TDE_INCLUDE_DIR}" ) @@ -2371,9 +2374,9 @@ macro( tde_setup_gcc_visibility ) tde_message_fatal( "gcc visibility support was requested, but not supported in tdelibs" ) endif( NOT HAVE_TDE_VISIBILITY ) endif( ) - endif( TDE_FOUND ) + endif( TDE_FOUND AND NOT DEFINED HAVE_TDE_VISIBILITY ) - set( __KDE_HAVE_GCC_VISIBILITY 1 ) + set( __KDE_HAVE_GCC_VISIBILITY 1 CACHE INTERNAL "" ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden") endif( ) @@ -2520,7 +2523,8 @@ macro( tde_setup_dbus ) OUTPUT_STRIP_TRAILING_WHITESPACE ) if( DBUS_SYSTEM_CONF_BASE ) - set( DBUS_SYSTEM_CONF_DIRECTORY "${DBUS_SYSTEM_CONF_BASE}/dbus-1/system.d" ) + set( DBUS_SYSTEM_CONF_DIRECTORY "${DBUS_SYSTEM_CONF_BASE}/dbus-1/system.d" + CACHE PATH "Path for DBUS system configuration files" ) message( STATUS "Using " ${DBUS_SYSTEM_CONF_DIRECTORY} " for DBUS system configuration files" ) else( ) tde_message_fatal( "Can not find the base directory for the dbus-1 configuration" ) @@ -2535,7 +2539,8 @@ macro( tde_setup_dbus ) OUTPUT_STRIP_TRAILING_WHITESPACE ) if( DBUS_SYSTEM_CONF_BASE ) - set( DBUS_SESSION_CONF_DIRECTORY "${DBUS_SYSTEM_CONF_BASE}/dbus-1/session.d" ) + set( DBUS_SESSION_CONF_DIRECTORY "${DBUS_SYSTEM_CONF_BASE}/dbus-1/session.d" + CACHE PATH "Path for DBUS session configuration files" ) message( STATUS "Using " ${DBUS_SESSION_CONF_DIRECTORY} " for DBUS session configuration files" ) else( ) tde_message_fatal( "Can not find the base directory for the dbus-1 configuration" ) @@ -2549,6 +2554,8 @@ macro( tde_setup_dbus ) OUTPUT_VARIABLE DBUS_SESSION_DIRECTORY OUTPUT_STRIP_TRAILING_WHITESPACE ) + set( DBUS_SESSION_DIRECTORY "${DBUS_SESSION_DIRECTORY}" + CACHE PATH "Path for DBUS session service files" ) message( STATUS "Using " ${DBUS_SESSION_DIRECTORY} " for DBUS session service files" ) endif( ) @@ -2567,6 +2574,8 @@ macro( tde_setup_dbus ) tde_message_fatal( "Directory for DBUS system service files can not be determined." ) endif( ) endif( ) + set( DBUS_SERVICE_DIRECTORY "${DBUS_SERVICE_DIRECTORY}" + CACHE PATH "Path for DBUS system service files" ) message( STATUS "Using " ${DBUS_SERVICE_DIRECTORY} " for DBUS system service files" ) endif( ) @@ -2625,6 +2634,8 @@ macro( tde_setup_polkit ) OUTPUT_VARIABLE POLKIT_ACTIONS_DIRECTORY OUTPUT_STRIP_TRAILING_WHITESPACE ) + set( POLKIT_ACTIONS_DIRECTORY "${POLKIT_ACTIONS_DIRECTORY}" + CACHE PATH "Path for PolicyKit action files" ) message( STATUS "Using " ${POLKIT_ACTIONS_DIRECTORY} " for PolicyKit action files" ) endif( ) |