summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-10 01:16:09 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-10 01:16:09 -0600
commit4c08c66641779bd7d14fc68dde22af8f08603712 (patch)
tree70deeb1684b9480604632a001653ac9181286cc2
parent7d1ddd67f4d66d34a6615d4020fc079ffed09cde (diff)
downloadarts-4c08c66641779bd7d14fc68dde22af8f08603712.tar.gz
arts-4c08c66641779bd7d14fc68dde22af8f08603712.zip
Add gcc visibility option to arts
-rw-r--r--CMakeLists.txt15
-rw-r--r--artsc/artsc_export.h.in4
-rw-r--r--config.h.cmake3
-rw-r--r--mcop/arts_export.h.in3
4 files changed, 23 insertions, 2 deletions
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