From 5f0a25955faaa40b65eba072bd4a87e40dd82297 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 2 Mar 2011 17:24:36 -0500 Subject: Factor HP compiler flags into per-platform/per-compiler files Move HP flags out of Platform/HP-UX.cmake into platform-specific compiler information files "Platform/HP-UX-HP-.cmake". Factor common values into "Platform/HP-UX-HP.cmake" and load it from the per-language files. --- Modules/Platform/HP-UX-HP-C.cmake | 11 ++++++ Modules/Platform/HP-UX-HP-CXX.cmake | 16 ++++++++ Modules/Platform/HP-UX-HP-Fortran.cmake | 7 ++++ Modules/Platform/HP-UX-HP.cmake | 33 +++++++++++++++++ Modules/Platform/HP-UX.cmake | 65 --------------------------------- 5 files changed, 67 insertions(+), 65 deletions(-) create mode 100644 Modules/Platform/HP-UX-HP-C.cmake create mode 100644 Modules/Platform/HP-UX-HP-CXX.cmake create mode 100644 Modules/Platform/HP-UX-HP-Fortran.cmake create mode 100644 Modules/Platform/HP-UX-HP.cmake diff --git a/Modules/Platform/HP-UX-HP-C.cmake b/Modules/Platform/HP-UX-HP-C.cmake new file mode 100644 index 0000000..d83e01b --- /dev/null +++ b/Modules/Platform/HP-UX-HP-C.cmake @@ -0,0 +1,11 @@ +include(Platform/HP-UX-HP) +__hpux_compiler_hp(C) + +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-E -b +nodefaultrpath -L/usr/lib") + +set(CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") +set(CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") +set(CMAKE_C_COMPILE_OBJECT " -Aa -Ae -o -c ") + +# use ld directly to create shared libraries for hp cc +set(CMAKE_C_CREATE_SHARED_LIBRARY "ld -o ") diff --git a/Modules/Platform/HP-UX-HP-CXX.cmake b/Modules/Platform/HP-UX-HP-CXX.cmake new file mode 100644 index 0000000..8f3c70c --- /dev/null +++ b/Modules/Platform/HP-UX-HP-CXX.cmake @@ -0,0 +1,16 @@ +include(Platform/HP-UX-HP) +__hpux_compiler_hp(CXX) + +set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "+Z -Wl,-E,+nodefaultrpath -b -L/usr/lib") + +set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") +set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE + " -S " + "mv `basename \"\" | sed 's/\\.[^./]*$$//'`.s " + "rm -f `basename \"\" | sed 's/\\.[^./]*$$//'`.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 "-g") diff --git a/Modules/Platform/HP-UX-HP-Fortran.cmake b/Modules/Platform/HP-UX-HP-Fortran.cmake new file mode 100644 index 0000000..5a3ab19 --- /dev/null +++ b/Modules/Platform/HP-UX-HP-Fortran.cmake @@ -0,0 +1,7 @@ +include(Platform/HP-UX-HP) +__hpux_compiler_hp(Fortran) + +set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-E -b -L/usr/lib") + +set(CMAKE_Fortran_CREATE_SHARED_LIBRARY + "ld -o ") diff --git a/Modules/Platform/HP-UX-HP.cmake b/Modules/Platform/HP-UX-HP.cmake new file mode 100644 index 0000000..772edb4 --- /dev/null +++ b/Modules/Platform/HP-UX-HP.cmake @@ -0,0 +1,33 @@ + +#============================================================================= +# Copyright 2002-2011 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +# This module is shared by multiple languages; use include blocker. +if(__HPUX_COMPILER_HP) + return() +endif() +set(__HPUX_COMPILER_HP 1) +set(_Wl_C "") +set(_Wl_CXX "-Wl,") +set(_Wl_Fortran "") + +macro(__hpux_compiler_hp lang) + set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "+Z") + set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,+s,-E,+nodefaultrpath") + set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "${_Wl_${lang}}+b") + set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":") + set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "${_Wl_${lang}}+h") + set(CMAKE_EXECUTABLE_RUNTIME_${lang}_FLAG "-Wl,+b") + + set(CMAKE_${lang}_FLAGS_INIT "") +endmacro() diff --git a/Modules/Platform/HP-UX.cmake b/Modules/Platform/HP-UX.cmake index 9d357c9..ab3dc22 100644 --- a/Modules/Platform/HP-UX.cmake +++ b/Modules/Platform/HP-UX.cmake @@ -15,57 +15,6 @@ SET(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) # specifying the file path. SET(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) -# fortran -IF(CMAKE_COMPILER_IS_GNUG77) -ELSE(CMAKE_COMPILER_IS_GNUG77) - # use ld directly to create shared libraries for hp cc - SET(CMAKE_Fortran_CREATE_SHARED_LIBRARY - "ld -o ") - SET(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "+Z") # -pic - SET(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-E -b -L/usr/lib") # -shared - SET(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "-Wl,+s,-E,+nodefaultrpath") # +s, flag for exe link to use shared lib - SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG "+b") # -rpath - SET(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ":") # : or empty - SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "+h") - SET(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG "-Wl,+b") # -rpath -ENDIF(CMAKE_COMPILER_IS_GNUG77) - -# C compiler -IF(CMAKE_COMPILER_IS_GNUCC) -ELSE(CMAKE_COMPILER_IS_GNUCC) - # hp cc - # use ld directly to create shared libraries for hp cc - SET(CMAKE_C_CREATE_SHARED_LIBRARY - "ld -o ") - SET(CMAKE_SHARED_LIBRARY_C_FLAGS "+Z") # -pic - SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-E -b +nodefaultrpath -L/usr/lib") # -shared - SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,+s,-E,+nodefaultrpath") # +s, flag for exe link to use shared lib - SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "+b") # -rpath - SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty - SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "+h") - SET(CMAKE_EXECUTABLE_RUNTIME_C_FLAG "-Wl,+b") # -rpath - SET(CMAKE_C_FLAGS_INIT "") - SET(CMAKE_C_COMPILE_OBJECT - " -Aa -Ae -o -c ") -ENDIF(CMAKE_COMPILER_IS_GNUCC) - -# CXX compiler -IF(CMAKE_COMPILER_IS_GNUCXX) -ELSE(CMAKE_COMPILER_IS_GNUCXX) - # for hp aCC - SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "+Z") # -pic - SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "+Z -Wl,-E,+nodefaultrpath -b -L/usr/lib") # -shared - SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-Wl,+s,-E,+nodefaultrpath") # +s, flag for exe link to use shared lib - SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,+b") # -rpath - SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":") # : or empty - SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,+h") - SET(CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG "-Wl,+b") # -rpath - 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 "-g") -ENDIF(CMAKE_COMPILER_IS_GNUCXX) # set flags for gcc support INCLUDE(Platform/UnixPaths) @@ -81,20 +30,6 @@ LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH /usr/lib/hpux64) LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /usr/lib/hpux32 /usr/lib/hpux64) -IF(NOT CMAKE_COMPILER_IS_GNUCC) - SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") - SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") -ENDIF(NOT CMAKE_COMPILER_IS_GNUCC) - -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 " - "rm -f `basename \"\" | sed 's/\\.[^./]*$$//'`.o" - ) -ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) - # Initialize C and CXX 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 -- cgit v0.12