Loading .gitlab-ci.yml +3 −3 Original line number Diff line number Diff line image: python:3.7.5-buster image: python:3.7.7-buster variables: GIT_STRATEGY: fetch Loading @@ -16,10 +16,10 @@ test:meson: test:cmake: script: - python -m pip install cmake ninja conan - python -m pip install cmake ninja - cmake -S. -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Debug - cmake --build build --target unit_tests_csg - cd build - ctest --verbose - ctest tags: - mfix-exa .gitmodules +0 −6 Original line number Diff line number Diff line [submodule "PEGTL"] path = subprojects/PEGTL url = https://github.com/taocpp/PEGTL [submodule "subprojects/Catch2"] path = subprojects/Catch2 url = https://github.com/catchorg/Catch2 CMakeLists.txt +10 −16 Original line number Diff line number Diff line Loading @@ -15,31 +15,25 @@ if(CCACHE_FOUND) set( CMAKE_CXX_COMPILER_LAUNCHER ccache ) endif() # Download automatically, you can also just copy the conan.cmake file if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake") message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan") file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/master/conan.cmake" "${CMAKE_BINARY_DIR}/conan.cmake") endif() include(${CMAKE_BINARY_DIR}/conan.cmake) include(pmm.cmake) pmm(CONAN) conan_cmake_run(REQUIRES catch2/2.12.1 cgal/5.0.2 pegtl/2.8.1@taocpp/stable BASIC_SETUP CMAKE_TARGETS) conan_basic_setup() include(${CMAKE_CURRENT_BINARY_DIR}/conanbuildinfo.cmake) include(CTest) include(Catch) set(MFIXPARSER_CATCH2_DIR ${CONAN_LIB_DIRS_CATCH2}/cmake/Catch2 PARENT_SCOPE) if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) set(MFIXPARSER_CATCH2_DIR ${CONAN_BUILD_DIRS_CATCH2} PARENT_SCOPE) set(MFIXPARSER_CATCH2_INC ${CONAN_INCLUDE_DIRS_CATCH2} PARENT_SCOPE) endif() add_subdirectory(src/csg) target_include_directories(csg PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CONAN_INCLUDE_DIRS_PEGTL} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ) target_compile_features(csg PRIVATE cxx_std_17) pmm.cmake 0 → 100644 +82 −0 Original line number Diff line number Diff line ## MIT License ## ## Copyright (c) 2019 vector-of-bool ## ## 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. # Bump this version to change what PMM version is downloaded set(PMM_VERSION_INIT 1.4.2) # Helpful macro to set a variable if it isn't already set macro(_pmm_set_if_undef varname) if(NOT DEFINED "${varname}") set("${varname}" "${ARGN}") endif() endmacro() ## Variables used by this script # The version: _pmm_set_if_undef(PMM_VERSION ${PMM_VERSION_INIT}) # The base URL we download PMM from: _pmm_set_if_undef(PMM_URL_BASE "https://vector-of-bool.github.io/pmm") # The real URL we download from (Based on the version) _pmm_set_if_undef(PMM_URL "${PMM_URL_BASE}/${PMM_VERSION}") # The directory where we store our downloaded files _pmm_set_if_undef(PMM_DIR_BASE "${CMAKE_BINARY_DIR}/_pmm") _pmm_set_if_undef(PMM_DIR "${PMM_DIR_BASE}/${PMM_VERSION}") # The file that we first download set(_PMM_ENTRY_FILE "${PMM_DIR}/entry.cmake") # Guard against multiple processes trying to use the PMM dir simultaneously file(LOCK "${PMM_DIR}/_init-pmm" GUARD PROCESS TIMEOUT 10 RESULT_VARIABLE _lock_res ) if(NOT _lock_res STREQUAL "0") message(WARNING "PMM entry didn't lock the directory ${PMM_DIR} successfully (${_lock_res}). We'll continue as best we can.") set(_pmm_init_did_lock FALSE) else() set(_pmm_init_did_lock TRUE) endif() if(NOT EXISTS "${_PMM_ENTRY_FILE}" OR PMM_ALWAYS_DOWNLOAD) file( DOWNLOAD "${PMM_URL}/entry.cmake" "${_PMM_ENTRY_FILE}.tmp" STATUS pair ) list(GET pair 0 rc) list(GET pair 1 msg) if(rc) message(FATAL_ERROR "Failed to download PMM entry file") endif() file(RENAME "${_PMM_ENTRY_FILE}.tmp" "${_PMM_ENTRY_FILE}") endif() # ^^^ DO NOT CHANGE THIS LINE vvv set(_PMM_BOOTSTRAP_VERSION 2) # ^^^ DO NOT CHANGE THIS LINE ^^^ include("${_PMM_ENTRY_FILE}") if(_pmm_init_did_lock) file(LOCK "${PMM_DIR}/_init-pmm" RELEASE) endif() src/csg/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ add_library(csg target_link_libraries(csg PRIVATE stdc++fs CONAN_PKG::cgal CONAN_PKG::pegtl ) add_subdirectory(tests) Loading
.gitlab-ci.yml +3 −3 Original line number Diff line number Diff line image: python:3.7.5-buster image: python:3.7.7-buster variables: GIT_STRATEGY: fetch Loading @@ -16,10 +16,10 @@ test:meson: test:cmake: script: - python -m pip install cmake ninja conan - python -m pip install cmake ninja - cmake -S. -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Debug - cmake --build build --target unit_tests_csg - cd build - ctest --verbose - ctest tags: - mfix-exa
.gitmodules +0 −6 Original line number Diff line number Diff line [submodule "PEGTL"] path = subprojects/PEGTL url = https://github.com/taocpp/PEGTL [submodule "subprojects/Catch2"] path = subprojects/Catch2 url = https://github.com/catchorg/Catch2
CMakeLists.txt +10 −16 Original line number Diff line number Diff line Loading @@ -15,31 +15,25 @@ if(CCACHE_FOUND) set( CMAKE_CXX_COMPILER_LAUNCHER ccache ) endif() # Download automatically, you can also just copy the conan.cmake file if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake") message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan") file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/master/conan.cmake" "${CMAKE_BINARY_DIR}/conan.cmake") endif() include(${CMAKE_BINARY_DIR}/conan.cmake) include(pmm.cmake) pmm(CONAN) conan_cmake_run(REQUIRES catch2/2.12.1 cgal/5.0.2 pegtl/2.8.1@taocpp/stable BASIC_SETUP CMAKE_TARGETS) conan_basic_setup() include(${CMAKE_CURRENT_BINARY_DIR}/conanbuildinfo.cmake) include(CTest) include(Catch) set(MFIXPARSER_CATCH2_DIR ${CONAN_LIB_DIRS_CATCH2}/cmake/Catch2 PARENT_SCOPE) if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) set(MFIXPARSER_CATCH2_DIR ${CONAN_BUILD_DIRS_CATCH2} PARENT_SCOPE) set(MFIXPARSER_CATCH2_INC ${CONAN_INCLUDE_DIRS_CATCH2} PARENT_SCOPE) endif() add_subdirectory(src/csg) target_include_directories(csg PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CONAN_INCLUDE_DIRS_PEGTL} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ) target_compile_features(csg PRIVATE cxx_std_17)
pmm.cmake 0 → 100644 +82 −0 Original line number Diff line number Diff line ## MIT License ## ## Copyright (c) 2019 vector-of-bool ## ## 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. # Bump this version to change what PMM version is downloaded set(PMM_VERSION_INIT 1.4.2) # Helpful macro to set a variable if it isn't already set macro(_pmm_set_if_undef varname) if(NOT DEFINED "${varname}") set("${varname}" "${ARGN}") endif() endmacro() ## Variables used by this script # The version: _pmm_set_if_undef(PMM_VERSION ${PMM_VERSION_INIT}) # The base URL we download PMM from: _pmm_set_if_undef(PMM_URL_BASE "https://vector-of-bool.github.io/pmm") # The real URL we download from (Based on the version) _pmm_set_if_undef(PMM_URL "${PMM_URL_BASE}/${PMM_VERSION}") # The directory where we store our downloaded files _pmm_set_if_undef(PMM_DIR_BASE "${CMAKE_BINARY_DIR}/_pmm") _pmm_set_if_undef(PMM_DIR "${PMM_DIR_BASE}/${PMM_VERSION}") # The file that we first download set(_PMM_ENTRY_FILE "${PMM_DIR}/entry.cmake") # Guard against multiple processes trying to use the PMM dir simultaneously file(LOCK "${PMM_DIR}/_init-pmm" GUARD PROCESS TIMEOUT 10 RESULT_VARIABLE _lock_res ) if(NOT _lock_res STREQUAL "0") message(WARNING "PMM entry didn't lock the directory ${PMM_DIR} successfully (${_lock_res}). We'll continue as best we can.") set(_pmm_init_did_lock FALSE) else() set(_pmm_init_did_lock TRUE) endif() if(NOT EXISTS "${_PMM_ENTRY_FILE}" OR PMM_ALWAYS_DOWNLOAD) file( DOWNLOAD "${PMM_URL}/entry.cmake" "${_PMM_ENTRY_FILE}.tmp" STATUS pair ) list(GET pair 0 rc) list(GET pair 1 msg) if(rc) message(FATAL_ERROR "Failed to download PMM entry file") endif() file(RENAME "${_PMM_ENTRY_FILE}.tmp" "${_PMM_ENTRY_FILE}") endif() # ^^^ DO NOT CHANGE THIS LINE vvv set(_PMM_BOOTSTRAP_VERSION 2) # ^^^ DO NOT CHANGE THIS LINE ^^^ include("${_PMM_ENTRY_FILE}") if(_pmm_init_did_lock) file(LOCK "${PMM_DIR}/_init-pmm" RELEASE) endif()
src/csg/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ add_library(csg target_link_libraries(csg PRIVATE stdc++fs CONAN_PKG::cgal CONAN_PKG::pegtl ) add_subdirectory(tests)