This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via 29dd119cf5166a7b9b4d10744ec92005b361cb5e (commit) via fa9d31242b492e56712a40266b6e8991d4843979 (commit) from 6a4cc0e72d2366f1386092e54bab2bfd20d2b65b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=29dd119cf5166a7b9b4d10744ec92005b361cb5e commit 29dd119cf5166a7b9b4d10744ec92005b361cb5e Merge: 6a4cc0e fa9d312 Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Thu Apr 17 02:57:07 2014 -0400 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Thu Apr 17 02:57:07 2014 -0400 Merge topic 'hp-cpp98-tests' into next fa9d3124 HP aCC: record compiler flag for Ansi C++98 support for version 3.80 onwards http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fa9d31242b492e56712a40266b6e8991d4843979 commit fa9d31242b492e56712a40266b6e8991d4843979 Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Tue Apr 15 18:52:30 2014 +0200 Commit: Rolf Eike Beer <e...@sf-mail.de> CommitDate: Thu Apr 17 08:56:48 2014 +0200 HP aCC: record compiler flag for Ansi C++98 support for version 3.80 onwards Old versions of aCC need a special compiler flag to get full C++98 template support as e.g. CMake itself or the Complex and ComplexOneConfig tests need. For merge simplicity this patch is based on master since it doesn't collide with anything from the cxx11-features branch, which this feature depends on. This branch should only go into master after the CXX_STANDARD variable is merged to master, and this paragraph should be removed from the commit message then. diff --git a/Modules/Compiler/HP-CXX.cmake b/Modules/Compiler/HP-CXX.cmake index 44470ca..6411dac 100644 --- a/Modules/Compiler/HP-CXX.cmake +++ b/Modules/Compiler/HP-CXX.cmake @@ -2,3 +2,12 @@ set(CMAKE_CXX_VERBOSE_FLAG "-v") set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") + +# HP aCC since version 3.80 supports the flag +hpxstd98 to get ANSI C++98 +# template support. It is known that version 6.25 doesn't need that flag. +# Current assumption: the flag is needed for every version from 3.80 to 4 +# to get it working. +if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4 AND + NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.80) + set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "+hpxstd98") +endif() diff --git a/Tests/AliasTarget/CMakeLists.txt b/Tests/AliasTarget/CMakeLists.txt index 9467fae..6a2a3a9 100644 --- a/Tests/AliasTarget/CMakeLists.txt +++ b/Tests/AliasTarget/CMakeLists.txt @@ -1,7 +1,15 @@ - cmake_minimum_required(VERSION 2.8.11) project(AliasTarget) +set(CMAKE_CXX_STANDARD 98) + +# Those version of the HP compiler that need a flag to get proper C++98 +# template support need also a flag to use the newer C++ library. +if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND + CMAKE_CXX98_STANDARD_COMPILE_OPTION STREQUAL "+hpxstd98") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA") +endif () + add_library(foo SHARED empty.cpp) add_library(PREFIX::Foo ALIAS foo) add_library(Another::Alias ALIAS foo) diff --git a/Tests/Complex/CMakeLists.txt b/Tests/Complex/CMakeLists.txt index d250f53..bebb70f 100644 --- a/Tests/Complex/CMakeLists.txt +++ b/Tests/Complex/CMakeLists.txt @@ -392,6 +392,17 @@ if(NOT RESULT STREQUAL "a[b]c[d]e") "string(REGEX REPLACE ... ) test failed (\"${RESULT}\" v. \"a[b]c[d]e\")") endif() +# +# This tests needs Ansi C++98 +# +set(CMAKE_CXX_STANDARD 98) + +# Those version of the HP compiler that need a flag to get proper C++98 +# template support need also a flag to use the newer C++ library. +if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND + CMAKE_CXX98_STANDARD_COMPILE_OPTION STREQUAL "+hpxstd98") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA") +endif () # # Create the libs and the main exe diff --git a/Tests/ComplexOneConfig/CMakeLists.txt b/Tests/ComplexOneConfig/CMakeLists.txt index bb00341..118c7fc 100644 --- a/Tests/ComplexOneConfig/CMakeLists.txt +++ b/Tests/ComplexOneConfig/CMakeLists.txt @@ -362,6 +362,17 @@ if(NOT RESULT STREQUAL "a[b]c[d]e") "string(REGEX REPLACE ... ) test failed (\"${RESULT}\" v. \"a[b]c[d]e\")") endif() +# +# This tests needs Ansi C++98 +# +set(CMAKE_CXX_STANDARD 98) + +# Those version of the HP compiler that need a flag to get proper C++98 +# template support need also a flag to use the newer C++ library. +if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND + CMAKE_CXX98_STANDARD_COMPILE_OPTION STREQUAL "+hpxstd98") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA") +endif () # # Create the libs and the main exe diff --git a/Tests/Module/GenerateExportHeader/CMakeLists.txt b/Tests/Module/GenerateExportHeader/CMakeLists.txt index bf867a9..bf153a8 100644 --- a/Tests/Module/GenerateExportHeader/CMakeLists.txt +++ b/Tests/Module/GenerateExportHeader/CMakeLists.txt @@ -57,6 +57,15 @@ endif() include(GenerateExportHeader) +set(CMAKE_CXX_STANDARD 98) + +# Those version of the HP compiler that need a flag to get proper C++98 +# template support need also a flag to use the newer C++ library. +if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND + CMAKE_CXX98_STANDARD_COMPILE_OPTION STREQUAL "+hpxstd98") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA") +endif () + add_subdirectory(lib_shared_and_static) add_compiler_export_flags() diff --git a/Tests/Plugin/CMakeLists.txt b/Tests/Plugin/CMakeLists.txt index c6ed15d..0a17c5b 100644 --- a/Tests/Plugin/CMakeLists.txt +++ b/Tests/Plugin/CMakeLists.txt @@ -24,6 +24,16 @@ include_directories( ${Plugin_SOURCE_DIR}/include ) +# We need proper C++98 support from the compiler +set(CMAKE_CXX_STANDARD 98) + +# Those version of the HP compiler that need a flag to get proper C++98 +# template support need also a flag to use the newer C++ library. +if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND + CMAKE_CXX98_STANDARD_COMPILE_OPTION STREQUAL "+hpxstd98") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA") +endif () + # Create an executable that exports an API for use by plugins. add_executable(example_exe src/example_exe.cxx) set_target_properties(example_exe PROPERTIES ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits