From cecf213d7862160fb7c6e52c4bf0653323ecf824 Mon Sep 17 00:00:00 2001 From: Pariterre Date: Wed, 14 Jul 2021 12:10:19 +0200 Subject: [PATCH 1/3] Move to AppVeyor --- .appveyor.yml | 104 +++++++++++++++++++++++++++++++++++++++ .travis.yml | 131 -------------------------------------------------- 2 files changed, 104 insertions(+), 131 deletions(-) create mode 100644 .appveyor.yml delete mode 100644 .travis.yml diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 00000000..7e2e43cf --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,104 @@ +#---------------------------------# +# environment configuration # +#---------------------------------# + +# Build worker image (VM template) +image: + - Ubuntu2004 + - Visual Studio 2019 + - macos + +# set clone depth +clone_depth: 5 # clone entire repository history if not defined + +# There is no building process +build: off + +# scripts that run after cloning repository +install: + - sh: if [[ $CI_LINUX == true ]]; then sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y; sudo apt update; sudo apt install gcc g++ -y; fi + - sh: if [[ $CI_LINUX == true ]]; then wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; bash miniconda.sh -b -p $HOME/miniconda; export PATH="$HOME/miniconda/bin:$PATH"; else curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -L -o miniconda.sh; bash miniconda.sh -b -p $HOME/miniconda; export PATH="$HOME/miniconda/bin:$PATH"; fi + - sh: hash -r + - sh: source activate + - cmd: SET MINICONDA_PATH="C:\\Miniconda38-x64" + - cmd: SET PATH=%MINICONDA_PATH%;%MINICONDA_PATH%"\\Scripts";%PATH% + - cmd: conda init cmd.exe + - conda config --set always_yes yes --set changeps1 no + - conda config --set auto_update_conda no + - conda update -q conda + - conda create -n ezc3d + - conda activate ezc3d + + # Set environment variables + - sh: EZC3D_FOLDER=`pwd` + - sh: EZC3D_BUILD_FOLDER=$EZC3D_FOLDER/build + - sh: EZC3D_COVERAGE_BUILD_FOLDER=$EZC3D_FOLDER/build_coverage + - sh: CONDA_ENV_PATH=$HOME/miniconda/envs + - cmd: SET EZC3D_FOLDER=%cd% + - cmd: SET EZC3D_BUILD_FOLDER=%EZC3D_FOLDER%/build_casadi + - cmd: SET CONDA_ENV_PATH=%MINICONDA_PATH%/envs + + # Setup the conda environment + - conda install numpy pytest swig pkgconfig cmake -c conda-forge + - sh: conda install octave -cconda-forge + - sh: if [[ $CI_LINUX == true ]]; then conda install lcov -cconda-forge; fi + - cmd: conda install ninja -cconda-forge + - conda list + + +test_script: + ############################################################################ + # Test the build + ############################################################################ + - sh: cd $EZC3D_FOLDER + - cmd: cd %EZC3D_FOLDER% + + # LINUX and MAC + - sh: mkdir -p $EZC3D_BUILD_FOLDER + - sh: cd $EZC3D_BUILD_FOLDER + - sh: cmake -DCMAKE_INSTALL_PREFIX=$CONDA_ENV_PATH/ezc3d/ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=ON -DUSE_MATRIX_FAST_ACCESSOR=OFF -DBINDER_OCTAVE=ON -DOctave_ezc3d_INSTALL_DIR=$HOME -DBINDER_PYTHON3=ON .. + - sh: make install + # Move and copy mandatory files and run the tests + - sh: cd test + - sh: ./ezc3d_test + - sh: cd .. + + # WINDOWS + - cmd: mkdir -p %EZC3D_BUILD_FOLDER% + - cmd: cd %EZC3D_BUILD_FOLDER% + - cmd: cmake -GNinja -DCMAKE_INSTALL_PREFIX=%CONDA_ENV_PATH%/ezc3d/ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=ON -DUSE_MATRIX_FAST_ACCESSOR=OFF -DBINDER_OCTAVE=ON -DOctave_ezc3d_INSTALL_DIR=$HOME -DBINDER_PYTHON3=ON .. + - cmd: cmake --build ./ --config Release --target install + # Move and copy mandatory files and run the tests + - cmd: cp bin/Release/*.dll ./test/Release + - cmd: cp Release/*.dll ./test/Release + - cmd: cd test\\Release + - cmd: mkdir .\\c3dTestFiles + - cmd: xcopy ..\\c3dTestFiles .\\c3dTestFiles + - cmd: ./ezc3d_test.exe + - cmd: cd ../.. + + # Test the python binder + - pytest -v --color=yes ../test/python3 + + # Test the octave binder (LINUX and MAC) + - sh: cd $EZC3D_FOLDER/test/matlab + - sh: cp $HOME/ezc3d_octave/* . + - sh: octave test_binder_matlab.m + - sh: octave test_binder_matlab_force_platform.m + - sh: cd $EZC3D_BUILD_FOLDER + + + ############################################################################ + # Code coverage (on Linux) + ############################################################################ + - sh: if [[ $CI_LINUX == true ]]; cd $EZC3D_FOLDER; mkdir $EZC3D_COVERAGE_BUILD_FOLDER; cd $EZC3D_COVERAGE_BUILD_FOLDER; fi + - sh: if [[ $CI_LINUX == true ]]; then cmake -DCMAKE_INSTALL_PREFIX=$CONDA_ENV_PATH/ezc3d/ -DCMAKE_BUILD_TYPE=Coverage -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=OFF -DUSE_MATRIX_FAST_ACCESSOR=OFF ..; make ezc3d_coverage; fi + - sh: if [[ $CI_LINUX == true ]]; then ctest; fi + - sh: if [[ $CI_LINUX == true ]]; then cd $EZC3D_BUILD_FOLDER; fi + +on_success: + # Uploading report to CodeCov + - sh: cd $EZC3D_COVERAGE_BUILD_FOLDER + - sh: if [[ $CI_LINUX == true ]]; then lcov --directory . --capture --output-file coverage.info; lcov --remove coverage.info '/usr/*' --output-file coverage.info; lcov --list coverage.info; bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"; fi + - sh: cd $EZC3D_FOLDER + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ad817fd1..00000000 --- a/.travis.yml +++ /dev/null @@ -1,131 +0,0 @@ -language: cpp -matrix: - include: - - os: linux - dist: bionic - compiler: gcc - env: - - COMPILER=g++-5 - - os: osx - osx_image: xcode7.2 - compiler: gcc - env: - - COMPILER=g++-7 - - os: windows - - -before_install: - # Combine global build options with OS/compiler-dependent options - - export CMAKE_OPTIONS=${CMAKE_OPTIONS}" "${ENV_CMAKE_OPTIONS} - - export CXX_FLAGS=${CXX_FLAGS}" "${ENV_CXX_FLAGS} - - # Add stuff for Python3 tests as well - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; - bash miniconda.sh -b -p $HOME/miniconda; - elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - wget https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -O miniconda.sh; - bash miniconda.sh -b -p $HOME/miniconda; - elif [[ "$TRAVIS_OS_NAME" == "windows" ]]; then - choco install miniconda3 --params="'/AddToPath:1'"; - export PATH="/c/tools/miniconda3/scripts:/c/tools/miniconda3/:/c/Program Files/Git/miniconda3/bin/:$PATH"; - fi - - export PATH="$HOME/miniconda/bin:$PATH" - - hash -r - - conda config --set always_yes yes --set changeps1 no - - conda config --set auto_update_conda no - - source activate - -install: - # Install test packages for Python3 - - conda create -n ezc3d - - conda activate ezc3d - - if [[ "$TRAVIS_OS_NAME" != "windows" ]]; then - conda install octave -c conda-forge; - fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - conda install python=3.8 pytest numpy swig pkgconfig -c conda-forge; - else - conda install python pytest numpy swig pkgconfig -c conda-forge; - fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - conda install lcov cmake -c conda-forge; - fi -script: - ############################################################################ - # Build main and tests - ############################################################################ - # Download, compile and test core - - mkdir -p build - - cd build - # Perform tests on all platform, but only perform code coverage on Linux - - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then - cmake -G"Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX=/c/tools/miniconda3/envs/ezc3d/ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=ON -DUSE_MATRIX_FAST_ACCESSOR=OFF -DBINDER_PYTHON3=ON ..; - cmake --build ./ --config Release --target install; - elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - cmake ${CMAKE_OPTIONS} -DCMAKE_INSTALL_PREFIX=$HOME/miniconda/envs/ezc3d/ -DCMAKE_CXX_FLAGS=${CXX_FLAGS} -DCMAKE_BUILD_TYPE=Coverage -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=ON -DUSE_MATRIX_FAST_ACCESSOR=OFF -DBINDER_OCTAVE=ON -DOctave_ezc3d_INSTALL_DIR=$HOME -DBINDER_PYTHON3=ON ..; - make install; - elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - cmake ${CMAKE_OPTIONS} -DCMAKE_INSTALL_PREFIX=$HOME/miniconda/envs/ezc3d/ -DCMAKE_CXX_FLAGS=${CXX_FLAGS} -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=ON -DUSE_MATRIX_FAST_ACCESSOR=OFF -DBINDER_OCTAVE=ON -DOctave_ezc3d_INSTALL_DIR=$HOME -DBINDER_PYTHON3=ON ..; - make install; - fi - # Only do the coverage on Linux, but run the test anyway to get a nice output - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - cp -r test/c3dTestFiles/ .; - elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - cd test; - elif [[ "$TRAVIS_OS_NAME" == "windows" ]]; then - cp bin/Release/*.dll ./test/Release; - cp Release/*.dll ./test/Release; - cd test\\Release; - mkdir .\\c3dTestFiles; - xcopy ..\\c3dTestFiles .\\c3dTestFiles; - fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - make ezc3d_coverage; - elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - ./ezc3d_test; - elif [[ "$TRAVIS_OS_NAME" == "windows" ]]; then - ./ezc3d_test.exe; - fi - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - cd ..; - elif [[ "$TRAVIS_OS_NAME" == "windows" ]]; then - cd ../..; - fi - - ctest - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - cmake ${CMAKE_OPTIONS} -DCMAKE_INSTALL_PREFIX=$HOME/miniconda/envs/ezc3d/ -DCMAKE_CXX_FLAGS=${CXX_FLAGS} -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=OFF -DUSE_MATRIX_FAST_ACCESSOR=OFF ..; - make install; - fi - # Test the python binder - - pytest -v --color=yes ../test/python3 - # Test the octave binder - - if [[ "$TRAVIS_OS_NAME" != "windows" ]]; then - cd ../test/matlab; - cp $HOME/ezc3d_octave/* .; - fi - - if [[ "$TRAVIS_OS_NAME" != "windows" ]]; then - octave test_binder_matlab.m; - fi - - if [[ "$TRAVIS_OS_NAME" != "windows" ]]; then - octave test_binder_matlab_force_platform.m; - fi - - if [[ "$TRAVIS_OS_NAME" != "windows" ]]; then - cd ../../build; - fi - -after_success: - # Uploading report to CodeCov - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - cd ${TRAVIS_BUILD_DIR}; - lcov --directory . --capture --output-file coverage.info; - lcov --remove coverage.info '/usr/*' --output-file coverage.info; - lcov --list coverage.info; - bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"; - fi - -notifications: - email: - on_success: never - on_failure: always From 82613517831f0807ab0fc7961205496a50d18955 Mon Sep 17 00:00:00 2001 From: Pariterre Date: Thu, 15 Jul 2021 08:59:22 +0200 Subject: [PATCH 2/3] Fixed CMake shared and fixed git submodule auto init --- CMakeLists.txt | 18 ++++++++++++------ test/CMakeLists.txt | 33 +++++++++++++++++++++------------ 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8df7032e..ecf7cbfe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,8 @@ cmake_minimum_required(VERSION 3.8) cmake_policy(SET CMP0048 NEW) -project(ezc3d VERSION 1.4.3) +project(ezc3d VERSION 1.4.4) set(EZC3D_NAME ${PROJECT_NAME}) +set(EZC3D_ROOT_FOLDER ${PROJECT_SOURCE_DIR}) set(CMAKE_CXX_STANDARD 11) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(EZC3D_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) @@ -108,18 +109,23 @@ install(FILES "${EZC3D_BINARY_DIR}/include/ezc3dConfig.h" ) # Prepare share +if(WIN32 AND NOT CYGWIN) + set(CMAKE_SHARE_DIR CMake) +else() + set(CMAKE_SHARE_DIR lib/cmake/${EZC3D_NAME}) +endif() include(CMakePackageConfigHelpers) configure_package_config_file( share/${PROJECT_NAME}Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake - INSTALL_DESTINATION ${${PROJECT_NAME}_LIB_FOLDER}/cmake + INSTALL_DESTINATION "${CMAKE_SHARE_DIR}" PATH_VARS CMAKE_INSTALL_PREFIX ) -install(EXPORT ezc3dTargets DESTINATION ${${PROJECT_NAME}_LIB_FOLDER}/cmake) -install(FILES +install(EXPORT ezc3dTargets DESTINATION "${CMAKE_SHARE_DIR}") +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake - DESTINATION ${${PROJECT_NAME}_LIB_FOLDER}/cmake + DESTINATION "${CMAKE_SHARE_DIR}" ) # uninstall target @@ -139,7 +145,7 @@ add_subdirectory(binding) # Examples option(BUILD_EXAMPLE "Build a C++ example" ON) if (BUILD_EXAMPLE) - add_subdirectory(examples) + add_subdirectory(examples) endif() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5a738996..75f9c620 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,22 +2,31 @@ project(${EZC3D_NAME}_test) # Download gtest if necessary set(RELATIVE_PATH_TO_GTEST external/gtest) -find_path(GTEST_INCLUDE_DIR gtest.h HINTS +find_path(GTEST_INCLUDE_DIR "gtest.h" HINTS "${CMAKE_CURRENT_SOURCE_DIR}/../${RELATIVE_PATH_TO_GTEST}/googletest/include/gtest" ) -if((NOT GTEST_INCLUDE_DIR) OR (NOT EXISTS ${GTEST_INCLUDE_DIR})) +if((NOT GTEST_INCLUDE_DIR) OR (NOT EXISTS "${GTEST_INCLUDE_DIR}")) + find_package(Git QUIET) + if (NOT GIT_FOUND) + message(FATAL_ERROR "Unable to find gtest and it could not be download since Git was not found!") + endif() + # we couldn't find the header files for gtest or they don't exist - message("Unable to find gtest, try to automatically download it") + message("Unable to find gtest, I'll try to automatically download it") # we have a submodule setup for gtest, assume it is under external/gtest # now we need to clone this submodule - execute_process(COMMAND "git submodule update --init -- external/gtest" - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/..") + execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init -- ${EZC3D_ROOT_FOLDER}/${RELATIVE_PATH_TO_GTEST} + WORKING_DIRECTORY ${EZC3D_ROOT_FOLDER} + RESULT_VARIABLE GIT_SUBMOD_RESULT) + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message(FATAL_ERROR "${GIT_EXECUTABLE} submodule update --init -- ${EZC3D_ROOT_FOLDER}/external/gtest failed, please checkout submodules manually") + endif() - find_path(GTEST_INCLUDE_DIR "gtest.h" HINTS - "${CMAKE_CURRENT_SOURCE_DIR}/../${RELATIVE_PATH_TO_GTEST}/googletest/include/gtest" - ) + find_path(GTEST_INCLUDE_DIR "gtest.h" HINTS + "${CMAKE_CURRENT_SOURCE_DIR}/../${RELATIVE_PATH_TO_GTEST}/googletest/include/gtest" + ) endif() # Prevent overriding the parent project's compiler/linker @@ -54,12 +63,12 @@ target_include_directories(${PROJECT_NAME} PRIVATE ) # Standard linking to gtest stuff. -target_link_libraries(${PROJECT_NAME} +target_link_libraries(${PROJECT_NAME} "gtest_main" ) # Extra linking for the project. -target_link_libraries(${PROJECT_NAME} +target_link_libraries(${PROJECT_NAME} "${EZC3D_NAME}" ) @@ -71,8 +80,8 @@ if (CMAKE_BUILD_TYPE STREQUAL "Coverage") set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../.travis/cmake) include(CodeCoverage) - setup_target_for_coverage(${EZC3D_NAME}_coverage - "${PROJECT_NAME}" "coverage") + setup_target_for_coverage(${EZC3D_NAME}_coverage + "${PROJECT_NAME}" "coverage") SET(CMAKE_CXX_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage") SET(CMAKE_C_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage") From 2f7d5e27bdae734c83d123e3ad6b3c1c60812a47 Mon Sep 17 00:00:00 2001 From: Pariterre Date: Thu, 15 Jul 2021 09:01:29 +0200 Subject: [PATCH 3/3] Made AppVeyor compiling for all platforms --- .appveyor.yml | 59 ++++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 7e2e43cf..7834aca6 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -16,7 +16,8 @@ build: off # scripts that run after cloning repository install: - - sh: if [[ $CI_LINUX == true ]]; then sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y; sudo apt update; sudo apt install gcc g++ -y; fi + - sh: if [[ $CI_LINUX == true ]]; then sudo apt install lcov -y; fi + - sh: if [[ $CI_LINUX == true ]]; then sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1000 --slave /usr/bin/g++ g++ /usr/bin/g++-9; fi - sh: if [[ $CI_LINUX == true ]]; then wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; bash miniconda.sh -b -p $HOME/miniconda; export PATH="$HOME/miniconda/bin:$PATH"; else curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -L -o miniconda.sh; bash miniconda.sh -b -p $HOME/miniconda; export PATH="$HOME/miniconda/bin:$PATH"; fi - sh: hash -r - sh: source activate @@ -33,19 +34,21 @@ install: - sh: EZC3D_FOLDER=`pwd` - sh: EZC3D_BUILD_FOLDER=$EZC3D_FOLDER/build - sh: EZC3D_COVERAGE_BUILD_FOLDER=$EZC3D_FOLDER/build_coverage + - sh: EZC3D_COVERAGE_BUILD_FOLDER=$EZC3D_FOLDER/build_coverage - sh: CONDA_ENV_PATH=$HOME/miniconda/envs + - sh: if [[ $CI_LINUX == true ]]; then export CC=/usr/bin/gcc; fi + - sh: if [[ $CI_LINUX == true ]]; then export CXX=/usr/bin/g++; fi - cmd: SET EZC3D_FOLDER=%cd% - - cmd: SET EZC3D_BUILD_FOLDER=%EZC3D_FOLDER%/build_casadi - - cmd: SET CONDA_ENV_PATH=%MINICONDA_PATH%/envs + - cmd: SET EZC3D_BUILD_FOLDER=%EZC3D_FOLDER%\\build + - cmd: SET CONDA_ENV_PATH=%MINICONDA_PATH%\\envs # Setup the conda environment - - conda install numpy pytest swig pkgconfig cmake -c conda-forge + - conda install git numpy pytest swig pkgconfig cmake -c conda-forge - sh: conda install octave -cconda-forge - - sh: if [[ $CI_LINUX == true ]]; then conda install lcov -cconda-forge; fi - cmd: conda install ninja -cconda-forge - conda list - - + + test_script: ############################################################################ # Test the build @@ -58,24 +61,20 @@ test_script: - sh: cd $EZC3D_BUILD_FOLDER - sh: cmake -DCMAKE_INSTALL_PREFIX=$CONDA_ENV_PATH/ezc3d/ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=ON -DUSE_MATRIX_FAST_ACCESSOR=OFF -DBINDER_OCTAVE=ON -DOctave_ezc3d_INSTALL_DIR=$HOME -DBINDER_PYTHON3=ON .. - sh: make install - # Move and copy mandatory files and run the tests - - sh: cd test - - sh: ./ezc3d_test - - sh: cd .. # WINDOWS - - cmd: mkdir -p %EZC3D_BUILD_FOLDER% + - cmd: mkdir %EZC3D_BUILD_FOLDER% - cmd: cd %EZC3D_BUILD_FOLDER% - - cmd: cmake -GNinja -DCMAKE_INSTALL_PREFIX=%CONDA_ENV_PATH%/ezc3d/ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=ON -DUSE_MATRIX_FAST_ACCESSOR=OFF -DBINDER_OCTAVE=ON -DOctave_ezc3d_INSTALL_DIR=$HOME -DBINDER_PYTHON3=ON .. - - cmd: cmake --build ./ --config Release --target install - # Move and copy mandatory files and run the tests - - cmd: cp bin/Release/*.dll ./test/Release - - cmd: cp Release/*.dll ./test/Release - - cmd: cd test\\Release - - cmd: mkdir .\\c3dTestFiles - - cmd: xcopy ..\\c3dTestFiles .\\c3dTestFiles - - cmd: ./ezc3d_test.exe - - cmd: cd ../.. + - cmd: cmake -GNinja -DCMAKE_INSTALL_PREFIX=%CONDA_ENV_PATH%\\ezc3d -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=ON -DUSE_MATRIX_FAST_ACCESSOR=OFF -DBINDER_OCTAVE=OFF -DBINDER_PYTHON3=ON .. + - cmd: cmake --build . --config Release --target install + + # Run the tests + - cd test + - cmd: xcopy ..\*.dll . + - cmd: xcopy ..\bin\*.dll . + - sh: ./ezc3d_test + - cmd: .\\ezc3d_test.exe + - cd .. # Test the python binder - pytest -v --color=yes ../test/python3 @@ -91,14 +90,16 @@ test_script: ############################################################################ # Code coverage (on Linux) ############################################################################ - - sh: if [[ $CI_LINUX == true ]]; cd $EZC3D_FOLDER; mkdir $EZC3D_COVERAGE_BUILD_FOLDER; cd $EZC3D_COVERAGE_BUILD_FOLDER; fi - - sh: if [[ $CI_LINUX == true ]]; then cmake -DCMAKE_INSTALL_PREFIX=$CONDA_ENV_PATH/ezc3d/ -DCMAKE_BUILD_TYPE=Coverage -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=OFF -DUSE_MATRIX_FAST_ACCESSOR=OFF ..; make ezc3d_coverage; fi - - sh: if [[ $CI_LINUX == true ]]; then ctest; fi + - sh: if [[ $CI_LINUX == true ]]; then cd $EZC3D_FOLDER; mkdir $EZC3D_COVERAGE_BUILD_FOLDER; cd $EZC3D_COVERAGE_BUILD_FOLDER; fi + - sh: if [[ $CI_LINUX == true ]]; then cmake -DCMAKE_BUILD_TYPE=Coverage -DBUILD_TESTS=ON -DBUILD_DOC=OFF -DBUILD_EXAMPLE=OFF -DUSE_MATRIX_FAST_ACCESSOR=OFF ..; fi + - sh: if [[ $CI_LINUX == true ]]; then cp -r test/c3dTestFiles/ .; fi + - sh: if [[ $CI_LINUX == true ]]; then make ezc3d_coverage; fi - sh: if [[ $CI_LINUX == true ]]; then cd $EZC3D_BUILD_FOLDER; fi + on_success: - # Uploading report to CodeCov - - sh: cd $EZC3D_COVERAGE_BUILD_FOLDER - - sh: if [[ $CI_LINUX == true ]]; then lcov --directory . --capture --output-file coverage.info; lcov --remove coverage.info '/usr/*' --output-file coverage.info; lcov --list coverage.info; bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"; fi - - sh: cd $EZC3D_FOLDER + # Uploading report to CodeCov + - sh: if [[ $CI_LINUX == true ]]; then cd $EZC3D_COVERAGE_BUILD_FOLDER; fi + - sh: if [[ $CI_LINUX == true ]]; then lcov --directory . --capture --output-file coverage.info; lcov --remove coverage.info '/usr/*' --output-file coverage.info; lcov --list coverage.info; bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"; fi + - sh: if [[ $CI_LINUX == true ]]; then cd $EZC3D_FOLDER; fi