chiark / gitweb /
Detect libcpp
authorJulien Schueller <schueller@phimeca.com>
Thu, 27 Oct 2016 08:29:05 +0000 (10:29 +0200)
committerJulien Schueller <schueller@phimeca.com>
Thu, 27 Oct 2016 09:39:34 +0000 (11:39 +0200)
.travis.yml
CMakeLists.txt

index 84e040e162fcb52dbe61af866f3d400677d406cb..fd3ae488744253173994780e1ee2062bf623e971 100644 (file)
@@ -32,11 +32,10 @@ matrix:
 
     - os: osx
       install:
-        - brew tap homebrew/python
         - brew tap homebrew/science
         - brew update
         - brew install swig octave guile || echo "nope"
       script:
         - mkdir build && pushd build
-        - cmake -DCMAKE_INSTALL_PREFIX=~/.local -DCMAKE_CXX_FLAGS="-std=c++11" -DWITH_CXX=ON -DPYTHON_EXECUTABLE=/usr/bin/python ..
+        - cmake -DCMAKE_INSTALL_PREFIX=~/.local -DWITH_CXX=ON -DPYTHON_EXECUTABLE=/usr/bin/python ..
         - make install && make tests && ctest --output-on-failure
index 75d6029c93b7961323281e4ac50dc34c44bca792..11910eb6c3aeb561aec554d102e595aaf4ff1d8c 100644 (file)
@@ -35,7 +35,7 @@ if (WITH_CXX)
   set (NLOPT_SUFFIX _cxx)\r
 endif ()\r
 \r
-if (WITH_CXX OR BUILD_PYTHON)\r
+if (WITH_CXX OR BUILD_PYTHON OR BUILD_GUILE OR BUILD_OCTAVE)\r
   enable_language (CXX)\r
 endif ()\r
 \r
@@ -70,6 +70,8 @@ include (CheckIncludeFiles)
 include (CheckFunctionExists)\r
 include (CheckTypeSize)\r
 include (CheckCCompilerFlag)\r
+include (CheckCXXSymbolExists)\r
+include (CheckCXXCompilerFlag)\r
 \r
 #==============================================================================\r
 # COMPILATION CHECKINGS and CONFIGURATION GENERATION\r
@@ -132,6 +134,16 @@ if (WITH_THREADLOCAL AND NOT DEFINED HAVE_THREAD_LOCAL_STORAGE)
   endforeach()\r
 endif ()\r
 \r
+if (WITH_CXX OR BUILD_PYTHON OR BUILD_GUILE OR BUILD_OCTAVE)\r
+  check_cxx_symbol_exists (_LIBCPP_VERSION string SYSTEM_HAS_LIBCPP)\r
+  if (SYSTEM_HAS_LIBCPP)\r
+    check_cxx_compiler_flag ("-std=c++11" SUPPORTS_STDCXX11)\r
+    if (SUPPORTS_STDCXX11)\r
+      set (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")\r
+    endif ()\r
+  endif ()\r
+endif ()\r
+\r
 #==============================================================================\r
 # version\r
 #==============================================================================\r