From b483804b0f7777046fc198793f4037b9a9cb080d Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Wed, 23 Nov 2016 18:15:51 +0100 Subject: Change order of template instantiations for clang At least Apple's clang-703.0.31 needs this. --- include/astra/Singleton.h | 8 ++++---- src/AstraObjectFactory.cpp | 6 +++--- src/AstraObjectManager.cpp | 16 ++++++++-------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/include/astra/Singleton.h b/include/astra/Singleton.h index 9d3c088..7271691 100644 --- a/include/astra/Singleton.h +++ b/include/astra/Singleton.h @@ -82,15 +82,15 @@ class Singleton { // libastra. This situation would cause issues when .mex files are unloaded. #define DEFINE_SINGLETON(T) \ -template<> void Singleton::construct() { assert(!m_singleton); m_singleton = new T(); } \ -template<> T* Singleton::m_singleton = 0 +template<> T* Singleton::m_singleton = 0; \ +template<> void Singleton::construct() { assert(!m_singleton); m_singleton = new T(); } // This is a hack to support statements like // DEFINE_SINGLETON2(CTemplatedClass); #define DEFINE_SINGLETON2(A,B) \ -template<> void Singleton::construct() { assert(!m_singleton); m_singleton = new A,B(); } \ -template<> A,B* Singleton::m_singleton = 0 +template<> A,B* Singleton::m_singleton = 0; \ +template<> void Singleton::construct() { assert(!m_singleton); m_singleton = new A,B(); } } // end namespace diff --git a/src/AstraObjectFactory.cpp b/src/AstraObjectFactory.cpp index 35132d0..1dda3b2 100644 --- a/src/AstraObjectFactory.cpp +++ b/src/AstraObjectFactory.cpp @@ -32,8 +32,8 @@ using namespace std; namespace astra { -DEFINE_SINGLETON2(CAstraObjectFactory); -DEFINE_SINGLETON2(CAstraObjectFactory); -DEFINE_SINGLETON2(CAstraObjectFactory); +DEFINE_SINGLETON2(CAstraObjectFactory) +DEFINE_SINGLETON2(CAstraObjectFactory) +DEFINE_SINGLETON2(CAstraObjectFactory) } // end namespace diff --git a/src/AstraObjectManager.cpp b/src/AstraObjectManager.cpp index 46eae4b..3b818d3 100644 --- a/src/AstraObjectManager.cpp +++ b/src/AstraObjectManager.cpp @@ -31,13 +31,13 @@ $Id$ namespace astra { -DEFINE_SINGLETON(CProjector2DManager); -DEFINE_SINGLETON(CProjector3DManager); -DEFINE_SINGLETON(CData2DManager); -DEFINE_SINGLETON(CData3DManager); -DEFINE_SINGLETON(CAlgorithmManager); -DEFINE_SINGLETON(CMatrixManager); - -DEFINE_SINGLETON(CAstraIndexManager); +DEFINE_SINGLETON(CProjector2DManager) +DEFINE_SINGLETON(CProjector3DManager) +DEFINE_SINGLETON(CData2DManager) +DEFINE_SINGLETON(CData3DManager) +DEFINE_SINGLETON(CAlgorithmManager) +DEFINE_SINGLETON(CMatrixManager) + +DEFINE_SINGLETON(CAstraIndexManager) } // end namespace -- cgit v1.2.3 From 40dd0067af0dcf12c8723220bed29b0bea177dc8 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Fri, 25 Nov 2016 11:00:54 +0100 Subject: Add travis clang build --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index 58c7e0a..d6f7976 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,11 @@ env: - CUDA=yes - CUDA=no +matrix: + include: + - env: CUDA=no CLANG=yes + python: "3.5" + before_install: - if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then wget https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh; @@ -37,6 +42,7 @@ install: - conda info -a - cd build/linux - ./autogen.sh + - if [ x$CLANG == xyes ]; then export CXX=clang++; export CC=clang; fi - if [ $CUDA == yes ]; then ./configure --prefix=$HOME/astra --with-python --with-cuda --with-install-type=module; else ./configure --prefix=$HOME/astra --with-python --without-cuda --with-install-type=module; fi - make -j 4 - make install -- cgit v1.2.3