diff options
author | Anas Nashif <anas.nashif@intel.com> | 2012-10-30 15:39:57 -0700 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2012-10-30 15:39:57 -0700 |
commit | 035c7fabc3b82cbc9a346c11abe2e9462b4c0379 (patch) | |
tree | 7e40f5a790eae329a8c5d3e59f046451767956ff /Modules/Compiler | |
download | cmake-035c7fabc3b82cbc9a346c11abe2e9462b4c0379.tar.gz cmake-035c7fabc3b82cbc9a346c11abe2e9462b4c0379.tar.bz2 cmake-035c7fabc3b82cbc9a346c11abe2e9462b4c0379.zip |
Imported Upstream version 2.8.9upstream/2.8.9
Diffstat (limited to 'Modules/Compiler')
48 files changed, 556 insertions, 0 deletions
diff --git a/Modules/Compiler/Absoft-Fortran.cmake b/Modules/Compiler/Absoft-Fortran.cmake new file mode 100644 index 000000000..1bb7b1f82 --- /dev/null +++ b/Modules/Compiler/Absoft-Fortran.cmake @@ -0,0 +1,10 @@ +SET(CMAKE_Fortran_FLAGS_INIT "") +SET(CMAKE_Fortran_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "") +SET(CMAKE_Fortran_FLAGS_RELEASE_INIT "-O3") +SET(CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") +SET(CMAKE_Fortran_MODDIR_FLAG "-YMOD_OUT_DIR=") +SET(CMAKE_Fortran_MODPATH_FLAG "-p") +SET(CMAKE_Fortran_VERBOSE_FLAG "-v") +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree") diff --git a/Modules/Compiler/Clang-C.cmake b/Modules/Compiler/Clang-C.cmake new file mode 100644 index 000000000..f7baf686a --- /dev/null +++ b/Modules/Compiler/Clang-C.cmake @@ -0,0 +1 @@ +include(Compiler/GNU-C) diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake new file mode 100644 index 000000000..d3c403a69 --- /dev/null +++ b/Modules/Compiler/Clang-CXX.cmake @@ -0,0 +1 @@ +include(Compiler/GNU-CXX) diff --git a/Modules/Compiler/Cray-C.cmake b/Modules/Compiler/Cray-C.cmake new file mode 100644 index 000000000..675560c2a --- /dev/null +++ b/Modules/Compiler/Cray-C.cmake @@ -0,0 +1 @@ +set(CMAKE_C_VERBOSE_FLAG "-v") diff --git a/Modules/Compiler/Cray-CXX.cmake b/Modules/Compiler/Cray-CXX.cmake new file mode 100644 index 000000000..9fb191c75 --- /dev/null +++ b/Modules/Compiler/Cray-CXX.cmake @@ -0,0 +1 @@ +set(CMAKE_CXX_VERBOSE_FLAG "-v") diff --git a/Modules/Compiler/Cray-Fortran.cmake b/Modules/Compiler/Cray-Fortran.cmake new file mode 100644 index 000000000..5d81bb02c --- /dev/null +++ b/Modules/Compiler/Cray-Fortran.cmake @@ -0,0 +1,6 @@ +set(CMAKE_Fortran_VERBOSE_FLAG "-v") +set(CMAKE_Fortran_MODOUT_FLAG -em) +set(CMAKE_Fortran_MODDIR_FLAG -J) +set(CMAKE_Fortran_MODDIR_DEFAULT .) +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-f fixed") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-f free") diff --git a/Modules/Compiler/G95-Fortran.cmake b/Modules/Compiler/G95-Fortran.cmake new file mode 100644 index 000000000..fd84848b4 --- /dev/null +++ b/Modules/Compiler/G95-Fortran.cmake @@ -0,0 +1,9 @@ +set(CMAKE_Fortran_FLAGS_INIT "") +set(CMAKE_Fortran_FLAGS_DEBUG_INIT "-g") +set(CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "-Os") +set(CMAKE_Fortran_FLAGS_RELEASE_INIT "-O3") +set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") +set(CMAKE_Fortran_MODDIR_FLAG "-fmod=") +set(CMAKE_Fortran_VERBOSE_FLAG "-v") +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form") diff --git a/Modules/Compiler/GNU-ASM.cmake b/Modules/Compiler/GNU-ASM.cmake new file mode 100644 index 000000000..e07401d54 --- /dev/null +++ b/Modules/Compiler/GNU-ASM.cmake @@ -0,0 +1,6 @@ +# This file is loaded when gcc/g++ is used for assembler files (the "ASM" cmake language) +include(Compiler/GNU) + +set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;S;asm) + +__compiler_gnu(ASM) diff --git a/Modules/Compiler/GNU-C.cmake b/Modules/Compiler/GNU-C.cmake new file mode 100644 index 000000000..9a5137a4b --- /dev/null +++ b/Modules/Compiler/GNU-C.cmake @@ -0,0 +1,2 @@ +include(Compiler/GNU) +__compiler_gnu(C) diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake new file mode 100644 index 000000000..879ab8f80 --- /dev/null +++ b/Modules/Compiler/GNU-CXX.cmake @@ -0,0 +1,2 @@ +include(Compiler/GNU) +__compiler_gnu(CXX) diff --git a/Modules/Compiler/GNU-Fortran.cmake b/Modules/Compiler/GNU-Fortran.cmake new file mode 100644 index 000000000..c710e8698 --- /dev/null +++ b/Modules/Compiler/GNU-Fortran.cmake @@ -0,0 +1,17 @@ +include(Compiler/GNU) +__compiler_gnu(Fortran) + +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form") + +# No -DNDEBUG for Fortran. +SET(CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "-Os") +SET(CMAKE_Fortran_FLAGS_RELEASE_INIT "-O3") + +# We require updates to CMake C++ code to support preprocessing rules +# for Fortran. +SET(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE) +SET(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE) + +# Fortran-specific feature flags. +SET(CMAKE_Fortran_MODDIR_FLAG -J) diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake new file mode 100644 index 000000000..6aecf90e8 --- /dev/null +++ b/Modules/Compiler/GNU.cmake @@ -0,0 +1,54 @@ + +#============================================================================= +# Copyright 2002-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +# This module is shared by multiple languages; use include blocker. +if(__COMPILER_GNU) + return() +endif() +set(__COMPILER_GNU 1) + +macro(__compiler_gnu lang) + # Feature flags. + set(CMAKE_${lang}_VERBOSE_FLAG "-v") + set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC") + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4) + set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE") + endif() + set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC") + set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared") + + # Older versions of gcc (< 4.5) contain a bug causing them to report a missing + # header file as a warning if depfiles are enabled, causing check_header_file + # tests to always succeed. Work around this by disabling dependency tracking + # in try_compile mode. + GET_PROPERTY(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE) + if(NOT _IN_TC OR CMAKE_FORCE_DEPFILES) + # distcc does not transform -o to -MT when invoking the preprocessor + # internally, as it ought to. Work around this bug by setting -MT here + # even though it isn't strictly necessary. + set(CMAKE_DEPFILE_FLAGS_${lang} "-MMD -MT <OBJECT> -MF <DEPFILE>") + endif() + + # Initial configuration flags. + set(CMAKE_${lang}_FLAGS_INIT "") + set(CMAKE_${lang}_FLAGS_DEBUG_INIT "-g") + set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") + set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") + set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") + set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") + set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") + if(NOT APPLE) + set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ") + endif(NOT APPLE) +endmacro() diff --git a/Modules/Compiler/HP-ASM.cmake b/Modules/Compiler/HP-ASM.cmake new file mode 100644 index 000000000..8aa7bdb7d --- /dev/null +++ b/Modules/Compiler/HP-ASM.cmake @@ -0,0 +1,3 @@ +SET(CMAKE_ASM_VERBOSE_FLAG "-v") + +set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s ) diff --git a/Modules/Compiler/HP-C.cmake b/Modules/Compiler/HP-C.cmake new file mode 100644 index 000000000..dc7fbb21d --- /dev/null +++ b/Modules/Compiler/HP-C.cmake @@ -0,0 +1,4 @@ +SET(CMAKE_C_VERBOSE_FLAG "-v") + +SET(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") +SET(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") diff --git a/Modules/Compiler/HP-CXX.cmake b/Modules/Compiler/HP-CXX.cmake new file mode 100644 index 000000000..82c1a861e --- /dev/null +++ b/Modules/Compiler/HP-CXX.cmake @@ -0,0 +1,4 @@ +SET(CMAKE_CXX_VERBOSE_FLAG "-v") + +SET(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") +SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") diff --git a/Modules/Compiler/HP-Fortran.cmake b/Modules/Compiler/HP-Fortran.cmake new file mode 100644 index 000000000..04fb96ea4 --- /dev/null +++ b/Modules/Compiler/HP-Fortran.cmake @@ -0,0 +1,3 @@ +SET(CMAKE_Fortran_VERBOSE_FLAG "-v") +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "+source=fixed") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "+source=free") diff --git a/Modules/Compiler/Intel-ASM.cmake b/Modules/Compiler/Intel-ASM.cmake new file mode 100644 index 000000000..59b50a15c --- /dev/null +++ b/Modules/Compiler/Intel-ASM.cmake @@ -0,0 +1,13 @@ +SET(CMAKE_ASM_VERBOSE_FLAG "-v") + +SET(CMAKE_ASM_FLAGS_INIT "") +SET(CMAKE_ASM_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_ASM_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") +SET(CMAKE_ASM_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") +SET(CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") + +IF(UNIX) + SET(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;S) +ELSE(UNIX) + SET(CMAKE_ASM_SOURCE_FILE_EXTENSIONS asm) +ENDIF(UNIX) diff --git a/Modules/Compiler/Intel-C.cmake b/Modules/Compiler/Intel-C.cmake new file mode 100644 index 000000000..4be91d084 --- /dev/null +++ b/Modules/Compiler/Intel-C.cmake @@ -0,0 +1,10 @@ +SET(CMAKE_C_VERBOSE_FLAG "-v") + +SET(CMAKE_C_FLAGS_INIT "") +SET(CMAKE_C_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") +SET(CMAKE_C_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") +SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") + +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>") diff --git a/Modules/Compiler/Intel-CXX.cmake b/Modules/Compiler/Intel-CXX.cmake new file mode 100644 index 000000000..ff01a81f6 --- /dev/null +++ b/Modules/Compiler/Intel-CXX.cmake @@ -0,0 +1,10 @@ +SET(CMAKE_CXX_VERBOSE_FLAG "-v") + +SET(CMAKE_CXX_FLAGS_INIT "") +SET(CMAKE_CXX_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") +SET(CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") +SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") + +SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") +SET(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") diff --git a/Modules/Compiler/Intel-Fortran.cmake b/Modules/Compiler/Intel-Fortran.cmake new file mode 100644 index 000000000..467abdcf5 --- /dev/null +++ b/Modules/Compiler/Intel-Fortran.cmake @@ -0,0 +1,9 @@ +SET(CMAKE_Fortran_FLAGS_INIT "") +SET(CMAKE_Fortran_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "-Os") +SET(CMAKE_Fortran_FLAGS_RELEASE_INIT "-O3") +SET(CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") +SET(CMAKE_Fortran_MODDIR_FLAG "-module ") +SET(CMAKE_Fortran_VERBOSE_FLAG "-v") +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-free") diff --git a/Modules/Compiler/MIPSpro-C.cmake b/Modules/Compiler/MIPSpro-C.cmake new file mode 100644 index 000000000..abf384ab8 --- /dev/null +++ b/Modules/Compiler/MIPSpro-C.cmake @@ -0,0 +1 @@ +SET(CMAKE_C_VERBOSE_FLAG "-v") diff --git a/Modules/Compiler/MIPSpro-CXX.cmake b/Modules/Compiler/MIPSpro-CXX.cmake new file mode 100644 index 000000000..f3c6b5f82 --- /dev/null +++ b/Modules/Compiler/MIPSpro-CXX.cmake @@ -0,0 +1 @@ +SET(CMAKE_CXX_VERBOSE_FLAG "-v") diff --git a/Modules/Compiler/MIPSpro-Fortran.cmake b/Modules/Compiler/MIPSpro-Fortran.cmake new file mode 100644 index 000000000..9220d3bf0 --- /dev/null +++ b/Modules/Compiler/MIPSpro-Fortran.cmake @@ -0,0 +1,3 @@ +SET(CMAKE_Fortran_VERBOSE_FLAG "-v") +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixedform") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-freeform") diff --git a/Modules/Compiler/NAG-Fortran.cmake b/Modules/Compiler/NAG-Fortran.cmake new file mode 100644 index 000000000..9a89746b5 --- /dev/null +++ b/Modules/Compiler/NAG-Fortran.cmake @@ -0,0 +1,34 @@ +# Help CMAKE_PARSE_IMPLICIT_LINK_INFO detect NAG Fortran object files. +if(NOT CMAKE_Fortran_COMPILER_WORKS AND NOT CMAKE_Fortran_COMPILER_FORCED) + message(STATUS "Detecting NAG Fortran directory") + # Run with -dryrun to see sample "link" line. + execute_process( + COMMAND ${CMAKE_Fortran_COMPILER} dummy.o -dryrun + OUTPUT_VARIABLE _dryrun + ERROR_VARIABLE _dryrun + ) + # Match an object file. + string(REGEX MATCH "/[^ ]*/[^ /][^ /]*\\.o" _nag_obj "${_dryrun}") + if(_nag_obj) + # Parse object directory and convert to a regex. + string(REGEX REPLACE "/[^/]*$" "" _nag_dir "${_nag_obj}") + string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" _nag_regex "${_nag_dir}") + set(CMAKE_Fortran_IMPLICIT_OBJECT_REGEX "^${_nag_regex}/") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Detecting NAG Fortran directory with -dryrun found\n" + " object: ${_nag_obj}\n" + " directory: ${_nag_dir}\n" + " regex: ${CMAKE_Fortran_IMPLICIT_OBJECT_REGEX}\n" + "from output:\n${_dryrun}\n\n") + message(STATUS "Detecting NAG Fortran directory - ${_nag_dir}") + else() + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Detecting NAG Fortran directory with -dryrun failed:\n${_dryrun}\n\n") + message(STATUS "Detecting NAG Fortran directory - failed") + endif() +endif() + +set(CMAKE_Fortran_MODDIR_FLAG "-mdir ") +set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-PIC") +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-free") diff --git a/Modules/Compiler/PGI-C.cmake b/Modules/Compiler/PGI-C.cmake new file mode 100644 index 000000000..da88c0116 --- /dev/null +++ b/Modules/Compiler/PGI-C.cmake @@ -0,0 +1,4 @@ +include(Compiler/PGI) +__compiler_pgi(C) +set(CMAKE_C_FLAGS_MINSIZEREL_INIT "${CMAKE_C_FLAGS_MINSIZEREL_INIT} -DNDEBUG") +set(CMAKE_C_FLAGS_RELEASE_INIT "${CMAKE_C_FLAGS_RELEASE_INIT} -DNDEBUG") diff --git a/Modules/Compiler/PGI-CXX.cmake b/Modules/Compiler/PGI-CXX.cmake new file mode 100644 index 000000000..97c9555b1 --- /dev/null +++ b/Modules/Compiler/PGI-CXX.cmake @@ -0,0 +1,4 @@ +include(Compiler/PGI) +__compiler_pgi(CXX) +set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "${CMAKE_CXX_FLAGS_MINSIZEREL_INIT} -DNDEBUG") +set(CMAKE_CXX_FLAGS_RELEASE_INIT "${CMAKE_CXX_FLAGS_RELEASE_INIT} -DNDEBUG") diff --git a/Modules/Compiler/PGI-Fortran.cmake b/Modules/Compiler/PGI-Fortran.cmake new file mode 100644 index 000000000..aebc7b1c2 --- /dev/null +++ b/Modules/Compiler/PGI-Fortran.cmake @@ -0,0 +1,15 @@ +include(Compiler/PGI) +__compiler_pgi(Fortran) + +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-Mnofreeform") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-Mfreeform") + +SET(CMAKE_Fortran_FLAGS_INIT "${CMAKE_Fortran_FLAGS_INIT} -Mpreprocess -Kieee") +SET(CMAKE_Fortran_FLAGS_DEBUG_INIT "${CMAKE_Fortran_FLAGS_DEBUG_INIT} -Mbounds") + +# We require updates to CMake C++ code to support preprocessing rules +# for Fortran. +SET(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE) +SET(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE) + +SET(CMAKE_Fortran_MODDIR_FLAG "-module ") diff --git a/Modules/Compiler/PGI.cmake b/Modules/Compiler/PGI.cmake new file mode 100644 index 000000000..162e3c9b8 --- /dev/null +++ b/Modules/Compiler/PGI.cmake @@ -0,0 +1,35 @@ + +#============================================================================= +# Copyright 2002-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +# This module is shared by multiple languages; use include blocker. +if(__COMPILER_PGI) + return() +endif() +set(__COMPILER_PGI 1) + +macro(__compiler_pgi lang) + # Feature flags. + set(CMAKE_${lang}_VERBOSE_FLAG "-v") + + # Initial configuration flags. + set(CMAKE_${lang}_FLAGS_INIT "") + set(CMAKE_${lang}_FLAGS_DEBUG_INIT "-g -O0") + set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "-O2 -s") + set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-fast -O3 -Mipa=fast") + set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "-O2 -gopt") + + # Preprocessing and assembly rules. + set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") + set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") +endmacro() diff --git a/Modules/Compiler/PathScale-C.cmake b/Modules/Compiler/PathScale-C.cmake new file mode 100644 index 000000000..9db54afa0 --- /dev/null +++ b/Modules/Compiler/PathScale-C.cmake @@ -0,0 +1,4 @@ +include(Compiler/PathScale) +__compiler_pathscale(C) +set(CMAKE_C_FLAGS_MINSIZEREL_INIT "${CMAKE_C_FLAGS_MINSIZEREL_INIT} -DNDEBUG") +set(CMAKE_C_FLAGS_RELEASE_INIT "${CMAKE_C_FLAGS_RELEASE_INIT} -DNDEBUG") diff --git a/Modules/Compiler/PathScale-CXX.cmake b/Modules/Compiler/PathScale-CXX.cmake new file mode 100644 index 000000000..4dd766048 --- /dev/null +++ b/Modules/Compiler/PathScale-CXX.cmake @@ -0,0 +1,4 @@ +include(Compiler/PathScale) +__compiler_pathscale(CXX) +set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "${CMAKE_CXX_FLAGS_MINSIZEREL_INIT} -DNDEBUG") +set(CMAKE_CXX_FLAGS_RELEASE_INIT "${CMAKE_CXX_FLAGS_RELEASE_INIT} -DNDEBUG") diff --git a/Modules/Compiler/PathScale-Fortran.cmake b/Modules/Compiler/PathScale-Fortran.cmake new file mode 100644 index 000000000..e05bf2afc --- /dev/null +++ b/Modules/Compiler/PathScale-Fortran.cmake @@ -0,0 +1,6 @@ +include(Compiler/PathScale) +__compiler_pathscale(Fortran) + +SET(CMAKE_Fortran_MODDIR_FLAG "-module ") +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixedform") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-freeform") diff --git a/Modules/Compiler/PathScale.cmake b/Modules/Compiler/PathScale.cmake new file mode 100644 index 000000000..107f779a9 --- /dev/null +++ b/Modules/Compiler/PathScale.cmake @@ -0,0 +1,31 @@ + +#============================================================================= +# Copyright 2002-2010 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +# This module is shared by multiple languages; use include blocker. +if(__COMPILER_PATHSCALE) + return() +endif() +set(__COMPILER_PATHSCALE 1) + +macro(__compiler_pathscale lang) + # Feature flags. + set(CMAKE_${lang}_VERBOSE_FLAG "-v") + + # Initial configuration flags. + set(CMAKE_${lang}_FLAGS_INIT "") + set(CMAKE_${lang}_FLAGS_DEBUG_INIT "-g -O0") + set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "-Os") + set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-O3") + set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "-g -O2") +endmacro() diff --git a/Modules/Compiler/SCO-C.cmake b/Modules/Compiler/SCO-C.cmake new file mode 100644 index 000000000..6e762ccae --- /dev/null +++ b/Modules/Compiler/SCO-C.cmake @@ -0,0 +1,2 @@ +include(Compiler/SCO) +__compiler_sco(C) diff --git a/Modules/Compiler/SCO-CXX.cmake b/Modules/Compiler/SCO-CXX.cmake new file mode 100644 index 000000000..5b713a0df --- /dev/null +++ b/Modules/Compiler/SCO-CXX.cmake @@ -0,0 +1,2 @@ +include(Compiler/SCO) +__compiler_sco(CXX) diff --git a/Modules/Compiler/SCO.cmake b/Modules/Compiler/SCO.cmake new file mode 100644 index 000000000..f673c8f80 --- /dev/null +++ b/Modules/Compiler/SCO.cmake @@ -0,0 +1,28 @@ + +#============================================================================= +# Copyright 2002-2011 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +# This module is shared by multiple languages; use include blocker. +if(__COMPILER_SCO) + return() +endif() +set(__COMPILER_SCO 1) + +macro(__compiler_sco lang) + # Feature flags. + set(CMAKE_${lang}_COMPILE_OPTIONS_PIC -Kpic) + set(CMAKE_${lang}_COMPILE_OPTIONS_PIE -Kpie) + set(CMAKE_${lang}_COMPILE_OPTIONS_DLL -belf) + set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-Kpic -belf") + set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-belf -Wl,-Bexport") +endmacro() diff --git a/Modules/Compiler/SunPro-ASM.cmake b/Modules/Compiler/SunPro-ASM.cmake new file mode 100644 index 000000000..dfc5702ee --- /dev/null +++ b/Modules/Compiler/SunPro-ASM.cmake @@ -0,0 +1,24 @@ +set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s ) + +SET(CMAKE_ASM_VERBOSE_FLAG "-#") + +SET(CMAKE_SHARED_LIBRARY_ASM_FLAGS "-KPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_ASM_FLAGS "-G") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_ASM_FLAG "-R") +SET(CMAKE_SHARED_LIBRARY_RUNTIME_ASM_FLAG_SEP ":") +SET(CMAKE_SHARED_LIBRARY_SONAME_ASM_FLAG "-h") + +SET(CMAKE_ASM_FLAGS_INIT "") +SET(CMAKE_ASM_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_ASM_FLAGS_MINSIZEREL_INIT "-xO2 -xspace -DNDEBUG") +SET(CMAKE_ASM_FLAGS_RELEASE_INIT "-xO3 -DNDEBUG") +SET(CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT "-g -xO2") + +# Initialize ASM 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_ASM_FLAGS "-Bstatic") + SET(CMAKE_${type}_LINK_DYNAMIC_ASM_FLAGS "-Bdynamic") +ENDFOREACH(type) diff --git a/Modules/Compiler/SunPro-C.cmake b/Modules/Compiler/SunPro-C.cmake new file mode 100644 index 000000000..a1a3ae118 --- /dev/null +++ b/Modules/Compiler/SunPro-C.cmake @@ -0,0 +1,27 @@ +SET(CMAKE_C_VERBOSE_FLAG "-#") + +SET(CMAKE_C_COMPILE_OPTIONS_PIC -KPIC) +SET(CMAKE_C_COMPILE_OPTIONS_PIE -KPIE) +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_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>") diff --git a/Modules/Compiler/SunPro-CXX.cmake b/Modules/Compiler/SunPro-CXX.cmake new file mode 100644 index 000000000..702e42458 --- /dev/null +++ b/Modules/Compiler/SunPro-CXX.cmake @@ -0,0 +1,33 @@ +SET(CMAKE_CXX_VERBOSE_FLAG "-v") + +SET(CMAKE_CXX_COMPILE_OPTIONS_PIC -KPIC) +SET(CMAKE_CXX_COMPILE_OPTIONS_PIE -KPIE) +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 ":") +SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-h") + +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> ") diff --git a/Modules/Compiler/SunPro-Fortran.cmake b/Modules/Compiler/SunPro-Fortran.cmake new file mode 100644 index 000000000..86d6def34 --- /dev/null +++ b/Modules/Compiler/SunPro-Fortran.cmake @@ -0,0 +1,18 @@ +SET(CMAKE_Fortran_VERBOSE_FLAG "-v") +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed") +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-free") + +SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-KPIC") +SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-G") +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") diff --git a/Modules/Compiler/TinyCC-C.cmake b/Modules/Compiler/TinyCC-C.cmake new file mode 100644 index 000000000..4a48c0af5 --- /dev/null +++ b/Modules/Compiler/TinyCC-C.cmake @@ -0,0 +1,8 @@ +SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") + +# no optimization in tcc: +SET (CMAKE_C_FLAGS_INIT "") +SET (CMAKE_C_FLAGS_DEBUG_INIT "-g") +SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-DNDEBUG") +SET (CMAKE_C_FLAGS_RELEASE_INIT "-DNDEBUG") +SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-g") diff --git a/Modules/Compiler/VisualAge-C.cmake b/Modules/Compiler/VisualAge-C.cmake new file mode 100644 index 000000000..40b609e9a --- /dev/null +++ b/Modules/Compiler/VisualAge-C.cmake @@ -0,0 +1 @@ +include(Compiler/XL-C) diff --git a/Modules/Compiler/VisualAge-CXX.cmake b/Modules/Compiler/VisualAge-CXX.cmake new file mode 100644 index 000000000..2509b4396 --- /dev/null +++ b/Modules/Compiler/VisualAge-CXX.cmake @@ -0,0 +1 @@ +include(Compiler/XL-CXX) diff --git a/Modules/Compiler/VisualAge-Fortran.cmake b/Modules/Compiler/VisualAge-Fortran.cmake new file mode 100644 index 000000000..3ef3178d9 --- /dev/null +++ b/Modules/Compiler/VisualAge-Fortran.cmake @@ -0,0 +1 @@ +include(Compiler/XL-Fortran) diff --git a/Modules/Compiler/XL-ASM.cmake b/Modules/Compiler/XL-ASM.cmake new file mode 100644 index 000000000..e5d4ffa85 --- /dev/null +++ b/Modules/Compiler/XL-ASM.cmake @@ -0,0 +1,13 @@ +SET(CMAKE_ASM_VERBOSE_FLAG "-V") + +# -qthreaded = Ensures that all optimizations will be thread-safe +# -qalias=noansi = Turns off type-based aliasing completely (safer optimizer) +# -qhalt=e = Halt on error messages (rather than just severe errors) +SET(CMAKE_ASM_FLAGS_INIT "-qthreaded -qalias=noansi -qhalt=e -qsourcetype=assembler") + +SET(CMAKE_ASM_FLAGS_DEBUG_INIT "-g") +SET(CMAKE_ASM_FLAGS_RELEASE_INIT "-O -DNDEBUG") +SET(CMAKE_ASM_FLAGS_MINSIZEREL_INIT "-O -DNDEBUG") +SET(CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT "-g") + +SET(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s ) diff --git a/Modules/Compiler/XL-C.cmake b/Modules/Compiler/XL-C.cmake new file mode 100644 index 000000000..ae869e37e --- /dev/null +++ b/Modules/Compiler/XL-C.cmake @@ -0,0 +1,9 @@ +include(Compiler/XL) +__compiler_xl(C) +set(CMAKE_C_FLAGS_RELEASE_INIT "${CMAKE_C_FLAGS_RELEASE_INIT} -DNDEBUG") +set(CMAKE_C_FLAGS_MINSIZEREL_INIT "${CMAKE_C_FLAGS_MINSIZEREL_INIT} -DNDEBUG") + +# -qthreaded = Ensures that all optimizations will be thread-safe +# -qalias=noansi = Turns off type-based aliasing completely (safer optimizer) +# -qhalt=e = Halt on error messages (rather than just severe errors) +SET(CMAKE_C_FLAGS_INIT "-qthreaded -qalias=noansi -qhalt=e") diff --git a/Modules/Compiler/XL-CXX.cmake b/Modules/Compiler/XL-CXX.cmake new file mode 100644 index 000000000..29c4b5e37 --- /dev/null +++ b/Modules/Compiler/XL-CXX.cmake @@ -0,0 +1,11 @@ +include(Compiler/XL) +__compiler_xl(CXX) +set(CMAKE_CXX_FLAGS_RELEASE_INIT "${CMAKE_CXX_FLAGS_RELEASE_INIT} -DNDEBUG") +set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "${CMAKE_CXX_FLAGS_MINSIZEREL_INIT} -DNDEBUG") + +# -qthreaded = Ensures that all optimizations will be thread-safe +# -qhalt=e = Halt on error messages (rather than just severe errors) +SET(CMAKE_CXX_FLAGS_INIT "-qthreaded -qhalt=e") + +SET(CMAKE_CXX_COMPILE_OBJECT + "<CMAKE_CXX_COMPILER> -+ <DEFINES> <FLAGS> -o <OBJECT> -c <SOURCE>") diff --git a/Modules/Compiler/XL-Fortran.cmake b/Modules/Compiler/XL-Fortran.cmake new file mode 100644 index 000000000..e7026f11a --- /dev/null +++ b/Modules/Compiler/XL-Fortran.cmake @@ -0,0 +1,17 @@ +include(Compiler/XL) +__compiler_xl(Fortran) + +set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-qfixed") # [=<right_margin>] +set(CMAKE_Fortran_FORMAT_FREE_FLAG "-qfree") # [=f90|ibm] + +SET(CMAKE_Fortran_MODDIR_FLAG "-qmoddir=") + +SET(CMAKE_Fortran_DEFINE_FLAG "-WF,-D") + +# -qthreaded = Ensures that all optimizations will be thread-safe +# -qhalt=e = Halt on error messages (rather than just severe errors) +SET(CMAKE_Fortran_FLAGS_INIT "-qthreaded -qhalt=e") + +# We require updates to CMake C++ code to support preprocessing rules for Fortran. +SET(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE) +SET(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE) diff --git a/Modules/Compiler/XL.cmake b/Modules/Compiler/XL.cmake new file mode 100644 index 000000000..d293610c3 --- /dev/null +++ b/Modules/Compiler/XL.cmake @@ -0,0 +1,53 @@ + +#============================================================================= +# Copyright 2002-2011 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +# This module is shared by multiple languages; use include blocker. +if(__COMPILER_XL) + return() +endif() +set(__COMPILER_XL 1) + +# Find the CreateExportList program that comes with this toolchain. +find_program(CMAKE_XL_CreateExportList + NAMES CreateExportList + DOC "IBM XL CreateExportList tool" + ) + +macro(__compiler_xl lang) + # Feature flags. + set(CMAKE_${lang}_VERBOSE_FLAG "-V") + + set(CMAKE_${lang}_FLAGS_DEBUG_INIT "-g") + set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-O") + set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "-O") + set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "-g") + set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") + set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") + + # CMAKE_XL_CreateExportList is part of the AIX XL compilers but not the linux ones. + # If we found the tool, we'll use it to create exports, otherwise stick with the regular + # create shared library compile line. + if (CMAKE_XL_CreateExportList) + # The compiler front-end passes all object files, archive files, and shared + # library files named on the command line to CreateExportList to create a + # list of all symbols to be exported from the shared library. This causes + # all archive members to be copied into the shared library whether they are + # needed or not. Instead we run the tool ourselves to pass only the object + # files so that we export only the symbols actually provided by the sources. + set(CMAKE_${lang}_CREATE_SHARED_LIBRARY + "${CMAKE_XL_CreateExportList} <OBJECT_DIR>/objects.exp <OBJECTS>" + "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> -Wl,-bE:<OBJECT_DIR>/objects.exp <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>" + ) + endif() +endmacro() |