From 795d1468241c9ca5c355c95a4d37b2eef19aa98e Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 29 Oct 2025 11:28:42 +0000 Subject: [PATCH 01/31] REMOVE Windows and Mac only. --- .github/workflows/_build_and_package.yml | 26 ------------------------ .github/workflows/pr.yml | 15 -------------- 2 files changed, 41 deletions(-) diff --git a/.github/workflows/_build_and_package.yml b/.github/workflows/_build_and_package.yml index 7647b94920..2211cfddc6 100644 --- a/.github/workflows/_build_and_package.yml +++ b/.github/workflows/_build_and_package.yml @@ -58,29 +58,3 @@ jobs: conanHash: ${{ inputs.conanHash }} osxTargetDeploymentVersion: ${{ inputs.osxTargetDeploymentVersion }} - BuildLinux: - strategy: - fail-fast: false - matrix: - target: [ dissolve, dissolve-gui ] - runs-on: ubuntu-latest - steps: - - name: 'Download Source Tarfiles' - uses: actions/download-artifact@v4 - with: - name: source - - - name: 'Unpack Source' - shell: bash - run: tar -xvf dissolve-versioned-source.tar - - - name: "Build, Test, Package (Linux, ${{ matrix.target }})" - uses: "./.github/workflows/build" - with: - target: ${{ matrix.target }} - currentVersion: ${{ inputs.currentVersion }} - nixHash: ${{ inputs.nixHash }} - benchmark: ${{ inputs.benchmark }} - publishBenchmarks: ${{ inputs.publishBenchmarks }} - osxTargetDeploymentVersion: ${{ inputs.osxTargetDeploymentVersion }} - diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 4088cc6a9b..cb794b44cb 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -25,14 +25,7 @@ jobs: with: checkoutRef: ${{ github.event.pull_request.head.sha }} - QC: - needs: [Checkout] - uses: "./.github/workflows/_qc.yml" - with: - nixHash: ${{ needs.Checkout.outputs.nixHash }} - BuildAndPackage: - needs: [Checkout] uses: "./.github/workflows/_build_and_package.yml" with: benchmark: false @@ -51,11 +44,3 @@ jobs: with: branch: 'refs/pull/${{ github.event.pull_request.number }}/merge' - Web: - needs: [Checkout] - uses: "./.github/workflows/_website.yml" - with: - publishType: 'none' - displayMajorVersion: ${{ needs.Checkout.outputs.currentVersionMajor }} - displayMinorVersion: ${{ needs.Checkout.outputs.currentVersionMinor }} - hugoVersion: ${{ needs.Checkout.outputs.hugoVersion }} From ce6618ce4a226c44bbae5c0be7fb48bf3050779b Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 29 Oct 2025 11:34:56 +0000 Subject: [PATCH 02/31] Dump attempt at building tests. --- .github/workflows/build/osx/action.yml | 9 +++++++++ .github/workflows/build/windows/action.yml | 9 ++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build/osx/action.yml b/.github/workflows/build/osx/action.yml index 78e23117b4..c4f54b9090 100644 --- a/.github/workflows/build/osx/action.yml +++ b/.github/workflows/build/osx/action.yml @@ -193,6 +193,15 @@ runs: mkdir gsl cp -v $(brew --prefix gsl)/lib/*.dylib ./gsl + - name: Test + if: ${{ inputs.cacheOnly == 'false' }} + shell: bash + run: | + set -ex + cd build + + ctest + - name: Upload Raw Build Artifacts if: ${{ inputs.cacheOnly == 'false' }} uses: actions/upload-artifact@v4 diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index 6d05f4ef1e..b01131ce40 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -172,13 +172,20 @@ runs: mkdir -p build && cd build TEMPD=$(mktemp -d) mkdir -p $TEMPD/bin - cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD + cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=true cmake --build . --config Release cp bin/* $TEMPD/bin ninja install mkdir -p install cp -r $TEMPD/* install/ + - name: Test + if: ${{ inputs.cacheOnly == 'false' }} + shell: bash + run: | + cd build + ctest + - name: Upload Raw Build Artifacts if: ${{ inputs.cacheOnly == 'false' }} uses: actions/upload-artifact@v4 From 64b4be9f61acc5a86cfcd8e9aad341fec036e81c Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 29 Oct 2025 11:43:16 +0000 Subject: [PATCH 03/31] REMOVE Fix. --- .github/workflows/pr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index cb794b44cb..8191539854 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -26,6 +26,7 @@ jobs: checkoutRef: ${{ github.event.pull_request.head.sha }} BuildAndPackage: + needs: Checkout uses: "./.github/workflows/_build_and_package.yml" with: benchmark: false From 3cc5115e9b9db6279d8f6eac9187d6e2efe2eb76 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 29 Oct 2025 12:00:26 +0000 Subject: [PATCH 04/31] Huh? --- .github/workflows/build/windows/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index b01131ce40..a755f5070e 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -179,6 +179,7 @@ runs: mkdir -p install cp -r $TEMPD/* install/ + - name: Test if: ${{ inputs.cacheOnly == 'false' }} shell: bash From 9e2fbc24a6d30080d38c7454a0a976a4ef7b82d3 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 29 Oct 2025 12:13:26 +0000 Subject: [PATCH 05/31] The mystery is solved. --- .github/workflows/build/windows/action.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index a755f5070e..b01131ce40 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -179,7 +179,6 @@ runs: mkdir -p install cp -r $TEMPD/* install/ - - name: Test if: ${{ inputs.cacheOnly == 'false' }} shell: bash From 8af965c66864a555cce847f8e6e16cc5c3de59a7 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 19 Nov 2025 11:03:30 +0000 Subject: [PATCH 06/31] Split things up. --- .github/workflows/build/windows/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index b01131ce40..957df31221 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -184,6 +184,7 @@ runs: shell: bash run: | cd build + cmake --build . --config Release ctest - name: Upload Raw Build Artifacts From c16d5760b53f026079ade99d912ee81741427ab4 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 19 Nov 2025 16:09:01 +0000 Subject: [PATCH 07/31] Disk space check, set env. --- .github/workflows/build/windows/action.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index 957df31221..e80ee23221 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -183,6 +183,15 @@ runs: if: ${{ inputs.cacheOnly == 'false' }} shell: bash run: | + df -mh . + Qt6_DIR="${RUNNER_TEMP}\qt\${{ inputs.qtVersion }}\msvc2019_64" + ANTLR_EXE="${RUNNER_TEMP}\antlr-${{ inputs.antlrVersion }}-complete.jar" + export PATH="${Qt6_DIR}\bin;$PATH" + INCLUDE="${RUNNER_TEMP}\freetype-latest;$INCLUDE" + LIB="${RUNNER_TEMP}\freetype-install\lib;${RUNNER_TEMP}\freetype-install\bin;$LIB" + INCLUDE="${RUNNER_TEMP}\ftgl-latest\src;$INCLUDE" + LIB="${RUNNER_TEMP}\ftgl-install\lib;$LIB" + JAVA_EXE="${JAVA_HOME_21_X64}\bin\java.exe" cd build cmake --build . --config Release ctest From f5efa53a391eebb4f9f8f4c51e6d5af4aec5e961 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Fri, 22 May 2026 11:36:39 +0100 Subject: [PATCH 08/31] Options in conanfile.py. --- conanfile.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 8e87c8eae0..5063650698 100644 --- a/conanfile.py +++ b/conanfile.py @@ -9,9 +9,13 @@ class DissolveRecipe(ConanFile): generators = "CMakeToolchain", "CMakeDeps" options = { "msvc_dev": [True, False], + "tests": [True, False], + "benchmarks": [True, False], } default_options = { "msvc_dev": False, + "tests": True, + "benchmarks": False, } def configure(self): self.options["puxixml"].header_only = False @@ -32,8 +36,9 @@ def requirements(self): self.requires("antlr4-cppruntime/4.13.1") self.requires("gsl/2.7.1") - if self.settings.os == "Linux" or (self.options.msvc_dev and self.settings.build_type == "Debug"): + if self.options.tests: self.requires("gtest/1.17.0") + if self.options.benchmarks: self.requires("benchmark/1.8.4") def build_requirements(self): From 6e4e3f06d0f47790df0c538bdd0daa34a66ba5bd Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Fri, 22 May 2026 12:08:47 +0100 Subject: [PATCH 09/31] Build tests (OSX). --- .github/workflows/build/osx/action.yml | 4 +--- .github/workflows/build/windows/action.yml | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build/osx/action.yml b/.github/workflows/build/osx/action.yml index c4f54b9090..b433c7acda 100644 --- a/.github/workflows/build/osx/action.yml +++ b/.github/workflows/build/osx/action.yml @@ -181,13 +181,11 @@ runs: conan install . --deployer=direct_deploy --build=missing mkdir -p build && cd build - - cmake -G Ninja -DGUI:bool=true -DMULTI_THREADING:bool=${{ inputs.threading }} -DCONAN_GSL="OFF" -DJava_JAVA_EXECUTABLE:path=${JAVA_RUNTIME} -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DQT_BASE_DIR=$QT_BASE_DIR ../ -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ inputs.osxTargetDeploymentVersion }} + cmake -G Ninja -DGUI:bool=true -DMULTI_THREADING:bool=${{ inputs.threading }} -DCONAN_GSL="OFF" -DJava_JAVA_EXECUTABLE:path=${JAVA_RUNTIME} -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DQT_BASE_DIR=$QT_BASE_DIR ../ -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ inputs.osxTargetDeploymentVersion }} -DBUILD_TESTS:bool=ON cmake --build . --config Release # Move conan-installed deps to the build dir mv ../direct_deploy ./ - ls -R direct_deploy # Copy over gsl libs so we can ship them with the bundle. Our exe is only linked to two of the four libs present, and this breaks the binary if we don't include them all in the package. mkdir gsl diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index e80ee23221..f17783e1ef 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -172,7 +172,7 @@ runs: mkdir -p build && cd build TEMPD=$(mktemp -d) mkdir -p $TEMPD/bin - cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=true + cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON cmake --build . --config Release cp bin/* $TEMPD/bin ninja install From 053900a8ea0e79be6fc5cfb6dd27793e768dc3e5 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sat, 23 May 2026 11:09:14 +0100 Subject: [PATCH 10/31] Missing OpenGL in linker for Apple. --- tests/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c9ea7c34d7..3b5917e661 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -50,6 +50,12 @@ function(dissolve_add_test) PUBLIC models widgets render delegates PRIVATE Qt6::Core Qt6::Widgets ) + if(APPLE) + target_link_libraries( + ${TEST_NAME} + PRIVATE OpenGL + ) + endif(APPLE) endif(DISSOLVE_UNIT_TEST_GUI) # Register the test From b065b3b3329f3750e6b4e6ebdbdac6b983197734 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sat, 23 May 2026 12:05:02 +0100 Subject: [PATCH 11/31] Attempt windeployqt before building test binaries. --- .github/workflows/build/windows/action.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index f17783e1ef..1c21f41df8 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -172,7 +172,7 @@ runs: mkdir -p build && cd build TEMPD=$(mktemp -d) mkdir -p $TEMPD/bin - cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON + cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD cmake --build . --config Release cp bin/* $TEMPD/bin ninja install @@ -193,6 +193,10 @@ runs: LIB="${RUNNER_TEMP}\ftgl-install\lib;$LIB" JAVA_EXE="${JAVA_HOME_21_X64}\bin\java.exe" cd build + + # Run windeployqt on the main Dissolve binaries to pull in library requirements + windeployqt bin/* + cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON cmake --build . --config Release ctest From 082c4961bc70ccfc1009db8c9ee9f7f08953cfb5 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sat, 23 May 2026 12:05:10 +0100 Subject: [PATCH 12/31] Namespace for lib? --- tests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3b5917e661..3da5057d44 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -53,7 +53,7 @@ function(dissolve_add_test) if(APPLE) target_link_libraries( ${TEST_NAME} - PRIVATE OpenGL + PRIVATE OpenGL::OpenGL ) endif(APPLE) endif(DISSOLVE_UNIT_TEST_GUI) From 2d228a755fb1883c4dc53586309255702ec04f3d Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sat, 23 May 2026 12:37:11 +0100 Subject: [PATCH 13/31] Adjust GUI test link libs. --- tests/CMakeLists.txt | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3da5057d44..f8a1228323 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -48,12 +48,7 @@ function(dissolve_add_test) target_link_libraries( ${TEST_NAME} PUBLIC models widgets render delegates - PRIVATE Qt6::Core Qt6::Widgets - ) - if(APPLE) - target_link_libraries( - ${TEST_NAME} - PRIVATE OpenGL::OpenGL + PRIVATE Qt6::Core Qt6::Widgets Qt6::Quick3D Qt6::Qml ) endif(APPLE) endif(DISSOLVE_UNIT_TEST_GUI) From eda7d72cd526d1d67248d88512cd82b2e6caea54 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sat, 23 May 2026 12:56:05 +0100 Subject: [PATCH 14/31] Error in tests/CMakeLists.txt. --- tests/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f8a1228323..a83bef69c0 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -50,7 +50,6 @@ function(dissolve_add_test) PUBLIC models widgets render delegates PRIVATE Qt6::Core Qt6::Widgets Qt6::Quick3D Qt6::Qml ) - endif(APPLE) endif(DISSOLVE_UNIT_TEST_GUI) # Register the test From 12f09d65ec4989cdf2682ffc0f795182f27d86d6 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sat, 23 May 2026 13:29:19 +0100 Subject: [PATCH 15/31] Trying to find windeployqt. --- .github/workflows/build/windows/action.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index 1c21f41df8..ff46b37a9f 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -195,7 +195,8 @@ runs: cd build # Run windeployqt on the main Dissolve binaries to pull in library requirements - windeployqt bin/* + ls -R ${Qt6_DIR} + ${Qt6_DIR}/bin/windeployqt.exe bin/* cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON cmake --build . --config Release ctest From 4f4b09e29499df07f21dce8eebcb048f9c1e57e5 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sat, 23 May 2026 14:56:29 +0100 Subject: [PATCH 16/31] Specifically target the QML GUI exe. --- .github/workflows/build/windows/action.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index ff46b37a9f..214bdafd76 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -194,9 +194,8 @@ runs: JAVA_EXE="${JAVA_HOME_21_X64}\bin\java.exe" cd build - # Run windeployqt on the main Dissolve binaries to pull in library requirements - ls -R ${Qt6_DIR} - ${Qt6_DIR}/bin/windeployqt.exe bin/* + # Run windeployqt on the main Dissolve-GUI-QML binary to pull in library requirements + ${Qt6_DIR}/bin/windeployqt.exe bin/Dissolve-GUI-QML.exe cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON cmake --build . --config Release ctest From ecd756eb9559e14595b0daea4cda14623a26f2f9 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sat, 23 May 2026 15:01:28 +0100 Subject: [PATCH 17/31] Try linking yet more libs. --- tests/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a83bef69c0..c62ad4f656 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -47,8 +47,8 @@ function(dissolve_add_test) target_include_directories(${TEST_NAME} PRIVATE ${Qt6Widgets_INCLUDE_DIRS}) target_link_libraries( ${TEST_NAME} - PUBLIC models widgets render delegates - PRIVATE Qt6::Core Qt6::Widgets Qt6::Quick3D Qt6::Qml + PUBLIC models widgets render delegates gui-qml + PRIVATE Qt6::Core Qt6::Widgets Qt6::Quick3D Qt6::Qml Qt6::OpenGL ) endif(DISSOLVE_UNIT_TEST_GUI) From e363f1661e912eb4a3d60ac12861992020efb68a Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sat, 23 May 2026 15:28:10 +0100 Subject: [PATCH 18/31] Ah, we were linking the old render library. --- tests/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c62ad4f656..85c3fcf17a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -47,8 +47,8 @@ function(dissolve_add_test) target_include_directories(${TEST_NAME} PRIVATE ${Qt6Widgets_INCLUDE_DIRS}) target_link_libraries( ${TEST_NAME} - PUBLIC models widgets render delegates gui-qml - PRIVATE Qt6::Core Qt6::Widgets Qt6::Quick3D Qt6::Qml Qt6::OpenGL + PUBLIC models widgets delegates gui-qml + PRIVATE Qt6::Quick3D Qt6::Qml Qt6::Widgets ) endif(DISSOLVE_UNIT_TEST_GUI) From 80376c03c6609ae18a0e4b58764931611f4bb16d Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sun, 7 Jun 2026 16:46:29 +0100 Subject: [PATCH 19/31] Stop compiling RenderableGroupManagerModel. --- src/gui/models/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/models/CMakeLists.txt b/src/gui/models/CMakeLists.txt index bf5bde12d6..7685cc453b 100644 --- a/src/gui/models/CMakeLists.txt +++ b/src/gui/models/CMakeLists.txt @@ -26,7 +26,7 @@ set(models_MOC_HDRS generatorModel.h generatorNodeModel.h rangeVectorModel.h - renderableGroupManagerModel.h +# renderableGroupManagerModel.h simpleForcefieldModel.h sitesFilterProxy.h sitesModel.h @@ -88,7 +88,7 @@ set(models_SRCS generatorModelMimeData.h generatorNodeModel.cpp rangeVectorModel.cpp - renderableGroupManagerModel.cpp +# renderableGroupManagerModel.cpp simpleForcefieldModel.cpp sitesFilterProxy.cpp sitesModel.cpp From 0c618bd9a04a4336a326aac1d7da10abed900a9d Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sun, 7 Jun 2026 17:19:48 +0100 Subject: [PATCH 20/31] Don't compile GradienBar. --- src/gui/widgets/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/widgets/CMakeLists.txt b/src/gui/widgets/CMakeLists.txt index 1c4771691c..9a81136b63 100755 --- a/src/gui/widgets/CMakeLists.txt +++ b/src/gui/widgets/CMakeLists.txt @@ -9,8 +9,8 @@ add_library( elementSelector.h exponentialSpin.cpp exponentialSpin.h - gradientBar.cpp - gradientBar.h + # gradientBar.cpp + # gradientBar.h integerSpin.cpp integerSpin.h noControls.cpp From ddec1ba4baa8ced26d647290c8453da88809ec4c Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sun, 7 Jun 2026 19:58:02 +0100 Subject: [PATCH 21/31] Output on test failure. --- .github/workflows/build/osx/action.yml | 2 +- .github/workflows/build/windows/action.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build/osx/action.yml b/.github/workflows/build/osx/action.yml index b433c7acda..1f1d312a41 100644 --- a/.github/workflows/build/osx/action.yml +++ b/.github/workflows/build/osx/action.yml @@ -198,7 +198,7 @@ runs: set -ex cd build - ctest + ctest --output-on-failure - name: Upload Raw Build Artifacts if: ${{ inputs.cacheOnly == 'false' }} diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index 214bdafd76..23085dbccc 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -198,7 +198,7 @@ runs: ${Qt6_DIR}/bin/windeployqt.exe bin/Dissolve-GUI-QML.exe cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON cmake --build . --config Release - ctest + ctest --output-on-failure - name: Upload Raw Build Artifacts if: ${{ inputs.cacheOnly == 'false' }} From a36a8b2965df7ecefef6f997475a27f470feb7c9 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sun, 7 Jun 2026 20:04:50 +0100 Subject: [PATCH 22/31] Attempt to assemble other missing deps on Windows. --- .github/workflows/build/windows/action.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index 23085dbccc..a51df6fb27 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -183,7 +183,6 @@ runs: if: ${{ inputs.cacheOnly == 'false' }} shell: bash run: | - df -mh . Qt6_DIR="${RUNNER_TEMP}\qt\${{ inputs.qtVersion }}\msvc2019_64" ANTLR_EXE="${RUNNER_TEMP}\antlr-${{ inputs.antlrVersion }}-complete.jar" export PATH="${Qt6_DIR}\bin;$PATH" @@ -194,10 +193,25 @@ runs: JAVA_EXE="${JAVA_HOME_21_X64}\bin\java.exe" cd build - # Run windeployqt on the main Dissolve-GUI-QML binary to pull in library requirements - ${Qt6_DIR}/bin/windeployqt.exe bin/Dissolve-GUI-QML.exe cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON cmake --build . --config Release + + # Run windeployqt on the main Dissolve-GUI-QML binary to pull in Qt library requirements + ${Qt6_DIR}/bin/windeployqt.exe bin/Dissolve-GUI-QML.exe + + # Assemble external library requirements + export DEPLOY_DIR="${GITHUB_WORKSPACE}\build" + export FREETYPE_DIR="${RUNNER_TEMP}\freetype-install\bin" + export FTGL_DIR="${RUNNER_TEMP}\ftgl-install\bin" + cp -v ${DeployDir}\install\bin\* ./bin + cp -v ${FreetypeDir}\freetype.dll ./bin + cp -v ${FTGLDir}\ftgl.dll ./bin + cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbb12.dll ./bin + cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbbmalloc.dll ./bin + cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbbmalloc_proxy.dll ./bin + cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbbbind_2_5.dll ./bin + cp -v ${DeployDir}\direct_deploy\antlr4-cppruntime\bin\antlr4-runtime.dll ./bin + ctest --output-on-failure - name: Upload Raw Build Artifacts From 59b870308bf003f1761302594d6ee79197c3432c Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sun, 7 Jun 2026 20:06:39 +0100 Subject: [PATCH 23/31] Fix variable names. --- .github/workflows/build/windows/action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index a51df6fb27..c731121d94 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -203,9 +203,9 @@ runs: export DEPLOY_DIR="${GITHUB_WORKSPACE}\build" export FREETYPE_DIR="${RUNNER_TEMP}\freetype-install\bin" export FTGL_DIR="${RUNNER_TEMP}\ftgl-install\bin" - cp -v ${DeployDir}\install\bin\* ./bin - cp -v ${FreetypeDir}\freetype.dll ./bin - cp -v ${FTGLDir}\ftgl.dll ./bin + cp -v ${DEPLOY_DIR}\install\bin\* ./bin + cp -v ${FREETYPE_DIR}\freetype.dll ./bin + cp -v ${FTGL_DIR}\ftgl.dll ./bin cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbb12.dll ./bin cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbbmalloc.dll ./bin cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbbmalloc_proxy.dll ./bin From 008b13cdf0a07f6f99a34cd53eda806259258244 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sun, 7 Jun 2026 20:54:17 +0100 Subject: [PATCH 24/31] Deploy before build/run (otherwise test discovery fails). --- .github/workflows/build/windows/action.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index c731121d94..9cab95404d 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -193,9 +193,6 @@ runs: JAVA_EXE="${JAVA_HOME_21_X64}\bin\java.exe" cd build - cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON - cmake --build . --config Release - # Run windeployqt on the main Dissolve-GUI-QML binary to pull in Qt library requirements ${Qt6_DIR}/bin/windeployqt.exe bin/Dissolve-GUI-QML.exe @@ -212,6 +209,11 @@ runs: cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbbbind_2_5.dll ./bin cp -v ${DeployDir}\direct_deploy\antlr4-cppruntime\bin\antlr4-runtime.dll ./bin + # Build the test binaries + cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON + cmake --build . --config Release + + # Run the tests ctest --output-on-failure - name: Upload Raw Build Artifacts From 5a0b2a7e047b48e796b9b6f928c2ac33ae00b3c7 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sun, 7 Jun 2026 20:55:59 +0100 Subject: [PATCH 25/31] Use EXPECT_NEAR instead of EXPECT_DOUBLE_EQ in interpolator test. --- tests/math/interpolator.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/math/interpolator.cpp b/tests/math/interpolator.cpp index 5cf0b8646a..c955c8e057 100644 --- a/tests/math/interpolator.cpp +++ b/tests/math/interpolator.cpp @@ -127,8 +127,8 @@ TEST_F(InterpolatorTest, RegularSequentialTest) // Check against pre-calculated y values not present in the source data for (auto &&[x, y, interpy] : zip(fineBins.xAxis(), regularFineY_, fineBins.values())) { - EXPECT_DOUBLE_EQ(y, I.y(x)); - EXPECT_DOUBLE_EQ(y, interpy); + EXPECT_NEAR(y, I.y(x), 1.0e-10); + EXPECT_NEAR(y, interpy, 1.0e-10); } } From 93cdd0fde78c934e040e1168ae0ab6ba4c43d549 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Sun, 7 Jun 2026 22:12:02 +0100 Subject: [PATCH 26/31] Slashes. --- .github/workflows/build/windows/action.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index 9cab95404d..346155667e 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -200,14 +200,14 @@ runs: export DEPLOY_DIR="${GITHUB_WORKSPACE}\build" export FREETYPE_DIR="${RUNNER_TEMP}\freetype-install\bin" export FTGL_DIR="${RUNNER_TEMP}\ftgl-install\bin" - cp -v ${DEPLOY_DIR}\install\bin\* ./bin - cp -v ${FREETYPE_DIR}\freetype.dll ./bin - cp -v ${FTGL_DIR}\ftgl.dll ./bin - cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbb12.dll ./bin - cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbbmalloc.dll ./bin - cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbbmalloc_proxy.dll ./bin - cp -v ${DeployDir}\direct_deploy\onetbb\bin\tbbbind_2_5.dll ./bin - cp -v ${DeployDir}\direct_deploy\antlr4-cppruntime\bin\antlr4-runtime.dll ./bin + cp -v ${DEPLOY_DIR}/install/bin/* ./bin + cp -v ${FREETYPE_DIR}/freetype.dll ./bin + cp -v ${FTGL_DIR}/ftgl.dll ./bin + cp -v ${DeployDir}/direct_deploy/onetbb/bin/tbb12.dll ./bin + cp -v ${DeployDir}/direct_deploy/onetbb/bin/tbbmalloc.dll ./bin + cp -v ${DeployDir}/direct_deploy/onetbb/bin/tbbmalloc_proxy.dll ./bin + cp -v ${DeployDir}/direct_deploy/onetbb/bin/tbbbind_2_5.dll ./bin + cp -v ${DeployDir}/direct_deploy/antlr4-cppruntime/bin/antlr4-runtime.dll ./bin # Build the test binaries cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON From b4a9a9399f72400062995260730764615652ad71 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 10 Jun 2026 09:46:11 +0100 Subject: [PATCH 27/31] Is that dir even relevant... --- .github/workflows/build/windows/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index 346155667e..78b04a576b 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -200,7 +200,7 @@ runs: export DEPLOY_DIR="${GITHUB_WORKSPACE}\build" export FREETYPE_DIR="${RUNNER_TEMP}\freetype-install\bin" export FTGL_DIR="${RUNNER_TEMP}\ftgl-install\bin" - cp -v ${DEPLOY_DIR}/install/bin/* ./bin + #cp -v ${DEPLOY_DIR}/install/bin/* ./bin cp -v ${FREETYPE_DIR}/freetype.dll ./bin cp -v ${FTGL_DIR}/ftgl.dll ./bin cp -v ${DeployDir}/direct_deploy/onetbb/bin/tbb12.dll ./bin From ddcf6bde7be0c1182de79307392532b498c67bc5 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 10 Jun 2026 09:48:14 +0100 Subject: [PATCH 28/31] More EXPECT_NEAR. --- tests/math/interpolator.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/math/interpolator.cpp b/tests/math/interpolator.cpp index c955c8e057..52fbce55d3 100644 --- a/tests/math/interpolator.cpp +++ b/tests/math/interpolator.cpp @@ -99,12 +99,12 @@ TEST_F(InterpolatorTest, RegularBasic) // Form interpolation of data and check interpolation at known values Interpolator I(regularData_); for (auto &&[x, y] : zip(regularData_.xAxis(), regularData_.values())) - EXPECT_DOUBLE_EQ(y, I.y(x)); + EXPECT_NEAR(y, I.y(x), 1.0e-10); auto x = 0.0; for (auto y : regularFineY_) { - EXPECT_DOUBLE_EQ(y, I.y(x)); + EXPECT_NEAR(y, I.y(x), 1.0e-10); x += fineDeltaX; } } From bf1e7f8c78d413fee3d40a4ac9b321d2b230c258 Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 10 Jun 2026 11:05:07 +0100 Subject: [PATCH 29/31] Fix path variable. --- .github/workflows/build/windows/action.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build/windows/action.yml b/.github/workflows/build/windows/action.yml index 78b04a576b..819d0676df 100644 --- a/.github/workflows/build/windows/action.yml +++ b/.github/workflows/build/windows/action.yml @@ -203,11 +203,11 @@ runs: #cp -v ${DEPLOY_DIR}/install/bin/* ./bin cp -v ${FREETYPE_DIR}/freetype.dll ./bin cp -v ${FTGL_DIR}/ftgl.dll ./bin - cp -v ${DeployDir}/direct_deploy/onetbb/bin/tbb12.dll ./bin - cp -v ${DeployDir}/direct_deploy/onetbb/bin/tbbmalloc.dll ./bin - cp -v ${DeployDir}/direct_deploy/onetbb/bin/tbbmalloc_proxy.dll ./bin - cp -v ${DeployDir}/direct_deploy/onetbb/bin/tbbbind_2_5.dll ./bin - cp -v ${DeployDir}/direct_deploy/antlr4-cppruntime/bin/antlr4-runtime.dll ./bin + cp -v ${DEPLOY_DIR}/direct_deploy/onetbb/bin/tbb12.dll ./bin + cp -v ${DEPLOY_DIR}/direct_deploy/onetbb/bin/tbbmalloc.dll ./bin + cp -v ${DEPLOY_DIR}/direct_deploy/onetbb/bin/tbbmalloc_proxy.dll ./bin + cp -v ${DEPLOY_DIR}/direct_deploy/onetbb/bin/tbbbind_2_5.dll ./bin + cp -v ${DEPLOY_DIR}/direct_deploy/antlr4-cppruntime/bin/antlr4-runtime.dll ./bin # Build the test binaries cmake ../ -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_C_COMPILER=cl -DANTLR_EXECUTABLE:string=$ANTLR_EXE -DJava_JAVA_EXECUTABLE:string=$JAVA_EXE -DCMAKE_CXX_COMPILER=cl -DMULTI_THREADING:bool=${{ inputs.threading }} -DGUI:bool=true -DCMAKE_INSTALL_PREFIX:PATH=$TEMPD -DBUILD_TESTS:bool=ON From d69736076285f6135b1e8ce9eae655e8b847dc7a Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 10 Jun 2026 11:19:01 +0100 Subject: [PATCH 30/31] REMOVE OSX working (except for the box unit test) so focus on Windows. --- .github/workflows/_build_and_package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_build_and_package.yml b/.github/workflows/_build_and_package.yml index 2211cfddc6..edb4f57e53 100644 --- a/.github/workflows/_build_and_package.yml +++ b/.github/workflows/_build_and_package.yml @@ -38,7 +38,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ "${{ inputs.osxRunner }}", windows-2022 ] + os: [ windows-2022 ] runs-on: ${{ matrix.os }} steps: - name: 'Download Source Tarfiles' From bfc3df4c34ecf97df64e102e841270aa07a53edd Mon Sep 17 00:00:00 2001 From: Tristan Youngs Date: Wed, 10 Jun 2026 13:28:56 +0100 Subject: [PATCH 31/31] Throw in a deployer. --- conanfile.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conanfile.py b/conanfile.py index 5063650698..c568fbbc93 100644 --- a/conanfile.py +++ b/conanfile.py @@ -7,6 +7,7 @@ class DissolveRecipe(ConanFile): name = "Dissolve" settings = "os", "compiler", "build_type", "arch" generators = "CMakeToolchain", "CMakeDeps" + deployers = "direct_deploy" options = { "msvc_dev": [True, False], "tests": [True, False],