mirror of
https://github.com/boostorg/geometry.git
synced 2025-05-09 23:24:02 +00:00
Add cmake tests on github actions and add cmake scripts for index
This commit is contained in:
parent
7fa4bf7b4d
commit
a6f99e5572
104
.github/workflows/cmake.yml
vendored
Normal file
104
.github/workflows/cmake.yml
vendored
Normal file
@ -0,0 +1,104 @@
|
||||
##############################################################################
|
||||
# GitHub Actions Workflow for Boost.Geometry to build tests with cmake
|
||||
#
|
||||
# Copyright (c) 2024 Oracle and/or its affiliates.
|
||||
# Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
|
||||
#
|
||||
# Use, modification and distribution is subject to the Boost Software License,
|
||||
# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
##############################################################################
|
||||
name: cmake
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
##############################################################################
|
||||
clang:
|
||||
name: ${{ matrix.b2_toolset }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
b2_toolset: [
|
||||
clang-14
|
||||
]
|
||||
|
||||
include:
|
||||
- b2_toolset: clang-14
|
||||
b2_cxxstd: 14,17,2a
|
||||
version: "14"
|
||||
os: ubuntu-22.04
|
||||
steps:
|
||||
- name: Set up environment
|
||||
id: setenv
|
||||
run: |
|
||||
if [[ "$GITHUB_REF" == *master ]]; then
|
||||
echo "BOOST_BRANCH=master" >> $GITHUB_ENV
|
||||
else
|
||||
echo "BOOST_BRANCH=develop" >> $GITHUB_ENV
|
||||
fi
|
||||
echo "BOOST_SELF=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV
|
||||
echo "BOOST_ROOT=$GITHUB_WORKSPACE/boost-root" >> $GITHUB_ENV
|
||||
echo "boost_self=$(basename $GITHUB_WORKSPACE)" >> "$GITHUB_OUTPUT"
|
||||
echo "boost_root=$GITHUB_WORKSPACE/boost-root" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Clone boostorg/boost
|
||||
run: |
|
||||
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $BOOST_ROOT
|
||||
cd $BOOST_ROOT
|
||||
git submodule update -q --init libs/headers
|
||||
git submodule update -q --init tools/boost_install
|
||||
git submodule update -q --init tools/boostdep
|
||||
git submodule update -q --init tools/build
|
||||
mkdir -p libs/$BOOST_SELF
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }}
|
||||
|
||||
- name: Run tools/boostdep/depinst/depinst.py
|
||||
run: |
|
||||
cd $BOOST_ROOT
|
||||
python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $BOOST_SELF
|
||||
|
||||
- name: Bootstrap boostorg/boost
|
||||
run: |
|
||||
gcc --version
|
||||
cd $BOOST_ROOT
|
||||
./bootstrap.sh --with-toolset=gcc
|
||||
./b2 headers
|
||||
test -f /usr/local/bin/b2 && rm -rf /usr/local/bin/b2
|
||||
test -f /usr/local/bin/bjam && rm -rf /usr/local/bin/bjam
|
||||
sudo cp $BOOST_ROOT/b2 /usr/local/bin/
|
||||
ls -l /usr/local/bin/b2
|
||||
b2 -v
|
||||
|
||||
- name: Set up clang toolset in ~/user-config.jam
|
||||
run: |
|
||||
export CXX_NAME=clang++-${{ matrix.version }}
|
||||
echo ${CXX_NAME}
|
||||
echo "# $HOME/user-config.jam" > $HOME/user-config.jam
|
||||
echo "using clang : : $(which clang++-${{ matrix.version }}) ;" > ${HOME}/user-config.jam
|
||||
test -f $HOME/user-config.jam && cat $HOME/user-config.jam
|
||||
|
||||
- name: Build tests with cmake (c++17)
|
||||
run: |
|
||||
cd $BOOST_ROOT/libs/geometry
|
||||
mkdir __build
|
||||
cd __build
|
||||
cmake -DCMAKE_CXX_STANDARD=17 -DBUILD_TESTING=ON ..
|
||||
cmake --build . --target tests
|
||||
|
||||
- name: Build tests with cmake
|
||||
run: |
|
||||
cd $BOOST_ROOT/libs/geometry/__build
|
||||
rm -rf *
|
||||
cmake -DBUILD_TESTING=ON ..
|
||||
cmake --build . --target tests
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
cd $BOOST_ROOT/libs/geometry/__build
|
||||
ctest --output-on-failure --no-tests=error
|
@ -124,6 +124,7 @@ if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
|
||||
|
||||
enable_testing()
|
||||
add_subdirectory(test EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(index/test EXCLUDE_FROM_ALL)
|
||||
|
||||
endif()
|
||||
|
||||
|
17
index/test/CMakeLists.txt
Normal file
17
index/test/CMakeLists.txt
Normal file
@ -0,0 +1,17 @@
|
||||
# Boost.Geometry
|
||||
# Copyright (c) 2024, Oracle and/or its affiliates.
|
||||
# Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
|
||||
# Use, modification and distribution is subject to the Boost Software License,
|
||||
# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
foreach(item IN ITEMS
|
||||
minmax_heap
|
||||
varray_old
|
||||
varray
|
||||
)
|
||||
boost_geometry_add_unit_test("index" ${item})
|
||||
endforeach()
|
||||
|
||||
add_subdirectory(algorithms)
|
||||
add_subdirectory(rtree)
|
19
index/test/algorithms/CMakeLists.txt
Normal file
19
index/test/algorithms/CMakeLists.txt
Normal file
@ -0,0 +1,19 @@
|
||||
# Boost.Geometry
|
||||
# Copyright (c) 2024, Oracle and/or its affiliates.
|
||||
# Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
|
||||
# Use, modification and distribution is subject to the Boost Software License,
|
||||
# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
foreach(item IN ITEMS
|
||||
content
|
||||
intersection_content # this tests overlap() too
|
||||
is_valid
|
||||
margin
|
||||
#minmaxdist
|
||||
union_content
|
||||
segment_intersection
|
||||
path_intersection
|
||||
)
|
||||
boost_geometry_add_unit_test("index" ${item})
|
||||
endforeach()
|
19
index/test/rtree/CMakeLists.txt
Normal file
19
index/test/rtree/CMakeLists.txt
Normal file
@ -0,0 +1,19 @@
|
||||
# Boost.Geometry
|
||||
# Copyright (c) 2024, Oracle and/or its affiliates.
|
||||
# Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
|
||||
# Use, modification and distribution is subject to the Boost Software License,
|
||||
# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
foreach(item IN ITEMS
|
||||
rtree_contains_point
|
||||
rtree_epsilon
|
||||
rtree_insert_remove
|
||||
rtree_intersects_geom
|
||||
rtree_move_pack
|
||||
rtree_non_cartesian
|
||||
rtree_values
|
||||
#compile-fail rtree_values_invalid
|
||||
)
|
||||
boost_geometry_add_unit_test("index" ${item})
|
||||
endforeach()
|
@ -28,6 +28,7 @@ function(boost_geometry_add_unit_test prefix item)
|
||||
target_include_directories(${unit_test_name}
|
||||
PRIVATE
|
||||
"${PROJECT_SOURCE_DIR}/test"
|
||||
"${PROJECT_SOURCE_DIR}/index/test"
|
||||
.)
|
||||
|
||||
# To compile with C++14
|
||||
|
Loading…
x
Reference in New Issue
Block a user