Update tde_setup_gcc_visibility macro

+ In the test include kdemacros.h with detected full path to avoid FTBFS.
+ Do not test gcc visibility on TDE unless the current module uses TDE.
+ Do not test gcc visibility on TQt unless the current module uses TQt.
+ Improve test for gcc visibility on TQt to make it more accurate.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/24/head
Slávek Banko 6 years ago
parent d02522eda1
commit f8254e1561
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -1869,6 +1869,7 @@ macro( tde_setup_gcc_visibility )
tde_message_fatal( "gcc visibility support was requested, but your system is not *NIX" ) tde_message_fatal( "gcc visibility support was requested, but your system is not *NIX" )
endif( NOT UNIX ) endif( NOT UNIX )
if( TQT_FOUND )
find_library( TQT_LIBFILE tqt-mt HINTS "${TQT_LIBRARY_DIRS}" ) find_library( TQT_LIBFILE tqt-mt HINTS "${TQT_LIBRARY_DIRS}" )
if( NOT "${TQT_LIBFILE}" STREQUAL "TQT_LIBFILE-NOTFOUND" ) if( NOT "${TQT_LIBFILE}" STREQUAL "TQT_LIBFILE-NOTFOUND" )
message( STATUS "Performing Test HAVE_TQT_VISIBILITY" ) message( STATUS "Performing Test HAVE_TQT_VISIBILITY" )
@ -1877,18 +1878,20 @@ macro( tde_setup_gcc_visibility )
OUTPUT_VARIABLE HAVE_TQT_VISIBILITY OUTPUT_VARIABLE HAVE_TQT_VISIBILITY
) )
if( "${HAVE_TQT_VISIBILITY}" STREQUAL "" OR if( "${HAVE_TQT_VISIBILITY}" STREQUAL "" OR
"${HAVE_TQT_VISIBILITY}" MATCHES "DEFAULT[^\n]*QSettingsPrivate" ) "${HAVE_TQT_VISIBILITY}" MATCHES "GLOBAL[\t ]+DEFAULT[^\n]+QSettingsPrivate" )
message( STATUS "Performing Test HAVE_TQT_VISIBILITY - Failed" ) message( STATUS "Performing Test HAVE_TQT_VISIBILITY - Failed" )
tde_message_fatal( "gcc visibility support was requested, but not supported in tqt library" ) tde_message_fatal( "gcc visibility support was requested, but not supported in tqt library" )
endif( ) endif( )
message( STATUS "Performing Test HAVE_TQT_VISIBILITY - Success" ) message( STATUS "Performing Test HAVE_TQT_VISIBILITY - Success" )
endif( ) endif( )
endif( TQT_FOUND )
if( TDE_FOUND )
find_file( TDEMACROS_H kdemacros.h HINTS "${TDE_INCLUDE_DIR}" ) find_file( TDEMACROS_H kdemacros.h HINTS "${TDE_INCLUDE_DIR}" )
if( NOT "${TDEMACROS_H}" STREQUAL "TDEMACROS_H-NOTFOUND" ) if( NOT "${TDEMACROS_H}" STREQUAL "TDEMACROS_H-NOTFOUND" )
tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${TDE_INCLUDE_DIR}" ) tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${TDE_INCLUDE_DIR}" )
check_cxx_source_compiles( " check_cxx_source_compiles( "
#include <kdemacros.h> #include <${TDEMACROS_H}>
#ifndef __KDE_HAVE_GCC_VISIBILITY #ifndef __KDE_HAVE_GCC_VISIBILITY
#error gcc visibility is not enabled in tdelibs #error gcc visibility is not enabled in tdelibs
#endif #endif
@ -1900,6 +1903,7 @@ macro( tde_setup_gcc_visibility )
tde_message_fatal( "gcc visibility support was requested, but not supported in tdelibs" ) tde_message_fatal( "gcc visibility support was requested, but not supported in tdelibs" )
endif( NOT HAVE_TDE_VISIBILITY ) endif( NOT HAVE_TDE_VISIBILITY )
endif( ) endif( )
endif( TDE_FOUND )
set( __KDE_HAVE_GCC_VISIBILITY 1 ) set( __KDE_HAVE_GCC_VISIBILITY 1 )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden") set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")

Loading…
Cancel
Save