diff --git a/.travis.yml b/.travis.yml index 330a5bf9ac9..9f1d9a0f1cb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,11 +39,11 @@ matrix: env: CMAKE_OPTIONS="-DRModular=ON" EXTRA_PACKAGES="r-base-core swig2.0" CC=clang CXX=clang++ allow_failures: - compiler: clang - env: CMAKE_OPTIONS="-DRModular=ON" EXTRA_PACKAGES="r-base-core swig2.0" + env: CMAKE_OPTIONS="-DRModular=ON" EXTRA_PACKAGES="r-base-core swig2.0" CC=clang CXX=clang++ - compiler: clang python: 3.3 language: python - env: CMAKE_OPTIONS="-DPythonModular=ON" EXTRA_PACKAGES="python3-scipy swig2.0" + env: CMAKE_OPTIONS="-DPythonModular=ON" EXTRA_PACKAGES="python3-scipy swig2.0" CC=clang CXX=clang++ virtualenv: system_site_packages: true before_install: diff --git a/CMakeLists.txt b/CMakeLists.txt index e4b9f19ee59..8a1854b6aa5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,12 +66,18 @@ ENDIF() # check for supported c++11 features INCLUDE(CheckCXX11Features) -IF(CXX11_COMPILER_FLAGS) +IF(_HAS_CXX11_FLAG) LIST(APPEND DEFINES HAVE_CXX11) SET(HAVE_CXX11 1) SET(CMAKE_CXX_FLAGS "${CXX11_COMPILER_FLAGS} ${CMAKE_CXX_FLAGS}") ENDIF() +IF(_HAS_CXX0X_FLAG) + LIST(APPEND DEFINES HAVE_CXX0X) + SET(HAVE_CXX0X 1) + SET(CMAKE_CXX_FLAGS "${CXX11_COMPILER_FLAGS} ${CMAKE_CXX_FLAGS}") +ENDIF() + IF (HAVE_CXX11_ATOMIC) LIST(APPEND DEFINES HAVE_CXX11_ATOMIC) ENDIF() diff --git a/src/shogun/lib/SGReferencedData.cpp b/src/shogun/lib/SGReferencedData.cpp index 1c1f3c29cbb..5a3a8b817a6 100644 --- a/src/shogun/lib/SGReferencedData.cpp +++ b/src/shogun/lib/SGReferencedData.cpp @@ -3,7 +3,7 @@ #include #include -#ifdef HAVE_CXX11 +#ifdef HAVE_CXX11_ATOMIC #include #endif @@ -16,7 +16,7 @@ class RefCount public: RefCount() : rc(0) {}; /** reference count */ -#ifdef HAVE_CXX11 +#ifdef HAVE_CXX11_ATOMIC volatile std::atomic rc; #else int32_t rc; @@ -62,7 +62,7 @@ int32_t SGReferencedData::ref_count() if (m_refcount == NULL) return -1; -#ifdef HAVE_CXX11 +#ifdef HAVE_CXX11_ATOMIC int32_t c = m_refcount->rc.load(); #else m_refcount->lock.lock(); @@ -93,7 +93,7 @@ int32_t SGReferencedData::ref() return -1; } -#ifdef HAVE_CXX11 +#ifdef HAVE_CXX11_ATOMIC int32_t c = m_refcount->rc.fetch_add(1)+1; #else m_refcount->lock.lock(); @@ -120,7 +120,7 @@ int32_t SGReferencedData::unref() return -1; } -#ifdef HAVE_CXX11 +#ifdef HAVE_CXX11_ATOMIC int32_t c = m_refcount->rc.fetch_sub(1)-1; #else m_refcount->lock.lock(); diff --git a/src/shogun/lib/config.h.in b/src/shogun/lib/config.h.in index f1d7ed1b848..ca5bbb1cf5f 100644 --- a/src/shogun/lib/config.h.in +++ b/src/shogun/lib/config.h.in @@ -63,6 +63,7 @@ #cmakedefine NARRAY_LIB "@NARRAY_LIB@" +#cmakedefine HAVE_CXX0X 1 #cmakedefine HAVE_CXX11 1 #cmakedefine HAVE_CXX11_ATOMIC 1