Browse Source

test for gnu compiler

Bill Hoffman 23 năm trước cách đây
mục cha
commit
da460f9008

+ 8 - 4
Modules/CMakeDetermineCCompiler.cmake

@@ -4,8 +4,12 @@
 
 FIND_PROGRAM(CMAKE_C_COMPILER NAMES $ENV{CC} gcc cc cl bcc PATHS /bin /usr/bin /usr/local/bin )
 
+# test to see if the c compiler is gnu
+EXEC_PROGRAM(${CMAKE_C_COMPILER} ARGS -E ${CMAKE_ROOT}/Modules/CMakeTestGNU.c OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT RETURN_VALUE CMAKE_COMPILER_RETURN)
+
+IF(NOT CMAKE_COMPILER_RETURN)
+   IF(${CMAKE_COMPILER_OUTPUT} MATCHES ".*THIS_IS_GNU.*" )
+      SET(CMAKE_COMPILER_IS_GNUGCC 1)
+   ENDIF(${CMAKE_COMPILER_OUTPUT} MATCHES ".*THIS_IS_GNU.*" )
+ENDIF(NOT CMAKE_COMPILER_RETURN)
 
-# to check for is gnu we need to compile this:
-#  #ifdef __GNUC__
-#  yes;
-#  #endif

+ 9 - 0
Modules/CMakeDetermineCXXCompiler.cmake

@@ -3,3 +3,12 @@
 # loading this file to force a compiler.
 
 FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES $ENV{CXX} c++ g++ CC aCC cl bcc PATHS /bin /usr/bin /usr/local/bin )
+
+# test to see if the cxx compiler is gnu
+EXEC_PROGRAM(${CMAKE_CXX_COMPILER} ARGS -E ${CMAKE_ROOT}/Modules/CMakeTestGNU.c OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT RETURN_VALUE CMAKE_COMPILER_RETURN)
+
+IF(NOT CMAKE_COMPILER_RETURN)
+   IF(${CMAKE_COMPILER_OUTPUT} MATCHES ".*THIS_IS_GNU.*" )
+      SET(CMAKE_COMPILER_IS_GNUGXX 1)
+   ENDIF(${CMAKE_COMPILER_OUTPUT} MATCHES ".*THIS_IS_GNU.*" )
+ENDIF(NOT CMAKE_COMPILER_RETURN)

+ 3 - 0
Modules/CMakeTestGNU.c

@@ -0,0 +1,3 @@
+#ifdef __GNUC__
+THIS_IS_GNU
+#endif

+ 4 - 0
Modules/Windows.cmake

@@ -0,0 +1,4 @@
+SET(CMAKE_SHARED_LIBRARY_CREATE_FLAGS "")
+SET(CMAKE_DL_LIBS "" )
+SET(CMAKE_SHARED_LIBRARY_PREFIX "")
+SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")