From: Christian Heinrich Date: Thu, 30 Apr 2015 15:18:10 +0000 (+0200) Subject: Added include_path and dependencies for FreeBSD < 10.0 X-Git-Tag: v3_12~732^2~29 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/8c1171f84bdfac07290430a0462e91350c4553cf Added include_path and dependencies for FreeBSD < 10.0 - Commit eea4e2cc87b80c35b33f46377187181e57692440 has enabled C++11 for SimGrid. However, FreeBSD 9.1 does not have a compiler that supports this. Here's a nasty workaround, making the bold assumption that libc++ is installed (by default, it's not) and where we can find it. - With this hack, FreeBSD CI should work again :) --- diff --git a/buildtools/Cmake/MakeLib.cmake b/buildtools/Cmake/MakeLib.cmake index 51093f27a4..3e3e53816b 100644 --- a/buildtools/Cmake/MakeLib.cmake +++ b/buildtools/Cmake/MakeLib.cmake @@ -40,6 +40,17 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" # FreeBSD from 10.0 provide a internal C++ stack (unused by gcc) # see https://wiki.freebsd.org/NewC%2B%2BStack set(SIMGRID_DEP "${SIMGRID_DEP} -lc++") +elseif(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" + AND ${CMAKE_SYSTEM_VERSION} VERSION_LESS 10.0 + AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + # FreeBSD prior to 10.0 does not necessarily have a compiler + # installed that is capable of c++11! Hence, we just assume + # here that libc++ was compiled. + # FIXME: We should change this behavior; we may want to include + # an option of whether libc++ (clang++) or libstdc++ (g++) + # should be used. + include_directories( "/usr/local/include/c++/v1") + set(SIMGRID_DEP "${SIMGRID_DEP} -lc++ -L/usr/local/lib ") else() set(SIMGRID_DEP "${SIMGRID_DEP} -lstdc++") endif() @@ -87,7 +98,7 @@ if(HAVE_GRAPHVIZ) endif() if(HAVE_LIBSIGC++) - SET(SIMGRID_DEP "${SIMGRID_DEP} -lsigc-2.0") + SET(SIMGRID_DEP "${SIMGRID_DEP} -lsigc-2.0") endif() if(HAVE_GTNETS) @@ -101,7 +112,7 @@ endif() if(HAVE_MC) # The availability of libunwind was checked in CompleteInFiles.cmake # (that includes FindLibunwind.cmake), so simply load it now. - + SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind -lunwind-ptrace") # Same for libdw @@ -110,7 +121,7 @@ if(HAVE_MC) # This is deeply wrong, and should be fixed by manually loading -lunwind-PLAT (FIXME) if(PROCESSOR_x86_64) SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind-x86_64") - else() + else() SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind-x86") endif() endif()