From ef8aa19c33e83ff019595fd7f8fdc29c35c336a3 Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Wed, 13 Feb 2013 18:21:12 -0800 Subject: Imported Upstream version 2.8.10.2 --- Modules/Platform/AIX.cmake | 20 +- Modules/Platform/BSDOS.cmake | 2 +- Modules/Platform/BeOS.cmake | 20 +- Modules/Platform/BlueGeneL.cmake | 54 ++-- Modules/Platform/CYGWIN-CXX.cmake | 7 + Modules/Platform/CYGWIN-GNU.cmake | 8 +- Modules/Platform/CYGWIN-windres.cmake | 2 +- Modules/Platform/CYGWIN.cmake | 26 +- Modules/Platform/Catamount.cmake | 42 +-- Modules/Platform/Darwin-CXX.cmake | 7 + Modules/Platform/Darwin-Clang-C.cmake | 2 + Modules/Platform/Darwin-Clang-CXX.cmake | 2 + Modules/Platform/Darwin-Clang.cmake | 26 ++ Modules/Platform/Darwin-GNU-C.cmake | 2 +- Modules/Platform/Darwin-GNU-CXX.cmake | 2 +- Modules/Platform/Darwin-GNU.cmake | 11 +- Modules/Platform/Darwin-XL-C.cmake | 6 +- Modules/Platform/Darwin-XL-CXX.cmake | 6 +- Modules/Platform/Darwin-icc.cmake | 156 +++++------ Modules/Platform/Darwin-icpc.cmake | 6 +- Modules/Platform/Darwin.cmake | 374 ++++++++++++++------------- Modules/Platform/DragonFly.cmake | 2 +- Modules/Platform/FreeBSD.cmake | 38 +-- Modules/Platform/GNU.cmake | 20 +- Modules/Platform/Generic-ADSP-ASM.cmake | 8 +- Modules/Platform/Generic-ADSP-C.cmake | 20 +- Modules/Platform/Generic-ADSP-CXX.cmake | 20 +- Modules/Platform/Generic-ADSP-Common.cmake | 132 +++++----- Modules/Platform/Generic-SDCC-C.cmake | 58 ++--- Modules/Platform/Generic.cmake | 10 +- Modules/Platform/HP-UX.cmake | 48 ++-- Modules/Platform/Haiku.cmake | 40 +-- Modules/Platform/IRIX.cmake | 54 ++-- Modules/Platform/IRIX64.cmake | 100 +++---- Modules/Platform/Linux-CXX.cmake | 3 + Modules/Platform/Linux-Clang-C.cmake | 2 +- Modules/Platform/Linux-Clang-CXX.cmake | 2 +- Modules/Platform/Linux-GNU-C.cmake | 2 +- Modules/Platform/Linux-GNU-CXX.cmake | 2 +- Modules/Platform/Linux-GNU-Fortran.cmake | 2 +- Modules/Platform/Linux-Intel-C.cmake | 2 +- Modules/Platform/Linux-Intel-CXX.cmake | 2 +- Modules/Platform/Linux-Intel-Fortran.cmake | 2 +- Modules/Platform/Linux-Intel.cmake | 2 +- Modules/Platform/Linux-SunPro-CXX.cmake | 2 +- Modules/Platform/Linux-TinyCC-C.cmake | 8 +- Modules/Platform/Linux-XL-C.cmake | 2 +- Modules/Platform/Linux-XL-CXX.cmake | 2 +- Modules/Platform/Linux-XL-Fortran.cmake | 2 +- Modules/Platform/Linux-como.cmake | 10 +- Modules/Platform/Linux.cmake | 50 ++-- Modules/Platform/MP-RAS.cmake | 22 +- Modules/Platform/NetBSD.cmake | 28 +- Modules/Platform/OSF1.cmake | 78 +++--- Modules/Platform/OpenBSD.cmake | 14 +- Modules/Platform/OpenVMS.cmake | 8 +- Modules/Platform/QNX.cmake | 38 +-- Modules/Platform/RISCos.cmake | 10 +- Modules/Platform/SCO_SV.cmake | 4 +- Modules/Platform/SINIX.cmake | 8 +- Modules/Platform/SunOS.cmake | 40 +-- Modules/Platform/Tru64.cmake | 2 +- Modules/Platform/ULTRIX.cmake | 10 +- Modules/Platform/UNIX_SV.cmake | 10 +- Modules/Platform/UnixPaths.cmake | 34 +-- Modules/Platform/UnixWare.cmake | 10 +- Modules/Platform/Windows-CXX.cmake | 7 + Modules/Platform/Windows-Embarcadero.cmake | 40 +-- Modules/Platform/Windows-GNU.cmake | 6 +- Modules/Platform/Windows-Intel-Fortran.cmake | 10 +- Modules/Platform/Windows-Intel.cmake | 101 ++++---- Modules/Platform/Windows-MSVC-C.cmake | 2 + Modules/Platform/Windows-MSVC-CXX.cmake | 3 + Modules/Platform/Windows-MSVC.cmake | 241 +++++++++++++++++ Modules/Platform/Windows-cl.cmake | 253 ------------------ Modules/Platform/Windows-cl.cmake.in | 14 - Modules/Platform/Windows-df.cmake | 97 +++---- Modules/Platform/Windows-wcl386.cmake | 159 ++++++------ Modules/Platform/Windows-windres.cmake | 2 +- Modules/Platform/Windows.cmake | 48 ++-- Modules/Platform/WindowsCE-MSVC-C.cmake | 1 + Modules/Platform/WindowsCE-MSVC-CXX.cmake | 1 + Modules/Platform/WindowsCE-MSVC.cmake | 1 + Modules/Platform/WindowsCE.cmake | 1 + Modules/Platform/WindowsPaths.cmake | 56 ++-- Modules/Platform/Xenix.cmake | 2 +- Modules/Platform/cl.cmake | 62 ----- Modules/Platform/eCos.cmake | 88 +++---- Modules/Platform/gas.cmake | 20 +- Modules/Platform/kFreeBSD.cmake | 4 +- Modules/Platform/syllable.cmake | 28 +- 91 files changed, 1492 insertions(+), 1499 deletions(-) create mode 100644 Modules/Platform/CYGWIN-CXX.cmake create mode 100644 Modules/Platform/Darwin-CXX.cmake create mode 100644 Modules/Platform/Darwin-Clang-C.cmake create mode 100644 Modules/Platform/Darwin-Clang-CXX.cmake create mode 100644 Modules/Platform/Darwin-Clang.cmake create mode 100644 Modules/Platform/Linux-CXX.cmake create mode 100644 Modules/Platform/Windows-CXX.cmake create mode 100644 Modules/Platform/Windows-MSVC-C.cmake create mode 100644 Modules/Platform/Windows-MSVC-CXX.cmake create mode 100644 Modules/Platform/Windows-MSVC.cmake delete mode 100644 Modules/Platform/Windows-cl.cmake delete mode 100644 Modules/Platform/Windows-cl.cmake.in create mode 100644 Modules/Platform/WindowsCE-MSVC-C.cmake create mode 100644 Modules/Platform/WindowsCE-MSVC-CXX.cmake create mode 100644 Modules/Platform/WindowsCE-MSVC.cmake create mode 100644 Modules/Platform/WindowsCE.cmake delete mode 100644 Modules/Platform/cl.cmake (limited to 'Modules/Platform') diff --git a/Modules/Platform/AIX.cmake b/Modules/Platform/AIX.cmake index a9f773ed1..58c648319 100644 --- a/Modules/Platform/AIX.cmake +++ b/Modules/Platform/AIX.cmake @@ -1,6 +1,6 @@ -SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".so") # .so -SET(CMAKE_DL_LIBS "-lld") +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") # .so +set(CMAKE_DL_LIBS "-lld") # RPATH support on AIX is called libpath. By default the runtime # libpath is paths specified by -L followed by /usr/lib and /lib. In @@ -8,10 +8,10 @@ SET(CMAKE_DL_LIBS "-lld") # -Wl,-blibpath:/usr/lib:/lib whether RPATH support is on or not. # When our own RPATH is to be added it may be inserted before the # "always" paths. -SET(CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH /usr/lib /lib) +set(CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH /usr/lib /lib) # Files named "libfoo.a" may actually be shared libraries. -SET_PROPERTY(GLOBAL PROPERTY TARGET_ARCHIVES_MAY_BE_SHARED_LIBS 1) +set_property(GLOBAL PROPERTY TARGET_ARCHIVES_MAY_BE_SHARED_LIBS 1) # since .a can be a static or shared library on AIX, we can not do this. # at some point if we wanted it, we would have to figure out if a .a is @@ -21,9 +21,9 @@ SET_PROPERTY(GLOBAL PROPERTY TARGET_ARCHIVES_MAY_BE_SHARED_LIBS 1) # 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) +#foreach(type SHARED_LIBRARY SHARED_MODULE EXE) +# set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-bstatic") +# set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-bdynamic") +#endforeach() -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/BSDOS.cmake b/Modules/Platform/BSDOS.cmake index cf9d17bfd..47852f8e1 100644 --- a/Modules/Platform/BSDOS.cmake +++ b/Modules/Platform/BSDOS.cmake @@ -1,2 +1,2 @@ -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/BeOS.cmake b/Modules/Platform/BeOS.cmake index 3ffb67cb8..ef811bd9c 100644 --- a/Modules/Platform/BeOS.cmake +++ b/Modules/Platform/BeOS.cmake @@ -1,12 +1,12 @@ -SET(BEOS 1) +set(BEOS 1) -SET(CMAKE_DL_LIBS root be) -SET(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") -SET(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") -SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +set(CMAKE_DL_LIBS root be) +set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") +set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/BlueGeneL.cmake b/Modules/Platform/BlueGeneL.cmake index 7794a26cf..082e46cae 100644 --- a/Modules/Platform/BlueGeneL.cmake +++ b/Modules/Platform/BlueGeneL.cmake @@ -1,40 +1,40 @@ -#the compute nodes on BlueGene/L don't support shared libs -SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) +#the compute nodes on BlueGene/L don't support shared libs +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared -SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +set(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty -SET(CMAKE_LINK_LIBRARY_SUFFIX "") -SET(CMAKE_STATIC_LIBRARY_PREFIX "lib") -SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a") -SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".a") # .a -SET(CMAKE_EXECUTABLE_SUFFIX "") # .exe -SET(CMAKE_DL_LIBS "" ) +set(CMAKE_LINK_LIBRARY_SUFFIX "") +set(CMAKE_STATIC_LIBRARY_PREFIX "lib") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +set(CMAKE_SHARED_LIBRARY_SUFFIX ".a") # .a +set(CMAKE_EXECUTABLE_SUFFIX "") # .exe +set(CMAKE_DL_LIBS "" ) -SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") -SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) -IF(CMAKE_COMPILER_IS_GNUCC) - SET(CMAKE_C_LINK_EXECUTABLE +if(CMAKE_COMPILER_IS_GNUCC) + set(CMAKE_C_LINK_EXECUTABLE " -Wl,-relax -o -Wl,-lgcc,-lc -lnss_files -lnss_dns -lresolv") -ELSE(CMAKE_COMPILER_IS_GNUCC) +else() # when using IBM xlc we probably don't want to link to -lgcc - SET(CMAKE_C_LINK_EXECUTABLE + set(CMAKE_C_LINK_EXECUTABLE " -Wl,-relax -o -Wl,-lc -lnss_files -lnss_dns -lresolv") -ENDIF(CMAKE_COMPILER_IS_GNUCC) +endif() -IF(CMAKE_COMPILER_IS_GNUCXX) - SET(CMAKE_CXX_LINK_EXECUTABLE +if(CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_LINK_EXECUTABLE " -Wl,-relax -o -Wl,-lstdc++,-lgcc,-lc -lnss_files -lnss_dns -lresolv") -ELSE(CMAKE_COMPILER_IS_GNUCXX) +else() # when using the IBM xlC we probably don't want to link to -lgcc - SET(CMAKE_CXX_LINK_EXECUTABLE + set(CMAKE_CXX_LINK_EXECUTABLE " -Wl,-relax -o -Wl,-lstdc++,-lc -lnss_files -lnss_dns -lresolv") -ENDIF(CMAKE_COMPILER_IS_GNUCXX) +endif() diff --git a/Modules/Platform/CYGWIN-CXX.cmake b/Modules/Platform/CYGWIN-CXX.cmake new file mode 100644 index 000000000..bf37f7903 --- /dev/null +++ b/Modules/Platform/CYGWIN-CXX.cmake @@ -0,0 +1,7 @@ +if(NOT CMAKE_CXX_COMPILER_NAMES) + set(CMAKE_CXX_COMPILER_NAMES c++) +endif() + +# Exclude C++ compilers differing from C compiler only by case +# because this platform may have a case-insensitive filesystem. +set(CMAKE_CXX_COMPILER_EXCLUDE CC aCC xlC) diff --git a/Modules/Platform/CYGWIN-GNU.cmake b/Modules/Platform/CYGWIN-GNU.cmake index eae313a50..fe25ab214 100644 --- a/Modules/Platform/CYGWIN-GNU.cmake +++ b/Modules/Platform/CYGWIN-GNU.cmake @@ -44,10 +44,10 @@ macro(__cygwin_compiler_gnu lang) # 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_${lang}_FLAGS "-Wl,-Bstatic") - SET(CMAKE_${type}_LINK_DYNAMIC_${lang}_FLAGS "-Wl,-Bdynamic") - ENDFOREACH(type) + foreach(type SHARED_LIBRARY SHARED_MODULE EXE) + set(CMAKE_${type}_LINK_STATIC_${lang}_FLAGS "-Wl,-Bstatic") + set(CMAKE_${type}_LINK_DYNAMIC_${lang}_FLAGS "-Wl,-Bdynamic") + endforeach() set(CMAKE_EXE_EXPORTS_${lang}_FLAG "-Wl,--export-all-symbols") # TODO: Is -Wl,--enable-auto-import now always default? diff --git a/Modules/Platform/CYGWIN-windres.cmake b/Modules/Platform/CYGWIN-windres.cmake index 8bc1b15e9..01d6be3df 100644 --- a/Modules/Platform/CYGWIN-windres.cmake +++ b/Modules/Platform/CYGWIN-windres.cmake @@ -1 +1 @@ -SET(CMAKE_RC_COMPILE_OBJECT " -O coff ") +set(CMAKE_RC_COMPILE_OBJECT " -O coff ") diff --git a/Modules/Platform/CYGWIN.cmake b/Modules/Platform/CYGWIN.cmake index b7ad2cee1..22816e77a 100644 --- a/Modules/Platform/CYGWIN.cmake +++ b/Modules/Platform/CYGWIN.cmake @@ -43,22 +43,22 @@ if(DEFINED __USE_CMAKE_LEGACY_CYGWIN_WIN32) unset(__USE_CMAKE_LEGACY_CYGWIN_WIN32) endif() -SET(CYGWIN 1) +set(CYGWIN 1) -SET(CMAKE_SHARED_LIBRARY_PREFIX "cyg") -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") -SET(CMAKE_SHARED_MODULE_PREFIX "cyg") -SET(CMAKE_SHARED_MODULE_SUFFIX ".dll") -SET(CMAKE_IMPORT_LIBRARY_PREFIX "lib") -SET(CMAKE_IMPORT_LIBRARY_SUFFIX ".dll.a") -SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +set(CMAKE_SHARED_LIBRARY_PREFIX "cyg") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") +set(CMAKE_SHARED_MODULE_PREFIX "cyg") +set(CMAKE_SHARED_MODULE_SUFFIX ".dll") +set(CMAKE_IMPORT_LIBRARY_PREFIX "lib") +set(CMAKE_IMPORT_LIBRARY_SUFFIX ".dll.a") +set(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe # Modules have a different default prefix that shared libs. -SET(CMAKE_MODULE_EXISTS 1) +set(CMAKE_MODULE_EXISTS 1) -SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") -SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a") +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a") # Shared libraries on cygwin can be named with their version number. -SET(CMAKE_SHARED_LIBRARY_NAME_WITH_VERSION 1) +set(CMAKE_SHARED_LIBRARY_NAME_WITH_VERSION 1) -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/Catamount.cmake b/Modules/Platform/Catamount.cmake index 01493fc21..7e9e02171 100644 --- a/Modules/Platform/Catamount.cmake +++ b/Modules/Platform/Catamount.cmake @@ -1,26 +1,26 @@ -#Catamount, which runs on the compute nodes of Cray machines, e.g. RedStorm, doesn't support shared libs -SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) +#Catamount, which runs on the compute nodes of Cray machines, e.g. RedStorm, doesn't support shared libs +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared -SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +set(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty -SET(CMAKE_LINK_LIBRARY_SUFFIX "") -SET(CMAKE_STATIC_LIBRARY_PREFIX "lib") -SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a") -SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".a") # .a -SET(CMAKE_EXECUTABLE_SUFFIX "") # .exe -SET(CMAKE_DL_LIBS "" ) +set(CMAKE_LINK_LIBRARY_SUFFIX "") +set(CMAKE_STATIC_LIBRARY_PREFIX "lib") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +set(CMAKE_SHARED_LIBRARY_SUFFIX ".a") # .a +set(CMAKE_EXECUTABLE_SUFFIX "") # .exe +set(CMAKE_DL_LIBS "" ) -SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") -SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) -SET(CMAKE_CXX_LINK_SHARED_LIBRARY) -SET(CMAKE_CXX_LINK_MODULE_LIBRARY) -SET(CMAKE_C_LINK_SHARED_LIBRARY) -SET(CMAKE_C_LINK_MODULE_LIBRARY) +set(CMAKE_CXX_LINK_SHARED_LIBRARY) +set(CMAKE_CXX_LINK_MODULE_LIBRARY) +set(CMAKE_C_LINK_SHARED_LIBRARY) +set(CMAKE_C_LINK_MODULE_LIBRARY) diff --git a/Modules/Platform/Darwin-CXX.cmake b/Modules/Platform/Darwin-CXX.cmake new file mode 100644 index 000000000..bf37f7903 --- /dev/null +++ b/Modules/Platform/Darwin-CXX.cmake @@ -0,0 +1,7 @@ +if(NOT CMAKE_CXX_COMPILER_NAMES) + set(CMAKE_CXX_COMPILER_NAMES c++) +endif() + +# Exclude C++ compilers differing from C compiler only by case +# because this platform may have a case-insensitive filesystem. +set(CMAKE_CXX_COMPILER_EXCLUDE CC aCC xlC) diff --git a/Modules/Platform/Darwin-Clang-C.cmake b/Modules/Platform/Darwin-Clang-C.cmake new file mode 100644 index 000000000..0a1502ea9 --- /dev/null +++ b/Modules/Platform/Darwin-Clang-C.cmake @@ -0,0 +1,2 @@ +include(Platform/Darwin-Clang) +__darwin_compiler_clang(C) diff --git a/Modules/Platform/Darwin-Clang-CXX.cmake b/Modules/Platform/Darwin-Clang-CXX.cmake new file mode 100644 index 000000000..f8e8d888e --- /dev/null +++ b/Modules/Platform/Darwin-Clang-CXX.cmake @@ -0,0 +1,2 @@ +include(Platform/Darwin-Clang) +__darwin_compiler_clang(CXX) diff --git a/Modules/Platform/Darwin-Clang.cmake b/Modules/Platform/Darwin-Clang.cmake new file mode 100644 index 000000000..de7a85636 --- /dev/null +++ b/Modules/Platform/Darwin-Clang.cmake @@ -0,0 +1,26 @@ + +#============================================================================= +# Copyright 2002-2012 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(__DARWIN_COMPILER_CLANG) + return() +endif() +set(__DARWIN_COMPILER_CLANG 1) + +macro(__darwin_compiler_clang lang) + set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names") + set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "-bundle -Wl,-headerpad_max_install_names") + set(CMAKE_${lang}_SYSROOT_FLAG "-isysroot") + set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "-mmacosx-version-min=") +endmacro() diff --git a/Modules/Platform/Darwin-GNU-C.cmake b/Modules/Platform/Darwin-GNU-C.cmake index 4e326c4ca..efdfd0014 100644 --- a/Modules/Platform/Darwin-GNU-C.cmake +++ b/Modules/Platform/Darwin-GNU-C.cmake @@ -1,4 +1,4 @@ include(Platform/Darwin-GNU) __darwin_compiler_gnu(C) -cmake_gnu_has_isysroot(C) +cmake_gnu_set_sysroot_flag(C) cmake_gnu_set_osx_deployment_target_flag(C) diff --git a/Modules/Platform/Darwin-GNU-CXX.cmake b/Modules/Platform/Darwin-GNU-CXX.cmake index b39487e58..e3c2ea7c5 100644 --- a/Modules/Platform/Darwin-GNU-CXX.cmake +++ b/Modules/Platform/Darwin-GNU-CXX.cmake @@ -1,4 +1,4 @@ include(Platform/Darwin-GNU) __darwin_compiler_gnu(CXX) -cmake_gnu_has_isysroot(CXX) +cmake_gnu_set_sysroot_flag(CXX) cmake_gnu_set_osx_deployment_target_flag(CXX) diff --git a/Modules/Platform/Darwin-GNU.cmake b/Modules/Platform/Darwin-GNU.cmake index 8a50a6ab9..d9535039f 100644 --- a/Modules/Platform/Darwin-GNU.cmake +++ b/Modules/Platform/Darwin-GNU.cmake @@ -24,8 +24,8 @@ macro(__darwin_compiler_gnu lang) set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "-bundle -Wl,-headerpad_max_install_names") endmacro() -macro(cmake_gnu_has_isysroot lang) - if("x${CMAKE_${lang}_HAS_ISYSROOT}" STREQUAL "x") +macro(cmake_gnu_set_sysroot_flag lang) + if(NOT DEFINED CMAKE_${lang}_SYSROOT_FLAG) set(_doc "${lang} compiler has -isysroot") message(STATUS "Checking whether ${_doc}") execute_process( @@ -35,11 +35,12 @@ macro(cmake_gnu_has_isysroot lang) ) if("${_gcc_help}" MATCHES "isysroot") message(STATUS "Checking whether ${_doc} - yes") - set(CMAKE_${lang}_HAS_ISYSROOT 1) + set(CMAKE_${lang}_SYSROOT_FLAG "-isysroot") else() message(STATUS "Checking whether ${_doc} - no") - set(CMAKE_${lang}_HAS_ISYSROOT 0) + set(CMAKE_${lang}_SYSROOT_FLAG "") endif() + set(CMAKE_${lang}_SYSROOT_FLAG_CODE "set(CMAKE_${lang}_SYSROOT_FLAG \"${CMAKE_${lang}_SYSROOT_FLAG}\")") endif() endmacro() @@ -59,6 +60,6 @@ macro(cmake_gnu_set_osx_deployment_target_flag lang) message(STATUS "Checking whether ${_doc} - no") set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "") endif() - set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG_CODE "SET(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG \"${CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG}\")") + set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG_CODE "set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG \"${CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG}\")") endif() endmacro() diff --git a/Modules/Platform/Darwin-XL-C.cmake b/Modules/Platform/Darwin-XL-C.cmake index 934ebcc8c..42e94a9d6 100644 --- a/Modules/Platform/Darwin-XL-C.cmake +++ b/Modules/Platform/Darwin-XL-C.cmake @@ -1,5 +1,5 @@ -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-qmkshrobj") -SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-qmkshrobj") +set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle") # Enable shared library versioning. -SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-install_name") +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-install_name") diff --git a/Modules/Platform/Darwin-XL-CXX.cmake b/Modules/Platform/Darwin-XL-CXX.cmake index 22ae0183a..65c76f8b7 100644 --- a/Modules/Platform/Darwin-XL-CXX.cmake +++ b/Modules/Platform/Darwin-XL-CXX.cmake @@ -1,5 +1,5 @@ -SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-qmkshrobj") -SET(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS "-bundle") +set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-qmkshrobj") +set(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS "-bundle") # Enable shared library versioning. -SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-install_name") +set(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-install_name") diff --git a/Modules/Platform/Darwin-icc.cmake b/Modules/Platform/Darwin-icc.cmake index b592e5f55..6a46f8e02 100644 --- a/Modules/Platform/Darwin-icc.cmake +++ b/Modules/Platform/Darwin-icc.cmake @@ -1,131 +1,131 @@ -SET(CMAKE_C_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS "" ) -SET(CMAKE_CXX_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS "") +set(CMAKE_C_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS "" ) +set(CMAKE_CXX_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS "") # Setup for Leopard Compatibility -EXEC_PROGRAM(sw_vers ARGS -productVersion OUTPUT_VARIABLE _OSX_VERSION) -# MESSAGE (STATUS "_OSX_VERSION: ${_OSX_VERSION}") -IF ( _OSX_VERSION MATCHES "^10.4" ) - #IF(CMAKE_COMPILER_IS_GNUCC) - SET (CMAKE_C_FLAGS_INIT "") - SET (CMAKE_C_FLAGS_DEBUG_INIT "-gdwarf-2") - SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") - SET (CMAKE_C_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -gdwarf-2") - SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") - SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") - # ENDIF(CMAKE_COMPILER_IS_GNUCC) - -# IF(CMAKE_COMPILER_IS_GNUCXX) - SET (CMAKE_CXX_FLAGS_INIT "") - SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-gdwarf-2") - SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -gdwarf-2") - SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") - SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S -o ") -# ENDIF(CMAKE_COMPILER_IS_GNUCXX) -ENDIF ( _OSX_VERSION MATCHES "^10.4" ) - - -SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") -SET(CMAKE_SHARED_MODULE_PREFIX "lib") -SET(CMAKE_SHARED_MODULE_SUFFIX ".so") -SET(CMAKE_MODULE_EXISTS 1) -SET(CMAKE_DL_LIBS "") -SET(CMAKE_C_LINK_FLAGS "-Wl,-headerpad_max_install_names") -SET(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names") -SET(CMAKE_PLATFORM_HAS_INSTALLNAME 1) -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names") -SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -Wl,-headerpad_max_install_names") -SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a") +exec_program(sw_vers ARGS -productVersion OUTPUT_VARIABLE _OSX_VERSION) +# message (STATUS "_OSX_VERSION: ${_OSX_VERSION}") +if ( _OSX_VERSION MATCHES "^10.4" ) + #if(CMAKE_COMPILER_IS_GNUCC) + set (CMAKE_C_FLAGS_INIT "") + set (CMAKE_C_FLAGS_DEBUG_INIT "-gdwarf-2") + set (CMAKE_C_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") + set (CMAKE_C_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") + set (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -gdwarf-2") + set (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + set (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") + # endif() + +# if(CMAKE_COMPILER_IS_GNUCXX) + set (CMAKE_CXX_FLAGS_INIT "") + set (CMAKE_CXX_FLAGS_DEBUG_INIT "-gdwarf-2") + set (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -gdwarf-2") + set (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + set (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S -o ") +# endif() +endif () + + +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") +set(CMAKE_SHARED_MODULE_PREFIX "lib") +set(CMAKE_SHARED_MODULE_SUFFIX ".so") +set(CMAKE_MODULE_EXISTS 1) +set(CMAKE_DL_LIBS "") +set(CMAKE_C_LINK_FLAGS "-Wl,-headerpad_max_install_names") +set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names") +set(CMAKE_PLATFORM_HAS_INSTALLNAME 1) +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names") +set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -Wl,-headerpad_max_install_names") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a") # setup for universal binaries if sysroot exists -IF(EXISTS /Developer/SDKs/MacOSX10.4u.sdk) +if(EXISTS /Developer/SDKs/MacOSX10.4u.sdk) # set the sysroot to be used if CMAKE_OSX_ARCHITECTURES # has more than one value - SET(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk CACHE STRING + set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk CACHE STRING "isysroot used for universal binary support") # set _CMAKE_OSX_MACHINE to umame -m - EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE _CMAKE_OSX_MACHINE) + exec_program(uname ARGS -m OUTPUT_VARIABLE _CMAKE_OSX_MACHINE) # check for environment variable CMAKE_OSX_ARCHITECTURES # if it is set. - IF(NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" STREQUAL "") - SET(_CMAKE_OSX_MACHINE "$ENV{CMAKE_OSX_ARCHITECTURES}") - ENDIF(NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" STREQUAL "") + if(NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" STREQUAL "") + set(_CMAKE_OSX_MACHINE "$ENV{CMAKE_OSX_ARCHITECTURES}") + endif() # now put _CMAKE_OSX_MACHINE into the cache - SET(CMAKE_OSX_ARCHITECTURES ${_CMAKE_OSX_MACHINE} + set(CMAKE_OSX_ARCHITECTURES ${_CMAKE_OSX_MACHINE} CACHE STRING "Build architectures for OSX") -ENDIF(EXISTS /Developer/SDKs/MacOSX10.4u.sdk) +endif() -IF("${CMAKE_BACKWARDS_COMPATIBILITY}" MATCHES "^1\\.[0-6]$") - SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS +if("${CMAKE_BACKWARDS_COMPATIBILITY}" MATCHES "^1\\.[0-6]$") + set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -flat_namespace -undefined suppress") -ENDIF("${CMAKE_BACKWARDS_COMPATIBILITY}" MATCHES "^1\\.[0-6]$") +endif() -IF(NOT XCODE) +if(NOT XCODE) # Enable shared library versioning. This flag is not actually referenced # but the fact that the setting exists will cause the generators to support # soname computation. - SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name") - SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-install_name") - SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-install_name") -ENDIF(NOT XCODE) + set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name") + set(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-install_name") + set(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-install_name") +endif() # Xcode does not support -isystem yet. -IF(XCODE) - SET(CMAKE_INCLUDE_SYSTEM_FLAG_C) - SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) -ENDIF(XCODE) +if(XCODE) + set(CMAKE_INCLUDE_SYSTEM_FLAG_C) + set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) +endif() -SET(CMAKE_MacOSX_Content_COMPILE_OBJECT "\"${CMAKE_COMMAND}\" -E copy_if_different ") +set(CMAKE_MacOSX_Content_COMPILE_OBJECT "\"${CMAKE_COMMAND}\" -E copy_if_different ") -SET(CMAKE_C_CREATE_SHARED_LIBRARY +set(CMAKE_C_CREATE_SHARED_LIBRARY " -o ") -SET(CMAKE_CXX_CREATE_SHARED_LIBRARY +set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -o ") -SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY +set(CMAKE_Fortran_CREATE_SHARED_LIBRARY " -o ") -SET(CMAKE_CXX_CREATE_SHARED_MODULE +set(CMAKE_CXX_CREATE_SHARED_MODULE " -o ") -SET(CMAKE_C_CREATE_SHARED_MODULE +set(CMAKE_C_CREATE_SHARED_MODULE " -o ") -SET(CMAKE_Fortran_CREATE_SHARED_MODULE +set(CMAKE_Fortran_CREATE_SHARED_MODULE " -o ") -# We can use $ENV{INTEL_LICENSE_FILE} to try and get at the installation location for ICC. +# We can use $ENV{INTEL_LICENSE_FILE} to try and get at the installation location for ICC. # We also need to consider to use cce (which is the 64bit compiler) and not JUST the 32bit compiler. # I have no idea what the best way to do that would be. # default to searching for frameworks first -IF(NOT DEFINED CMAKE_FIND_FRAMEWORK) - SET(CMAKE_FIND_FRAMEWORK FIRST) -ENDIF() +if(NOT DEFINED CMAKE_FIND_FRAMEWORK) + set(CMAKE_FIND_FRAMEWORK FIRST) +endif() # set up the default search directories for frameworks -SET(CMAKE_SYSTEM_FRAMEWORK_PATH +set(CMAKE_SYSTEM_FRAMEWORK_PATH ~/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks /System/Library/Frameworks) # default to searching for application bundles first -IF(NOT DEFINED CMAKE_FIND_APPBUNDLE) - SET(CMAKE_FIND_APPBUNDLE FIRST) -ENDIF() +if(NOT DEFINED CMAKE_FIND_APPBUNDLE) + set(CMAKE_FIND_APPBUNDLE FIRST) +endif() # set up the default search directories for application bundles -SET(CMAKE_SYSTEM_APPBUNDLE_PATH +set(CMAKE_SYSTEM_APPBUNDLE_PATH ~/Applications /Applications /Developer/Applications) -INCLUDE(Platform/UnixPaths) -SET(CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_SYSTEM_INCLUDE_PATH} /sw/include) -SET(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SYSTEM_LIBRARY_PATH} /sw/lib) +include(Platform/UnixPaths) +set(CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_SYSTEM_INCLUDE_PATH} /sw/include) +set(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SYSTEM_LIBRARY_PATH} /sw/lib) diff --git a/Modules/Platform/Darwin-icpc.cmake b/Modules/Platform/Darwin-icpc.cmake index e247bae28..549feb7f5 100644 --- a/Modules/Platform/Darwin-icpc.cmake +++ b/Modules/Platform/Darwin-icpc.cmake @@ -1,3 +1,3 @@ -GET_FILENAME_COMPONENT(CURRENT_SOURCE_PARENT ${CMAKE_CURRENT_LIST_FILE} PATH) -#MESSAGE (STATUS "CURRENT_SOURCE_PARENT: ${CURRENT_SOURCE_PARENT}") -INCLUDE ( ${CURRENT_SOURCE_PARENT}/Darwin-icc.cmake) +get_filename_component(CURRENT_SOURCE_PARENT ${CMAKE_CURRENT_LIST_FILE} PATH) +#message (STATUS "CURRENT_SOURCE_PARENT: ${CURRENT_SOURCE_PARENT}") +include ( ${CURRENT_SOURCE_PARENT}/Darwin-icc.cmake) diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake index eff07b295..4e7e99ca3 100644 --- a/Modules/Platform/Darwin.cmake +++ b/Modules/Platform/Darwin.cmake @@ -1,4 +1,4 @@ -SET(APPLE 1) +set(APPLE 1) # Darwin versions: # 6.x == Mac OSX 10.2 (Jaguar) @@ -8,261 +8,285 @@ SET(APPLE 1) # 10.x == Mac OSX 10.6 (Snow Leopard) # 11.x == Mac OSX 10.7 (Lion) # 12.x == Mac OSX 10.8 (Mountain Lion) -STRING(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_SYSTEM_VERSION}") -STRING(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\2" DARWIN_MINOR_VERSION "${CMAKE_SYSTEM_VERSION}") +string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_SYSTEM_VERSION}") +string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\2" DARWIN_MINOR_VERSION "${CMAKE_SYSTEM_VERSION}") # Do not use the "-Wl,-search_paths_first" flag with the OSX 10.2 compiler. # Done this way because it is too early to do a TRY_COMPILE. -IF(NOT DEFINED HAVE_FLAG_SEARCH_PATHS_FIRST) - SET(HAVE_FLAG_SEARCH_PATHS_FIRST 0) - IF("${DARWIN_MAJOR_VERSION}" GREATER 6) - SET(HAVE_FLAG_SEARCH_PATHS_FIRST 1) - ENDIF("${DARWIN_MAJOR_VERSION}" GREATER 6) -ENDIF(NOT DEFINED HAVE_FLAG_SEARCH_PATHS_FIRST) +if(NOT DEFINED HAVE_FLAG_SEARCH_PATHS_FIRST) + set(HAVE_FLAG_SEARCH_PATHS_FIRST 0) + if("${DARWIN_MAJOR_VERSION}" GREATER 6) + set(HAVE_FLAG_SEARCH_PATHS_FIRST 1) + endif() +endif() # More desirable, but does not work: - #INCLUDE(CheckCXXCompilerFlag) + #include(CheckCXXCompilerFlag) #CHECK_CXX_COMPILER_FLAG("-Wl,-search_paths_first" HAVE_FLAG_SEARCH_PATHS_FIRST) -SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") -SET(CMAKE_SHARED_MODULE_PREFIX "lib") -SET(CMAKE_SHARED_MODULE_SUFFIX ".so") -SET(CMAKE_MODULE_EXISTS 1) -SET(CMAKE_DL_LIBS "") - -SET(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") -SET(CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ") -SET(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}") -SET(CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}") - -SET(CMAKE_C_LINK_FLAGS "-Wl,-headerpad_max_install_names") -SET(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names") - -IF(HAVE_FLAG_SEARCH_PATHS_FIRST) - SET(CMAKE_C_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}") - SET(CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}") -ENDIF(HAVE_FLAG_SEARCH_PATHS_FIRST) - -SET(CMAKE_PLATFORM_HAS_INSTALLNAME 1) -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names") -SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -Wl,-headerpad_max_install_names") -SET(CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") -SET(CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") -SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a") +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") +set(CMAKE_SHARED_MODULE_PREFIX "lib") +set(CMAKE_SHARED_MODULE_SUFFIX ".so") +set(CMAKE_MODULE_EXISTS 1) +set(CMAKE_DL_LIBS "") + +set(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") +set(CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ") +set(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}") +set(CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}") + +set(CMAKE_C_LINK_FLAGS "-Wl,-headerpad_max_install_names") +set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names") + +if(HAVE_FLAG_SEARCH_PATHS_FIRST) + set(CMAKE_C_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}") + set(CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}") +endif() + +set(CMAKE_PLATFORM_HAS_INSTALLNAME 1) +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names") +set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -Wl,-headerpad_max_install_names") +set(CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") +set(CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a") # hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree # (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache # and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun) # hardcode CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did before, Alex -IF(NOT DEFINED CMAKE_INSTALL_NAME_TOOL) - FIND_PROGRAM(CMAKE_INSTALL_NAME_TOOL install_name_tool) - MARK_AS_ADVANCED(CMAKE_INSTALL_NAME_TOOL) -ENDIF(NOT DEFINED CMAKE_INSTALL_NAME_TOOL) - -# Set the assumed (Pre 10.5 or Default) location of the developer tools -SET(OSX_DEVELOPER_ROOT "/Developer") - -# Use the xcode-select tool if it's available (Xcode >= 3.0 installations) -FIND_PROGRAM(CMAKE_XCODE_SELECT xcode-select) -MARK_AS_ADVANCED(CMAKE_XCODE_SELECT) -IF(CMAKE_XCODE_SELECT) - EXECUTE_PROCESS(COMMAND ${CMAKE_XCODE_SELECT} "-print-path" - OUTPUT_VARIABLE OSX_DEVELOPER_ROOT - OUTPUT_STRIP_TRAILING_WHITESPACE) -ENDIF(CMAKE_XCODE_SELECT) - -# Find installed SDKs -# Start with Xcode-4.3+ default SDKs directory -SET(_CMAKE_OSX_SDKS_DIR - "${OSX_DEVELOPER_ROOT}/Platforms/MacOSX.platform/Developer/SDKs") -FILE(GLOB _CMAKE_OSX_SDKS "${_CMAKE_OSX_SDKS_DIR}/*") - -# If not present, try pre-4.3 SDKs directory -IF(NOT _CMAKE_OSX_SDKS) -SET(_CMAKE_OSX_SDKS_DIR "${OSX_DEVELOPER_ROOT}/SDKs") - FILE(GLOB _CMAKE_OSX_SDKS "${_CMAKE_OSX_SDKS_DIR}/*") -ENDIF(NOT _CMAKE_OSX_SDKS) - -EXECUTE_PROCESS(COMMAND sw_vers -productVersion +if(NOT DEFINED CMAKE_INSTALL_NAME_TOOL) + find_program(CMAKE_INSTALL_NAME_TOOL install_name_tool) + mark_as_advanced(CMAKE_INSTALL_NAME_TOOL) +endif() + +# Ask xcode-select where to find /Developer or fall back to ancient location. +execute_process(COMMAND xcode-select -print-path + OUTPUT_VARIABLE _stdout + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_VARIABLE _stderr + RESULT_VARIABLE _failed) +if(NOT _failed AND IS_DIRECTORY ${_stdout}) + set(OSX_DEVELOPER_ROOT ${_stdout}) +elseif(IS_DIRECTORY "/Developer") + set(OSX_DEVELOPER_ROOT "/Developer") +else() + set(OSX_DEVELOPER_ROOT "") +endif() + +execute_process(COMMAND sw_vers -productVersion OUTPUT_VARIABLE CURRENT_OSX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) +# Save CMAKE_OSX_ARCHITECTURES from the environment. +set(CMAKE_OSX_ARCHITECTURES "$ENV{CMAKE_OSX_ARCHITECTURES}" CACHE STRING + "Build architectures for OSX") + #---------------------------------------------------------------------------- # _CURRENT_OSX_VERSION - as a two-component string: 10.5, 10.6, ... # -STRING(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1" +string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1" _CURRENT_OSX_VERSION "${CURRENT_OSX_VERSION}") #---------------------------------------------------------------------------- # CMAKE_OSX_DEPLOYMENT_TARGET # Set cache variable - end user may change this during ccmake or cmake-gui configure. -IF(_CURRENT_OSX_VERSION VERSION_GREATER 10.3) - SET(CMAKE_OSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}" CACHE STRING +if(_CURRENT_OSX_VERSION VERSION_GREATER 10.3) + set(CMAKE_OSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}" CACHE STRING "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value.") -ENDIF(_CURRENT_OSX_VERSION VERSION_GREATER 10.3) +endif() #---------------------------------------------------------------------------- # CMAKE_OSX_SYSROOT -# Environment variable set by the user overrides our default. -# Use the same environment variable that Xcode uses. -SET(ENV_SDKROOT "$ENV{SDKROOT}") - -# Set CMAKE_OSX_SYSROOT_DEFAULT based on _CURRENT_OSX_VERSION, -# accounting for the known specially named SDKs. -SET(CMAKE_OSX_SYSROOT_DEFAULT - "${_CMAKE_OSX_SDKS_DIR}/MacOSX${_CURRENT_OSX_VERSION}.sdk") - -IF(_CURRENT_OSX_VERSION STREQUAL "10.4") - SET(CMAKE_OSX_SYSROOT_DEFAULT - "${_CMAKE_OSX_SDKS_DIR}/MacOSX10.4u.sdk") -ENDIF(_CURRENT_OSX_VERSION STREQUAL "10.4") - -IF(_CURRENT_OSX_VERSION STREQUAL "10.3") - SET(CMAKE_OSX_SYSROOT_DEFAULT - "${_CMAKE_OSX_SDKS_DIR}/MacOSX10.3.9.sdk") -ENDIF(_CURRENT_OSX_VERSION STREQUAL "10.3") +if(CMAKE_OSX_SYSROOT) + # Use the existing value without further computation to choose a default. + set(_CMAKE_OSX_SYSROOT_DEFAULT "${CMAKE_OSX_SYSROOT}") +elseif(NOT "x$ENV{SDKROOT}" STREQUAL "x" AND + (NOT "x$ENV{SDKROOT}" MATCHES "/" OR IS_DIRECTORY "$ENV{SDKROOT}")) + # Use the value of SDKROOT from the environment. + set(_CMAKE_OSX_SYSROOT_DEFAULT "$ENV{SDKROOT}") +elseif("${CMAKE_GENERATOR}" MATCHES Xcode + OR CMAKE_OSX_DEPLOYMENT_TARGET + OR CMAKE_OSX_ARCHITECTURES MATCHES "[^;]" + OR NOT EXISTS "/usr/include/sys/types.h") + # Find installed SDKs in either Xcode-4.3+ or pre-4.3 SDKs directory. + set(_CMAKE_OSX_SDKS_DIR "") + if(OSX_DEVELOPER_ROOT) + foreach(d Platforms/MacOSX.platform/Developer/SDKs SDKs) + file(GLOB _CMAKE_OSX_SDKS ${OSX_DEVELOPER_ROOT}/${d}/*) + if(_CMAKE_OSX_SDKS) + set(_CMAKE_OSX_SDKS_DIR ${OSX_DEVELOPER_ROOT}/${d}) + break() + endif() + endforeach() + endif() -# Use environment or default as initial cache value: -IF(NOT ENV_SDKROOT STREQUAL "") - SET(CMAKE_OSX_SYSROOT_VALUE ${ENV_SDKROOT}) -ELSE(NOT ENV_SDKROOT STREQUAL "") - SET(CMAKE_OSX_SYSROOT_VALUE ${CMAKE_OSX_SYSROOT_DEFAULT}) -ENDIF(NOT ENV_SDKROOT STREQUAL "") + if(_CMAKE_OSX_SDKS_DIR) + # Select SDK for current OSX version accounting for the known + # specially named SDKs. + set(_CMAKE_OSX_SDKS_VER_SUFFIX_10.4 "u") + set(_CMAKE_OSX_SDKS_VER_SUFFIX_10.3 ".9") + set(_CMAKE_OSX_SDKS_VER ${_CURRENT_OSX_VERSION}${_CMAKE_OSX_SDKS_VER_SUFFIX_${_CURRENT_OSX_VERSION}}) + set(_CMAKE_OSX_SYSROOT_DEFAULT + "${_CMAKE_OSX_SDKS_DIR}/MacOSX${_CMAKE_OSX_SDKS_VER}.sdk") + else() + # Assume developer files are in root (such as Xcode 4.5 command-line tools). + set(_CMAKE_OSX_SYSROOT_DEFAULT "") + endif() +endif() # Set cache variable - end user may change this during ccmake or cmake-gui configure. -SET(CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT_VALUE} CACHE PATH +# Choose the type based on the current value. +set(_CMAKE_OSX_SYSROOT_TYPE STRING) +foreach(v CMAKE_OSX_SYSROOT _CMAKE_OSX_SYSROOT_DEFAULT) + if("x${${v}}" MATCHES "/") + set(_CMAKE_OSX_SYSROOT_TYPE PATH) + break() + endif() +endforeach() +set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_DEFAULT}" CACHE ${_CMAKE_OSX_SYSROOT_TYPE} "The product will be built against the headers and libraries located inside the indicated SDK.") -#---------------------------------------------------------------------------- -function(SanityCheckSDKAndDeployTarget _sdk_path _deploy) - if(_deploy STREQUAL "") - return() +# Transform the cached value to something we can use. +set(_CMAKE_OSX_SYSROOT_ORIG "${CMAKE_OSX_SYSROOT}") +set(_CMAKE_OSX_SYSROOT_PATH "") +if(CMAKE_OSX_SYSROOT) + if("x${CMAKE_OSX_SYSROOT}" MATCHES "/") + # This is a path to the SDK. Make sure it exists. + if(NOT IS_DIRECTORY "${CMAKE_OSX_SYSROOT}") + message(WARNING "Ignoring CMAKE_OSX_SYSROOT value:\n ${CMAKE_OSX_SYSROOT}\n" + "because the directory does not exist.") + set(CMAKE_OSX_SYSROOT "") + set(_CMAKE_OSX_SYSROOT_ORIG "") + endif() + set(_CMAKE_OSX_SYSROOT_PATH "${CMAKE_OSX_SYSROOT}") + else() + # Transform the sdk name into a path. + execute_process( + COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version Path + OUTPUT_VARIABLE _stdout + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_VARIABLE _stderr + RESULT_VARIABLE _failed + ) + if(NOT _failed AND IS_DIRECTORY "${_stdout}") + set(_CMAKE_OSX_SYSROOT_PATH "${_stdout}") + # For non-Xcode generators use the path. + if(NOT "${CMAKE_GENERATOR}" MATCHES "Xcode") + set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_PATH}") + endif() + endif() endif() +endif() - if(_sdk_path STREQUAL "") - message(FATAL_ERROR "CMAKE_OSX_DEPLOYMENT_TARGET='${_deploy}' but CMAKE_OSX_SYSROOT is empty... - either set CMAKE_OSX_SYSROOT to a valid SDK or set CMAKE_OSX_DEPLOYMENT_TARGET to empty") +# Make sure the combination of SDK and Deployment Target are allowed +if(CMAKE_OSX_DEPLOYMENT_TARGET) + if("${_CMAKE_OSX_SYSROOT_PATH}" MATCHES "^.*/MacOSX([0-9]+\\.[0-9]+)[^/]*\\.sdk") + set(_sdk_ver "${CMAKE_MATCH_1}") + elseif("${_CMAKE_OSX_SYSROOT_ORIG}" MATCHES "^macosx([0-9]+\\.[0-9]+)$") + set(_sdk_ver "${CMAKE_MATCH_1}") + else() + message(FATAL_ERROR + "CMAKE_OSX_DEPLOYMENT_TARGET is '${CMAKE_OSX_DEPLOYMENT_TARGET}' " + "but CMAKE_OSX_SYSROOT:\n \"${_CMAKE_OSX_SYSROOT_ORIG}\"\n" + "is not set to a MacOSX SDK with a recognized version. " + "Either set CMAKE_OSX_SYSROOT to a valid SDK or set " + "CMAKE_OSX_DEPLOYMENT_TARGET to empty.") endif() - - string(REGEX REPLACE "(.*MacOSX*)(....)(.*\\.sdk)" "\\2" SDK "${_sdk_path}") - if(_deploy GREATER "${SDK}") - message(FATAL_ERROR "CMAKE_OSX_DEPLOYMENT_TARGET (${_deploy}) is greater than CMAKE_OSX_SYSROOT SDK (${_sdk_path}). Please set CMAKE_OSX_DEPLOYMENT_TARGET to ${SDK} or lower") + if(CMAKE_OSX_DEPLOYMENT_TARGET VERSION_GREATER "${_sdk_ver}") + message(FATAL_ERROR + "CMAKE_OSX_DEPLOYMENT_TARGET (${CMAKE_OSX_DEPLOYMENT_TARGET}) " + "is greater than CMAKE_OSX_SYSROOT SDK:\n ${_CMAKE_OSX_SYSROOT_ORIG}\n" + "Please set CMAKE_OSX_DEPLOYMENT_TARGET to ${_sdk_ver} or lower.") endif() -endfunction(SanityCheckSDKAndDeployTarget) -#---------------------------------------------------------------------------- - -# Make sure the combination of SDK and Deployment Target are allowed -SanityCheckSDKAndDeployTarget("${CMAKE_OSX_SYSROOT}" "${CMAKE_OSX_DEPLOYMENT_TARGET}") +endif() -# set _CMAKE_OSX_MACHINE to uname -m -EXECUTE_PROCESS(COMMAND uname -m - OUTPUT_STRIP_TRAILING_WHITESPACE - OUTPUT_VARIABLE _CMAKE_OSX_MACHINE) - -# check for Power PC and change to ppc -IF(_CMAKE_OSX_MACHINE MATCHES "Power") - SET(_CMAKE_OSX_MACHINE ppc) -ENDIF(_CMAKE_OSX_MACHINE MATCHES "Power") - -# check for environment variable CMAKE_OSX_ARCHITECTURES -# if it is set. -IF(NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" STREQUAL "") - SET(CMAKE_OSX_ARCHITECTURES_VALUE "$ENV{CMAKE_OSX_ARCHITECTURES}") -ELSE(NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" STREQUAL "") - SET(CMAKE_OSX_ARCHITECTURES_VALUE "") -ENDIF(NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" STREQUAL "") - -# now put _CMAKE_OSX_MACHINE into the cache -SET(CMAKE_OSX_ARCHITECTURES ${CMAKE_OSX_ARCHITECTURES_VALUE} CACHE STRING - "Build architectures for OSX") - - -IF("${CMAKE_BACKWARDS_COMPATIBILITY}" MATCHES "^1\\.[0-6]$") - SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS +if("${CMAKE_BACKWARDS_COMPATIBILITY}" MATCHES "^1\\.[0-6]$") + set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -flat_namespace -undefined suppress") -ENDIF("${CMAKE_BACKWARDS_COMPATIBILITY}" MATCHES "^1\\.[0-6]$") +endif() -IF(NOT XCODE) +if(NOT XCODE) # Enable shared library versioning. This flag is not actually referenced # but the fact that the setting exists will cause the generators to support # soname computation. - SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name") -ENDIF(NOT XCODE) + set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name") +endif() # Xcode does not support -isystem yet. -IF(XCODE) - SET(CMAKE_INCLUDE_SYSTEM_FLAG_C) - SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) -ENDIF(XCODE) +if(XCODE) + set(CMAKE_INCLUDE_SYSTEM_FLAG_C) + set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) +endif() -IF("${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5") +if("${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5") # Need to list dependent shared libraries on link line. When building # with -isysroot (for universal binaries), the linker always looks for # dependent libraries under the sysroot. Listing them on the link # line works around the problem. - SET(CMAKE_LINK_DEPENDENT_LIBRARY_FILES 1) -ENDIF() + set(CMAKE_LINK_DEPENDENT_LIBRARY_FILES 1) +endif() -SET(CMAKE_C_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS -w) -SET(CMAKE_CXX_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS -w) -SET(CMAKE_C_CREATE_SHARED_LIBRARY +set(CMAKE_C_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS -w) +set(CMAKE_CXX_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS -w) +set(CMAKE_C_CREATE_SHARED_LIBRARY " -o ") -SET(CMAKE_CXX_CREATE_SHARED_LIBRARY +set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -o ") -SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY +set(CMAKE_Fortran_CREATE_SHARED_LIBRARY " -o ") -SET(CMAKE_CXX_CREATE_SHARED_MODULE +set(CMAKE_CXX_CREATE_SHARED_MODULE " -o ") -SET(CMAKE_C_CREATE_SHARED_MODULE +set(CMAKE_C_CREATE_SHARED_MODULE " -o ") -SET(CMAKE_Fortran_CREATE_SHARED_MODULE +set(CMAKE_Fortran_CREATE_SHARED_MODULE " -o ") -SET(CMAKE_C_CREATE_MACOSX_FRAMEWORK +set(CMAKE_C_CREATE_MACOSX_FRAMEWORK " -o ") -SET(CMAKE_CXX_CREATE_MACOSX_FRAMEWORK +set(CMAKE_CXX_CREATE_MACOSX_FRAMEWORK " -o ") # default to searching for frameworks first -IF(NOT DEFINED CMAKE_FIND_FRAMEWORK) - SET(CMAKE_FIND_FRAMEWORK FIRST) -ENDIF() +if(NOT DEFINED CMAKE_FIND_FRAMEWORK) + set(CMAKE_FIND_FRAMEWORK FIRST) +endif() # set up the default search directories for frameworks -SET(CMAKE_SYSTEM_FRAMEWORK_PATH +set(CMAKE_SYSTEM_FRAMEWORK_PATH ~/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks /System/Library/Frameworks) # default to searching for application bundles first -IF(NOT DEFINED CMAKE_FIND_APPBUNDLE) - SET(CMAKE_FIND_APPBUNDLE FIRST) -ENDIF() +if(NOT DEFINED CMAKE_FIND_APPBUNDLE) + set(CMAKE_FIND_APPBUNDLE FIRST) +endif() # set up the default search directories for application bundles -SET(_apps_paths) -FOREACH(_path +set(_apps_paths) +foreach(_path "~/Applications" "/Applications" "${OSX_DEVELOPER_ROOT}/../Applications" # Xcode 4.3+ "${OSX_DEVELOPER_ROOT}/Applications" # pre-4.3 ) - GET_FILENAME_COMPONENT(_apps "${_path}" ABSOLUTE) - IF(EXISTS "${_apps}") - LIST(APPEND _apps_paths "${_apps}") - ENDIF() -ENDFOREACH() -LIST(REMOVE_DUPLICATES _apps_paths) -SET(CMAKE_SYSTEM_APPBUNDLE_PATH + get_filename_component(_apps "${_path}" ABSOLUTE) + if(EXISTS "${_apps}") + list(APPEND _apps_paths "${_apps}") + endif() +endforeach() +list(REMOVE_DUPLICATES _apps_paths) +set(CMAKE_SYSTEM_APPBUNDLE_PATH ${_apps_paths}) -UNSET(_apps_paths) +unset(_apps_paths) -INCLUDE(Platform/UnixPaths) -LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH +include(Platform/UnixPaths) +list(APPEND CMAKE_SYSTEM_PREFIX_PATH /sw # Fink /opt/local # MacPorts ) diff --git a/Modules/Platform/DragonFly.cmake b/Modules/Platform/DragonFly.cmake index f6e0f810f..c22677b9d 100644 --- a/Modules/Platform/DragonFly.cmake +++ b/Modules/Platform/DragonFly.cmake @@ -2,4 +2,4 @@ # http://www.dragonflybsd.org # see http://archive.netbsd.se/?ml=dfbsd-users&a=2007-07&m=4678361 -INCLUDE(Platform/FreeBSD) +include(Platform/FreeBSD) diff --git a/Modules/Platform/FreeBSD.cmake b/Modules/Platform/FreeBSD.cmake index 82fe961fb..cf1850110 100644 --- a/Modules/Platform/FreeBSD.cmake +++ b/Modules/Platform/FreeBSD.cmake @@ -1,28 +1,28 @@ -IF(EXISTS /usr/include/dlfcn.h) - SET(CMAKE_DL_LIBS "") - SET(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") - SET(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") - SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic - SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared - SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib - SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath - SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty - SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") - SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") - SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") -ENDIF(EXISTS /usr/include/dlfcn.h) +if(EXISTS /usr/include/dlfcn.h) + set(CMAKE_DL_LIBS "") + set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") + set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") + set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic + set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared + set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty + set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") + set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") + set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +endif() # Shared libraries with no builtin soname may not be linked safely by # specifying the file path. -SET(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) +set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) # 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 "-Wl,-Bstatic") - SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") -ENDFOREACH(type) +foreach(type SHARED_LIBRARY SHARED_MODULE EXE) + set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +endforeach() -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/GNU.cmake b/Modules/Platform/GNU.cmake index 4bcfd51ce..e8c3b657b 100644 --- a/Modules/Platform/GNU.cmake +++ b/Modules/Platform/GNU.cmake @@ -1,13 +1,13 @@ # GCC is the default compiler on GNU/Hurd. -SET(CMAKE_DL_LIBS "dl") -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") -SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") -SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") -SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +set(CMAKE_DL_LIBS "dl") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") -SET(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-gnu[a-z0-9_]*") +set(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-gnu[a-z0-9_]*") -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/Generic-ADSP-ASM.cmake b/Modules/Platform/Generic-ADSP-ASM.cmake index cec4c2f68..63a1388ce 100644 --- a/Modules/Platform/Generic-ADSP-ASM.cmake +++ b/Modules/Platform/Generic-ADSP-ASM.cmake @@ -1,7 +1,7 @@ -INCLUDE(Platform/Generic-ADSP-Common) +include(Platform/Generic-ADSP-Common) -SET(CMAKE_ASM_SOURCE_FILE_EXTENSIONS asm) -SET(CMAKE_ASM_OUTPUT_EXTENSION ".doj" ) -SET(CMAKE_ASM_COMPILE_OBJECT +set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS asm) +set(CMAKE_ASM_OUTPUT_EXTENSION ".doj" ) +set(CMAKE_ASM_COMPILE_OBJECT " -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -o ") diff --git a/Modules/Platform/Generic-ADSP-C.cmake b/Modules/Platform/Generic-ADSP-C.cmake index f0644687f..4b9ed9d07 100644 --- a/Modules/Platform/Generic-ADSP-C.cmake +++ b/Modules/Platform/Generic-ADSP-C.cmake @@ -1,20 +1,20 @@ -INCLUDE(Platform/Generic-ADSP-Common) +include(Platform/Generic-ADSP-Common) -SET(CMAKE_C_OUTPUT_EXTENSION ".doj") +set(CMAKE_C_OUTPUT_EXTENSION ".doj") -SET(CMAKE_C_FLAGS_DEBUG_INIT "-g") -SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "") -SET(CMAKE_C_FLAGS_RELEASE_INIT "") -SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "") +set(CMAKE_C_FLAGS_DEBUG_INIT "-g") +set(CMAKE_C_FLAGS_MINSIZEREL_INIT "") +set(CMAKE_C_FLAGS_RELEASE_INIT "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "") -SET(CMAKE_C_CREATE_STATIC_LIBRARY +set(CMAKE_C_CREATE_STATIC_LIBRARY " -build-lib -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -o ") -SET(CMAKE_C_LINK_EXECUTABLE +set(CMAKE_C_LINK_EXECUTABLE " -o ") -SET(CMAKE_C_CREATE_SHARED_LIBRARY) -SET(CMAKE_C_CREATE_MODULE_LIBRARY) +set(CMAKE_C_CREATE_SHARED_LIBRARY) +set(CMAKE_C_CREATE_MODULE_LIBRARY) diff --git a/Modules/Platform/Generic-ADSP-CXX.cmake b/Modules/Platform/Generic-ADSP-CXX.cmake index 21daa81c9..9673aef40 100644 --- a/Modules/Platform/Generic-ADSP-CXX.cmake +++ b/Modules/Platform/Generic-ADSP-CXX.cmake @@ -1,18 +1,18 @@ -INCLUDE(Platform/Generic-ADSP-Common) +include(Platform/Generic-ADSP-Common) -SET(CMAKE_CXX_OUTPUT_EXTENSION ".doj") +set(CMAKE_CXX_OUTPUT_EXTENSION ".doj") -SET(CMAKE_CXX_FLAGS_DEBUG_INIT "-g") -SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "") -SET(CMAKE_CXX_FLAGS_RELEASE_INIT "") -SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "") +set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g") +set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "") +set(CMAKE_CXX_FLAGS_RELEASE_INIT "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "") -SET(CMAKE_CXX_CREATE_STATIC_LIBRARY +set(CMAKE_CXX_CREATE_STATIC_LIBRARY " -build-lib -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -o ") -SET(CMAKE_CXX_LINK_EXECUTABLE +set(CMAKE_CXX_LINK_EXECUTABLE " -o ") -SET(CMAKE_CXX_CREATE_SHARED_LIBRARY) -SET(CMAKE_CXX_CREATE_MODULE_LIBRARY) +set(CMAKE_CXX_CREATE_SHARED_LIBRARY) +set(CMAKE_CXX_CREATE_MODULE_LIBRARY) diff --git a/Modules/Platform/Generic-ADSP-Common.cmake b/Modules/Platform/Generic-ADSP-Common.cmake index 10fb34e00..026f83c48 100644 --- a/Modules/Platform/Generic-ADSP-Common.cmake +++ b/Modules/Platform/Generic-ADSP-Common.cmake @@ -6,115 +6,115 @@ # TS (TigerShark) # 21k (Sharc 21xxx) -IF(NOT ADSP) +if(NOT ADSP) - SET(ADSP TRUE) + set(ADSP TRUE) - SET(CMAKE_STATIC_LIBRARY_SUFFIX ".dlb") - SET(CMAKE_SHARED_LIBRARY_SUFFIX "") - SET(CMAKE_EXECUTABLE_SUFFIX ".dxe") + set(CMAKE_STATIC_LIBRARY_SUFFIX ".dlb") + set(CMAKE_SHARED_LIBRARY_SUFFIX "") + set(CMAKE_EXECUTABLE_SUFFIX ".dxe") - # if ADSP_PROCESSOR has not been set, but CMAKE_SYSTEM_PROCESSOR has, + # if ADSP_PROCESSOR has not been set, but CMAKE_SYSTEM_PROCESSOR has, # assume that this is the processor name to use for the compiler - IF(CMAKE_SYSTEM_PROCESSOR AND NOT ADSP_PROCESSOR) - SET(ADSP_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR}) - ENDIF(CMAKE_SYSTEM_PROCESSOR AND NOT ADSP_PROCESSOR) + if(CMAKE_SYSTEM_PROCESSOR AND NOT ADSP_PROCESSOR) + set(ADSP_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR}) + endif() # if ADSP_PROCESSOR_SILICIUM_REVISION has not been set, use "none" - IF(NOT ADSP_PROCESSOR_SILICIUM_REVISION) - SET(ADSP_PROCESSOR_SILICIUM_REVISION "none") - ENDIF(NOT ADSP_PROCESSOR_SILICIUM_REVISION) + if(NOT ADSP_PROCESSOR_SILICIUM_REVISION) + set(ADSP_PROCESSOR_SILICIUM_REVISION "none") + endif() # this file is included from the C and CXX files, so handle both here - GET_FILENAME_COMPONENT(_ADSP_DIR "${CMAKE_C_COMPILER}" PATH) - IF(NOT _ADSP_DIR) - GET_FILENAME_COMPONENT(_ADSP_DIR "${CMAKE_CXX_COMPILER}" PATH) - ENDIF(NOT _ADSP_DIR) - IF(NOT _ADSP_DIR) - GET_FILENAME_COMPONENT(_ADSP_DIR "${CMAKE_ASM_COMPILER}" PATH) - ENDIF(NOT _ADSP_DIR) + get_filename_component(_ADSP_DIR "${CMAKE_C_COMPILER}" PATH) + if(NOT _ADSP_DIR) + get_filename_component(_ADSP_DIR "${CMAKE_CXX_COMPILER}" PATH) + endif() + if(NOT _ADSP_DIR) + get_filename_component(_ADSP_DIR "${CMAKE_ASM_COMPILER}" PATH) + endif() # detect architecture - IF(CMAKE_C_COMPILER MATCHES ccblkfn OR CMAKE_CXX_COMPILER MATCHES ccblkfn OR CMAKE_ASM_COMPILER MATCHES easmBLKFN) - IF(NOT ADSP_PROCESSOR) - SET(ADSP_PROCESSOR "ADSP-BF561") - ENDIF(NOT ADSP_PROCESSOR) - SET(ADSP_BLACKFIN TRUE) - SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/Blackfin") - ENDIF(CMAKE_C_COMPILER MATCHES ccblkfn OR CMAKE_CXX_COMPILER MATCHES ccblkfn OR CMAKE_ASM_COMPILER MATCHES easmBLKFN) + if(CMAKE_C_COMPILER MATCHES ccblkfn OR CMAKE_CXX_COMPILER MATCHES ccblkfn OR CMAKE_ASM_COMPILER MATCHES easmBLKFN) + if(NOT ADSP_PROCESSOR) + set(ADSP_PROCESSOR "ADSP-BF561") + endif() + set(ADSP_BLACKFIN TRUE) + set(_ADSP_FAMILY_DIR "${_ADSP_DIR}/Blackfin") + endif() - IF(CMAKE_C_COMPILER MATCHES ccts OR CMAKE_CXX_COMPILER MATCHES ccts OR CMAKE_ASM_COMPILER MATCHES easmTS) - IF(NOT ADSP_PROCESSOR) - SET(ADSP_PROCESSOR "ADSP-TS101") - ENDIF(NOT ADSP_PROCESSOR) - SET(ADSP_TS TRUE) - SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/TS") - ENDIF(CMAKE_C_COMPILER MATCHES ccts OR CMAKE_CXX_COMPILER MATCHES ccts OR CMAKE_ASM_COMPILER MATCHES easmTS) + if(CMAKE_C_COMPILER MATCHES ccts OR CMAKE_CXX_COMPILER MATCHES ccts OR CMAKE_ASM_COMPILER MATCHES easmTS) + if(NOT ADSP_PROCESSOR) + set(ADSP_PROCESSOR "ADSP-TS101") + endif() + set(ADSP_TS TRUE) + set(_ADSP_FAMILY_DIR "${_ADSP_DIR}/TS") + endif() - IF(CMAKE_C_COMPILER MATCHES cc21k OR CMAKE_CXX_COMPILER MATCHES cc21k OR CMAKE_ASM_COMPILER MATCHES easm21k) - IF(NOT ADSP_PROCESSOR) - SET(ADSP_PROCESSOR "ADSP-21060") - ENDIF(NOT ADSP_PROCESSOR) - SET(ADSP_21K TRUE) + if(CMAKE_C_COMPILER MATCHES cc21k OR CMAKE_CXX_COMPILER MATCHES cc21k OR CMAKE_ASM_COMPILER MATCHES easm21k) + if(NOT ADSP_PROCESSOR) + set(ADSP_PROCESSOR "ADSP-21060") + endif() + set(ADSP_21K TRUE) - SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k") # default if nothing matches - IF (ADSP_PROCESSOR MATCHES "210..$") - SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k") - ENDIF(ADSP_PROCESSOR MATCHES "210..$") + set(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k") # default if nothing matches + if (ADSP_PROCESSOR MATCHES "210..$") + set(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k") + endif() - IF (ADSP_PROCESSOR MATCHES "211..$") - SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/211k") - ENDIF(ADSP_PROCESSOR MATCHES "211..$") + if (ADSP_PROCESSOR MATCHES "211..$") + set(_ADSP_FAMILY_DIR "${_ADSP_DIR}/211k") + endif() - IF (ADSP_PROCESSOR MATCHES "212..$") - SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/212k") - ENDIF(ADSP_PROCESSOR MATCHES "212..$") + if (ADSP_PROCESSOR MATCHES "212..$") + set(_ADSP_FAMILY_DIR "${_ADSP_DIR}/212k") + endif() - IF (ADSP_PROCESSOR MATCHES "213..$") - SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/213k") - ENDIF(ADSP_PROCESSOR MATCHES "213..$") + if (ADSP_PROCESSOR MATCHES "213..$") + set(_ADSP_FAMILY_DIR "${_ADSP_DIR}/213k") + endif() - SET(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k") - ENDIF(CMAKE_C_COMPILER MATCHES cc21k OR CMAKE_CXX_COMPILER MATCHES cc21k OR CMAKE_ASM_COMPILER MATCHES easm21k) + set(_ADSP_FAMILY_DIR "${_ADSP_DIR}/21k") + endif() - LINK_DIRECTORIES("${_ADSP_FAMILY_DIR}/lib") + link_directories("${_ADSP_FAMILY_DIR}/lib") # vdk support - FIND_PROGRAM( ADSP_VDKGEN_EXECUTABLE vdkgen "${_ADSP_FAMILY_DIR}/vdk" ) + find_program( ADSP_VDKGEN_EXECUTABLE vdkgen "${_ADSP_FAMILY_DIR}/vdk" ) - MACRO(ADSP_GENERATE_VDK VDK_GENERATED_HEADER VDK_GENERATED_SOURCE VDK_KERNEL_SUPPORT_FILE) - ADD_CUSTOM_COMMAND( + macro(ADSP_GENERATE_VDK VDK_GENERATED_HEADER VDK_GENERATED_SOURCE VDK_KERNEL_SUPPORT_FILE) + add_custom_command( OUTPUT ${VDK_GENERATED_HEADER} ${VDK_GENERATED_SOURCE} COMMAND ${ADSP_VDKGEN_EXECUTABLE} ${VDK_KERNEL_SUPPORT_FILE} -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -MM DEPENDS ${VDK_KERNEL_SUPPORT_FILE} ) - ENDMACRO(ADSP_GENERATE_VDK VDK_GENERATED_HEADER VDK_GENERATED_SOURCE VDK_KERNEL_SUPPORT_FILE) + endmacro() # loader support - FIND_PROGRAM( ADSP_ELFLOADER_EXECUTABLE elfloader "${_ADSP_FAMILY_DIR}" ) + find_program( ADSP_ELFLOADER_EXECUTABLE elfloader "${_ADSP_FAMILY_DIR}" ) # BOOT_MODE: prom, flash, spi, spislave, UART, TWI, FIFO # FORMAT: hex, ASCII, binary, include # WIDTH: 8, 16 - MACRO(ADSP_CREATE_LOADER_FILE TARGET_NAME BOOT_MODE FORMAT WIDTH) - ADD_CUSTOM_COMMAND( + macro(ADSP_CREATE_LOADER_FILE TARGET_NAME BOOT_MODE FORMAT WIDTH) + add_custom_command( TARGET ${TARGET_NAME} POST_BUILD COMMAND ${ADSP_ELFLOADER_EXECUTABLE} ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.dxe -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -b ${BOOT_MODE} -f ${FORMAT} -width ${WIDTH} -o ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.ldr COMMENT "Building the loader file" ) - ENDMACRO(ADSP_CREATE_LOADER_FILE TARGET_NAME BOOT_MODE FORMAT WIDTH) + endmacro() - MACRO(ADSP_CREATE_LOADER_FILE_INIT TARGET_NAME BOOT_MODE FORMAT WIDTH INITIALIZATION_FILE) - ADD_CUSTOM_COMMAND( + macro(ADSP_CREATE_LOADER_FILE_INIT TARGET_NAME BOOT_MODE FORMAT WIDTH INITIALIZATION_FILE) + add_custom_command( TARGET ${TARGET_NAME} POST_BUILD COMMAND ${ADSP_ELFLOADER_EXECUTABLE} ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.dxe -proc ${ADSP_PROCESSOR} -si-revision ${ADSP_PROCESSOR_SILICIUM_REVISION} -b ${BOOT_MODE} -f ${FORMAT} -width ${WIDTH} -o ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}.ldr -init ${INITIALIZATION_FILE} COMMENT "Building the loader file" ) - ENDMACRO(ADSP_CREATE_LOADER_FILE_INIT TARGET_NAME BOOT_MODE FORMAT WIDTH INITIALIZATION_FILE) + endmacro() -ENDIF(NOT ADSP) +endif() diff --git a/Modules/Platform/Generic-SDCC-C.cmake b/Modules/Platform/Generic-SDCC-C.cmake index ac81c3560..588bf32d9 100644 --- a/Modules/Platform/Generic-SDCC-C.cmake +++ b/Modules/Platform/Generic-SDCC-C.cmake @@ -4,51 +4,51 @@ # To use it either a toolchain file is required or cmake has to be run like this: # cmake -DCMAKE_C_COMPILER=sdcc -DCMAKE_SYSTEM_NAME=Generic # Since sdcc doesn't support C++, C++ support should be disabled in the -# CMakeLists.txt using the PROJECT() command: -# PROJECT(my_project C) +# CMakeLists.txt using the project() command: +# project(my_project C) -SET(CMAKE_STATIC_LIBRARY_PREFIX "") -SET(CMAKE_STATIC_LIBRARY_SUFFIX ".lib") -SET(CMAKE_SHARED_LIBRARY_PREFIX "") # lib -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".lib") # .so -SET(CMAKE_IMPORT_LIBRARY_PREFIX ) -SET(CMAKE_IMPORT_LIBRARY_SUFFIX ) -SET(CMAKE_EXECUTABLE_SUFFIX ".ihx") # intel hex file -SET(CMAKE_LINK_LIBRARY_SUFFIX ".lib") -SET(CMAKE_DL_LIBS "") +set(CMAKE_STATIC_LIBRARY_PREFIX "") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib") +set(CMAKE_SHARED_LIBRARY_PREFIX "") # lib +set(CMAKE_SHARED_LIBRARY_SUFFIX ".lib") # .so +set(CMAKE_IMPORT_LIBRARY_PREFIX ) +set(CMAKE_IMPORT_LIBRARY_SUFFIX ) +set(CMAKE_EXECUTABLE_SUFFIX ".ihx") # intel hex file +set(CMAKE_LINK_LIBRARY_SUFFIX ".lib") +set(CMAKE_DL_LIBS "") -SET(CMAKE_C_OUTPUT_EXTENSION ".rel") +set(CMAKE_C_OUTPUT_EXTENSION ".rel") # find sdcclib as CMAKE_AR -# since cmake may already have searched for "ar", sdcclib has to -# be searched with a different variable name (SDCCLIB_EXECUTABLE) +# since cmake may already have searched for "ar", sdcclib has to +# be searched with a different variable name (SDCCLIB_EXECUTABLE) # and must then be forced into the cache -GET_FILENAME_COMPONENT(SDCC_LOCATION "${CMAKE_C_COMPILER}" PATH) -FIND_PROGRAM(SDCCLIB_EXECUTABLE sdcclib PATHS "${SDCC_LOCATION}" NO_DEFAULT_PATH) -FIND_PROGRAM(SDCCLIB_EXECUTABLE sdcclib) -SET(CMAKE_AR "${SDCCLIB_EXECUTABLE}" CACHE FILEPATH "The sdcc librarian" FORCE) +get_filename_component(SDCC_LOCATION "${CMAKE_C_COMPILER}" PATH) +find_program(SDCCLIB_EXECUTABLE sdcclib PATHS "${SDCC_LOCATION}" NO_DEFAULT_PATH) +find_program(SDCCLIB_EXECUTABLE sdcclib) +set(CMAKE_AR "${SDCCLIB_EXECUTABLE}" CACHE FILEPATH "The sdcc librarian" FORCE) # CMAKE_C_FLAGS_INIT and CMAKE_EXE_LINKER_FLAGS_INIT should be set in a CMAKE_SYSTEM_PROCESSOR file -IF(NOT DEFINED CMAKE_C_FLAGS_INIT) - SET(CMAKE_C_FLAGS_INIT "-mmcs51 --model-small") -ENDIF(NOT DEFINED CMAKE_C_FLAGS_INIT) +if(NOT DEFINED CMAKE_C_FLAGS_INIT) + set(CMAKE_C_FLAGS_INIT "-mmcs51 --model-small") +endif() -IF(NOT DEFINED CMAKE_EXE_LINKER_FLAGS_INIT) - SET (CMAKE_EXE_LINKER_FLAGS_INIT --model-small) -ENDIF(NOT DEFINED CMAKE_EXE_LINKER_FLAGS_INIT) +if(NOT DEFINED CMAKE_EXE_LINKER_FLAGS_INIT) + set (CMAKE_EXE_LINKER_FLAGS_INIT --model-small) +endif() # compile a C file into an object file -SET(CMAKE_C_COMPILE_OBJECT " -o -c ") +set(CMAKE_C_COMPILE_OBJECT " -o -c ") # link object files to an executable -SET(CMAKE_C_LINK_EXECUTABLE " --out-fmt-ihx -o ") +set(CMAKE_C_LINK_EXECUTABLE " --out-fmt-ihx -o ") # needs sdcc 2.7.0 + sddclib from cvs -SET(CMAKE_C_CREATE_STATIC_LIBRARY +set(CMAKE_C_CREATE_STATIC_LIBRARY "\"${CMAKE_COMMAND}\" -E remove " " -a ") # not supported by sdcc -SET(CMAKE_C_CREATE_SHARED_LIBRARY "") -SET(CMAKE_C_CREATE_MODULE_LIBRARY "") +set(CMAKE_C_CREATE_SHARED_LIBRARY "") +set(CMAKE_C_CREATE_MODULE_LIBRARY "") diff --git a/Modules/Platform/Generic.cmake b/Modules/Platform/Generic.cmake index a4e2ec6c1..fcb2699d6 100644 --- a/Modules/Platform/Generic.cmake +++ b/Modules/Platform/Generic.cmake @@ -2,16 +2,16 @@ # operating system, typically embedded platforms. # It is used when CMAKE_SYSTEM_NAME is set to "Generic" # -# It is intentionally empty, since nothing is known +# It is intentionally empty, since nothing is known # about the platform. So everything has to be specified # in the system/compiler files ${CMAKE_SYSTEM_NAME}-.cmake # and/or ${CMAKE_SYSTEM_NAME}--${CMAKE_SYSTEM_PROCESSOR}.cmake # (embedded) targets without operating system usually don't support shared libraries -SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) # To help the find_xxx() commands, set at least the following so CMAKE_FIND_ROOT_PATH # works at least for some simple cases: -SET(CMAKE_SYSTEM_INCLUDE_PATH /include ) -SET(CMAKE_SYSTEM_LIBRARY_PATH /lib ) -SET(CMAKE_SYSTEM_PROGRAM_PATH /bin ) +set(CMAKE_SYSTEM_INCLUDE_PATH /include ) +set(CMAKE_SYSTEM_LIBRARY_PATH /lib ) +set(CMAKE_SYSTEM_PROGRAM_PATH /bin ) diff --git a/Modules/Platform/HP-UX.cmake b/Modules/Platform/HP-UX.cmake index ab3dc2266..65cc7310d 100644 --- a/Modules/Platform/HP-UX.cmake +++ b/Modules/Platform/HP-UX.cmake @@ -1,22 +1,22 @@ -SET(CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH /usr/lib) +set(CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH /usr/lib) -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".sl") # .so -SET(CMAKE_DL_LIBS "dld") -SET(CMAKE_FIND_LIBRARY_SUFFIXES ".sl" ".so" ".a") -SET(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".so") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".sl") # .so +set(CMAKE_DL_LIBS "dld") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".sl" ".so" ".a") +set(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".so") # The HP linker needs to find transitive shared library dependencies # in the -L path. Therefore the runtime path must be added to the # link line with -L flags. -SET(CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH 1) -SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) +set(CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH 1) +set(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) # Shared libraries with no builtin soname may not be linked safely by # specifying the file path. -SET(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) +set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) # set flags for gcc support -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) # Look in both 32-bit and 64-bit implict link directories, but tell # CMake not to pass the paths to the linker. The linker will find the @@ -25,9 +25,9 @@ INCLUDE(Platform/UnixPaths) # CMAKE_SIZEOF_VOID_P is not set until after this file executes, we # would need to append to CMAKE_SYSTEM_LIBRARY_PATH at a later point # (after CMakeTest(LANG)Compiler.cmake runs for at least one language). -LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH /usr/lib/hpux32) -LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH /usr/lib/hpux64) -LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /usr/lib/hpux32) +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /usr/lib/hpux64) +list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /usr/lib/hpux32 /usr/lib/hpux64) # Initialize C and CXX link type selection flags. These flags are @@ -35,16 +35,16 @@ LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES # that links to other libraries to select whether to use the static or # shared versions of the libraries. Note that C modules and shared # libs are built using ld directly so we leave off the "-Wl," portion. -FOREACH(type SHARED_LIBRARY SHARED_MODULE) - SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-a archive") - SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-a default") -ENDFOREACH(type) -FOREACH(type EXE) - SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-a,archive") - SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-a,default") -ENDFOREACH(type) -FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE) - SET(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Wl,-a,archive") - SET(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Wl,-a,default") -ENDFOREACH(type) +foreach(type SHARED_LIBRARY SHARED_MODULE) + set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-a archive") + set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-a default") +endforeach() +foreach(type EXE) + set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-a,archive") + set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-a,default") +endforeach() +foreach(type SHARED_LIBRARY SHARED_MODULE EXE) + set(CMAKE_${type}_LINK_STATIC_CXX_FLAGS "-Wl,-a,archive") + set(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS "-Wl,-a,default") +endforeach() diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake index 9dda3c528..8987783ff 100644 --- a/Modules/Platform/Haiku.cmake +++ b/Modules/Platform/Haiku.cmake @@ -1,24 +1,24 @@ -SET(BEOS 1) +set(BEOS 1) -SET(CMAKE_DL_LIBS root be) -SET(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") -SET(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") -SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +set(CMAKE_DL_LIBS root be) +set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") +set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") -INCLUDE(Platform/UnixPaths) -LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH /boot/common) -LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/common/include) -LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/common/lib) -LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH /boot/common/bin) -LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /boot/common/lib) -LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/develop/headers/3rdparty) -LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/develop/lib/x86) +include(Platform/UnixPaths) +list(APPEND CMAKE_SYSTEM_PREFIX_PATH /boot/common) +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/common/include) +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/common/lib) +list(APPEND CMAKE_SYSTEM_PROGRAM_PATH /boot/common/bin) +list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /boot/common/lib) +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/develop/headers/3rdparty) +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/develop/lib/x86) -IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - SET(CMAKE_INSTALL_PREFIX "/boot/common" CACHE PATH +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "/boot/common" CACHE PATH "Install path prefix, prepended onto install directories." FORCE) -ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) +endif() diff --git a/Modules/Platform/IRIX.cmake b/Modules/Platform/IRIX.cmake index fac941f3b..03e98ccfd 100644 --- a/Modules/Platform/IRIX.cmake +++ b/Modules/Platform/IRIX.cmake @@ -1,45 +1,45 @@ -SET(CMAKE_DL_LIBS "") -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty -IF(NOT CMAKE_COMPILER_IS_GNUCXX) - SET(CMAKE_CXX_CREATE_STATIC_LIBRARY +set(CMAKE_DL_LIBS "") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +if(NOT CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_CREATE_STATIC_LIBRARY " -ar -o ") - SET (CMAKE_CXX_FLAGS_INIT "") - SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") - SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O3 -DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2") - SET (CMAKE_C_FLAGS_INIT "") -ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) + set (CMAKE_CXX_FLAGS_INIT "") + set (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + set (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O3 -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2") + set (CMAKE_C_FLAGS_INIT "") +endif() # set flags for gcc support -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) -IF(NOT CMAKE_COMPILER_IS_GNUCC) - SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") - SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE +if(NOT CMAKE_COMPILER_IS_GNUCC) + set (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + set (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S " "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " ) -ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) +endif() -IF(NOT CMAKE_COMPILER_IS_GNUCXX) - SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") - SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE +if(NOT CMAKE_COMPILER_IS_GNUCXX) + set (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + set (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S " "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " ) -ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) +endif() # 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 "-Wl,-Bstatic") - SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") -ENDFOREACH(type) +foreach(type SHARED_LIBRARY SHARED_MODULE EXE) + set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +endforeach() # The IRIX linker needs to find transitive shared library dependencies # in the -L path. -SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) +set(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) diff --git a/Modules/Platform/IRIX64.cmake b/Modules/Platform/IRIX64.cmake index b60a7f297..5acbd81fa 100644 --- a/Modules/Platform/IRIX64.cmake +++ b/Modules/Platform/IRIX64.cmake @@ -1,73 +1,73 @@ -SET(CMAKE_DL_LIBS "") -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty -SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") -IF(NOT CMAKE_COMPILER_IS_GNUCC) +set(CMAKE_DL_LIBS "") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +if(NOT CMAKE_COMPILER_IS_GNUCC) # Set default flags init. - SET(CMAKE_C_FLAGS_INIT "") - SET(CMAKE_CXX_FLAGS_INIT "") - SET(CMAKE_Fortran_FLAGS_INIT "") - SET(CMAKE_EXE_LINKER_FLAGS_INIT "") - SET(CMAKE_SHARED_LINKER_FLAGS_INIT "") - SET(CMAKE_MODULE_LINKER_FLAGS_INIT "") - + set(CMAKE_C_FLAGS_INIT "") + set(CMAKE_CXX_FLAGS_INIT "") + set(CMAKE_Fortran_FLAGS_INIT "") + set(CMAKE_EXE_LINKER_FLAGS_INIT "") + set(CMAKE_SHARED_LINKER_FLAGS_INIT "") + set(CMAKE_MODULE_LINKER_FLAGS_INIT "") + # If no -o32, -n32, or -64 flag is given, set a reasonable default. - IF("$ENV{CFLAGS} $ENV{CXXFLAGS} $ENV{LDFLAGS}" MATCHES "-([no]32|64)") - ELSE("$ENV{CFLAGS} $ENV{CXXFLAGS} $ENV{LDFLAGS}" MATCHES "-([no]32|64)") + if("$ENV{CFLAGS} $ENV{CXXFLAGS} $ENV{LDFLAGS}" MATCHES "-([no]32|64)") + else() # Check if this is a 64-bit CMake. - IF(CMAKE_FILE_SELF MATCHES "^CMAKE_FILE_SELF$") - EXEC_PROGRAM(file ARGS ${CMAKE_COMMAND} OUTPUT_VARIABLE CMAKE_FILE_SELF) - SET(CMAKE_FILE_SELF "${CMAKE_FILE_SELF}" CACHE INTERNAL + if(CMAKE_FILE_SELF MATCHES "^CMAKE_FILE_SELF$") + exec_program(file ARGS ${CMAKE_COMMAND} OUTPUT_VARIABLE CMAKE_FILE_SELF) + set(CMAKE_FILE_SELF "${CMAKE_FILE_SELF}" CACHE INTERNAL "Output of file command on ${CMAKE_COMMAND}.") - ENDIF(CMAKE_FILE_SELF MATCHES "^CMAKE_FILE_SELF$") - + endif() + # Set initial flags to match cmake executable. - IF(CMAKE_FILE_SELF MATCHES " 64-bit ") - SET(CMAKE_C_FLAGS_INIT "-64") - SET(CMAKE_CXX_FLAGS_INIT "-64") - SET(CMAKE_Fortran_FLAGS_INIT "-64") - SET(CMAKE_EXE_LINKER_FLAGS_INIT "-64") - SET(CMAKE_SHARED_LINKER_FLAGS_INIT "-64") - SET(CMAKE_MODULE_LINKER_FLAGS_INIT "-64") - ENDIF(CMAKE_FILE_SELF MATCHES " 64-bit ") - ENDIF("$ENV{CFLAGS} $ENV{CXXFLAGS} $ENV{LDFLAGS}" MATCHES "-([no]32|64)") - + if(CMAKE_FILE_SELF MATCHES " 64-bit ") + set(CMAKE_C_FLAGS_INIT "-64") + set(CMAKE_CXX_FLAGS_INIT "-64") + set(CMAKE_Fortran_FLAGS_INIT "-64") + set(CMAKE_EXE_LINKER_FLAGS_INIT "-64") + set(CMAKE_SHARED_LINKER_FLAGS_INIT "-64") + set(CMAKE_MODULE_LINKER_FLAGS_INIT "-64") + endif() + endif() + # Set remaining defaults. - SET(CMAKE_CXX_CREATE_STATIC_LIBRARY + set(CMAKE_CXX_CREATE_STATIC_LIBRARY " -ar -o ") - SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") - SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O3 -DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2") -ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) -INCLUDE(Platform/UnixPaths) + set (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + set (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O3 -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2") +endif() +include(Platform/UnixPaths) -IF(NOT CMAKE_COMPILER_IS_GNUCC) - SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") - SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE +if(NOT CMAKE_COMPILER_IS_GNUCC) + set (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + set (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S " "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " ) -ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) +endif() -IF(NOT CMAKE_COMPILER_IS_GNUCXX) - SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") - SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE +if(NOT CMAKE_COMPILER_IS_GNUCXX) + set (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + set (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S " "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " ) -ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) +endif() # 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 "-Wl,-Bstatic") - SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") -ENDFOREACH(type) +foreach(type SHARED_LIBRARY SHARED_MODULE EXE) + set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +endforeach() # The IRIX linker needs to find transitive shared library dependencies # in the -L path. -SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) +set(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) diff --git a/Modules/Platform/Linux-CXX.cmake b/Modules/Platform/Linux-CXX.cmake new file mode 100644 index 000000000..b594daeb0 --- /dev/null +++ b/Modules/Platform/Linux-CXX.cmake @@ -0,0 +1,3 @@ +if(NOT CMAKE_CXX_COMPILER_NAMES) + set(CMAKE_CXX_COMPILER_NAMES c++) +endif() diff --git a/Modules/Platform/Linux-Clang-C.cmake b/Modules/Platform/Linux-Clang-C.cmake index dbf89564a..2a77d2710 100644 --- a/Modules/Platform/Linux-Clang-C.cmake +++ b/Modules/Platform/Linux-Clang-C.cmake @@ -1 +1 @@ -INCLUDE(Platform/Linux-GNU-C) +include(Platform/Linux-GNU-C) diff --git a/Modules/Platform/Linux-Clang-CXX.cmake b/Modules/Platform/Linux-Clang-CXX.cmake index 8fe251c4d..9d9a4df66 100644 --- a/Modules/Platform/Linux-Clang-CXX.cmake +++ b/Modules/Platform/Linux-Clang-CXX.cmake @@ -1 +1 @@ -INCLUDE(Platform/Linux-GNU-CXX) +include(Platform/Linux-GNU-CXX) diff --git a/Modules/Platform/Linux-GNU-C.cmake b/Modules/Platform/Linux-GNU-C.cmake index 3ab142f13..84dd49269 100644 --- a/Modules/Platform/Linux-GNU-C.cmake +++ b/Modules/Platform/Linux-GNU-C.cmake @@ -1,2 +1,2 @@ -INCLUDE(Platform/Linux-GNU) +include(Platform/Linux-GNU) __linux_compiler_gnu(C) diff --git a/Modules/Platform/Linux-GNU-CXX.cmake b/Modules/Platform/Linux-GNU-CXX.cmake index 9e4f904f2..416233531 100644 --- a/Modules/Platform/Linux-GNU-CXX.cmake +++ b/Modules/Platform/Linux-GNU-CXX.cmake @@ -1,2 +1,2 @@ -INCLUDE(Platform/Linux-GNU) +include(Platform/Linux-GNU) __linux_compiler_gnu(CXX) diff --git a/Modules/Platform/Linux-GNU-Fortran.cmake b/Modules/Platform/Linux-GNU-Fortran.cmake index e364c872a..68e95404b 100644 --- a/Modules/Platform/Linux-GNU-Fortran.cmake +++ b/Modules/Platform/Linux-GNU-Fortran.cmake @@ -1,2 +1,2 @@ -INCLUDE(Platform/Linux-GNU) +include(Platform/Linux-GNU) __linux_compiler_gnu(Fortran) diff --git a/Modules/Platform/Linux-Intel-C.cmake b/Modules/Platform/Linux-Intel-C.cmake index c909e68fc..d1694d64a 100644 --- a/Modules/Platform/Linux-Intel-C.cmake +++ b/Modules/Platform/Linux-Intel-C.cmake @@ -1,2 +1,2 @@ -INCLUDE(Platform/Linux-Intel) +include(Platform/Linux-Intel) __linux_compiler_intel(C) diff --git a/Modules/Platform/Linux-Intel-CXX.cmake b/Modules/Platform/Linux-Intel-CXX.cmake index 0b7daf475..66df3ac2a 100644 --- a/Modules/Platform/Linux-Intel-CXX.cmake +++ b/Modules/Platform/Linux-Intel-CXX.cmake @@ -1,2 +1,2 @@ -INCLUDE(Platform/Linux-Intel) +include(Platform/Linux-Intel) __linux_compiler_intel(CXX) diff --git a/Modules/Platform/Linux-Intel-Fortran.cmake b/Modules/Platform/Linux-Intel-Fortran.cmake index 342b5c2fa..bb671eeb2 100644 --- a/Modules/Platform/Linux-Intel-Fortran.cmake +++ b/Modules/Platform/Linux-Intel-Fortran.cmake @@ -1,4 +1,4 @@ -INCLUDE(Platform/Linux-Intel) +include(Platform/Linux-Intel) __linux_compiler_intel(Fortran) set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS} -i_dynamic -nofor_main") set(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "-i_dynamic") diff --git a/Modules/Platform/Linux-Intel.cmake b/Modules/Platform/Linux-Intel.cmake index 47bf24659..2394f1050 100644 --- a/Modules/Platform/Linux-Intel.cmake +++ b/Modules/Platform/Linux-Intel.cmake @@ -28,7 +28,7 @@ if(NOT XIAR) endforeach() find_program(XIAR NAMES xiar HINTS ${_intel_xiar_hints}) mark_as_advanced(XIAR) -endif(NOT XIAR) +endif() macro(__linux_compiler_intel lang) set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC") diff --git a/Modules/Platform/Linux-SunPro-CXX.cmake b/Modules/Platform/Linux-SunPro-CXX.cmake index 8ee96586d..a07f1ec84 100644 --- a/Modules/Platform/Linux-SunPro-CXX.cmake +++ b/Modules/Platform/Linux-SunPro-CXX.cmake @@ -6,4 +6,4 @@ if("${_cxx_flags}" MATCHES "\n-W[^\n]*component") else() set(CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG "-rpath-link ") endif() -SET(CMAKE_EXE_EXPORTS_CXX_FLAG "--export-dynamic") +set(CMAKE_EXE_EXPORTS_CXX_FLAG "--export-dynamic") diff --git a/Modules/Platform/Linux-TinyCC-C.cmake b/Modules/Platform/Linux-TinyCC-C.cmake index b753268ea..f78e708f9 100644 --- a/Modules/Platform/Linux-TinyCC-C.cmake +++ b/Modules/Platform/Linux-TinyCC-C.cmake @@ -1,4 +1,4 @@ -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") -SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "") -SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-soname ") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") +set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "") +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-soname ") diff --git a/Modules/Platform/Linux-XL-C.cmake b/Modules/Platform/Linux-XL-C.cmake index b1b07f617..f1c584ce5 100644 --- a/Modules/Platform/Linux-XL-C.cmake +++ b/Modules/Platform/Linux-XL-C.cmake @@ -1 +1 @@ -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-qmkshrobj") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-qmkshrobj") diff --git a/Modules/Platform/Linux-XL-CXX.cmake b/Modules/Platform/Linux-XL-CXX.cmake index 071a975ed..abd3fa497 100644 --- a/Modules/Platform/Linux-XL-CXX.cmake +++ b/Modules/Platform/Linux-XL-CXX.cmake @@ -1 +1 @@ -SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-qmkshrobj") +set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-qmkshrobj") diff --git a/Modules/Platform/Linux-XL-Fortran.cmake b/Modules/Platform/Linux-XL-Fortran.cmake index 5da574e2e..cdd1f702b 100644 --- a/Modules/Platform/Linux-XL-Fortran.cmake +++ b/Modules/Platform/Linux-XL-Fortran.cmake @@ -1 +1 @@ -SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-qmkshrobj") +set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-qmkshrobj") diff --git a/Modules/Platform/Linux-como.cmake b/Modules/Platform/Linux-como.cmake index 7ea732082..d1550d201 100644 --- a/Modules/Platform/Linux-como.cmake +++ b/Modules/Platform/Linux-como.cmake @@ -1,17 +1,17 @@ # create a shared C++ library -SET(CMAKE_CXX_CREATE_SHARED_LIBRARY +set(CMAKE_CXX_CREATE_SHARED_LIBRARY " --prelink_objects " " -o ") # create a C++ static library -SET(CMAKE_CXX_CREATE_STATIC_LIBRARY +set(CMAKE_CXX_CREATE_STATIC_LIBRARY " --prelink_objects " " cr " " ") -SET(CMAKE_CXX_LINK_EXECUTABLE +set(CMAKE_CXX_LINK_EXECUTABLE " --prelink_objects " " -o ") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "") diff --git a/Modules/Platform/Linux.cmake b/Modules/Platform/Linux.cmake index 38f469b33..fe8e0039f 100644 --- a/Modules/Platform/Linux.cmake +++ b/Modules/Platform/Linux.cmake @@ -1,22 +1,22 @@ -SET(CMAKE_DL_LIBS "dl") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") -SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") -SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") -SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +set(CMAKE_DL_LIBS "dl") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") # Shared libraries with no builtin soname may not be linked safely by # specifying the file path. -SET(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) +set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) # 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 "-Wl,-Bstatic") - SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") -ENDFOREACH(type) +foreach(type SHARED_LIBRARY SHARED_MODULE EXE) + set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +endforeach() # Debian policy requires that shared libraries be installed without # executable permission. Fedora policy requires that shared libraries @@ -26,32 +26,32 @@ ENDFOREACH(type) # default. In order to support debian packages we provide an option # here. The option default is based on the current distribution, but # packagers can set it explicitly on the command line. -IF(DEFINED CMAKE_INSTALL_SO_NO_EXE) +if(DEFINED CMAKE_INSTALL_SO_NO_EXE) # Store the decision variable in the cache. This preserves any # setting the user provides on the command line. - SET(CMAKE_INSTALL_SO_NO_EXE "${CMAKE_INSTALL_SO_NO_EXE}" CACHE INTERNAL + set(CMAKE_INSTALL_SO_NO_EXE "${CMAKE_INSTALL_SO_NO_EXE}" CACHE INTERNAL "Install .so files without execute permission.") -ELSE(DEFINED CMAKE_INSTALL_SO_NO_EXE) +else() # Store the decision variable as an internal cache entry to avoid # checking the platform every time. This option is advanced enough # that only package maintainers should need to adjust it. They are # capable of providing a setting on the command line. - IF(EXISTS "/etc/debian_version") - SET(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL + if(EXISTS "/etc/debian_version") + set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL "Install .so files without execute permission.") - ELSE(EXISTS "/etc/debian_version") - SET(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL + else() + set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL "Install .so files without execute permission.") - ENDIF(EXISTS "/etc/debian_version") -ENDIF(DEFINED CMAKE_INSTALL_SO_NO_EXE) + endif() +endif() # Match multiarch library directory names. -SET(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-linux-gnu[a-z0-9_]*") +set(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-linux-gnu[a-z0-9_]*") -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) # Debian has lib64 paths only for compatibility so they should not be # searched. -IF(EXISTS "/etc/debian_version") - SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE) -ENDIF(EXISTS "/etc/debian_version") +if(EXISTS "/etc/debian_version") + set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE) +endif() diff --git a/Modules/Platform/MP-RAS.cmake b/Modules/Platform/MP-RAS.cmake index ff22a4fda..fe8d81a1b 100644 --- a/Modules/Platform/MP-RAS.cmake +++ b/Modules/Platform/MP-RAS.cmake @@ -1,14 +1,14 @@ -IF(CMAKE_SYSTEM MATCHES "MP-RAS-02*.") - SET(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) - SET(CMAKE_C_COMPILE_OPTIONS_PIE -K PIE) - SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") -ELSE(CMAKE_SYSTEM MATCHES "MP-RAS-02*.") - SET(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) - SET(CMAKE_C_COMPILE_OPTIONS_PIE -K PIE) - SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") - SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-Bexport") -ENDIF(CMAKE_SYSTEM MATCHES "MP-RAS-02*.") +if(CMAKE_SYSTEM MATCHES "MP-RAS-02*.") + set(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) + set(CMAKE_C_COMPILE_OPTIONS_PIE -K PIE) + set(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") +else() + set(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) + set(CMAKE_C_COMPILE_OPTIONS_PIE -K PIE) + set(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") + set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-Bexport") +endif() -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/NetBSD.cmake b/Modules/Platform/NetBSD.cmake index e1b66b84c..731827599 100644 --- a/Modules/Platform/NetBSD.cmake +++ b/Modules/Platform/NetBSD.cmake @@ -1,15 +1,15 @@ -IF(EXISTS /usr/include/dlfcn.h) - SET(CMAKE_DL_LIBS "") - SET(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") - SET(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") - SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic - SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared - SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib - SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath - SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty - SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") - SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") - SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") -ENDIF(EXISTS /usr/include/dlfcn.h) +if(EXISTS /usr/include/dlfcn.h) + set(CMAKE_DL_LIBS "") + set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") + set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") + set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic + set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared + set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty + set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") + set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") + set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +endif() -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/OSF1.cmake b/Modules/Platform/OSF1.cmake index 49a30e971..9c3255e36 100644 --- a/Modules/Platform/OSF1.cmake +++ b/Modules/Platform/OSF1.cmake @@ -1,47 +1,47 @@ -SET(CMAKE_DL_LIBS "") +set(CMAKE_DL_LIBS "") -IF(CMAKE_SYSTEM MATCHES "OSF1-1.[012]") -ENDIF(CMAKE_SYSTEM MATCHES "OSF1-1.[012]") -IF(CMAKE_SYSTEM MATCHES "OSF1-1.*") +if(CMAKE_SYSTEM MATCHES "OSF1-1.[012]") +endif() +if(CMAKE_SYSTEM MATCHES "OSF1-1.*") # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 - SET(CMAKE_C_COMPILE_OPTIONS_PIC "-fpic") - SET(CMAKE_C_COMPILE_OPTIONS_PIE "-fpie") - SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fpic") # -pic - SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fpic") # -pic -ENDIF(CMAKE_SYSTEM MATCHES "OSF1-1.*") + set(CMAKE_C_COMPILE_OPTIONS_PIC "-fpic") + set(CMAKE_C_COMPILE_OPTIONS_PIE "-fpie") + set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fpic") # -pic + set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fpic") # -pic +endif() -IF(CMAKE_SYSTEM MATCHES "OSF1-V.*") - SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-expect_unresolved,\\*") # -shared - IF(CMAKE_COMPILER_IS_GNUCXX) - SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,-rpath,") - ELSE(CMAKE_COMPILER_IS_GNUCXX) - SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-rpath ") - ENDIF(CMAKE_COMPILER_IS_GNUCXX) - IF(CMAKE_COMPILER_IS_GNUCC) - SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") - ELSE(CMAKE_COMPILER_IS_GNUCC) - SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-rpath ") - ENDIF(CMAKE_COMPILER_IS_GNUCC) - SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") -ENDIF(CMAKE_SYSTEM MATCHES "OSF1-V.*") +if(CMAKE_SYSTEM MATCHES "OSF1-V.*") + set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-expect_unresolved,\\*") # -shared + if(CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,-rpath,") + else() + set(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-rpath ") + endif() + if(CMAKE_COMPILER_IS_GNUCC) + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") + else() + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-rpath ") + endif() + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +endif() -SET(CMAKE_MAKE_INCLUDE_FROM_ROOT 1) # include $(CMAKE_BINARY_DIR)/... +set(CMAKE_MAKE_INCLUDE_FROM_ROOT 1) # include $(CMAKE_BINARY_DIR)/... -IF(CMAKE_COMPILER_IS_GNUCXX) - # include the gcc flags -ELSE (CMAKE_COMPILER_IS_GNUCXX) +if(CMAKE_COMPILER_IS_GNUCXX) + # include the gcc flags +else () # use default OSF compiler flags - SET (CMAKE_C_FLAGS_INIT "") - SET (CMAKE_C_FLAGS_DEBUG_INIT "-g") - SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-O2 -DNDEBUG") - SET (CMAKE_C_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2") - SET (CMAKE_CXX_FLAGS_INIT "") - SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") - SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O2 -DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2") -ENDIF(CMAKE_COMPILER_IS_GNUCXX) -INCLUDE(Platform/UnixPaths) + set (CMAKE_C_FLAGS_INIT "") + set (CMAKE_C_FLAGS_DEBUG_INIT "-g") + set (CMAKE_C_FLAGS_MINSIZEREL_INIT "-O2 -DNDEBUG") + set (CMAKE_C_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") + set (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2") + set (CMAKE_CXX_FLAGS_INIT "") + set (CMAKE_CXX_FLAGS_DEBUG_INIT "-g") + set (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O2 -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2") +endif() +include(Platform/UnixPaths) diff --git a/Modules/Platform/OpenBSD.cmake b/Modules/Platform/OpenBSD.cmake index b4ed66fb0..df240e01b 100644 --- a/Modules/Platform/OpenBSD.cmake +++ b/Modules/Platform/OpenBSD.cmake @@ -1,18 +1,18 @@ -INCLUDE(Platform/NetBSD) +include(Platform/NetBSD) # On OpenBSD, the compile time linker does not share it's configuration with # the runtime linker. This will extract the library search paths from the # system's ld.so.hints file which will allow CMake to set the appropriate # -rpath-link flags -IF(NOT CMAKE_PLATFORM_RUNTIME_PATH) - EXECUTE_PROCESS(COMMAND /sbin/ldconfig -r +if(NOT CMAKE_PLATFORM_RUNTIME_PATH) + execute_process(COMMAND /sbin/ldconfig -r OUTPUT_VARIABLE LDCONFIG_HINTS ERROR_QUIET) - STRING(REGEX REPLACE ".*search\\ directories:\\ ([^\n]*).*" "\\1" + string(REGEX REPLACE ".*search\\ directories:\\ ([^\n]*).*" "\\1" LDCONFIG_HINTS "${LDCONFIG_HINTS}") - STRING(REGEX REPLACE ":" ";" + string(REGEX REPLACE ":" ";" CMAKE_PLATFORM_RUNTIME_PATH "${LDCONFIG_HINTS}") -ENDIF() +endif() -SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_OPENBSD_VERSIONING 1) +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_OPENBSD_VERSIONING 1) diff --git a/Modules/Platform/OpenVMS.cmake b/Modules/Platform/OpenVMS.cmake index c52effab6..b10da2388 100644 --- a/Modules/Platform/OpenVMS.cmake +++ b/Modules/Platform/OpenVMS.cmake @@ -1,8 +1,8 @@ -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) -SET(CMAKE_C_CREATE_STATIC_LIBRARY +set(CMAKE_C_CREATE_STATIC_LIBRARY " cr " " " ) -SET(CMAKE_CXX_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY}) -SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +set(CMAKE_CXX_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY}) +set(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe diff --git a/Modules/Platform/QNX.cmake b/Modules/Platform/QNX.cmake index 8cdbe02c1..2598411cd 100644 --- a/Modules/Platform/QNX.cmake +++ b/Modules/Platform/QNX.cmake @@ -1,33 +1,33 @@ -SET(QNXNTO 1) +set(QNXNTO 1) # The QNX GCC does not seem to have -isystem so remove the flag. -SET(CMAKE_INCLUDE_SYSTEM_FLAG_C) -SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) +set(CMAKE_INCLUDE_SYSTEM_FLAG_C) +set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) -SET(CMAKE_DL_LIBS "") -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") -SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "") -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") -SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") -SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") -SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +set(CMAKE_DL_LIBS "") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "") +set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") # Shared libraries with no builtin soname may not be linked safely by # specifying the file path. -SET(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) +set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) # 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 "-Wl,-Bstatic") - SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") -ENDFOREACH(type) +foreach(type SHARED_LIBRARY SHARED_MODULE EXE) + set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +endforeach() # force the language to be c++ since qnx only has gcc and not g++ and c++? -SET(CMAKE_CXX_COMPILE_OBJECT +set(CMAKE_CXX_COMPILE_OBJECT " -x c++ -o -c ") -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/RISCos.cmake b/Modules/Platform/RISCos.cmake index 3b2a092bf..570cd7b5b 100644 --- a/Modules/Platform/RISCos.cmake +++ b/Modules/Platform/RISCos.cmake @@ -1,6 +1,6 @@ -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-G 0") -SET(CMAKE_SHARED_LIBRARY_SUFFIX "..o") -SET(CMAKE_DL_LIBS "") -SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-D,08000000") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-G 0") +set(CMAKE_SHARED_LIBRARY_SUFFIX "..o") +set(CMAKE_DL_LIBS "") +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-D,08000000") -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/SCO_SV.cmake b/Modules/Platform/SCO_SV.cmake index cbdcb7dae..ddd960083 100644 --- a/Modules/Platform/SCO_SV.cmake +++ b/Modules/Platform/SCO_SV.cmake @@ -1,2 +1,2 @@ -SET(CMAKE_DL_LIBS "") -INCLUDE(Platform/UnixPaths) +set(CMAKE_DL_LIBS "") +include(Platform/UnixPaths) diff --git a/Modules/Platform/SINIX.cmake b/Modules/Platform/SINIX.cmake index e0809f8e3..c37a113d3 100644 --- a/Modules/Platform/SINIX.cmake +++ b/Modules/Platform/SINIX.cmake @@ -1,4 +1,4 @@ -SET(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) -SET(CMAKE_C_COMPILE_OPTIONS_PIE "") -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") -INCLUDE(Platform/UnixPaths) +set(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) +set(CMAKE_C_COMPILE_OPTIONS_PIE "") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") +include(Platform/UnixPaths) diff --git a/Modules/Platform/SunOS.cmake b/Modules/Platform/SunOS.cmake index de287aa70..da20f97a1 100644 --- a/Modules/Platform/SunOS.cmake +++ b/Modules/Platform/SunOS.cmake @@ -1,32 +1,32 @@ -IF(CMAKE_SYSTEM MATCHES "SunOS-4.*") - SET(CMAKE_C_COMPILE_OPTIONS_PIC "-PIC") - SET(CMAKE_C_COMPILE_OPTIONS_PIE "-PIE") - SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-PIC") - 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 ":") -ENDIF(CMAKE_SYSTEM MATCHES "SunOS-4.*") +if(CMAKE_SYSTEM MATCHES "SunOS-4.*") + set(CMAKE_C_COMPILE_OPTIONS_PIC "-PIC") + set(CMAKE_C_COMPILE_OPTIONS_PIE "-PIE") + set(CMAKE_SHARED_LIBRARY_C_FLAGS "-PIC") + 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 ":") +endif() -IF(CMAKE_COMPILER_IS_GNUCXX) - IF(CMAKE_COMPILER_IS_GNUCC) - SET(CMAKE_CXX_CREATE_SHARED_LIBRARY +if(CMAKE_COMPILER_IS_GNUCXX) + if(CMAKE_COMPILER_IS_GNUCC) + set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -o ") - ELSE(CMAKE_COMPILER_IS_GNUCC) + else() # Take default rule from CMakeDefaultMakeRuleVariables.cmake. - ENDIF(CMAKE_COMPILER_IS_GNUCC) -ENDIF(CMAKE_COMPILER_IS_GNUCXX) -INCLUDE(Platform/UnixPaths) + endif() +endif() +include(Platform/UnixPaths) # Add the compiler's implicit link directories. -IF("${CMAKE_C_COMPILER_ID} ${CMAKE_CXX_COMPILER_ID}" MATCHES SunPro) - LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES +if("${CMAKE_C_COMPILER_ID} ${CMAKE_CXX_COMPILER_ID}" MATCHES SunPro) + list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /opt/SUNWspro/lib /opt/SUNWspro/prod/lib /usr/ccs/lib) -ENDIF("${CMAKE_C_COMPILER_ID} ${CMAKE_CXX_COMPILER_ID}" MATCHES SunPro) +endif() # The Sun linker needs to find transitive shared library dependencies # in the -L path. -SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) +set(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) # Shared libraries with no builtin soname may not be linked safely by # specifying the file path. -SET(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) +set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) diff --git a/Modules/Platform/Tru64.cmake b/Modules/Platform/Tru64.cmake index cf9d17bfd..47852f8e1 100644 --- a/Modules/Platform/Tru64.cmake +++ b/Modules/Platform/Tru64.cmake @@ -1,2 +1,2 @@ -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/ULTRIX.cmake b/Modules/Platform/ULTRIX.cmake index 4d0cf755d..9db4c7c20 100644 --- a/Modules/Platform/ULTRIX.cmake +++ b/Modules/Platform/ULTRIX.cmake @@ -1,5 +1,5 @@ -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-G 0") -SET(CMAKE_SHARED_LIBRARY_SUFFIX "..o") -SET(CMAKE_DL_LIBS "") -SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-D,08000000") -INCLUDE(Platform/UnixPaths) +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-G 0") +set(CMAKE_SHARED_LIBRARY_SUFFIX "..o") +set(CMAKE_DL_LIBS "") +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-D,08000000") +include(Platform/UnixPaths) diff --git a/Modules/Platform/UNIX_SV.cmake b/Modules/Platform/UNIX_SV.cmake index 869b3a6a0..1ec96aea2 100644 --- a/Modules/Platform/UNIX_SV.cmake +++ b/Modules/Platform/UNIX_SV.cmake @@ -1,5 +1,5 @@ -SET(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) -SET(CMAKE_C_COMPILE_OPTIONS_PIE "") -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") -SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-Bexport") -INCLUDE(Platform/UnixPaths) +set(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) +set(CMAKE_C_COMPILE_OPTIONS_PIE "") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-Bexport") +include(Platform/UnixPaths) diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake index 5ee7ddbd6..ccb266330 100644 --- a/Modules/Platform/UnixPaths.cmake +++ b/Modules/Platform/UnixPaths.cmake @@ -17,21 +17,21 @@ # "CMakeSystemSpecificInformation.cmake" already included it. # The extra inclusion is a work-around documented next to the include() # call, so this can be removed when the work-around is removed. -IF(__UNIX_PATHS_INCLUDED) - RETURN() -ENDIF() -SET(__UNIX_PATHS_INCLUDED 1) +if(__UNIX_PATHS_INCLUDED) + return() +endif() +set(__UNIX_PATHS_INCLUDED 1) -SET(UNIX 1) +set(UNIX 1) # also add the install directory of the running cmake to the search directories # CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up -GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) -GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) +get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) +get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) # List common installation prefixes. These will be used for all # search types. -LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH +list(APPEND CMAKE_SYSTEM_PREFIX_PATH # Standard /usr/local /usr / @@ -43,7 +43,7 @@ LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH ) # List common include file locations not under the common prefixes. -LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH # Windows API on Cygwin /usr/include/w32api @@ -52,11 +52,11 @@ LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH # Other /usr/pkg/include - /opt/csw/include /opt/include + /opt/csw/include /opt/include /usr/openwin/include ) -LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH # Windows API on Cygwin /usr/lib/w32api @@ -65,24 +65,24 @@ LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH # Other /usr/pkg/lib - /opt/csw/lib /opt/lib + /opt/csw/lib /opt/lib /usr/openwin/lib ) -LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH +list(APPEND CMAKE_SYSTEM_PROGRAM_PATH /usr/pkg/bin ) -LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES +list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /lib /usr/lib /usr/lib32 /usr/lib64 ) -LIST(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES +list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES /usr/include ) -LIST(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES +list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES /usr/include ) # Enable use of lib64 search path variants by default. -SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) diff --git a/Modules/Platform/UnixWare.cmake b/Modules/Platform/UnixWare.cmake index 3112ee1ef..e649bd2a4 100644 --- a/Modules/Platform/UnixWare.cmake +++ b/Modules/Platform/UnixWare.cmake @@ -1,5 +1,5 @@ -SET(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) -SET(CMAKE_C_COMPILE_OPTIONS_PIE "") -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-Wl,-Bexport") -INCLUDE(Platform/UnixPaths) +set(CMAKE_C_COMPILE_OPTIONS_PIC -K PIC) +set(CMAKE_C_COMPILE_OPTIONS_PIE "") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-K PIC") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-Wl,-Bexport") +include(Platform/UnixPaths) diff --git a/Modules/Platform/Windows-CXX.cmake b/Modules/Platform/Windows-CXX.cmake new file mode 100644 index 000000000..bf37f7903 --- /dev/null +++ b/Modules/Platform/Windows-CXX.cmake @@ -0,0 +1,7 @@ +if(NOT CMAKE_CXX_COMPILER_NAMES) + set(CMAKE_CXX_COMPILER_NAMES c++) +endif() + +# Exclude C++ compilers differing from C compiler only by case +# because this platform may have a case-insensitive filesystem. +set(CMAKE_CXX_COMPILER_EXCLUDE CC aCC xlC) diff --git a/Modules/Platform/Windows-Embarcadero.cmake b/Modules/Platform/Windows-Embarcadero.cmake index 62e8eb704..1662ac969 100644 --- a/Modules/Platform/Windows-Embarcadero.cmake +++ b/Modules/Platform/Windows-Embarcadero.cmake @@ -18,7 +18,7 @@ if(__WINDOWS_EMBARCADERO) endif() set(__WINDOWS_EMBARCADERO 1) -SET(BORLAND 1) +set(BORLAND 1) if("${CMAKE_${_lang}_COMPILER_VERSION}" VERSION_LESS 6.30) # Borland target type flags (bcc32 -h -t): @@ -43,36 +43,36 @@ endif() set(_COMPILE_C "-c") set(_COMPILE_CXX "-P -c") -SET(CMAKE_LIBRARY_PATH_FLAG "-L") -SET(CMAKE_LINK_LIBRARY_FLAG "") +set(CMAKE_LIBRARY_PATH_FLAG "-L") +set(CMAKE_LINK_LIBRARY_FLAG "") -SET(CMAKE_FIND_LIBRARY_SUFFIXES "-bcc.lib" ".lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES "-bcc.lib" ".lib") # uncomment these out to debug makefiles -#SET(CMAKE_START_TEMP_FILE "") -#SET(CMAKE_END_TEMP_FILE "") -#SET(CMAKE_VERBOSE_MAKEFILE 1) +#set(CMAKE_START_TEMP_FILE "") +#set(CMAKE_END_TEMP_FILE "") +#set(CMAKE_VERBOSE_MAKEFILE 1) # Borland cannot handle + in the file name, so mangle object file name -SET (CMAKE_MANGLE_OBJECT_FILE_NAMES "ON") +set (CMAKE_MANGLE_OBJECT_FILE_NAMES "ON") # extra flags for a win32 exe -SET(CMAKE_CREATE_WIN32_EXE "${_tW}" ) +set(CMAKE_CREATE_WIN32_EXE "${_tW}" ) # extra flags for a console app -SET(CMAKE_CREATE_CONSOLE_EXE "${_tC}" ) +set(CMAKE_CREATE_CONSOLE_EXE "${_tC}" ) -SET (CMAKE_BUILD_TYPE Debug CACHE STRING +set (CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel.") -SET (CMAKE_EXE_LINKER_FLAGS_INIT "${_tM} -lS:10000000 -lSc:10000000 ") -SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "-v") -SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "-v") -SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT}) +set (CMAKE_EXE_LINKER_FLAGS_INIT "${_tM} -lS:10000000 -lSc:10000000 ") +set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "-v") +set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "-v") +set (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT}) macro(__embarcadero_language lang) diff --git a/Modules/Platform/Windows-GNU.cmake b/Modules/Platform/Windows-GNU.cmake index 4a37eca87..2bb7a2076 100644 --- a/Modules/Platform/Windows-GNU.cmake +++ b/Modules/Platform/Windows-GNU.cmake @@ -57,6 +57,10 @@ if("${_help}" MATCHES "GNU ld .* 2\\.1[1-6]") set(__WINDOWS_GNU_LD_RESPONSE 0) endif() +if(NOT CMAKE_GENERATOR_RC AND CMAKE_GENERATOR MATCHES "Unix Makefiles") + set(CMAKE_GENERATOR_RC windres) +endif() + enable_language(RC) macro(__windows_compiler_gnu lang) @@ -74,7 +78,7 @@ macro(__windows_compiler_gnu lang) foreach(type SHARED_LIBRARY SHARED_MODULE EXE) set(CMAKE_${type}_LINK_STATIC_${lang}_FLAGS "-Wl,-Bstatic") set(CMAKE_${type}_LINK_DYNAMIC_${lang}_FLAGS "-Wl,-Bdynamic") - endforeach(type) + endforeach() endif() # No -fPIC on Windows diff --git a/Modules/Platform/Windows-Intel-Fortran.cmake b/Modules/Platform/Windows-Intel-Fortran.cmake index 5c016a8fd..40523ffe5 100644 --- a/Modules/Platform/Windows-Intel-Fortran.cmake +++ b/Modules/Platform/Windows-Intel-Fortran.cmake @@ -4,8 +4,8 @@ set(_COMPILE_Fortran " /fpp") set(CMAKE_Fortran_MODDIR_FLAG "-module:") set(CMAKE_Fortran_STANDARD_LIBRARIES_INIT "user32.lib") __windows_compiler_intel(Fortran) -SET (CMAKE_Fortran_FLAGS_INIT "/W1 /nologo /fpp /libs:dll /threads") -SET (CMAKE_Fortran_FLAGS_DEBUG_INIT "/debug:full /dbglibs") -SET (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "/O1 /D NDEBUG") -SET (CMAKE_Fortran_FLAGS_RELEASE_INIT "/O2 /D NDEBUG") -SET (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "/O2 /debug:full /D NDEBUG") +set (CMAKE_Fortran_FLAGS_INIT "/W1 /nologo /fpp /libs:dll /threads") +set (CMAKE_Fortran_FLAGS_DEBUG_INIT "/debug:full /dbglibs") +set (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "/O1 /D NDEBUG") +set (CMAKE_Fortran_FLAGS_RELEASE_INIT "/O2 /D NDEBUG") +set (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "/O2 /debug:full /D NDEBUG") diff --git a/Modules/Platform/Windows-Intel.cmake b/Modules/Platform/Windows-Intel.cmake index 2a54a981b..58da8c56d 100644 --- a/Modules/Platform/Windows-Intel.cmake +++ b/Modules/Platform/Windows-Intel.cmake @@ -19,65 +19,65 @@ endif() set(__WINDOWS_INTEL 1) # make sure to enable languages after setting configuration types -ENABLE_LANGUAGE(RC) -SET(CMAKE_COMPILE_RESOURCE "rc /fo ") +enable_language(RC) +set(CMAKE_COMPILE_RESOURCE "rc /fo ") -SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") -SET(CMAKE_LINK_LIBRARY_FLAG "") -SET(WIN32 1) -IF(CMAKE_VERBOSE_MAKEFILE) - SET(CMAKE_CL_NOLOGO) -ELSE(CMAKE_VERBOSE_MAKEFILE) - SET(CMAKE_CL_NOLOGO "/nologo") -ENDIF(CMAKE_VERBOSE_MAKEFILE) -SET(CMAKE_COMPILE_RESOURCE "rc /fo ") -SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows) -SET(CMAKE_CREATE_CONSOLE_EXE /subsystem:console) +set(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") +set(CMAKE_LINK_LIBRARY_FLAG "") +set(WIN32 1) +if(CMAKE_VERBOSE_MAKEFILE) + set(CMAKE_CL_NOLOGO) +else() + set(CMAKE_CL_NOLOGO "/nologo") +endif() +set(CMAKE_COMPILE_RESOURCE "rc /fo ") +set(CMAKE_CREATE_WIN32_EXE /subsystem:windows) +set(CMAKE_CREATE_CONSOLE_EXE /subsystem:console) # default to Debug builds -#SET(CMAKE_BUILD_TYPE_INIT Debug) -SET(CMAKE_BUILD_TYPE_INIT Release) +#set(CMAKE_BUILD_TYPE_INIT Debug) +set(CMAKE_BUILD_TYPE_INIT Release) -SET(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib") -SET(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") +set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib") +set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") # executable linker flags -SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") -IF(MSVC_C_ARCHITECTURE_ID) - SET(_MACHINE_ARCH_FLAG "/machine:${MSVC_C_ARCHITECTURE_ID}") -ELSEIF(MSVC_CXX_ARCHITECTURE_ID) - SET(_MACHINE_ARCH_FLAG "/machine:${MSVC_CXX_ARCHITECTURE_ID}") -ELSEIF(MSVC_Fortran_ARCHITECTURE_ID) - SET(_MACHINE_ARCH_FLAG "/machine:${MSVC_Fortran_ARCHITECTURE_ID}") -ENDIF() -SET (CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /INCREMENTAL:YES ${_MACHINE_ARCH_FLAG}") -SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug") -SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug") +set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") +if(MSVC_C_ARCHITECTURE_ID) + set(_MACHINE_ARCH_FLAG "/machine:${MSVC_C_ARCHITECTURE_ID}") +elseif(MSVC_CXX_ARCHITECTURE_ID) + set(_MACHINE_ARCH_FLAG "/machine:${MSVC_CXX_ARCHITECTURE_ID}") +elseif(MSVC_Fortran_ARCHITECTURE_ID) + set(_MACHINE_ARCH_FLAG "/machine:${MSVC_Fortran_ARCHITECTURE_ID}") +endif() +set (CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /INCREMENTAL:YES ${_MACHINE_ARCH_FLAG}") +set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug") +set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug") -SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) -INCLUDE("${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake" OPTIONAL) +include("${CMAKE_PLATFORM_INFO_DIR}/CMakeIntelInformation.cmake" OPTIONAL) -IF(NOT _INTEL_XILINK_TEST_RUN) - EXECUTE_PROCESS(COMMAND xilink /? +if(NOT _INTEL_XILINK_TEST_RUN) + execute_process(COMMAND xilink /? ERROR_VARIABLE _XILINK_ERR OUTPUT_VARIABLE _XILINK_HELP) - IF(_XILINK_HELP MATCHES MANIFEST) - SET(_INTEL_COMPILER_SUPPORTS_MANIFEST 1) - ENDIF(_XILINK_HELP MATCHES MANIFEST) - IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake") - FILE(WRITE ${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake + if(_XILINK_HELP MATCHES MANIFEST) + set(_INTEL_COMPILER_SUPPORTS_MANIFEST 1) + endif() + if(NOT EXISTS "${CMAKE_PLATFORM_INFO_DIR}/CMakeIntelInformation.cmake") + file(WRITE ${CMAKE_PLATFORM_INFO_DIR}/CMakeIntelInformation.cmake " -SET(_INTEL_XILINK_TEST_RUN 1) -SET(_INTEL_COMPILER_SUPPORTS_MANIFEST ${_INTEL_COMPILER_SUPPORTS_MANIFEST}) +set(_INTEL_XILINK_TEST_RUN 1) +set(_INTEL_COMPILER_SUPPORTS_MANIFEST ${_INTEL_COMPILER_SUPPORTS_MANIFEST}) ") - ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeIntelInformation.cmake") -ENDIF(NOT _INTEL_XILINK_TEST_RUN) + endif() +endif() macro(__windows_compiler_intel lang) set(CMAKE_${lang}_COMPILE_OBJECT @@ -89,8 +89,9 @@ macro(__windows_compiler_intel lang) set(CMAKE_${lang}_CREATE_SHARED_LIBRARY "xilink ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out: /implib: /pdb: /dll ${CMAKE_END_TEMP_FILE}") set(CMAKE_${lang}_CREATE_SHARED_MODULE "${CMAKE_${lang}_CREATE_SHARED_LIBRARY}") + set(CMAKE_${lang}_COMPILER_LINKER_OPTION_FLAG_EXECUTABLE "/link") set(CMAKE_${lang}_LINK_EXECUTABLE - " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe -link /implib: ${CMAKE_END_TEMP_FILE}") + " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe /link /implib: ${CMAKE_END_TEMP_FILE}") set(CMAKE_${lang}_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000${_FLAGS_${lang}}") set(CMAKE_${lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Od /RTC1") set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/DNDEBUG /MD /O1") @@ -98,11 +99,11 @@ macro(__windows_compiler_intel lang) set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "/DNDEBUG /MD /Zi /O2") if(_INTEL_COMPILER_SUPPORTS_MANIFEST) - SET(CMAKE_${lang}_LINK_EXECUTABLE + set(CMAKE_${lang}_LINK_EXECUTABLE " -E vs_link_exe ${CMAKE_${lang}_LINK_EXECUTABLE}") - SET(CMAKE_${lang}_CREATE_SHARED_LIBRARY + set(CMAKE_${lang}_CREATE_SHARED_LIBRARY " -E vs_link_dll ${CMAKE_${lang}_CREATE_SHARED_LIBRARY}") - SET(CMAKE_${lang}_CREATE_SHARED_MODULE + set(CMAKE_${lang}_CREATE_SHARED_MODULE " -E vs_link_dll ${CMAKE_${lang}_CREATE_SHARED_MODULE}") endif() endmacro() diff --git a/Modules/Platform/Windows-MSVC-C.cmake b/Modules/Platform/Windows-MSVC-C.cmake new file mode 100644 index 000000000..e81df9f83 --- /dev/null +++ b/Modules/Platform/Windows-MSVC-C.cmake @@ -0,0 +1,2 @@ +include(Platform/Windows-MSVC) +__windows_compiler_msvc(C) diff --git a/Modules/Platform/Windows-MSVC-CXX.cmake b/Modules/Platform/Windows-MSVC-CXX.cmake new file mode 100644 index 000000000..fdd1dae05 --- /dev/null +++ b/Modules/Platform/Windows-MSVC-CXX.cmake @@ -0,0 +1,3 @@ +include(Platform/Windows-MSVC) +set(_COMPILE_CXX " /TP") +__windows_compiler_msvc(CXX) diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake new file mode 100644 index 000000000..1f28c503b --- /dev/null +++ b/Modules/Platform/Windows-MSVC.cmake @@ -0,0 +1,241 @@ + +#============================================================================= +# Copyright 2001-2012 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(__WINDOWS_MSVC) + return() +endif() +set(__WINDOWS_MSVC 1) + +set(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") +set(CMAKE_LINK_LIBRARY_FLAG "") +set(MSVC 1) + +# hack: if a new cmake (which uses CMAKE__LINKER) runs on an old build tree +# (where link was hardcoded) and where CMAKE_LINKER isn't in the cache +# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun) +# hardcode CMAKE_LINKER here to link, so it behaves as it did before, Alex +if(NOT DEFINED CMAKE_LINKER) + set(CMAKE_LINKER link) +endif() + +if(CMAKE_VERBOSE_MAKEFILE) + set(CMAKE_CL_NOLOGO) +else() + set(CMAKE_CL_NOLOGO "/nologo") +endif() + +set(WIN32 1) + +if(CMAKE_SYSTEM_NAME MATCHES "WindowsCE") + set(CMAKE_CREATE_WIN32_EXE "/subsystem:windowsce /entry:WinMainCRTStartup") + set(CMAKE_CREATE_CONSOLE_EXE "/subsystem:windowsce /entry:mainACRTStartup") +else() + set(CMAKE_CREATE_WIN32_EXE "/subsystem:windows") + set(CMAKE_CREATE_CONSOLE_EXE "/subsystem:console") +endif() + +if(CMAKE_GENERATOR MATCHES "Visual Studio 6") + set (CMAKE_NO_BUILD_TYPE 1) +endif() +if(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio") + set (CMAKE_NO_BUILD_TYPE 1) + set (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING + "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.") + mark_as_advanced(CMAKE_CONFIGURATION_TYPES) +endif() + +# make sure to enable languages after setting configuration types +enable_language(RC) +set(CMAKE_COMPILE_RESOURCE "rc /fo ") + +if("${CMAKE_GENERATOR}" MATCHES "Visual Studio") + set(MSVC_IDE 1) +else() + set(MSVC_IDE 0) +endif() + +if(NOT MSVC_VERSION) + if(CMAKE_C_COMPILER_VERSION) + set(_compiler_version ${CMAKE_C_COMPILER_VERSION}) + else() + set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION}) + endif() + if("${_compiler_version}" MATCHES "^([0-9]+)\\.([0-9]+)") + math(EXPR MSVC_VERSION "${CMAKE_MATCH_1}*100 + ${CMAKE_MATCH_2}") + else() + message(FATAL_ERROR "MSVC compiler version not detected properly: ${_compiler_version}") + endif() + + set(MSVC10) + set(MSVC11) + set(MSVC60) + set(MSVC70) + set(MSVC71) + set(MSVC80) + set(MSVC90) + set(CMAKE_COMPILER_2005) + set(CMAKE_COMPILER_SUPPORTS_PDBTYPE) + if(NOT "${_compiler_version}" VERSION_LESS 17) + set(MSVC11 1) + elseif(NOT "${_compiler_version}" VERSION_LESS 16) + set(MSVC10 1) + elseif(NOT "${_compiler_version}" VERSION_LESS 15) + set(MSVC90 1) + elseif(NOT "${_compiler_version}" VERSION_LESS 14) + set(MSVC80 1) + set(CMAKE_COMPILER_2005 1) + elseif(NOT "${_compiler_version}" VERSION_LESS 13.10) + set(MSVC71 1) + elseif(NOT "${_compiler_version}" VERSION_LESS 13) + set(MSVC70 1) + else() + set(MSVC60 1) + set(CMAKE_COMPILER_SUPPORTS_PDBTYPE 1) + endif() +endif() + +if(MSVC_C_ARCHITECTURE_ID MATCHES 64) + set(CMAKE_CL_64 1) +else() + set(CMAKE_CL_64 0) +endif() +if(CMAKE_FORCE_WIN64 OR CMAKE_FORCE_IA64) + set(CMAKE_CL_64 1) +endif() + +if("${MSVC_VERSION}" GREATER 1599) + set(MSVC_INCREMENTAL_DEFAULT ON) +endif() + +# default to Debug builds +set(CMAKE_BUILD_TYPE_INIT Debug) + +if(CMAKE_SYSTEM_NAME MATCHES "WindowsCE") + string(TOUPPER "${MSVC_C_ARCHITECTURE_ID}" _MSVC_C_ARCHITECTURE_ID_UPPER) + string(TOUPPER "${MSVC_CXX_ARCHITECTURE_ID}" _MSVC_CXX_ARCHITECTURE_ID_UPPER) + + if("${CMAKE_SYSTEM_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)") + math(EXPR _CE_VERSION "${CMAKE_MATCH_1}*100 + ${CMAKE_MATCH_2}") + elseif("${CMAKE_SYSTEM_VERSION}" STREQUAL "") + set(_CE_VERSION "500") + else() + message(FATAL_ERROR "Invalid Windows CE version: ${CMAKE_SYSTEM_VERSION}") + endif() + + set(_PLATFORM_DEFINES "/D_WIN32_WCE=0x${_CE_VERSION} /DUNDER_CE") + set(_PLATFORM_DEFINES_C " /D${MSVC_C_ARCHITECTURE_ID} /D_${_MSVC_C_ARCHITECTURE_ID_UPPER}_") + set(_PLATFORM_DEFINES_CXX " /D${MSVC_CXX_ARCHITECTURE_ID} /D_${_MSVC_CXX_ARCHITECTURE_ID_UPPER}_") + + set(_RTC1 "") + set(_FLAGS_CXX " /GR /EHsc") + set(CMAKE_C_STANDARD_LIBRARIES_INIT "coredll.lib corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib") + set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} /NODEFAULTLIB:libc.lib /NODEFAULTLIB:oldnames.lib") +else() + set(_PLATFORM_DEFINES "/DWIN32") + + if(MSVC_VERSION GREATER 1310) + set(_RTC1 "/RTC1") + set(_FLAGS_CXX " /GR /EHsc") + set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib") + else() + set(_RTC1 "/GZ") + set(_FLAGS_CXX " /GR /GX") + set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib") + endif() +endif() + +set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") + +# executable linker flags +set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") +# set the stack size and the machine type +set(_MACHINE_ARCH_FLAG ${MSVC_C_ARCHITECTURE_ID}) +if(NOT _MACHINE_ARCH_FLAG) + set(_MACHINE_ARCH_FLAG ${MSVC_CXX_ARCHITECTURE_ID}) +endif() +if(CMAKE_SYSTEM_NAME MATCHES "WindowsCE") + if(_MACHINE_ARCH_FLAG MATCHES "ARM") + set(_MACHINE_ARCH_FLAG "THUMB") + elseif(_MACHINE_ARCH_FLAG MATCHES "SH") + set(_MACHINE_ARCH_FLAG "SH4") + endif() +endif() +set (CMAKE_EXE_LINKER_FLAGS_INIT + "${CMAKE_EXE_LINKER_FLAGS_INIT} /STACK:10000000 /machine:${_MACHINE_ARCH_FLAG}") + +# add /debug and /INCREMENTAL:YES to DEBUG and RELWITHDEBINFO also add pdbtype +# on versions that support it +set( MSVC_INCREMENTAL_YES_FLAG "") +if(NOT MSVC_INCREMENTAL_DEFAULT) + set( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL:YES") +else() + set( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL" ) +endif() + +if (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}") + set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}") +else () + set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug ${MSVC_INCREMENTAL_YES_FLAG}") + set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug ${MSVC_INCREMENTAL_YES_FLAG}") +endif () +# for release and minsize release default to no incremental linking +set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT "/INCREMENTAL:NO") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT "/INCREMENTAL:NO") + +# copy the EXE_LINKER flags to SHARED and MODULE linker flags +# shared linker flags +set (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL_INIT ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT}) +# module linker flags +set (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL_INIT ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT}) + +macro(__windows_compiler_msvc lang) + if(NOT "${CMAKE_${lang}_COMPILER_VERSION}" VERSION_LESS 14) + # for 2005 make sure the manifest is put in the dll with mt + set(_CMAKE_VS_LINK_DLL " -E vs_link_dll ") + set(_CMAKE_VS_LINK_EXE " -E vs_link_exe ") + endif() + set(CMAKE_${lang}_CREATE_SHARED_LIBRARY + "${_CMAKE_VS_LINK_DLL} ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out: /implib: /pdb: /dll /version:. ${CMAKE_END_TEMP_FILE}") + + set(CMAKE_${lang}_CREATE_SHARED_MODULE ${CMAKE_${lang}_CREATE_SHARED_LIBRARY}) + set(CMAKE_${lang}_CREATE_STATIC_LIBRARY " /lib ${CMAKE_CL_NOLOGO} /out: ") + + set(CMAKE_${lang}_COMPILE_OBJECT + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} /Fo /Fd -c ${CMAKE_END_TEMP_FILE}") + set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE + " > ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} -E ${CMAKE_END_TEMP_FILE}") + set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE + " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} /FoNUL /FAs /Fa /c ${CMAKE_END_TEMP_FILE}") + + set(CMAKE_${lang}_COMPILER_LINKER_OPTION_FLAG_EXECUTABLE "/link") + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1) + set(CMAKE_${lang}_LINK_EXECUTABLE + "${_CMAKE_VS_LINK_EXE} ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe /Fd /link /implib: /version:. ${CMAKE_END_TEMP_FILE}") + + set(CMAKE_${lang}_FLAGS_INIT "${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} /D_WINDOWS /W3 /Zm1000${_FLAGS_${lang}}") + set(CMAKE_${lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od ${_RTC1}") + set(CMAKE_${lang}_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG") + set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG") + set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG") +endmacro() diff --git a/Modules/Platform/Windows-cl.cmake b/Modules/Platform/Windows-cl.cmake deleted file mode 100644 index be6abb690..000000000 --- a/Modules/Platform/Windows-cl.cmake +++ /dev/null @@ -1,253 +0,0 @@ -# try to load any previously computed information for C on this platform -INCLUDE( ${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake OPTIONAL) -# try to load any previously computed information for CXX on this platform -INCLUDE( ${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake OPTIONAL) - -SET(WIN32 1) - -INCLUDE(Platform/cl) - -SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows) -SET(CMAKE_CREATE_CONSOLE_EXE /subsystem:console) - -IF(CMAKE_GENERATOR MATCHES "Visual Studio 6") - SET (CMAKE_NO_BUILD_TYPE 1) -ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6") -IF(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio") - SET (CMAKE_NO_BUILD_TYPE 1) - SET (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING - "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.") - MARK_AS_ADVANCED(CMAKE_CONFIGURATION_TYPES) -ENDIF(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio") -# does the compiler support pdbtype and is it the newer compiler -IF(CMAKE_GENERATOR MATCHES "Visual Studio 8") - SET(CMAKE_COMPILER_2005 1) -ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8") - -# make sure to enable languages after setting configuration types -ENABLE_LANGUAGE(RC) -SET(CMAKE_COMPILE_RESOURCE "rc /fo ") - -# for nmake we need to compute some information about the compiler -# that is being used. -# the compiler may be free command line, 6, 7, or 71, and -# each have properties that must be determined. -# to avoid running these tests with each cmake run, the -# test results are saved in CMakeCPlatform.cmake, a file -# that is automatically copied into try_compile directories -# by the global generator. -SET(MSVC_IDE 1) -IF(CMAKE_GENERATOR MATCHES "Makefiles" OR CMAKE_GENERATOR MATCHES "Ninja") - SET(MSVC_IDE 0) - IF(NOT CMAKE_VC_COMPILER_TESTS_RUN) - SET(CMAKE_VC_COMPILER_TESTS 1) - SET(testNmakeCLVersionFile - "${CMAKE_ROOT}/Modules/CMakeTestNMakeCLVersion.c") - STRING(REGEX REPLACE "/" "\\\\" testNmakeCLVersionFile "${testNmakeCLVersionFile}") - MESSAGE(STATUS "Check for CL compiler version") - SET(CMAKE_TEST_COMPILER ${CMAKE_C_COMPILER}) - IF (NOT CMAKE_C_COMPILER) - SET(CMAKE_TEST_COMPILER ${CMAKE_CXX_COMPILER}) - ENDIF(NOT CMAKE_C_COMPILER) - EXEC_PROGRAM(${CMAKE_TEST_COMPILER} - ARGS /nologo -EP \"${testNmakeCLVersionFile}\" - OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT - RETURN_VALUE CMAKE_COMPILER_RETURN - ) - IF(NOT CMAKE_COMPILER_RETURN) - FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Determining the version of compiler passed with the following output:\n" - "${CMAKE_COMPILER_OUTPUT}\n\n") - STRING(REGEX REPLACE "\n" " " compilerVersion "${CMAKE_COMPILER_OUTPUT}") - STRING(REGEX REPLACE ".*VERSION=(.*)" "\\1" - compilerVersion "${compilerVersion}") - MESSAGE(STATUS "Check for CL compiler version - ${compilerVersion}") - SET(MSVC60) - SET(MSVC70) - SET(MSVC71) - SET(MSVC80) - SET(CMAKE_COMPILER_2005) - IF("${compilerVersion}" LESS 1300) - SET(MSVC60 1) - SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 1) - ENDIF("${compilerVersion}" LESS 1300) - IF("${compilerVersion}" EQUAL 1300) - SET(MSVC70 1) - SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 0) - ENDIF("${compilerVersion}" EQUAL 1300) - IF("${compilerVersion}" EQUAL 1310) - SET(MSVC71 1) - SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 0) - ENDIF("${compilerVersion}" EQUAL 1310) - IF("${compilerVersion}" EQUAL 1400) - SET(MSVC80 1) - SET(CMAKE_COMPILER_2005 1) - ENDIF("${compilerVersion}" EQUAL 1400) - IF("${compilerVersion}" EQUAL 1500) - SET(MSVC90 1) - ENDIF("${compilerVersion}" EQUAL 1500) - IF("${compilerVersion}" EQUAL 1600) - SET(MSVC10 1) - ENDIF("${compilerVersion}" EQUAL 1600) - SET(MSVC_VERSION "${compilerVersion}") - ELSE(NOT CMAKE_COMPILER_RETURN) - MESSAGE(STATUS "Check for CL compiler version - failed") - FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Determining the version of compiler failed with the following output:\n" - "${CMAKE_COMPILER_OUTPUT}\n\n") - ENDIF(NOT CMAKE_COMPILER_RETURN) - # try to figure out if we are running the free command line - # tools from Microsoft. These tools do not provide debug libraries, - # so the link flags used have to be different. - MAKE_DIRECTORY("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp2") - SET(testForFreeVCFile - "${CMAKE_ROOT}/Modules/CMakeTestForFreeVC.cxx") - STRING(REGEX REPLACE "/" "\\\\" testForFreeVCFile "${testForFreeVCFile}") - MESSAGE(STATUS "Check if this is a free VC compiler") - EXEC_PROGRAM(${CMAKE_TEST_COMPILER} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp2 - ARGS /nologo /MD /EHsc - \"${testForFreeVCFile}\" - OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT - RETURN_VALUE CMAKE_COMPILER_RETURN - ) - IF(CMAKE_COMPILER_RETURN) - FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Determining if this is a free VC compiler failed with the following output:\n" - "${CMAKE_COMPILER_OUTPUT}\n\n") - MESSAGE(STATUS "Check if this is a free VC compiler - yes") - SET(CMAKE_USING_VC_FREE_TOOLS 1) - ELSE(CMAKE_COMPILER_RETURN) - FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Determining if this is a free VC compiler passed with the following output:\n" - "${CMAKE_COMPILER_OUTPUT}\n\n") - MESSAGE(STATUS "Check if this is a free VC compiler - no") - SET(CMAKE_USING_VC_FREE_TOOLS 0) - ENDIF(CMAKE_COMPILER_RETURN) - MAKE_DIRECTORY("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp3") - ENDIF(NOT CMAKE_VC_COMPILER_TESTS_RUN) -ENDIF(CMAKE_GENERATOR MATCHES "Makefiles" OR CMAKE_GENERATOR MATCHES "Ninja") - -IF(MSVC_C_ARCHITECTURE_ID MATCHES 64) - SET(CMAKE_CL_64 1) -ELSE(MSVC_C_ARCHITECTURE_ID MATCHES 64) - SET(CMAKE_CL_64 0) -ENDIF(MSVC_C_ARCHITECTURE_ID MATCHES 64) -IF(CMAKE_FORCE_WIN64 OR CMAKE_FORCE_IA64) - SET(CMAKE_CL_64 1) -ENDIF(CMAKE_FORCE_WIN64 OR CMAKE_FORCE_IA64) - -IF("${MSVC_VERSION}" GREATER 1599) - SET(MSVC_INCREMENTAL_DEFAULT ON) -ENDIF() - -# default to Debug builds -IF(MSVC_VERSION GREATER 1310) - # for 2005 make sure the manifest is put in the dll with mt - SET(CMAKE_CXX_CREATE_SHARED_LIBRARY " -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_LIBRARY}") - SET(CMAKE_CXX_CREATE_SHARED_MODULE " -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_MODULE}") - # create a C shared library - SET(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}") - # create a C shared module just copy the shared library rule - SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}") - SET(CMAKE_CXX_LINK_EXECUTABLE " -E vs_link_exe ${CMAKE_CXX_LINK_EXECUTABLE}") - SET(CMAKE_C_LINK_EXECUTABLE " -E vs_link_exe ${CMAKE_C_LINK_EXECUTABLE}") - - SET(CMAKE_BUILD_TYPE_INIT Debug) - SET (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc /GR") - SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1") - SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG") - SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG") - SET (CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000") - SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1") - SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG") - SET (CMAKE_C_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG") - SET (CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib ") - SET (CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT}") -ELSE(MSVC_VERSION GREATER 1310) - IF(CMAKE_USING_VC_FREE_TOOLS) - MESSAGE(STATUS "Using FREE VC TOOLS, NO DEBUG available") - SET(CMAKE_BUILD_TYPE_INIT Release) - SET (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /GX /GR") - SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /GZ") - SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1 /D NDEBUG") - SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/MT /O2 /Ob2 /D NDEBUG") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1 /D NDEBUG") - SET (CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000") - SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /GZ") - SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1 /D NDEBUG") - SET (CMAKE_C_FLAGS_RELEASE_INIT "/MT /O2 /Ob2 /D NDEBUG") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1 /D NDEBUG") - ELSE(CMAKE_USING_VC_FREE_TOOLS) - SET(CMAKE_BUILD_TYPE_INIT Debug) - SET (CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /GX /GR") - SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /GZ") - SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG") - SET (CMAKE_CXX_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG") - SET (CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000") - SET (CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od /GZ") - SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG") - SET (CMAKE_C_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG") - ENDIF(CMAKE_USING_VC_FREE_TOOLS) - SET (CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib") -ENDIF(MSVC_VERSION GREATER 1310) - -SET(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") - -# executable linker flags -SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") -# set the stack size and the machine type -SET(_MACHINE_ARCH_FLAG ${MSVC_C_ARCHITECTURE_ID}) -IF(NOT _MACHINE_ARCH_FLAG) - SET(_MACHINE_ARCH_FLAG ${MSVC_CXX_ARCHITECTURE_ID}) -ENDIF(NOT _MACHINE_ARCH_FLAG) -SET (CMAKE_EXE_LINKER_FLAGS_INIT - "${CMAKE_EXE_LINKER_FLAGS_INIT} /STACK:10000000 /machine:${_MACHINE_ARCH_FLAG}") - -# add /debug and /INCREMENTAL:YES to DEBUG and RELWITHDEBINFO also add pdbtype -# on versions that support it -SET( MSVC_INCREMENTAL_YES_FLAG "") -IF(NOT MSVC_INCREMENTAL_DEFAULT) - SET( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL:YES") -ELSE() - SET( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL" ) -ENDIF() - -IF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) - SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}") - SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}") -ELSE (CMAKE_COMPILER_SUPPORTS_PDBTYPE) - SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug ${MSVC_INCREMENTAL_YES_FLAG}") - SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug ${MSVC_INCREMENTAL_YES_FLAG}") -ENDIF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) -# for release and minsize release default to no incremental linking -SET(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT "/INCREMENTAL:NO") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT "/INCREMENTAL:NO") - -# copy the EXE_LINKER flags to SHARED and MODULE linker flags -# shared linker flags -SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL_INIT ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT}) -# module linker flags -SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL_INIT ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT}) - -# save computed information for this platform -IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake") - CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCPlatform.cmake IMMEDIATE) -ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake") - -IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake") - CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXPlatform.cmake IMMEDIATE) -ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake") diff --git a/Modules/Platform/Windows-cl.cmake.in b/Modules/Platform/Windows-cl.cmake.in deleted file mode 100644 index 82a0e595f..000000000 --- a/Modules/Platform/Windows-cl.cmake.in +++ /dev/null @@ -1,14 +0,0 @@ -SET(CMAKE_VC_COMPILER_TESTS_RUN 1) -SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE @CMAKE_COMPILER_SUPPORTS_PDBTYPE@) -SET(CMAKE_COMPILER_2005 @CMAKE_COMPILER_2005@) -SET(CMAKE_USING_VC_FREE_TOOLS @CMAKE_USING_VC_FREE_TOOLS@) -SET(CMAKE_CL_64 @CMAKE_CL_64@) -SET(MSVC60 @MSVC60@) -SET(MSVC70 @MSVC70@) -SET(MSVC71 @MSVC71@) -SET(MSVC80 @MSVC80@) -SET(MSVC90 @MSVC90@) -SET(MSVC10 @MSVC10@) -SET(MSVC_IDE @MSVC_IDE@) -SET(MSVC_VERSION @MSVC_VERSION@) -SET(WIN32 1) diff --git a/Modules/Platform/Windows-df.cmake b/Modules/Platform/Windows-df.cmake index f5046bf35..7e2ac9fe4 100644 --- a/Modules/Platform/Windows-df.cmake +++ b/Modules/Platform/Windows-df.cmake @@ -1,70 +1,71 @@ # compiler support for fortran CVF compiler on windows -SET(CMAKE_WINDOWS_OBJECT_PATH 1) -SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") -SET(CMAKE_LINK_LIBRARY_FLAG "") -SET(WIN32 1) -IF(CMAKE_VERBOSE_MAKEFILE) - SET(CMAKE_CL_NOLOGO) -ELSE(CMAKE_VERBOSE_MAKEFILE) - SET(CMAKE_CL_NOLOGO "/nologo") -ENDIF(CMAKE_VERBOSE_MAKEFILE) +set(CMAKE_WINDOWS_OBJECT_PATH 1) +set(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") +set(CMAKE_LINK_LIBRARY_FLAG "") +set(WIN32 1) +if(CMAKE_VERBOSE_MAKEFILE) + set(CMAKE_CL_NOLOGO) +else() + set(CMAKE_CL_NOLOGO "/nologo") +endif() -SET(CMAKE_Fortran_MODDIR_FLAG "-module:") +set(CMAKE_Fortran_MODDIR_FLAG "-module:") -SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY +set(CMAKE_Fortran_CREATE_SHARED_LIBRARY "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out: /dll ${CMAKE_END_TEMP_FILE}") -SET(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY}) +set(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY}) # create a C++ static library -SET(CMAKE_Fortran_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} /out: ") +set(CMAKE_Fortran_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} /out: ") # compile a C++ file into an object file -SET(CMAKE_Fortran_COMPILE_OBJECT +set(CMAKE_Fortran_COMPILE_OBJECT " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /object: /compile_only ${CMAKE_END_TEMP_FILE}") -SET(CMAKE_COMPILE_RESOURCE "rc /fo ") +set(CMAKE_COMPILE_RESOURCE "rc /fo ") -SET(CMAKE_Fortran_LINK_EXECUTABLE - " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /exe: /link ${CMAKE_END_TEMP_FILE}") +set(CMAKE_${lang}_COMPILER_LINKER_OPTION_FLAG_EXECUTABLE "/link") +set(CMAKE_Fortran_LINK_EXECUTABLE + " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /exe: /link ${CMAKE_END_TEMP_FILE}") -SET(CMAKE_CREATE_WIN32_EXE /winapp) -SET(CMAKE_CREATE_CONSOLE_EXE ) +set(CMAKE_CREATE_WIN32_EXE /winapp) +set(CMAKE_CREATE_CONSOLE_EXE ) -IF(CMAKE_GENERATOR MATCHES "Visual Studio 6") - SET (CMAKE_NO_BUILD_TYPE 1) -ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6") -IF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visual Studio 8") - SET (CMAKE_NO_BUILD_TYPE 1) - SET (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING +if(CMAKE_GENERATOR MATCHES "Visual Studio 6") + set (CMAKE_NO_BUILD_TYPE 1) +endif() +if(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visual Studio 8") + set (CMAKE_NO_BUILD_TYPE 1) + set (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.") -ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visual Studio 8") +endif() # does the compiler support pdbtype and is it the newer compiler -SET(CMAKE_BUILD_TYPE_INIT Debug) -SET (CMAKE_Fortran_FLAGS_INIT "") -SET (CMAKE_Fortran_FLAGS_DEBUG_INIT "/debug:full") -SET (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "/Optimize:2 /Define:NDEBUG") -SET (CMAKE_Fortran_FLAGS_RELEASE_INIT "/Optimize:1 /Define:NDEBUG") -SET (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "/Optimize:1 /debug:full /Define:NDEBUG") +set(CMAKE_BUILD_TYPE_INIT Debug) +set (CMAKE_Fortran_FLAGS_INIT "") +set (CMAKE_Fortran_FLAGS_DEBUG_INIT "/debug:full") +set (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "/Optimize:2 /Define:NDEBUG") +set (CMAKE_Fortran_FLAGS_RELEASE_INIT "/Optimize:1 /Define:NDEBUG") +set (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "/Optimize:1 /debug:full /Define:NDEBUG") -SET (CMAKE_Fortran_STANDARD_LIBRARIES_INIT "user32.lib") +set (CMAKE_Fortran_STANDARD_LIBRARIES_INIT "user32.lib") # executable linker flags -SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") -SET (CMAKE_EXE_LINKER_FLAGS_INIT " /INCREMENTAL:YES") -IF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) - SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept") - SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept") -ELSE (CMAKE_COMPILER_SUPPORTS_PDBTYPE) - SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug") - SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug") -ENDIF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) +set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") +set (CMAKE_EXE_LINKER_FLAGS_INIT " /INCREMENTAL:YES") +if (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept") + set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept") +else () + set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug") + set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug") +endif () -SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) -SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +set (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) diff --git a/Modules/Platform/Windows-wcl386.cmake b/Modules/Platform/Windows-wcl386.cmake index 14b3b81d5..8a03b2972 100644 --- a/Modules/Platform/Windows-wcl386.cmake +++ b/Modules/Platform/Windows-wcl386.cmake @@ -1,122 +1,109 @@ -SET(CMAKE_LIBRARY_PATH_FLAG "libpath ") -SET(CMAKE_LINK_LIBRARY_FLAG "library ") -SET(CMAKE_LINK_LIBRARY_FILE_FLAG "library") - -IF(CMAKE_VERBOSE_MAKEFILE) - SET(CMAKE_WCL_QUIET) - SET(CMAKE_WLINK_QUIET) - SET(CMAKE_LIB_QUIET) -ELSE(CMAKE_VERBOSE_MAKEFILE) - SET(CMAKE_WCL_QUIET "-zq") - SET(CMAKE_WLINK_QUIET "option quiet") - SET(CMAKE_LIB_QUIET "-q") -ENDIF(CMAKE_VERBOSE_MAKEFILE) +set(CMAKE_LIBRARY_PATH_FLAG "libpath ") +set(CMAKE_LINK_LIBRARY_FLAG "library ") +set(CMAKE_LINK_LIBRARY_FILE_FLAG "library") + +if(CMAKE_VERBOSE_MAKEFILE) + set(CMAKE_WCL_QUIET) + set(CMAKE_WLINK_QUIET) + set(CMAKE_LIB_QUIET) +else() + set(CMAKE_WCL_QUIET "-zq") + set(CMAKE_WLINK_QUIET "option quiet") + set(CMAKE_LIB_QUIET "-q") +endif() set(CMAKE_CREATE_WIN32_EXE "system nt_win" ) -SET(CMAKE_CREATE_CONSOLE_EXE "system nt" ) +set(CMAKE_CREATE_CONSOLE_EXE "system nt" ) -SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "debug all" ) -SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT "debug all" ) -SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "debug all" ) -SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT "debug all" ) +set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "debug all" ) +set (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT "debug all" ) +set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "debug all" ) +set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT "debug all" ) set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string. -SET(CMAKE_RC_COMPILER "rc" ) - -SET(CMAKE_BUILD_TYPE_INIT Debug) -SET (CMAKE_CXX_FLAGS_INIT "-w=3 -xs") -SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-br -bm -d2") -SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-br -bm -os -dNDEBUG") -SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-br -bm -ot -dNDEBUG") -SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-br -bm -d2 -ot -dNDEBUG") -SET (CMAKE_C_FLAGS_INIT "-w=3 ") -SET (CMAKE_C_FLAGS_DEBUG_INIT "-br -bm -d2 -od") -SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-br -bm -os -dNDEBUG") -SET (CMAKE_C_FLAGS_RELEASE_INIT "-br -bm -ot -dNDEBUG") -SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-br -bm -d2 -ot -dNDEBUG") -SET (CMAKE_C_STANDARD_LIBRARIES_INIT "library clbrdll.lib library plbrdll.lib library kernel32.lib library user32.lib library gdi32.lib library winspool.lib library comdlg32.lib library advapi32.lib library shell32.lib library ole32.lib library oleaut32.lib library uuid.lib library odbc32.lib library odbccp32.lib") -SET (CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") - -SET(CMAKE_C_CREATE_IMPORT_LIBRARY +set(CMAKE_RC_COMPILER "rc" ) + +set(CMAKE_BUILD_TYPE_INIT Debug) +set (CMAKE_CXX_FLAGS_INIT "-w=3 -xs") +set (CMAKE_CXX_FLAGS_DEBUG_INIT "-br -bm -d2") +set (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-br -bm -os -dNDEBUG") +set (CMAKE_CXX_FLAGS_RELEASE_INIT "-br -bm -ot -dNDEBUG") +set (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-br -bm -d2 -ot -dNDEBUG") +set (CMAKE_C_FLAGS_INIT "-w=3 ") +set (CMAKE_C_FLAGS_DEBUG_INIT "-br -bm -d2 -od") +set (CMAKE_C_FLAGS_MINSIZEREL_INIT "-br -bm -os -dNDEBUG") +set (CMAKE_C_FLAGS_RELEASE_INIT "-br -bm -ot -dNDEBUG") +set (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-br -bm -d2 -ot -dNDEBUG") +set (CMAKE_C_STANDARD_LIBRARIES_INIT "library clbrdll.lib library plbrdll.lib library kernel32.lib library user32.lib library gdi32.lib library winspool.lib library comdlg32.lib library advapi32.lib library shell32.lib library ole32.lib library oleaut32.lib library uuid.lib library odbc32.lib library odbccp32.lib") +set (CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") + +set(CMAKE_C_CREATE_IMPORT_LIBRARY "wlib -c -q -n -b +''") -SET(CMAKE_CXX_CREATE_IMPORT_LIBRARY ${CMAKE_C_CREATE_IMPORT_LIBRARY}) +set(CMAKE_CXX_CREATE_IMPORT_LIBRARY ${CMAKE_C_CREATE_IMPORT_LIBRARY}) -SET(CMAKE_C_LINK_EXECUTABLE +set(CMAKE_C_LINK_EXECUTABLE "wlink ${CMAKE_START_TEMP_FILE} ${CMAKE_WLINK_QUIET} name '' option caseexact file {} ${CMAKE_END_TEMP_FILE}") -SET(CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE}) +set(CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE}) # compile a C++ file into an object file -SET(CMAKE_CXX_COMPILE_OBJECT +set(CMAKE_CXX_COMPILE_OBJECT " ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -dWIN32 -d+ -fo -c -cc++ ${CMAKE_END_TEMP_FILE}") # compile a C file into an object file -SET(CMAKE_C_COMPILE_OBJECT +set(CMAKE_C_COMPILE_OBJECT " ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -dWIN32 -d+ -fo -c -cc ${CMAKE_END_TEMP_FILE}") # preprocess a C source file -SET(CMAKE_C_CREATE_PREPROCESSED_SOURCE +set(CMAKE_C_CREATE_PREPROCESSED_SOURCE " ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -dWIN32 -d+ -fo -pl -cc ${CMAKE_END_TEMP_FILE}") # preprocess a C++ source file -SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE +set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -dWIN32 -d+ -fo -pl -cc++ ${CMAKE_END_TEMP_FILE}") -SET(CMAKE_CXX_CREATE_SHARED_MODULE +set(CMAKE_CXX_CREATE_SHARED_MODULE "wlink ${CMAKE_START_TEMP_FILE} system nt_dll ${CMAKE_WLINK_QUIET} name '' option caseexact file {} ${CMAKE_END_TEMP_FILE}") -SET(CMAKE_CXX_CREATE_SHARED_LIBRARY +set(CMAKE_CXX_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_MODULE} ${CMAKE_CXX_CREATE_IMPORT_LIBRARY}) # create a C shared library -SET(CMAKE_C_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY}) +set(CMAKE_C_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY}) # create a C shared module -SET(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_MODULE}) +set(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_MODULE}) # create a C++ static library -SET(CMAKE_CXX_CREATE_STATIC_LIBRARY "wlib ${CMAKE_LIB_QUIET} -c -n -b '' ") +set(CMAKE_CXX_CREATE_STATIC_LIBRARY "wlib ${CMAKE_LIB_QUIET} -c -n -b '' ") # create a C static library -SET(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY}) - -IF(NOT CMAKE_WATCOM_COMPILER_TESTS_RUN) - SET(CMAKE_WATCOM_COMPILER_TESTS_RUN 1) - SET(testWatcomVersionFile - "${CMAKE_ROOT}/Modules/CMakeTestWatcomVersion.c") - STRING(REGEX REPLACE "/" "\\\\" testWatcomVersionFile "${testWatcomVersionFile}") - MESSAGE(STATUS "Check for Watcom compiler version") - SET(CMAKE_TEST_COMPILER ${CMAKE_C_COMPILER}) - IF (NOT CMAKE_C_COMPILER) - SET(CMAKE_TEST_COMPILER ${CMAKE_CXX_COMPILER}) - ENDIF() - EXECUTE_PROCESS(COMMAND ${CMAKE_TEST_COMPILER} - -q -pc \"${testWatcomVersionFile}\" - OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT - RESULT_VARIABLE CMAKE_COMPILER_RETURN - ) - STRING(REGEX REPLACE "\n" " " compilerVersion "${CMAKE_COMPILER_OUTPUT}") - STRING(REGEX REPLACE ".*VERSION=(.*)" "\\1" - compilerVersion "${compilerVersion}") - IF("${CMAKE_COMPILER_RETURN}" STREQUAL "0") - SET(WATCOM16) - SET(WATCOM17) - SET(WATCOM18) - SET(WATCOM19) - IF("${compilerVersion}" LESS 1270) - SET(WATCOM16 1) - ENDIF() - IF("${compilerVersion}" EQUAL 1270) - SET(WATCOM17 1) - ENDIF() - IF("${compilerVersion}" EQUAL 1280) - SET(WATCOM18 1) - ENDIF() - IF("${compilerVersion}" EQUAL 1290) - SET(WATCOM19 1) - ENDIF() - ENDIF() -ENDIF() +set(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY}) + +if(NOT _CMAKE_WATCOM_VERSION) + set(_CMAKE_WATCOM_VERSION 1) + if(CMAKE_C_COMPILER_VERSION) + set(_compiler_version ${CMAKE_C_COMPILER_VERSION}) + else() + set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION}) + endif() + set(WATCOM16) + set(WATCOM17) + set(WATCOM18) + set(WATCOM19) + if("${_compiler_version}" LESS 12.70) + set(WATCOM16 1) + endif() + if("${_compiler_version}" EQUAL 12.70) + set(WATCOM17 1) + endif() + if("${_compiler_version}" EQUAL 12.80) + set(WATCOM18 1) + endif() + if("${_compiler_version}" EQUAL 12.90) + set(WATCOM19 1) + endif() +endif() diff --git a/Modules/Platform/Windows-windres.cmake b/Modules/Platform/Windows-windres.cmake index 8bc1b15e9..01d6be3df 100644 --- a/Modules/Platform/Windows-windres.cmake +++ b/Modules/Platform/Windows-windres.cmake @@ -1 +1 @@ -SET(CMAKE_RC_COMPILE_OBJECT " -O coff ") +set(CMAKE_RC_COMPILE_OBJECT " -O coff ") diff --git a/Modules/Platform/Windows.cmake b/Modules/Platform/Windows.cmake index 09cb8d303..b158a9dfb 100644 --- a/Modules/Platform/Windows.cmake +++ b/Modules/Platform/Windows.cmake @@ -1,36 +1,36 @@ -SET(WIN32 1) +set(WIN32 1) -SET(CMAKE_STATIC_LIBRARY_PREFIX "") -SET(CMAKE_STATIC_LIBRARY_SUFFIX ".lib") -SET(CMAKE_SHARED_LIBRARY_PREFIX "") # lib -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") # .so -SET(CMAKE_IMPORT_LIBRARY_PREFIX "") -SET(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib") -SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe -SET(CMAKE_LINK_LIBRARY_SUFFIX ".lib") -SET(CMAKE_DL_LIBS "") +set(CMAKE_STATIC_LIBRARY_PREFIX "") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib") +set(CMAKE_SHARED_LIBRARY_PREFIX "") # lib +set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") # .so +set(CMAKE_IMPORT_LIBRARY_PREFIX "") +set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib") +set(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +set(CMAKE_LINK_LIBRARY_SUFFIX ".lib") +set(CMAKE_DL_LIBS "") -SET(CMAKE_FIND_LIBRARY_PREFIXES "") -SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") +set(CMAKE_FIND_LIBRARY_PREFIXES "") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") # for borland make long command lines are redirected to a file # with the following syntax, see Windows-bcc32.cmake for use -IF(CMAKE_GENERATOR MATCHES "Borland") - SET(CMAKE_START_TEMP_FILE "@&&|\n") - SET(CMAKE_END_TEMP_FILE "\n|") -ENDIF(CMAKE_GENERATOR MATCHES "Borland") +if(CMAKE_GENERATOR MATCHES "Borland") + set(CMAKE_START_TEMP_FILE "@&&|\n") + set(CMAKE_END_TEMP_FILE "\n|") +endif() # for nmake make long command lines are redirected to a file # with the following syntax, see Windows-bcc32.cmake for use -IF(CMAKE_GENERATOR MATCHES "NMake") - SET(CMAKE_START_TEMP_FILE "@<<\n") - SET(CMAKE_END_TEMP_FILE "\n<<") -ENDIF(CMAKE_GENERATOR MATCHES "NMake") +if(CMAKE_GENERATOR MATCHES "NMake") + set(CMAKE_START_TEMP_FILE "@<<\n") + set(CMAKE_END_TEMP_FILE "\n<<") +endif() -INCLUDE(Platform/WindowsPaths) +include(Platform/WindowsPaths) # uncomment these out to debug nmake and borland makefiles -#SET(CMAKE_START_TEMP_FILE "") -#SET(CMAKE_END_TEMP_FILE "") -#SET(CMAKE_VERBOSE_MAKEFILE 1) +#set(CMAKE_START_TEMP_FILE "") +#set(CMAKE_END_TEMP_FILE "") +#set(CMAKE_VERBOSE_MAKEFILE 1) diff --git a/Modules/Platform/WindowsCE-MSVC-C.cmake b/Modules/Platform/WindowsCE-MSVC-C.cmake new file mode 100644 index 000000000..ce8060bed --- /dev/null +++ b/Modules/Platform/WindowsCE-MSVC-C.cmake @@ -0,0 +1 @@ +include(Platform/Windows-MSVC-C) diff --git a/Modules/Platform/WindowsCE-MSVC-CXX.cmake b/Modules/Platform/WindowsCE-MSVC-CXX.cmake new file mode 100644 index 000000000..281eadc10 --- /dev/null +++ b/Modules/Platform/WindowsCE-MSVC-CXX.cmake @@ -0,0 +1 @@ +include(Platform/Windows-MSVC-CXX) diff --git a/Modules/Platform/WindowsCE-MSVC.cmake b/Modules/Platform/WindowsCE-MSVC.cmake new file mode 100644 index 000000000..d28b4aba0 --- /dev/null +++ b/Modules/Platform/WindowsCE-MSVC.cmake @@ -0,0 +1 @@ +include(Platform/Windows-MSVC) diff --git a/Modules/Platform/WindowsCE.cmake b/Modules/Platform/WindowsCE.cmake new file mode 100644 index 000000000..65b2eaed4 --- /dev/null +++ b/Modules/Platform/WindowsCE.cmake @@ -0,0 +1 @@ +include(Platform/Windows) diff --git a/Modules/Platform/WindowsPaths.cmake b/Modules/Platform/WindowsPaths.cmake index c7b15b342..bd31da021 100644 --- a/Modules/Platform/WindowsPaths.cmake +++ b/Modules/Platform/WindowsPaths.cmake @@ -17,10 +17,10 @@ # "CMakeSystemSpecificInformation.cmake" already included it. # The extra inclusion is a work-around documented next to the include() # call, so this can be removed when the work-around is removed. -IF(__WINDOWS_PATHS_INCLUDED) - RETURN() -ENDIF() -SET(__WINDOWS_PATHS_INCLUDED 1) +if(__WINDOWS_PATHS_INCLUDED) + return() +endif() +set(__WINDOWS_PATHS_INCLUDED 1) # Add the program-files folder(s) to the list of installation # prefixes. @@ -42,39 +42,39 @@ SET(__WINDOWS_PATHS_INCLUDED 1) # ENV{ProgramFiles(x86)} = # ENV{ProgramFiles} = [C:\Program Files (x86)] # ENV{ProgramW6432} = [C:\Program Files] -IF(DEFINED "ENV{ProgramW6432}") +if(DEFINED "ENV{ProgramW6432}") # 32-bit binary on 64-bit windows. # The 64-bit program files are in ProgramW6432. - LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramW6432}") + list(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramW6432}") # The 32-bit program files are in ProgramFiles. - IF(DEFINED "ENV{ProgramFiles}") - LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramFiles}") - ENDIF() -ELSE() + if(DEFINED "ENV{ProgramFiles}") + list(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramFiles}") + endif() +else() # 64-bit binary, or 32-bit binary on 32-bit windows. - IF(DEFINED "ENV{ProgramFiles}") - LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramFiles}") - ENDIF() - IF(DEFINED "ENV{ProgramFiles(x86)}") + if(DEFINED "ENV{ProgramFiles}") + list(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramFiles}") + endif() + if(DEFINED "ENV{ProgramFiles(x86)}") # 64-bit binary. 32-bit program files are in ProgramFiles(x86). - LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramFiles(x86)}") - ELSEIF(DEFINED "ENV{SystemDrive}") + list(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramFiles(x86)}") + elseif(DEFINED "ENV{SystemDrive}") # Guess the 32-bit program files location. - IF(EXISTS "$ENV{SystemDrive}/Program Files (x86)") - LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH + if(EXISTS "$ENV{SystemDrive}/Program Files (x86)") + list(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{SystemDrive}/Program Files (x86)") - ENDIF() - ENDIF() -ENDIF() + endif() + endif() +endif() # Add the CMake install location. -GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) -GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) -LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "${_CMAKE_INSTALL_DIR}") +get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) +get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) +list(APPEND CMAKE_SYSTEM_PREFIX_PATH "${_CMAKE_INSTALL_DIR}") # Add other locations. -LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH +list(APPEND CMAKE_SYSTEM_PREFIX_PATH # Project install destination. "${CMAKE_INSTALL_PREFIX}" @@ -82,15 +82,15 @@ LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH / ) -LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH ) # mingw can also link against dlls which can also be in /bin, so list this too -LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH "${CMAKE_INSTALL_PREFIX}/bin" "${_CMAKE_INSTALL_DIR}/bin" /bin ) -LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH +list(APPEND CMAKE_SYSTEM_PROGRAM_PATH ) diff --git a/Modules/Platform/Xenix.cmake b/Modules/Platform/Xenix.cmake index cf9d17bfd..47852f8e1 100644 --- a/Modules/Platform/Xenix.cmake +++ b/Modules/Platform/Xenix.cmake @@ -1,2 +1,2 @@ -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) diff --git a/Modules/Platform/cl.cmake b/Modules/Platform/cl.cmake deleted file mode 100644 index c0f014b58..000000000 --- a/Modules/Platform/cl.cmake +++ /dev/null @@ -1,62 +0,0 @@ -SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:") -SET(CMAKE_LINK_LIBRARY_FLAG "") -SET(MSVC 1) - -# hack: if a new cmake (which uses CMAKE__LINKER) runs on an old build tree -# (where link was hardcoded) and where CMAKE_LINKER isn't in the cache -# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun) -# hardcode CMAKE_LINKER here to link, so it behaves as it did before, Alex -IF(NOT DEFINED CMAKE_LINKER) - SET(CMAKE_LINKER link) -ENDIF(NOT DEFINED CMAKE_LINKER) - -IF(CMAKE_VERBOSE_MAKEFILE) - SET(CMAKE_CL_NOLOGO) -ELSE(CMAKE_VERBOSE_MAKEFILE) - SET(CMAKE_CL_NOLOGO "/nologo") -ENDIF(CMAKE_VERBOSE_MAKEFILE) -# create a shared C++ library -SET(CMAKE_CXX_CREATE_SHARED_LIBRARY - " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out: /implib: /pdb: /dll /version:. ${CMAKE_END_TEMP_FILE}") -SET(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY}) - -# create a C shared library -SET(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}") - -# create a C shared module -SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}") - -# create a C++ static library -SET(CMAKE_CXX_CREATE_STATIC_LIBRARY " /lib ${CMAKE_CL_NOLOGO} /out: ") - -# create a C static library -SET(CMAKE_C_CREATE_STATIC_LIBRARY "${CMAKE_CXX_CREATE_STATIC_LIBRARY}") - -# compile a C++ file into an object file -SET(CMAKE_CXX_COMPILE_OBJECT - " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /TP /Fo /Fd -c ${CMAKE_END_TEMP_FILE}") - -# compile a C file into an object file -SET(CMAKE_C_COMPILE_OBJECT - " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /Fo /Fd -c ${CMAKE_END_TEMP_FILE}") - -SET(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) -SET(CMAKE_C_LINK_EXECUTABLE - " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe /Fd -link /implib: /version:. ${CMAKE_END_TEMP_FILE}") - -SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1) -SET(CMAKE_CXX_LINK_EXECUTABLE - " ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /Fe /Fd -link /implib: /version:. ${CMAKE_END_TEMP_FILE}") - -SET(CMAKE_C_CREATE_PREPROCESSED_SOURCE - " > ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} -E ${CMAKE_END_TEMP_FILE}") - -SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE - " > ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /TP -E ${CMAKE_END_TEMP_FILE}") - -SET(CMAKE_C_CREATE_ASSEMBLY_SOURCE - " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /FAs /FoNUL /Fa /c ${CMAKE_END_TEMP_FILE}") - -SET(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE - " ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /TP /FAs /FoNUL /Fa /c ${CMAKE_END_TEMP_FILE}") - diff --git a/Modules/Platform/eCos.cmake b/Modules/Platform/eCos.cmake index b437c1a9b..a20382692 100644 --- a/Modules/Platform/eCos.cmake +++ b/Modules/Platform/eCos.cmake @@ -1,65 +1,65 @@ # support for eCos http://ecos.sourceware.org # Guard against multiple inclusion, which e.g. leads to multiple calls to add_definition() #12987 -IF(__ECOS_CMAKE_INCLUDED) - RETURN() -ENDIF() -SET(__ECOS_CMAKE_INCLUDED TRUE) +if(__ECOS_CMAKE_INCLUDED) + return() +endif() +set(__ECOS_CMAKE_INCLUDED TRUE) -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared -SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath -SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty +set(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath +set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty -SET(CMAKE_LINK_LIBRARY_SUFFIX "") -SET(CMAKE_STATIC_LIBRARY_PREFIX "lib") -SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a") -SET(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib -SET(CMAKE_SHARED_LIBRARY_SUFFIX ".a") # .a -SET(CMAKE_EXECUTABLE_SUFFIX ".elf") # same suffix as if built using UseEcos.cmake -SET(CMAKE_DL_LIBS "" ) +set(CMAKE_LINK_LIBRARY_SUFFIX "") +set(CMAKE_STATIC_LIBRARY_PREFIX "lib") +set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib +set(CMAKE_SHARED_LIBRARY_SUFFIX ".a") # .a +set(CMAKE_EXECUTABLE_SUFFIX ".elf") # same suffix as if built using UseEcos.cmake +set(CMAKE_DL_LIBS "" ) -SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") -SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) # eCos can be built only with gcc -GET_PROPERTY(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE) -IF(CMAKE_C_COMPILER AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "GNU" AND NOT _IN_TC) - MESSAGE(FATAL_ERROR "GNU gcc is required for eCos") -ENDIF(CMAKE_C_COMPILER AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "GNU" AND NOT _IN_TC) -IF(CMAKE_CXX_COMPILER AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" AND NOT _IN_TC) - MESSAGE(FATAL_ERROR "GNU g++ is required for eCos") -ENDIF(CMAKE_CXX_COMPILER AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" AND NOT _IN_TC) +get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE) +if(CMAKE_C_COMPILER AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "GNU" AND NOT _IN_TC) + message(FATAL_ERROR "GNU gcc is required for eCos") +endif() +if(CMAKE_CXX_COMPILER AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" AND NOT _IN_TC) + message(FATAL_ERROR "GNU g++ is required for eCos") +endif() # find eCos system files -FIND_PATH(ECOS_SYSTEM_CONFIG_HEADER_PATH NAMES pkgconf/system.h) -FIND_LIBRARY(ECOS_SYSTEM_TARGET_LIBRARY NAMES libtarget.a) +find_path(ECOS_SYSTEM_CONFIG_HEADER_PATH NAMES pkgconf/system.h) +find_library(ECOS_SYSTEM_TARGET_LIBRARY NAMES libtarget.a) -IF(NOT ECOS_SYSTEM_CONFIG_HEADER_PATH) - MESSAGE(FATAL_ERROR "Could not find eCos pkgconf/system.h. Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly.") -ENDIF(NOT ECOS_SYSTEM_CONFIG_HEADER_PATH) +if(NOT ECOS_SYSTEM_CONFIG_HEADER_PATH) + message(FATAL_ERROR "Could not find eCos pkgconf/system.h. Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly.") +endif() -IF(NOT ECOS_SYSTEM_TARGET_LIBRARY) - MESSAGE(FATAL_ERROR "Could not find eCos \"libtarget.a\". Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly.") -ENDIF(NOT ECOS_SYSTEM_TARGET_LIBRARY) +if(NOT ECOS_SYSTEM_TARGET_LIBRARY) + message(FATAL_ERROR "Could not find eCos \"libtarget.a\". Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly.") +endif() -GET_FILENAME_COMPONENT(ECOS_LIBTARGET_DIRECTORY "${ECOS_SYSTEM_TARGET_LIBRARY}" PATH) -INCLUDE_DIRECTORIES(${ECOS_SYSTEM_CONFIG_HEADER_PATH}) -ADD_DEFINITIONS(-D__ECOS__=1 -D__ECOS=1) +get_filename_component(ECOS_LIBTARGET_DIRECTORY "${ECOS_SYSTEM_TARGET_LIBRARY}" PATH) +include_directories(${ECOS_SYSTEM_CONFIG_HEADER_PATH}) +add_definitions(-D__ECOS__=1 -D__ECOS=1) # special link commands for eCos executables -SET(CMAKE_CXX_LINK_EXECUTABLE " -o -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld ") -SET(CMAKE_C_LINK_EXECUTABLE " -o -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld ") +set(CMAKE_CXX_LINK_EXECUTABLE " -o -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld ") +set(CMAKE_C_LINK_EXECUTABLE " -o -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld ") # eCos doesn't support shared libs -SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) +set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) -SET(CMAKE_CXX_LINK_SHARED_LIBRARY ) -SET(CMAKE_CXX_LINK_MODULE_LIBRARY ) -SET(CMAKE_C_LINK_SHARED_LIBRARY ) -SET(CMAKE_C_LINK_MODULE_LIBRARY ) +set(CMAKE_CXX_LINK_SHARED_LIBRARY ) +set(CMAKE_CXX_LINK_MODULE_LIBRARY ) +set(CMAKE_C_LINK_SHARED_LIBRARY ) +set(CMAKE_C_LINK_MODULE_LIBRARY ) diff --git a/Modules/Platform/gas.cmake b/Modules/Platform/gas.cmake index c34aef17a..7d2bc8454 100644 --- a/Modules/Platform/gas.cmake +++ b/Modules/Platform/gas.cmake @@ -1,19 +1,19 @@ -IF(UNIX) - SET(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .o) -ELSE(UNIX) - SET(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .obj) -ENDIF(UNIX) +if(UNIX) + set(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .o) +else() + set(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .obj) +endif() -SET(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT " -o ") +set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT " -o ") -SET(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY +set(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY " cr " " ") -SET(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE +set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE " -o ") # to be done -SET(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY) -SET(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE) +set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY) +set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE) diff --git a/Modules/Platform/kFreeBSD.cmake b/Modules/Platform/kFreeBSD.cmake index c1295fb0d..c1db2594d 100644 --- a/Modules/Platform/kFreeBSD.cmake +++ b/Modules/Platform/kFreeBSD.cmake @@ -1,4 +1,4 @@ # kFreeBSD looks just like Linux. -INCLUDE(Platform/Linux) +include(Platform/Linux) -SET(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-kfreebsd-gnu[a-z0-9_]*") +set(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-kfreebsd-gnu[a-z0-9_]*") diff --git a/Modules/Platform/syllable.cmake b/Modules/Platform/syllable.cmake index 2d11d08b3..69c108db0 100644 --- a/Modules/Platform/syllable.cmake +++ b/Modules/Platform/syllable.cmake @@ -9,25 +9,25 @@ # @bindir@/. and @bindir@/../lib are in DLL_PATH -SET(CMAKE_DL_LIBS "dl") -SET(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") -SET(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic -SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared -SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib -SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") -#SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +set(CMAKE_DL_LIBS "dl") +set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") +set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +#set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") # 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 "-Wl,-Bstatic") - SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") -ENDFOREACH(type) +foreach(type SHARED_LIBRARY SHARED_MODULE EXE) + set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic") + set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic") +endforeach() -INCLUDE(Platform/UnixPaths) +include(Platform/UnixPaths) # these are Syllable specific: -LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH /usr/indexes) +list(APPEND CMAKE_SYSTEM_PREFIX_PATH /usr/indexes) -- cgit v1.2.3