mirror of
https://github.com/BlackMATov/vmath.hpp.git
synced 2025-12-16 14:11:28 +07:00
initial commit
This commit is contained in:
45
.appveyor.yml
Normal file
45
.appveyor.yml
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
image:
|
||||||
|
- Visual Studio 2017
|
||||||
|
- Visual Studio 2019
|
||||||
|
|
||||||
|
platform:
|
||||||
|
- x86
|
||||||
|
- x64
|
||||||
|
|
||||||
|
configuration:
|
||||||
|
- Debug
|
||||||
|
- Release
|
||||||
|
|
||||||
|
for:
|
||||||
|
|
||||||
|
-
|
||||||
|
matrix:
|
||||||
|
only:
|
||||||
|
- platform: x86
|
||||||
|
configuration: Debug
|
||||||
|
build_script:
|
||||||
|
- scripts\build_debug_x86.bat
|
||||||
|
|
||||||
|
-
|
||||||
|
matrix:
|
||||||
|
only:
|
||||||
|
- platform: x64
|
||||||
|
configuration: Debug
|
||||||
|
build_script:
|
||||||
|
- scripts\build_debug_x64.bat
|
||||||
|
|
||||||
|
-
|
||||||
|
matrix:
|
||||||
|
only:
|
||||||
|
- platform: x86
|
||||||
|
configuration: Release
|
||||||
|
build_script:
|
||||||
|
- scripts\build_release_x86.bat
|
||||||
|
|
||||||
|
-
|
||||||
|
matrix:
|
||||||
|
only:
|
||||||
|
- platform: x64
|
||||||
|
configuration: Release
|
||||||
|
build_script:
|
||||||
|
- scripts\build_release_x64.bat
|
||||||
3
.codecov.yml
Normal file
3
.codecov.yml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
ignore:
|
||||||
|
- "*_tests.cpp"
|
||||||
|
- "*_examples.cpp"
|
||||||
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
build/*
|
||||||
|
.vscode/*
|
||||||
|
CMakeLists.txt.user
|
||||||
159
.travis.yml
Normal file
159
.travis.yml
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
language: cpp
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
|
||||||
|
#
|
||||||
|
# windows (MSVC 2017)
|
||||||
|
#
|
||||||
|
|
||||||
|
- os: windows
|
||||||
|
stage: windows
|
||||||
|
name: debug, MSVC 2017, x86
|
||||||
|
script: ./scripts/build_debug_x86.bat
|
||||||
|
|
||||||
|
- os: windows
|
||||||
|
stage: windows
|
||||||
|
name: release, MSVC 2017, x86
|
||||||
|
script: ./scripts/build_release_x86.bat
|
||||||
|
|
||||||
|
- os: windows
|
||||||
|
stage: windows
|
||||||
|
name: debug, MSVC 2017, x64
|
||||||
|
script: ./scripts/build_debug_x64.bat
|
||||||
|
|
||||||
|
- os: windows
|
||||||
|
stage: windows
|
||||||
|
name: release, MSVC 2017, x64
|
||||||
|
script: ./scripts/build_release_x64.bat
|
||||||
|
|
||||||
|
#
|
||||||
|
# linux (g++-7)
|
||||||
|
#
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
dist: xenial
|
||||||
|
stage: linux
|
||||||
|
name: debug, g++-7
|
||||||
|
addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["g++-7"] } }
|
||||||
|
env: CC=gcc-7 CXX=g++-7
|
||||||
|
script: ./scripts/build_debug.sh
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
dist: xenial
|
||||||
|
stage: linux
|
||||||
|
name: release, g++-7
|
||||||
|
addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["g++-7"] } }
|
||||||
|
env: CC=gcc-7 CXX=g++-7
|
||||||
|
script: ./scripts/build_release.sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# linux (g++-8)
|
||||||
|
#
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
dist: xenial
|
||||||
|
stage: linux
|
||||||
|
name: debug, g++-8
|
||||||
|
addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["g++-8"] } }
|
||||||
|
env: CC=gcc-8 CXX=g++-8
|
||||||
|
script: ./scripts/build_debug.sh
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
dist: xenial
|
||||||
|
stage: linux
|
||||||
|
name: release, g++-8
|
||||||
|
addons: { apt: { sources: ["ubuntu-toolchain-r-test"], packages: ["g++-8"] } }
|
||||||
|
env: CC=gcc-8 CXX=g++-8
|
||||||
|
script: ./scripts/build_release.sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# linux (clang++-5.0)
|
||||||
|
#
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
dist: xenial
|
||||||
|
stage: linux
|
||||||
|
name: debug, clang++-5.0
|
||||||
|
addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-5.0"], packages: ["g++-7", "clang-5.0"] } }
|
||||||
|
env: CC=clang-5.0 CXX=clang++-5.0
|
||||||
|
script: ./scripts/build_debug.sh
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
dist: xenial
|
||||||
|
stage: linux
|
||||||
|
name: release, clang++-5.0
|
||||||
|
addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-5.0"], packages: ["g++-7", "clang-5.0"] } }
|
||||||
|
env: CC=clang-5.0 CXX=clang++-5.0
|
||||||
|
script: ./scripts/build_release.sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# linux (clang++-6.0)
|
||||||
|
#
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
dist: xenial
|
||||||
|
stage: linux
|
||||||
|
name: debug, clang++-6.0
|
||||||
|
addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-6.0"], packages: ["g++-7", "clang-6.0"] } }
|
||||||
|
env: CC=clang-6.0 CXX=clang++-6.0
|
||||||
|
script: ./scripts/build_debug.sh
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
dist: xenial
|
||||||
|
stage: linux
|
||||||
|
name: release, clang++-6.0
|
||||||
|
addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-xenial-6.0"], packages: ["g++-7", "clang-6.0"] } }
|
||||||
|
env: CC=clang-6.0 CXX=clang++-6.0
|
||||||
|
script: ./scripts/build_release.sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# macosx (xcode10)
|
||||||
|
#
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode10
|
||||||
|
stage: macosx
|
||||||
|
name: debug, xcode10
|
||||||
|
script: ./scripts/build_debug.sh
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode10
|
||||||
|
stage: macosx
|
||||||
|
name: release, xcode10
|
||||||
|
script: ./scripts/build_release.sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# macosx (xcode11)
|
||||||
|
#
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode11
|
||||||
|
stage: macosx
|
||||||
|
name: debug, xcode11
|
||||||
|
script: ./scripts/build_debug.sh
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode11
|
||||||
|
stage: macosx
|
||||||
|
name: release, xcode11
|
||||||
|
script: ./scripts/build_release.sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# coverage
|
||||||
|
#
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode10
|
||||||
|
stage: coverage
|
||||||
|
name: coverage, xcode10
|
||||||
|
addons: { homebrew: { packages: ["lcov"], update: true } }
|
||||||
|
script: ./scripts/upload_coverage.sh
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- if [ "$TRAVIS_OS_NAME" == 'linux' ]; then
|
||||||
|
mkdir $HOME/cmake;
|
||||||
|
export PATH="$HOME/cmake/bin:$PATH";
|
||||||
|
travis_retry wget -q https://cmake.org/files/v3.11/cmake-3.11.4-Linux-x86_64.sh;
|
||||||
|
sh cmake-3.11.4-Linux-x86_64.sh --prefix=$HOME/cmake --exclude-subdir --skip-license;
|
||||||
|
fi
|
||||||
20
CMakeLists.txt
Normal file
20
CMakeLists.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# 3.8 version is required for `cxx_std_17`
|
||||||
|
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
|
||||||
|
|
||||||
|
if(NOT DEFINED PROJECT_NAME)
|
||||||
|
set(BUILD_AS_STANDALONE ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
project(vmath.hpp)
|
||||||
|
|
||||||
|
add_library(${PROJECT_NAME} INTERFACE)
|
||||||
|
target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_17)
|
||||||
|
target_include_directories(${PROJECT_NAME} INTERFACE headers)
|
||||||
|
|
||||||
|
if(BUILD_AS_STANDALONE)
|
||||||
|
option(BUILD_WITH_UNTESTS "Build with unit tests" ON)
|
||||||
|
if(BUILD_WITH_UNTESTS)
|
||||||
|
enable_testing()
|
||||||
|
add_subdirectory(untests)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
21
LICENSE.md
Normal file
21
LICENSE.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (C) 2020, by Matvey Cherevko (blackmatov@gmail.com)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
49
README.md
Normal file
49
README.md
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# vmath.hpp
|
||||||
|
|
||||||
|
> C++17 tiny vector math library
|
||||||
|
|
||||||
|
[![travis][badge.travis]][travis]
|
||||||
|
[![appveyor][badge.appveyor]][appveyor]
|
||||||
|
[![codecov][badge.codecov]][codecov]
|
||||||
|
[![language][badge.language]][language]
|
||||||
|
[![license][badge.license]][license]
|
||||||
|
[![paypal][badge.paypal]][paypal]
|
||||||
|
|
||||||
|
[badge.travis]: https://img.shields.io/travis/BlackMATov/vmath.hpp/main.svg?logo=travis
|
||||||
|
[badge.appveyor]: https://img.shields.io/appveyor/ci/BlackMATov/vmath-hpp/main.svg?logo=appveyor
|
||||||
|
[badge.codecov]: https://img.shields.io/codecov/c/github/BlackMATov/vmath.hpp/main.svg?logo=codecov
|
||||||
|
[badge.language]: https://img.shields.io/badge/language-C%2B%2B17-yellow.svg
|
||||||
|
[badge.license]: https://img.shields.io/badge/license-MIT-blue.svg
|
||||||
|
[badge.paypal]: https://img.shields.io/badge/donate-PayPal-orange.svg?logo=paypal&colorA=00457C
|
||||||
|
|
||||||
|
[travis]: https://travis-ci.org/BlackMATov/vmath.hpp
|
||||||
|
[appveyor]: https://ci.appveyor.com/project/BlackMATov/vmath-hpp
|
||||||
|
[codecov]: https://codecov.io/gh/BlackMATov/vmath.hpp
|
||||||
|
[language]: https://en.wikipedia.org/wiki/C%2B%2B17
|
||||||
|
[license]: https://en.wikipedia.org/wiki/MIT_License
|
||||||
|
[paypal]: https://www.paypal.me/matov
|
||||||
|
|
||||||
|
[vmath]: https://github.com/BlackMATov/vmath.hpp
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- [gcc](https://www.gnu.org/software/gcc/) **>= 7**
|
||||||
|
- [clang](https://clang.llvm.org/) **>= 5.0**
|
||||||
|
- [msvc](https://visualstudio.microsoft.com/) **>= 2017**
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
[vmath.hpp][vmath] is a header-only library. All you need to do is copy the headers files from `headers` directory into your project and include them:
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
#include "vmath.hpp/vmath.hpp"
|
||||||
|
```
|
||||||
|
|
||||||
|
Also, you can add the root repository directory to your [cmake](https://cmake.org) project:
|
||||||
|
|
||||||
|
```cmake
|
||||||
|
add_subdirectory(external/vmath.hpp)
|
||||||
|
target_link_libraries(your_project_target vmath.hpp)
|
||||||
|
```
|
||||||
|
|
||||||
|
## [License (MIT)](./LICENSE.md)
|
||||||
11
headers/vmath.hpp/vmath.hpp
Normal file
11
headers/vmath.hpp/vmath.hpp
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* This file is part of the "https://github.com/blackmatov/vmath.hpp"
|
||||||
|
* For conditions of distribution and use, see copyright notice in LICENSE.md
|
||||||
|
* Copyright (C) 2020, by Matvey Cherevko (blackmatov@gmail.com)
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace vmath_hpp
|
||||||
|
{
|
||||||
|
}
|
||||||
12
scripts/build_all.bat
Normal file
12
scripts/build_all.bat
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
@echo off
|
||||||
|
set SCRIPT_DIR=%~dp0%
|
||||||
|
call %SCRIPT_DIR%\build_debug_x86.bat || goto :error
|
||||||
|
call %SCRIPT_DIR%\build_debug_x64.bat || goto :error
|
||||||
|
call %SCRIPT_DIR%\build_release_x86.bat || goto :error
|
||||||
|
call %SCRIPT_DIR%\build_release_x64.bat || goto :error
|
||||||
|
|
||||||
|
goto :EOF
|
||||||
|
|
||||||
|
:error
|
||||||
|
echo Failed with error #%errorlevel%.
|
||||||
|
exit /b %errorlevel%
|
||||||
5
scripts/build_all.sh
Executable file
5
scripts/build_all.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
|
||||||
|
$SCRIPT_DIR/build_debug.sh
|
||||||
|
$SCRIPT_DIR/build_release.sh
|
||||||
9
scripts/build_clear.bat
Normal file
9
scripts/build_clear.bat
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
@echo off
|
||||||
|
set BUILD_DIR=%~dp0%\..\build
|
||||||
|
rmdir /s /q %BUILD_DIR% || goto :error
|
||||||
|
|
||||||
|
goto :EOF
|
||||||
|
|
||||||
|
:error
|
||||||
|
echo Failed with error #%errorlevel%.
|
||||||
|
exit /b %errorlevel%
|
||||||
4
scripts/build_clear.sh
Executable file
4
scripts/build_clear.sh
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
BUILD_DIR=`dirname "$BASH_SOURCE"`/../build
|
||||||
|
rm -rf $BUILD_DIR
|
||||||
9
scripts/build_debug.sh
Executable file
9
scripts/build_debug.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
BUILD_DIR=`dirname "$BASH_SOURCE"`/../build
|
||||||
|
mkdir -p $BUILD_DIR/Debug
|
||||||
|
pushd $BUILD_DIR/Debug
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug ../..
|
||||||
|
cmake --build .
|
||||||
|
ctest --verbose
|
||||||
|
popd
|
||||||
14
scripts/build_debug_x64.bat
Normal file
14
scripts/build_debug_x64.bat
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
@echo off
|
||||||
|
set BUILD_DIR=%~dp0%\..\build
|
||||||
|
mkdir %BUILD_DIR%\Debug\x64 || goto :error
|
||||||
|
pushd %BUILD_DIR%\Debug\x64 || goto :error
|
||||||
|
cmake ..\..\.. -A x64 || goto :error
|
||||||
|
cmake --build . --config Debug || goto :error
|
||||||
|
ctest --verbose || goto :error
|
||||||
|
popd || goto :error
|
||||||
|
|
||||||
|
goto :EOF
|
||||||
|
|
||||||
|
:error
|
||||||
|
echo Failed with error #%errorlevel%.
|
||||||
|
exit /b %errorlevel%
|
||||||
14
scripts/build_debug_x86.bat
Normal file
14
scripts/build_debug_x86.bat
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
@echo off
|
||||||
|
set BUILD_DIR=%~dp0%\..\build
|
||||||
|
mkdir %BUILD_DIR%\Debug\x86 || goto :error
|
||||||
|
pushd %BUILD_DIR%\Debug\x86 || goto :error
|
||||||
|
cmake ..\..\.. -A Win32 || goto :error
|
||||||
|
cmake --build . --config Debug || goto :error
|
||||||
|
ctest --verbose || goto :error
|
||||||
|
popd || goto :error
|
||||||
|
|
||||||
|
goto :EOF
|
||||||
|
|
||||||
|
:error
|
||||||
|
echo Failed with error #%errorlevel%.
|
||||||
|
exit /b %errorlevel%
|
||||||
9
scripts/build_release.sh
Executable file
9
scripts/build_release.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
BUILD_DIR=`dirname "$BASH_SOURCE"`/../build
|
||||||
|
mkdir -p $BUILD_DIR/Release
|
||||||
|
pushd $BUILD_DIR/Release
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release ../..
|
||||||
|
cmake --build .
|
||||||
|
ctest --verbose
|
||||||
|
popd
|
||||||
14
scripts/build_release_x64.bat
Normal file
14
scripts/build_release_x64.bat
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
@echo off
|
||||||
|
set BUILD_DIR=%~dp0%\..\build
|
||||||
|
mkdir %BUILD_DIR%\Release\x64 || goto :error
|
||||||
|
pushd %BUILD_DIR%\Release\x64 || goto :error
|
||||||
|
cmake ..\..\.. -A x64 || goto :error
|
||||||
|
cmake --build . --config Release || goto :error
|
||||||
|
ctest --verbose || goto :error
|
||||||
|
popd || goto :error
|
||||||
|
|
||||||
|
goto :EOF
|
||||||
|
|
||||||
|
:error
|
||||||
|
echo Failed with error #%errorlevel%.
|
||||||
|
exit /b %errorlevel%
|
||||||
14
scripts/build_release_x86.bat
Normal file
14
scripts/build_release_x86.bat
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
@echo off
|
||||||
|
set BUILD_DIR=%~dp0%\..\build
|
||||||
|
mkdir %BUILD_DIR%\Release\x86 || goto :error
|
||||||
|
pushd %BUILD_DIR%\Release\x86 || goto :error
|
||||||
|
cmake ..\..\.. -A Win32 || goto :error
|
||||||
|
cmake --build . --config Release || goto :error
|
||||||
|
ctest --verbose || goto :error
|
||||||
|
popd || goto :error
|
||||||
|
|
||||||
|
goto :EOF
|
||||||
|
|
||||||
|
:error
|
||||||
|
echo Failed with error #%errorlevel%.
|
||||||
|
exit /b %errorlevel%
|
||||||
17
scripts/upload_coverage.sh
Executable file
17
scripts/upload_coverage.sh
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
BUILD_DIR=`dirname "$BASH_SOURCE"`/../build
|
||||||
|
mkdir -p $BUILD_DIR/coverage
|
||||||
|
cd $BUILD_DIR/coverage
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_WITH_COVERAGE=ON ../..
|
||||||
|
cmake --build .
|
||||||
|
|
||||||
|
lcov -d . -z
|
||||||
|
ctest --verbose
|
||||||
|
|
||||||
|
lcov -d . -c -o "coverage.info"
|
||||||
|
lcov -r "coverage.info" "*/usr/*" "*/catch.hpp" "*/catch_main.cpp" "*_tests.cpp" "*_examples.cpp" -o "coverage.info"
|
||||||
|
lcov -l "coverage.info"
|
||||||
|
|
||||||
|
bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"
|
||||||
51
untests/CMakeLists.txt
Normal file
51
untests/CMakeLists.txt
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# 3.11 version is required for `FetchContent`
|
||||||
|
cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
|
||||||
|
|
||||||
|
project(vmath.hpp.untests)
|
||||||
|
|
||||||
|
#
|
||||||
|
# coverage
|
||||||
|
#
|
||||||
|
|
||||||
|
option(BUILD_WITH_COVERAGE "Build with coverage" OFF)
|
||||||
|
if(BUILD_WITH_COVERAGE AND (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang"))
|
||||||
|
set(COVERAGE_FLAGS "--coverage")
|
||||||
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COVERAGE_FLAGS}")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COVERAGE_FLAGS}")
|
||||||
|
set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} ${COVERAGE_FLAGS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#
|
||||||
|
# executable
|
||||||
|
#
|
||||||
|
|
||||||
|
file(GLOB UNTESTS_SOURCES "*.cpp" "*.hpp")
|
||||||
|
add_executable(${PROJECT_NAME} ${UNTESTS_SOURCES})
|
||||||
|
target_link_libraries(${PROJECT_NAME} vmath.hpp)
|
||||||
|
|
||||||
|
target_compile_options(${PROJECT_NAME}
|
||||||
|
PRIVATE
|
||||||
|
$<$<CXX_COMPILER_ID:MSVC>:
|
||||||
|
/W4>
|
||||||
|
PRIVATE
|
||||||
|
$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:
|
||||||
|
-Wall -Wextra -Wpedantic>)
|
||||||
|
|
||||||
|
add_test(${PROJECT_NAME} ${PROJECT_NAME})
|
||||||
|
|
||||||
|
#
|
||||||
|
# catchorg/catch2
|
||||||
|
#
|
||||||
|
|
||||||
|
include(FetchContent)
|
||||||
|
FetchContent_Declare(
|
||||||
|
catchorg_catch2
|
||||||
|
GIT_REPOSITORY https://github.com/catchorg/catch2
|
||||||
|
GIT_TAG v2.13.2)
|
||||||
|
|
||||||
|
FetchContent_GetProperties(catchorg_catch2)
|
||||||
|
if(NOT catchorg_catch2_POPULATED)
|
||||||
|
FetchContent_Populate(catchorg_catch2)
|
||||||
|
target_include_directories(${PROJECT_NAME}
|
||||||
|
PRIVATE ${catchorg_catch2_SOURCE_DIR}/single_include)
|
||||||
|
endif()
|
||||||
9
untests/catch_main.cpp
Normal file
9
untests/catch_main.cpp
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* This file is part of the "https://github.com/blackmatov/vmath.hpp"
|
||||||
|
* For conditions of distribution and use, see copyright notice in LICENSE.md
|
||||||
|
* Copyright (C) 2020, by Matvey Cherevko (blackmatov@gmail.com)
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#define CATCH_CONFIG_MAIN
|
||||||
|
#define CATCH_CONFIG_FAST_COMPILE
|
||||||
|
#include <catch2/catch.hpp>
|
||||||
18
untests/vmath_examples.cpp
Normal file
18
untests/vmath_examples.cpp
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* This file is part of the "https://github.com/blackmatov/vmath.hpp"
|
||||||
|
* For conditions of distribution and use, see copyright notice in LICENSE.md
|
||||||
|
* Copyright (C) 2020, by Matvey Cherevko (blackmatov@gmail.com)
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#define CATCH_CONFIG_FAST_COMPILE
|
||||||
|
#include <catch2/catch.hpp>
|
||||||
|
|
||||||
|
#include <vmath.hpp/vmath.hpp>
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("examples") {
|
||||||
|
REQUIRE(true);
|
||||||
|
}
|
||||||
18
untests/vmath_tests.cpp
Normal file
18
untests/vmath_tests.cpp
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* This file is part of the "https://github.com/blackmatov/vmath.hpp"
|
||||||
|
* For conditions of distribution and use, see copyright notice in LICENSE.md
|
||||||
|
* Copyright (C) 2020, by Matvey Cherevko (blackmatov@gmail.com)
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#define CATCH_CONFIG_FAST_COMPILE
|
||||||
|
#include <catch2/catch.hpp>
|
||||||
|
|
||||||
|
#include <vmath.hpp/vmath.hpp>
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("vmath") {
|
||||||
|
REQUIRE(true);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user