[mlpack-git] master: Link against libc++ when using clang on OSX. (8aa3abb)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Mon Mar 30 13:34:47 EDT 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/3a364a74c9496d57a5fbf1d99aa5fdce3214b681...8aa3abb00dd303a686db7dbc9896fef65961a738
>---------------------------------------------------------------
commit 8aa3abb00dd303a686db7dbc9896fef65961a738
Author: Marcus Edel <marcus.edel at fu-berlin.de>
Date: Mon Mar 30 19:34:25 2015 +0200
Link against libc++ when using clang on OSX.
>---------------------------------------------------------------
8aa3abb00dd303a686db7dbc9896fef65961a738
CMakeLists.txt | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cca3b59..d5079c9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -31,13 +31,24 @@ if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra")
endif(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
-# If using clang, we have to link against libstdc++ (at least on some systems).
-# Further, gcc sometimes optimizes calls to math.h functions, making -lm
-# unnecessary with gcc, but it may still be necessary with clang.
+# If using clang, we have to link against libstdc++ or libc++ depending on the
+# OS (at least on some systems). Further, gcc sometimes optimizes calls to
+# math.h functions, making -lm unnecessary with gcc, but it may still be
+# necessary with clang.
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lstdc++ -lm")
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lstdc++ -lm")
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -lstdc++ -lm")
+ # Linking against libc++ instead of the GNU libstdc++ on OSX.
+ if(APPLE)
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lm")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
+ -stdlib=libc++ -lm")
+ set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}
+ -stdlib=libc++ -lm")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
+ else(APPLE)
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lstdc++ -lm")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lstdc++ -lm")
+ set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -lstdc++ -lm")
+ endif(APPLE)
endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
# Debugging CFLAGS. Turn optimizations off; turn debugging symbols on.
More information about the mlpack-git
mailing list