Skip to content

Commit

Permalink
Use -stdlib=libc++ only on Darwin systems for clang c++11 support
Browse files Browse the repository at this point in the history
  • Loading branch information
vigsterkr committed Aug 7, 2013
1 parent 78a5a6b commit 2a7f045
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
19 changes: 10 additions & 9 deletions CMakeLists.txt
Expand Up @@ -41,6 +41,16 @@ SET(EXT_CPP_PY "${EXT_SRC_CPP}.py")
SET(THIRD_PARTY_DIR ${CMAKE_SOURCE_DIR}/third_party)
SET(LIBSHOGUN_SRC_DIR ${CMAKE_SOURCE_DIR}/src/shogun)
SET(COMMON_MODULAR_SRC_DIR ${CMAKE_SOURCE_DIR}/src/interfaces/modular/)

# Detect OS
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
SET(DARWIN 1)
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
SET(LINUX 1)
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
SET(FREEBSD 1)
ENDIF()

################ COMPILER #######################
# g++ version needs to be => 4.3
IF(CMAKE_COMPILER_IS_GNUCXX)
Expand Down Expand Up @@ -83,15 +93,6 @@ STRING(REGEX REPLACE "([0-9]*).[0-9]*.[0-9]*" "\\1" SHOGUN_VERSION_MAJOR "${VERS
STRING(REGEX REPLACE "[0-9]*.([0-9]*).[0-9]*" "\\1" SHOGUN_VERSION_MINOR "${VERSION}")
STRING(REGEX REPLACE "[0-9]*.[0-9]*.([0-9]*)" "\\1" SHOGUN_VERSION_PATCH "${VERSION}")

# Detect OS
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
SET(DARWIN 1)
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
SET(LINUX 1)
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
SET(FREEBSD 1)
ENDIF()

# Get processor type, sets MACHINE macro
IF(NOT WIN32)
execute_process(COMMAND uname -m
Expand Down
8 changes: 7 additions & 1 deletion cmake/CheckCXX11Features.cmake
Expand Up @@ -63,7 +63,13 @@ if (NOT _HAS_CXX11_FLAG)
endif ()

if (_HAS_CXX11_FLAG)
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
# apple's clang requires -stdlib=libc++ otherwise
# it won't find <atomic> for example.
# but this will break compilation on ubuntu
#
# TODO: investigate further which system requires -stdlib=libc++
# as well.
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND DARWIN)
set(CXX11_COMPILER_FLAGS "-std=c++11 -stdlib=libc++")
else ()
set(CXX11_COMPILER_FLAGS "-std=c++11")
Expand Down

0 comments on commit 2a7f045

Please sign in to comment.