浏览代码

Split SunPro compiler information files

This moves platform-independent SunPro compiler flags into separate
"Compiler/SunPro-<lang>.cmake" modules.  Platform-specific flags are
left untouched.
Brad King 16 年之前
父节点
当前提交
9ee0f9801a

+ 25 - 0
Modules/Compiler/SunPro-C.cmake

@@ -1 +1,26 @@
+SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-KPIC")
+SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-G")
+SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-R")
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
+SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-h")
+
 SET(CMAKE_C_VERBOSE_FLAG "-#")
+
+SET(CMAKE_C_FLAGS_INIT "")
+SET(CMAKE_C_FLAGS_DEBUG_INIT "-g")
+SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG")
+SET(CMAKE_C_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG")
+SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-g -xO2")
+
+# Initialize C link type selection flags.  These flags are used when
+# building a shared library, shared module, or executable that links
+# to other libraries to select whether to use the static or shared
+# versions of the libraries.
+FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
+  SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Bstatic")
+  SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Bdynamic")
+ENDFOREACH(type)
+
+SET(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+SET(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")

+ 31 - 0
Modules/Compiler/SunPro-CXX.cmake

@@ -1 +1,32 @@
+SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-KPIC")
+SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-G")
+SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-R")
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":")
+SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-h")
+
 SET(CMAKE_CXX_VERBOSE_FLAG "-v")
+
+SET(CMAKE_CXX_FLAGS_INIT "")
+SET(CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
+SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG")
+SET(CMAKE_CXX_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG")
+SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-g -xO2")
+
+# Initialize C link type selection flags.  These flags are used when
+# building a shared library, shared module, or executable that links
+# to other libraries to select whether to use the static or shared
+# versions of the libraries.
+FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
+  SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Bstatic")
+  SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Bdynamic")
+ENDFOREACH(type)
+
+SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+SET(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
+
+# Create archives with "CC -xar" in case user adds "-instances=extern"
+# so that template instantiations are available to archive members.
+SET(CMAKE_CXX_CREATE_STATIC_LIBRARY
+  "<CMAKE_CXX_COMPILER> -xar -o <TARGET> <OBJECTS> "
+  "<CMAKE_RANLIB> <TARGET> ")

+ 15 - 0
Modules/Compiler/SunPro-Fortran.cmake

@@ -1 +1,16 @@
+SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-KPIC")
+SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-G")
+SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "")
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG "-R")
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ":")
+SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-h")
+set(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG "-R")
+
+SET(CMAKE_Fortran_FLAGS_INIT "")
+SET(CMAKE_Fortran_FLAGS_DEBUG_INIT "-g")
+SET(CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG")
+SET(CMAKE_Fortran_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG")
+SET(CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "-g -xO2")
+SET(CMAKE_Fortran_MODDIR_FLAG "-moddir=")
+SET(CMAKE_Fortran_MODPATH_FLAG "-M")
 SET(CMAKE_Fortran_VERBOSE_FLAG "-v")

+ 0 - 21
Modules/Platform/Linux-SunPro-C.cmake

@@ -1,24 +1,3 @@
 # Linux sun studio c options
 SET(CMAKE_DL_LIBS "dl")
-SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-KPIC")
-SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-G")
-SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-R")
-SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
-SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-h")
 SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic")
-
-SET(CMAKE_C_FLAGS_INIT "")
-SET(CMAKE_C_FLAGS_DEBUG_INIT "-g")
-SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG")
-SET(CMAKE_C_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG")
-SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-g -xO2")
-
-# Initialize C link type selection flags.  These flags are used when
-# building a shared library, shared module, or executable that links
-# to other libraries to select whether to use the static or shared
-# versions of the libraries.
-FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
-  SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Bstatic")
-  SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Bdynamic")
-ENDFOREACH(type)

+ 0 - 21
Modules/Platform/Linux-SunPro-CXX.cmake

@@ -1,25 +1,4 @@
 # Linux sun studio c++ options
 SET(CMAKE_DL_LIBS "dl")
-SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-KPIC")
-SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-G")
-SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
-SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-R")
-SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":")
 SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG "-rpath-link ")
-SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-h")
 SET(CMAKE_EXE_EXPORTS_CXX_FLAG "--export-dynamic")
-
-SET(CMAKE_CXX_FLAGS_INIT "")
-SET(CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
-SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG")
-SET(CMAKE_CXX_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG")
-SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-g -xO2")
-
-# Initialize C link type selection flags.  These flags are used when
-# building a shared library, shared module, or executable that links
-# to other libraries to select whether to use the static or shared
-# versions of the libraries.
-FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
-  SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Bstatic")
-  SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Bdynamic")
-ENDFOREACH(type)

+ 0 - 14
Modules/Platform/Linux-SunPro-Fortran.cmake

@@ -1,16 +1,2 @@
 # Linux sun studio fortran options
 SET(CMAKE_DL_LIBS "dl")
-SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-KPIC")
-SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-G")
-SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "")
-SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG "-R")
-SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ":")
-SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-h")
-
-SET(CMAKE_Fortran_FLAGS_INIT "")
-SET(CMAKE_Fortran_FLAGS_DEBUG_INIT "-g")
-SET(CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG")
-SET(CMAKE_Fortran_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG")
-SET(CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "-g -xO2")
-SET(CMAKE_Fortran_MODDIR_FLAG "-moddir=")
-SET(CMAKE_Fortran_MODPATH_FLAG "-M")

+ 0 - 5
Modules/Platform/SunOS-SunPro-Fortran.cmake

@@ -1,5 +0,0 @@
-set(CMAKE_Fortran_MODDIR_FLAG "-moddir=")
-set(CMAKE_Fortran_MODPATH_FLAG "-M")
-set(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG "-R")
-set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-KPIC")
-

+ 0 - 50
Modules/Platform/SunOS.cmake

@@ -3,33 +3,15 @@ IF(CMAKE_SYSTEM MATCHES "SunOS-4.*")
    SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-r") 
    SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-R")
    SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")  
-   SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-h")
-   SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-h")
 ENDIF(CMAKE_SYSTEM MATCHES "SunOS-4.*")
 
 IF(CMAKE_SYSTEM MATCHES "SunOS-5.*")
-  SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-KPIC") 
-  SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-G")
-  SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-R")
-  SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
-  SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-h")
-  SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-h")
-  SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-KPIC") 
-  SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-G")
-  SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-R")
-  SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":")
   IF(CMAKE_COMPILER_IS_GNUCC)
     SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") 
     SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared")
     SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-R")
     SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")  
     SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-h")
-  ELSE(CMAKE_COMPILER_IS_GNUCC)
-    SET (CMAKE_C_FLAGS_INIT "")
-    SET (CMAKE_C_FLAGS_DEBUG_INIT "-g")
-    SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-xO3 -DNDEBUG")
-    SET (CMAKE_C_FLAGS_RELEASE_INIT "-xO2 -DNDEBUG")
-    SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-xO2")
   ENDIF(CMAKE_COMPILER_IS_GNUCC)
   IF(CMAKE_COMPILER_IS_GNUCXX)
     SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC") 
@@ -37,12 +19,6 @@ IF(CMAKE_SYSTEM MATCHES "SunOS-5.*")
     SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,-R")
     SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":")  
     SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-h")
-  ELSE(CMAKE_COMPILER_IS_GNUCXX)
-    SET (CMAKE_CXX_FLAGS_INIT "")
-    SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
-    SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-xO3 -DNDEBUG")
-    SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-xO2 -DNDEBUG")
-    SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-xO2")
   ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 ENDIF(CMAKE_SYSTEM MATCHES "SunOS-5.*")
 
@@ -53,12 +29,6 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
   ELSE(CMAKE_COMPILER_IS_GNUCC)
     # Take default rule from CMakeDefaultMakeRuleVariables.cmake.
   ENDIF(CMAKE_COMPILER_IS_GNUCC)
-ELSE(CMAKE_COMPILER_IS_GNUCXX)
-  IF(CMAKE_CXX_COMPILER)
-     SET(CMAKE_CXX_CREATE_STATIC_LIBRARY
-      "<CMAKE_CXX_COMPILER> -xar -o <TARGET> <OBJECTS> "
-      "<CMAKE_RANLIB> <TARGET> ")
-  ENDIF(CMAKE_CXX_COMPILER)
 ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 INCLUDE(Platform/UnixPaths)
 
@@ -68,16 +38,6 @@ IF("${CMAKE_C_COMPILER_ID} ${CMAKE_CXX_COMPILER_ID}" MATCHES SunPro)
     /opt/SUNWspro/lib /opt/SUNWspro/prod/lib /usr/ccs/lib)
 ENDIF("${CMAKE_C_COMPILER_ID} ${CMAKE_CXX_COMPILER_ID}" MATCHES SunPro)
 
-IF(NOT CMAKE_COMPILER_IS_GNUCC)
-  SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
-  SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
-ENDIF(NOT CMAKE_COMPILER_IS_GNUCC)
-
-IF(NOT CMAKE_COMPILER_IS_GNUCXX)
-  SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
-  SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
-ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX)
-
 # Initialize C link type selection flags.  These flags are used when
 # building a shared library, shared module, or executable that links
 # to other libraries to select whether to use the static or shared
@@ -87,22 +47,12 @@ IF(CMAKE_COMPILER_IS_GNUCC)
     SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic")
     SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic")
   ENDFOREACH(type)
-ELSE(CMAKE_COMPILER_IS_GNUCC)
-  FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
-    SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Bstatic")
-    SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Bdynamic")
-  ENDFOREACH(type)
 ENDIF(CMAKE_COMPILER_IS_GNUCC)
 IF(CMAKE_COMPILER_IS_GNUCXX)
   FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
     SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Wl,-Bstatic")
     SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Wl,-Bdynamic")
   ENDFOREACH(type)
-ELSE(CMAKE_COMPILER_IS_GNUCXX)
-  FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
-    SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Bstatic")
-    SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Bdynamic")
-  ENDFOREACH(type)
 ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 
 # The Sun linker needs to find transitive shared library dependencies