From 215d6ae3f0b4eb90d6336f1a4a551ecd290013ba Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Sat, 8 Dec 2018 08:20:17 +0700 Subject: [PATCH 1/4] add AppVeyor CI config --- .appveyor.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .appveyor.yml diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 0000000..0049cbb --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,17 @@ +version: "{build}" +shallow_clone: true +image: + - Visual Studio 2015 + - Visual Studio 2017 +configuration: + - Debug + - Release +platform: + - Win32 + - x64 +build_script: + - mkdir build && cd build + - cmake .. -A%PLATFORM% + - cmake --build . --config %CONFIGURATION% + - ctest --verbose +test: off From 316aa58926f66a173ccb0cc2e47ff5dfe2265c02 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Sat, 8 Dec 2018 08:43:27 +0700 Subject: [PATCH 2/4] add Travis CI config --- .travis.yml | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..12b1642 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,78 @@ +language: cpp +matrix: + include: + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-4.9"] } } + env: MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-5"] } } + env: MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-6"] } } + env: MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-7"] } } + env: MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + - os: linux + dist: trusty + addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-8"] } } + env: MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-precise-3.8"], packages: ["xorg-dev", "clang-3.8", "g++-5"] } } + env: MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-precise-3.9"], packages: ["xorg-dev", "clang-3.9", "g++-5"] } } + env: MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-4.0"], packages: ["xorg-dev", "clang-4.0", "g++-5"] } } + env: MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-5.0"], packages: ["xorg-dev", "clang-5.0", "g++-7"] } } + env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" + - os: linux + dist: trusty + addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-6.0"], packages: ["xorg-dev", "clang-6.0", "g++-7"] } } + env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" + - os: osx + osx_image: xcode8.3 + compiler: clang + - os: osx + osx_image: xcode9 + compiler: clang + - os: osx + osx_image: xcode9.1 + compiler: clang + - os: osx + osx_image: xcode9.2 + compiler: clang + - os: osx + osx_image: xcode9.3 + compiler: clang + - os: osx + osx_image: xcode9.4 + compiler: clang + - os: osx + osx_image: xcode10 + compiler: clang +before_install: + - eval "${MATRIX_EVAL}" +script: + - mkdir -p build/debug && cd build/debug + - cmake -DCMAKE_BUILD_TYPE=Debug ../.. + - cmake --build . -- -j8 + - ctest --verbose + - cd ../.. + - mkdir -p build/release && cd build/release + - cmake -DCMAKE_BUILD_TYPE=Release ../.. + - cmake --build . -- -j8 + - ctest --verbose + - cd ../.. + \ No newline at end of file From 3c205ce312551c3676e8bd4bdb41cc83e461f044 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Sat, 8 Dec 2018 08:49:57 +0700 Subject: [PATCH 3/4] add CI badges to README --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index f3604a0..307a258 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,24 @@ > std::invoke/std::apply analogs for C++14 +[![travis][badge.travis]][travis] +[![appveyor][badge.appveyor]][appveyor] +[![language][badge.language]][language] +[![license][badge.license]][license] +[![paypal][badge.paypal]][paypal] + +[badge.travis]: https://img.shields.io/travis/BlackMATov/invoke.hpp/master.svg?logo=travis&style=for-the-badge +[badge.appveyor]: https://img.shields.io/appveyor/ci/BlackMATov/invoke-hpp/master.svg?logo=appveyor&style=for-the-badge +[badge.language]: https://img.shields.io/badge/language-C%2B%2B14-red.svg?style=for-the-badge +[badge.license]: https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge +[badge.paypal]: https://img.shields.io/badge/donate-PayPal-orange.svg?logo=paypal&colorA=00457C&style=for-the-badge + +[travis]: https://travis-ci.org/BlackMATov/invoke.hpp +[appveyor]: https://ci.appveyor.com/project/BlackMATov/invoke-hpp +[language]: https://en.wikipedia.org/wiki/C%2B%2B14 +[license]: https://en.wikipedia.org/wiki/MIT_License +[paypal]: https://www.paypal.me/matov + [invoke]: https://github.com/BlackMATov/invoke.hpp ## Installation @@ -25,3 +43,5 @@ Analog of [std::invoke_result](https://en.cppreference.com/w/cpp/types/result_of ### `invoke_hpp::apply(F&& f, Tuple&& args)` Analog of [std::apply](https://en.cppreference.com/w/cpp/utility/apply) from C++17 + +## [License (MIT)](./LICENSE.md) From 47d3502a4700f9553357878c7f80ee63ae310362 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Sat, 8 Dec 2018 08:59:16 +0700 Subject: [PATCH 4/4] add build scripts --- .appveyor.yml | 8 +------- .travis.yml | 12 +----------- scripts/build_all.bat | 10 ++++++++++ scripts/build_all.sh | 5 +++++ scripts/build_debug.bat | 14 ++++++++++++++ scripts/build_debug.sh | 9 +++++++++ scripts/build_release.bat | 14 ++++++++++++++ scripts/build_release.sh | 9 +++++++++ 8 files changed, 63 insertions(+), 18 deletions(-) create mode 100644 scripts/build_all.bat create mode 100755 scripts/build_all.sh create mode 100644 scripts/build_debug.bat create mode 100755 scripts/build_debug.sh create mode 100644 scripts/build_release.bat create mode 100755 scripts/build_release.sh diff --git a/.appveyor.yml b/.appveyor.yml index 0049cbb..62edb10 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -3,15 +3,9 @@ shallow_clone: true image: - Visual Studio 2015 - Visual Studio 2017 -configuration: - - Debug - - Release platform: - Win32 - x64 build_script: - - mkdir build && cd build - - cmake .. -A%PLATFORM% - - cmake --build . --config %CONFIGURATION% - - ctest --verbose + - scripts\build_all.bat test: off diff --git a/.travis.yml b/.travis.yml index 12b1642..ffa348e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -65,14 +65,4 @@ matrix: before_install: - eval "${MATRIX_EVAL}" script: - - mkdir -p build/debug && cd build/debug - - cmake -DCMAKE_BUILD_TYPE=Debug ../.. - - cmake --build . -- -j8 - - ctest --verbose - - cd ../.. - - mkdir -p build/release && cd build/release - - cmake -DCMAKE_BUILD_TYPE=Release ../.. - - cmake --build . -- -j8 - - ctest --verbose - - cd ../.. - \ No newline at end of file + - ./scripts/build_all.sh diff --git a/scripts/build_all.bat b/scripts/build_all.bat new file mode 100644 index 0000000..03705ec --- /dev/null +++ b/scripts/build_all.bat @@ -0,0 +1,10 @@ +@echo off +set SCRIPT_DIR=%~dp0% +%SCRIPT_DIR%\build_debug.bat || goto :error +%SCRIPT_DIR%\build_release.bat || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/scripts/build_all.sh b/scripts/build_all.sh new file mode 100755 index 0000000..d9cd585 --- /dev/null +++ b/scripts/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -e +SCRIPT_DIR=`dirname "$BASH_SOURCE"` +$SCRIPT_DIR/build_debug.sh +$SCRIPT_DIR/build_release.sh diff --git a/scripts/build_debug.bat b/scripts/build_debug.bat new file mode 100644 index 0000000..01f8572 --- /dev/null +++ b/scripts/build_debug.bat @@ -0,0 +1,14 @@ +@echo off +set BUILD_DIR=%~dp0%\..\build +mkdir %BUILD_DIR%\debug || goto :error +cd %BUILD_DIR%\debug || goto :error +cmake ../.. || goto :error +cmake --build . --config Debug || goto :error +ctest --verbose || goto :error +cd ..\.. || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/scripts/build_debug.sh b/scripts/build_debug.sh new file mode 100755 index 0000000..89f4c93 --- /dev/null +++ b/scripts/build_debug.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e +BUILD_DIR=`dirname "$BASH_SOURCE"`/../build +mkdir -p $BUILD_DIR/debug +cd $BUILD_DIR/debug +cmake -DCMAKE_BUILD_TYPE=Debug ../.. +cmake --build . -- -j8 +ctest --verbose +cd ../.. diff --git a/scripts/build_release.bat b/scripts/build_release.bat new file mode 100644 index 0000000..b6bf362 --- /dev/null +++ b/scripts/build_release.bat @@ -0,0 +1,14 @@ +@echo off +set BUILD_DIR=%~dp0%\..\build +mkdir %BUILD_DIR%\release || goto :error +cd %BUILD_DIR%\release || goto :error +cmake ../.. || goto :error +cmake --build . --config Release || goto :error +ctest --verbose || goto :error +cd ..\.. || goto :error + +goto :EOF + +:error +echo Failed with error #%errorlevel%. +exit /b %errorlevel% diff --git a/scripts/build_release.sh b/scripts/build_release.sh new file mode 100755 index 0000000..9ab7e23 --- /dev/null +++ b/scripts/build_release.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e +BUILD_DIR=`dirname "$BASH_SOURCE"`/../build +mkdir -p $BUILD_DIR/release +cd $BUILD_DIR/release +cmake -DCMAKE_BUILD_TYPE=Release ../.. +cmake --build . -- -j8 +ctest --verbose +cd ../..