From ebf2fadf55b22f6e8714ba22cdc892f87336adea Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Mon, 2 Sep 2024 09:44:28 +0200 Subject: [PATCH 1/7] cmake: Conditionally forward toolchain file --- cmake/cesium.cmake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmake/cesium.cmake b/cmake/cesium.cmake index 651d4fd2..563d32c5 100644 --- a/cmake/cesium.cmake +++ b/cmake/cesium.cmake @@ -49,6 +49,10 @@ foreach (lib ${CESIUM_LIBS}) endforeach() message(STATUS "cesium byproducts: ${CESIUM_BYPRODUCTS}") +if (CMAKE_TOOLCHAIN_FILE) + list(cesium_extra_args "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") +endif() + ExternalProject_Add(cesiumnative SOURCE_DIR ${cesiumnative_src_SOURCE_DIR} CMAKE_ARGS @@ -58,8 +62,8 @@ ExternalProject_Add(cesiumnative -DCESIUM_TRACING_ENABLED=OFF -DDRACO_JS_GLUE=OFF -DBUILD_SHARED_LIBS=OFF - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + ${cesium_extra_args} BUILD_BYPRODUCTS ${CESIUM_BYPRODUCTS} INSTALL_COMMAND "" From 93d455134691f82bda25e6bbe159e7177a8f829b Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Mon, 2 Sep 2024 09:46:28 +0200 Subject: [PATCH 2/7] ci: Build tests --- .github/workflows/build-release.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 1820413b..8f2cb5a5 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -38,3 +38,24 @@ jobs: name: erdblick path: | static/* + + build-test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Install build dependencies + run: sudo apt-get install ninja-build + + - name: Compile + run: | + mkdir build + cd build + cmake -GNinja -DCMAKE_BUILD_TYPE=Debug .. + cmake --build . + + - name: Run Tests + run: | + cd build + ctest --verbose From e3e592e208fa4cd8faaad2ba84d13464f75d2660 Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Mon, 2 Sep 2024 09:50:19 +0200 Subject: [PATCH 3/7] Fix CMake list usage --- cmake/cesium.cmake | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cmake/cesium.cmake b/cmake/cesium.cmake index 563d32c5..ad799e7c 100644 --- a/cmake/cesium.cmake +++ b/cmake/cesium.cmake @@ -49,8 +49,9 @@ foreach (lib ${CESIUM_LIBS}) endforeach() message(STATUS "cesium byproducts: ${CESIUM_BYPRODUCTS}") +set(CESIUM_EXTRA_ARGS) if (CMAKE_TOOLCHAIN_FILE) - list(cesium_extra_args "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") + list(APPEND CESIUM_EXTRA_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") endif() ExternalProject_Add(cesiumnative @@ -63,7 +64,7 @@ ExternalProject_Add(cesiumnative -DDRACO_JS_GLUE=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - ${cesium_extra_args} + ${CESIUM_EXTRA_ARGS} BUILD_BYPRODUCTS ${CESIUM_BYPRODUCTS} INSTALL_COMMAND "" From ba0e798bb2f421769785f6c93b00806b0f16a428 Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Mon, 2 Sep 2024 09:52:22 +0200 Subject: [PATCH 4/7] Remove emsdk include from non-wasm header --- libs/core/include/erdblick/sourcedata.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/libs/core/include/erdblick/sourcedata.hpp b/libs/core/include/erdblick/sourcedata.hpp index a955fddb..08d46e65 100644 --- a/libs/core/include/erdblick/sourcedata.hpp +++ b/libs/core/include/erdblick/sourcedata.hpp @@ -1,5 +1,3 @@ -#include - #include "mapget/model/sourcedatalayer.h" #include "cesium-interface/object.h" From 9c6b1bf6a4fe228b5542eb5bea399550f07e5067 Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Mon, 2 Sep 2024 10:00:56 +0200 Subject: [PATCH 5/7] cmake: Run build-ui for emsdk builds only --- CMakeLists.txt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 773c2de3..5a4b320e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,17 +33,15 @@ FetchContent_MakeAvailable(yaml-cpp) include(cmake/cesium.cmake) # Erdblick Core Library - add_subdirectory(libs/core) if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten") add_subdirectory(test) +else() + # Angular Build + add_custom_target(erdblick-ui ALL + COMMAND bash "${CMAKE_SOURCE_DIR}/build-ui.bash" "${CMAKE_SOURCE_DIR}" + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + DEPENDS erdblick-core) endif() -# Angular Build - -add_custom_target(erdblick-ui ALL - COMMAND bash "${CMAKE_SOURCE_DIR}/build-ui.bash" "${CMAKE_SOURCE_DIR}" - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - DEPENDS erdblick-core -) From 2c83a7813fb142b7bb93d88e0ba99472a9ebea1e Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Mon, 2 Sep 2024 10:11:17 +0200 Subject: [PATCH 6/7] cmake: Fail on no-tests --- .github/workflows/build-release.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 8f2cb5a5..4915e1ff 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -50,12 +50,9 @@ jobs: - name: Compile run: | - mkdir build - cd build - cmake -GNinja -DCMAKE_BUILD_TYPE=Debug .. - cmake --build . + cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -B build + cmake --build build - name: Run Tests run: | - cd build - ctest --verbose + ctest --verbose --no-tests=error --test-dir=build From e426b2482ed450e044ec0b3cdca507e6e0502c55 Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Mon, 2 Sep 2024 10:13:28 +0200 Subject: [PATCH 7/7] cmake: Enable testing --- .github/workflows/build-release.yml | 2 +- test/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 4915e1ff..457aec78 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -55,4 +55,4 @@ jobs: - name: Run Tests run: | - ctest --verbose --no-tests=error --test-dir=build + ctest --verbose --no-tests=error --test-dir build diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index d2f7e752..aa8d5d9a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,4 +1,5 @@ project(test.erdblick) +enable_testing() if (NOT TARGET Catch2) FetchContent_Declare(Catch2