diff options
author | Rolf Eike Beer <eike@sf-mail.de> | 2014-03-27 21:30:23 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-04-04 17:31:28 (GMT) |
commit | be53734d3c3d5e74ea2d119e4c15c66121283bca (patch) | |
tree | a85f10f61190684748492411b8040fa925a3c9af | |
parent | f4b9c6bbebb0757db2b87efd2239a8eb44d24092 (diff) | |
download | CMake-be53734d3c3d5e74ea2d119e4c15c66121283bca.zip CMake-be53734d3c3d5e74ea2d119e4c15c66121283bca.tar.gz CMake-be53734d3c3d5e74ea2d119e4c15c66121283bca.tar.bz2 |
CompileFlags: Add -AA +hpxstd98 on HP-UX 11.11 with aCC
These flags are needed to enable support for C++98. Also teach the
'bootstrap' script to add them if necessary.
-rw-r--r-- | CompileFlags.cmake | 8 | ||||
-rwxr-xr-x | bootstrap | 25 |
2 files changed, 32 insertions, 1 deletions
diff --git a/CompileFlags.cmake b/CompileFlags.cmake index 332d742..873af8f 100644 --- a/CompileFlags.cmake +++ b/CompileFlags.cmake @@ -53,6 +53,14 @@ if(CMAKE_SYSTEM MATCHES "OSF1-V.*") endif() endif() +if(CMAKE_SYSTEM_NAME MATCHES "HP-UX" AND CMAKE_CXX_COMPILER_ID MATCHES "HP") + # it is known that version 3.85 fails and 6.25 works without these flags + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4) + # use new C++ library and improved template support + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA +hpxstd98") + endif() +endif() + # use the ansi CXX compile flag for building cmake if (CMAKE_ANSI_CXXFLAGS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_ANSI_CXXFLAGS}") @@ -1086,8 +1086,8 @@ if [ "x${cmake_cxx_compiler_is_gnu}" != "x1" ]; then cmake_test_flags= # If we are on HP-UX, check for -Ae for the C compiler. - cmake_test_flags="-Ae" if [ "x${cmake_system}" = "xHP-UX" ]; then + cmake_test_flags="-Ae" TMPFILE=`cmake_tmp_file` echo ' int main(int argc, char** argv) { (void)argc; (void)argv; return 0; } @@ -1108,6 +1108,29 @@ if [ "x${cmake_cxx_compiler_is_gnu}" != "x1" ]; then echo "${cmake_c_compiler} does not need ${cmake_test_flags}" fi rm -f "${TMPFILE}.c" + echo ' + #include <iostream> + int main(int argc, char** argv) { + for(int i=0; i < 1; ++i); + for(int i=0; i < 1; ++i); + (void)argc; (void)argv; return 0; } +' > ${TMPFILE}.cxx + cmake_need_AAstd98=0 + cmake_test_flags="-AA +hpxstd98" + if cmake_try_run "${cmake_cxx_compiler}" "${cmake_cxx_flags}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then + : + else + if cmake_try_run "${cmake_cxx_compiler}" \ + "${cmake_cxx_flags} ${cmake_test_flags}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then + cmake_need_AAstd98=1 + fi + fi + if [ "x${cmake_need_AAstd98}" = "x1" ]; then + cmake_cxx_flags="${cmake_cxx_flags} ${cmake_test_flags}" + echo "${cmake_cxx_compiler} needs ${cmake_test_flags}" + else + echo "${cmake_cxx_compiler} does not need ${cmake_test_flags}" + fi fi cmake_test_flags= fi |