aboutsummaryrefslogtreecommitdiff
path: root/ConfigureChecks.cmake
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cynapses.org>2010-09-05 12:55:02 +0200
committerAndreas Schneider <asn@cynapses.org>2010-09-05 12:56:01 +0200
commit0785c522f076cbb8c53d93028c92aa2ea0490a9a (patch)
tree5fb3562135bf79271f804b1954f70404ae2c8a27 /ConfigureChecks.cmake
parent2656c6b4ac9ee03bfd354ed731e1a600cf792f99 (diff)
downloadlibssh-0785c522f076cbb8c53d93028c92aa2ea0490a9a.tar.gz
libssh-0785c522f076cbb8c53d93028c92aa2ea0490a9a.tar.xz
libssh-0785c522f076cbb8c53d93028c92aa2ea0490a9a.zip
build: Fixed build with gcc 3.4.
The -fvisibility=hidden flag is broken in gcc 3.4. This fixes the build on CentOS, bug #74.
Diffstat (limited to 'ConfigureChecks.cmake')
-rw-r--r--ConfigureChecks.cmake18
1 files changed, 17 insertions, 1 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index 6b799b4..95592db 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -16,8 +16,24 @@ set(SYSCONFDIR ${SYSCONF_INSTALL_DIR})
set(BINARYDIR ${CMAKE_BINARY_DIR})
set(SOURCEDIR ${CMAKE_SOURCE_DIR})
+function(COMPILER_DUMPVERSION _OUTPUT_VERSION)
+ execute_process(
+ COMMAND
+ ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} -dumpversion
+ OUTPUT_VARIABLE _COMPILER_VERSION
+ )
+
+ string(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2"
+ _COMPILER_VERSION ${_COMPILER_VERSION})
+
+ set(${_OUTPUT_VERSION} ${_COMPILER_VERSION} PARENT_SCOPE)
+endfunction()
+
if(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW)
-check_c_compiler_flag("-fvisibility=hidden" WITH_VISIBILITY_HIDDEN)
+ compiler_dumpversion(GNUCC_VERSION)
+ if (GNUCC_VERSION EQUAL 34)
+ check_c_compiler_flag("-fvisibility=hidden" WITH_VISIBILITY_HIDDEN)
+ endif (GNUCC_VERSION EQUAL 34)
endif(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW)
# HEADER FILES