diff --git a/.travis.yml b/.travis.yml index c3815c8..136442f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,26 +24,121 @@ matrix: packages: - g++-5 env: - - CC_COMPILER=gcc-5 CXX_COMPILER=g++-5 PYTHON_BINDING=1 + - CC_COMPILER=gcc-5 CXX_COMPILER=g++-5 PYTHON_BINDING=1 PYTHON=3.5 + + # - os: linux + # compiler: gcc + # dist: trusty + # addons: + # apt: + # sources: + # - ubuntu-toolchain-r-test + # packages: + # - g++-5 + # env: + # - CC_COMPILER=gcc-5 CXX_COMPILER=g++-5 PYTHON_BINDING=1 PYTHON=3.6 + + # - os: linux + # compiler: gcc + # dist: trusty + # addons: + # apt: + # sources: + # - ubuntu-toolchain-r-test + # packages: + # - g++-5 + # env: + # - CC_COMPILER=gcc-5 CXX_COMPILER=g++-5 PYTHON_BINDING=1 PYTHON=3.7 - os: osx compiler: clang env: - PYTHON_BINDING=0 + # - os: osx + # compiler: clang + # env: + # - PYTHON_BINDING=1 PYTHON=3.5 + - os: osx compiler: clang env: - - PYTHON_BINDING=1 + - PYTHON_BINDING=1 PYTHON=3.6 + + # - os: osx + # compiler: clang + # env: + # - PYTHON_BINDING=1 PYTHON=3.7 + +before_install: + - | + if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then + brew install swig + brew link --force swig + + # TODO: find way to install specific python versions on osx + # if [[ "$PYTHON_BINDING" == "1" ]]; then + # brew install python$PYTHON + # python --version + # fi + + elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + sudo apt-get update + sudo apt-get install -qq swig + + # TODO: this is only working for python3.5, not above + if [[ "$PYTHON_BINDING" == "1" ]]; then + sudo apt-get install python$PYTHON + sudo apt-get install python$PYTHON-dev + alias python="/usr/bin/python$PYTHON" + python --version + fi + fi install: - - travis/install.sh - if [[ "${CXX_COMPILER}" != "" ]]; then export CXX=${CXX_COMPILER}; export CXX_FOR_BUILD=${CXX_COMPILER}; fi - if [[ "${CC_COMPILER}" != "" ]]; then export CC=${CC_COMPILER}; export CC_FOR_BUILD=${CC_COMPILER}; fi -script: travis/script.sh +script: + - | + mkdir build + cd build + cmake -DBUILD_BINDINGS_PYTHON=$PYTHON_BINDING -DPYTHON_VERSION=$PYTHON .. + make + ./core/test_core -before_deploy: travis/bundle.sh +before_deploy: + - | + cd $TRAVIS_BUILD_DIR + + VERSION=$(head -1 build/version.txt) + + if [[ "$PYTHON_BINDING" == "1" ]]; then + PYTHON_VERSION=${PYTHON//.} + PYTHON_VERSION=${PYTHON_VERSION:0:2} + BUNDLE_NAME=sourcetraildb_python${PYTHON_VERSION}_${VERSION}-${TRAVIS_OS_NAME}-64bit-${TRAVIS_COMPILER} + + mkdir -p $BUNDLE_NAME + cp build/bindings_python/sourcetraildb.py $BUNDLE_NAME + cp build/bindings_python/_sourcetraildb* $BUNDLE_NAME/_sourcetraildb.so + else + BUNDLE_NAME=sourcetraildb_core_${VERSION}-${TRAVIS_OS_NAME}-64bit-${TRAVIS_COMPILER} + + mkdir -p $BUNDLE_NAME/include + mkdir -p $BUNDLE_NAME/lib + + cp build/core/*.a $BUNDLE_NAME/lib + cp core/include/* $BUNDLE_NAME/include + cp build/core/include/* $BUNDLE_NAME/include + fi + + mkdir -p $BUNDLE_NAME/license + cp LICENSE.txt $BUNDLE_NAME/license/license_sourcetraildb.txt + cp external/catch/license_catch.txt $BUNDLE_NAME/license/ + cp external/cpp_sqlite/license_cpp_sqlite.txt $BUNDLE_NAME/license/ + cp external/json/license_json.txt $BUNDLE_NAME/license/ + + zip -r $BUNDLE_NAME $BUNDLE_NAME deploy: provider: releases diff --git a/bindings_python/CMakeLists.txt b/bindings_python/CMakeLists.txt index ae43a70..0eee77c 100644 --- a/bindings_python/CMakeLists.txt +++ b/bindings_python/CMakeLists.txt @@ -13,7 +13,7 @@ set(SWIG_INTERFACE_FILE "${RESOURCES_SWIG_DIR}/interface/${PACKAGE_NAME}.i") # --- Find Python --- -find_package(PythonLibs) +find_package(PythonLibs ${PYTHON_VERSION} REQUIRED) # --- Find Swig --- diff --git a/travis/bundle.sh b/travis/bundle.sh deleted file mode 100755 index b6709a0..0000000 --- a/travis/bundle.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -cd $TRAVIS_BUILD_DIR - -VERSION=$(head -1 build/version.txt) - -if [[ "$PYTHON_BINDING" == "1" ]]; then - PYTHON_VERSION=$(python3 -c "import sys; sys.stdout.write(str(sys.version_info.major)); sys.stdout.write(str(sys.version_info.minor));") - BUNDLE_NAME=sourcetraildb_python${PYTHON_VERSION}_${VERSION}-${TRAVIS_OS_NAME}-64bit-${TRAVIS_COMPILER} - - mkdir -p $BUNDLE_NAME - cp build/bindings_python/sourcetraildb.py $BUNDLE_NAME - cp build/bindings_python/_sourcetraildb* $BUNDLE_NAME/_sourcetraildb.so -else - BUNDLE_NAME=sourcetraildb_core_${VERSION}-${TRAVIS_OS_NAME}-64bit-${TRAVIS_COMPILER} - - mkdir -p $BUNDLE_NAME/include - mkdir -p $BUNDLE_NAME/lib - - cp build/core/*.a $BUNDLE_NAME/lib - cp core/include/* $BUNDLE_NAME/include - cp build/core/include/* $BUNDLE_NAME/include -fi - -mkdir -p $BUNDLE_NAME/license -cp LICENSE.txt $BUNDLE_NAME/license/license_sourcetraildb.txt -cp external/catch/license_catch.txt $BUNDLE_NAME/license/ -cp external/cpp_sqlite/license_cpp_sqlite.txt $BUNDLE_NAME/license/ -cp external/json/license_json.txt $BUNDLE_NAME/license/ - -zip -r $BUNDLE_NAME $BUNDLE_NAME diff --git a/travis/install.sh b/travis/install.sh deleted file mode 100755 index c33fbf8..0000000 --- a/travis/install.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - brew install swig; - brew link --force swig; -elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - sudo apt-get update; - sudo apt-get install -qq python-dev swig; - sudo apt-get update -qq; -fi diff --git a/travis/script.sh b/travis/script.sh deleted file mode 100755 index c4ce690..0000000 --- a/travis/script.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -mkdir build -cd build -cmake -DBUILD_BINDINGS_PYTHON=$PYTHON_BINDING .. -make -./core/test_core