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()
|
enable_testing()
|
||||||
add_subdirectory(test EXCLUDE_FROM_ALL)
|
add_subdirectory(test EXCLUDE_FROM_ALL)
|
||||||
|
add_subdirectory(index/test EXCLUDE_FROM_ALL)
|
||||||
|
|
||||||
endif()
|
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}
|
target_include_directories(${unit_test_name}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
"${PROJECT_SOURCE_DIR}/test"
|
"${PROJECT_SOURCE_DIR}/test"
|
||||||
|
"${PROJECT_SOURCE_DIR}/index/test"
|
||||||
.)
|
.)
|
||||||
|
|
||||||
# To compile with C++14
|
# To compile with C++14
|
||||||
|
Loading…
x
Reference in New Issue
Block a user