diff --git a/CMakeLists.txt b/CMakeLists.txt index b442d86..a75fed8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,7 @@ option( WITH_ALSA "Enable ALSA support" ON ) option( WITH_AUDIOFILE "Enable audiofile (wav) support" ON ) option( WITH_VORBIS "Enable Ogg/Vorbis support" ON ) option( WITH_MAD "Enable MAD mp3 decoder support" ON ) +option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" OFF ) ##### paths setup ############################### @@ -159,6 +160,20 @@ else( GLIB2_FOUND ) endif( GLIB2_FOUND ) +##### check for gcc visibility support ######### +# FIXME +# This should check for [T]Qt3 visibility support + +if( WITH_GCC_VISIBILITY ) + if( NOT UNIX ) + message(FATAL_ERROR "\ngcc visibility support was requested, but your system is not *NIX" ) + endif( NOT UNIX ) + set( __KDE_HAVE_GCC_VISIBILITY 1 ) + set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden") + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden") +endif( ) + + ##### check for TQt ############################# include( CheckCXXSourceCompiles ) diff --git a/artsc/artsc_export.h.in b/artsc/artsc_export.h.in index 7a235b9..c7c78e3 100644 --- a/artsc/artsc_export.h.in +++ b/artsc/artsc_export.h.in @@ -20,7 +20,9 @@ #ifndef ARTSC_EXPORT_H #define ARTSC_EXPORT_H -#undef __KDE_HAVE_GCC_VISIBILITY +/* Defined if you have fvisibility and fvisibility-inlines-hidden support. */ +#cmakedefine __KDE_HAVE_GCC_VISIBILITY 1 + /** * The ARTS_NO_EXPORT macro marks the symbol of the given variable * to be hidden. A hidden symbol is stripped during the linking step, diff --git a/config.h.cmake b/config.h.cmake index ac9dddb..43bdb21 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -1,3 +1,6 @@ +/* Defined if you have fvisibility and fvisibility-inlines-hidden support. */ +#cmakedefine __KDE_HAVE_GCC_VISIBILITY 1 + #cmakedefine HAVE_SYS_TIME_H 1 #cmakedefine TIME_WITH_SYS_TIME 1 #cmakedefine HAVE_STDIO_H 1 diff --git a/mcop/arts_export.h.in b/mcop/arts_export.h.in index 075285c..cf10547 100644 --- a/mcop/arts_export.h.in +++ b/mcop/arts_export.h.in @@ -20,7 +20,8 @@ #ifndef ARTS_EXPORT_H #define ARTS_EXPORT_H -#undef __KDE_HAVE_GCC_VISIBILITY +/* Defined if you have fvisibility and fvisibility-inlines-hidden support. */ +#cmakedefine __KDE_HAVE_GCC_VISIBILITY 1 /** * The ARTS_NO_EXPORT macro marks the symbol of the given variable