Skip to content

Commit 49ba0f7

Browse files
Merge branch 'develop2' into fix/develop2-vs2022-7zip
2 parents 15b4f84 + 0995793 commit 49ba0f7

File tree

1,760 files changed

+125237
-70316
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,760 files changed

+125237
-70316
lines changed

.github/workflows/_build_and_package.yml

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ on:
1010
qtVersion:
1111
type: string
1212
required: true
13-
msvcVersion:
14-
type: string
15-
required: true
1613
osxRunner:
1714
type: string
1815
default: 'UNKNOWN'
@@ -59,7 +56,6 @@ jobs:
5956
qtVersion: ${{ inputs.qtVersion }}
6057
antlrVersion: ${{ inputs.antlrVersion }}
6158
conanHash: ${{ inputs.conanHash }}
62-
msvcVersion: ${{ inputs.msvcVersion }}
6359
osxTargetDeploymentVersion: ${{ inputs.osxTargetDeploymentVersion }}
6460

6561
BuildLinux:
@@ -86,26 +82,5 @@ jobs:
8682
nixHash: ${{ inputs.nixHash }}
8783
benchmark: ${{ inputs.benchmark }}
8884
publishBenchmarks: ${{ inputs.publishBenchmarks }}
85+
osxTargetDeploymentVersion: ${{ inputs.osxTargetDeploymentVersion }}
8986

90-
Package:
91-
needs: Build
92-
strategy:
93-
fail-fast: false
94-
matrix:
95-
os: [ "${{ inputs.osxRunner }}", windows-latest ]
96-
runs-on: ${{ matrix.os }}
97-
steps:
98-
- name: 'Download Source Tarfiles'
99-
uses: actions/download-artifact@v4
100-
with:
101-
name: source
102-
103-
- name: 'Unpack Source'
104-
shell: bash
105-
run: tar -xvf dissolve-versioned-source.tar
106-
107-
- name: "Package (${{ matrix.os }})"
108-
uses: "./.github/workflows/package"
109-
with:
110-
currentVersion: ${{ inputs.currentVersion }}
111-
qtVersion: ${{ inputs.qtVersion }}

.github/workflows/_checkout.yml

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@ description: Checks out the source and packages the source as an artifact for us
44
on:
55
workflow_call:
66
inputs:
7-
msvcVersion:
8-
type: string
9-
default: 14.41.17.11
107
osxRunner:
118
type: string
12-
default: macos-15
9+
default: macos-latest
1310
osxTargetDeploymentVersion:
1411
type: string
1512
default: 13.3
@@ -24,7 +21,7 @@ on:
2421
default: "1.2.5"
2522
conanfile:
2623
type: string
27-
default: cmake/Modules/conan-dissolve.cmake
24+
default: conanfile.py
2825
publishType:
2926
default: 'none'
3027
type: string
@@ -65,9 +62,6 @@ on:
6562
conanHash:
6663
description: "Hash of the current conanfile"
6764
value: ${{ jobs.Checkout.outputs.conanHash }}
68-
msvcVersion:
69-
description: "Version of MSVC required by the project"
70-
value: ${{ jobs.Checkout.outputs.msvcVersion }}
7165
osxRunner:
7266
description: "Runner target for OSX"
7367
value: ${{ jobs.Checkout.outputs.osxRunner }}
@@ -85,7 +79,6 @@ jobs:
8579
currentVersionMinor: ${{ steps.authVersion.outputs.currentVersionMinor }}
8680
currentVersionPatch: ${{ steps.authVersion.outputs.currentVersionPatch }}
8781
currentShortHash: ${{ steps.authVersion.outputs.currentShortHash }}
88-
msvcVersion: ${{ steps.versions.outputs.msvcVersion }}
8982
osxRunner: ${{ steps.versions.outputs.osxRunner }}
9083
osxTargetDeploymentVersion: ${{ steps.versions.outputs.osxTargetDeploymentVersion }}
9184
qtVersion: ${{ steps.versions.outputs.qtVersion }}
@@ -116,10 +109,9 @@ jobs:
116109
echo "hugoVersion=${{ inputs.hugoVersion }}" >> $GITHUB_OUTPUT
117110
echo "apptainerVersion=${{ inputs.apptainerVersion }}" >> $GITHUB_OUTPUT
118111
119-
ANTLR_VERSION=$(cat ${{ inputs.conanfile }} | sed -n -e 's%^.*antlr4-cppruntime/%%p')
112+
ANTLR_VERSION=$(cat ${{ inputs.conanfile }} | sed -rn -e 's%^.*antlr4-cppruntime/(.+)"\)%\1%p')
120113
echo "antlrVersion=${ANTLR_VERSION}" >> $GITHUB_OUTPUT
121114
122-
echo "msvcVersion=${{ inputs.msvcVersion }}" >> $GITHUB_OUTPUT
123115
echo "osxRunner=${{ inputs.osxRunner }}" >> $GITHUB_OUTPUT
124116
echo "osxTargetDeploymentVersion=${{ inputs.osxTargetDeploymentVersion }}" >> $GITHUB_OUTPUT
125117

.github/workflows/_website.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
shell: bash
5454
run: |
5555
# Set version and tip visibility in docs index
56-
sed -i 's/RELEASETYPE version MAJOR.MINOR/Release v${{ inputs.displayMajorVersion }}.${{ inputs.displayMinorVersion }}/g' web/docs/_index.md
56+
sed -i 's/DISSOLVERELEASETYPE version DISSOLVEMAJORVERSION.DISSOLVEMINORVERSION/Release v${{ inputs.displayMajorVersion }}.${{ inputs.displayMinorVersion }}/g' web/docs/_index.md web/docs/examples/_index.md
5757
sed -i "/RELEASE TIP/d" web/docs/_index.md
5858
head -n 10 web/docs/_index.md
5959
@@ -62,7 +62,7 @@ jobs:
6262
shell: bash
6363
run: |
6464
# Set version and tip visibility in docs index
65-
sed -i 's/RELEASETYPE version MAJOR.MINOR/Development version ${{ inputs.displayMajorVersion }}.${{ inputs.displayMinorVersion }}/g' web/docs/_index.md
65+
sed -i 's/DISSOLVERELEASETYPE version DISSOLVEMAJORVERSION.DISSOLVEMINORVERSION/Development version ${{ inputs.displayMajorVersion }}.${{ inputs.displayMinorVersion }}/g' web/docs/_index.md web/docs/examples/_index.md
6666
sed -i "/DEVELOPMENT TIP/d" web/docs/_index.md
6767
head -n 10 web/docs/_index.md
6868
@@ -79,7 +79,7 @@ jobs:
7979
shell: bash
8080
run: |
8181
# Set version and tip visibility in docs index
82-
sed -i 's/RELEASETYPE version MAJOR.MINOR/Legacy version ${{ inputs.displayMajorVersion }}.${{ inputs.displayMinorVersion }}/g' web/docs/_index.md
82+
sed -i 's/DISSOLVERELEASETYPE version DISSOLVEMAJORVERSION.DISSOLVEMINORVERSION/Legacy version ${{ inputs.displayMajorVersion }}.${{ inputs.displayMinorVersion }}/g' web/docs/_index.md web/docs/examples/_index.md
8383
sed -i "/LEGACY TIP/d" web/docs/_index.md
8484
head -n 10 web/docs/_index.md
8585

.github/workflows/build/action.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ inputs:
1010
currentVersion:
1111
type: string
1212
description: "Version used for labelling packages and other artifacts"
13-
msvcVersion:
14-
type: string
15-
default: 'UNKNOWN'
1613
qtVersion:
1714
type: string
1815
default: 'UNKNOWN'
@@ -68,4 +65,3 @@ runs:
6865
conanHash: ${{ inputs.conanHash }}
6966
qtVersion: ${{ inputs.qtVersion }}
7067
antlrVersion: ${{ inputs.antlrVersion }}
71-
msvcVersion: ${{ inputs.msvcVersion }}

.github/workflows/build/linux/action.yml

Lines changed: 27 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,8 @@ runs:
2323
using: "composite"
2424
steps:
2525

26-
- name: Free Space
27-
shell: bash
28-
run: |
29-
set -ex
30-
df -mh .
31-
sudo rm -rf /usr/share/dotnet
32-
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
33-
df -mh .
26+
- name: Free Up Space
27+
uses: "./.github/workflows/linux-free-up-space"
3428

3529
- name: Install nix
3630
uses: "./.github/workflows/get-nix"
@@ -56,45 +50,12 @@ runs:
5650
run: |
5751
set -ex
5852
59-
### Begin unholy hack
60-
###
61-
### For reasons unknown, when nix is run under GitHub actions,
62-
### it ignores the submodules flag, meaning that flakes with
63-
### submodules cannot be built
64-
###
65-
### As a blasphemous workaround, I've added a step to bring the
66-
### submodule into the main repo. Hopefully, submodules are
67-
### made the default flake behaviour in the upcoming release,
68-
### this will no longer be necessary. If not, we might have to
69-
### make the submodule an extra input to the flake, but that
70-
### will take some extra time.
71-
###
72-
### If you are reading this comment in 2026, try removing this
73-
### entire hack and see if the problem fixed itself. You may
74-
### also need to update the action that installs nix in the
75-
### first place. If that doesn't solve the problem, then we
76-
### should go ahead and just make the submodule a flake input.
77-
7853
git submodule update --init --recursive
79-
git config --global user.email "no_one@example.com"
80-
git config --global user.name "GitHub Actions"
81-
git rm .gitmodules
82-
83-
cp -r QuickPlot QuickPlot.bak
84-
rm -rf QuickPlot.bak/.git
85-
git rm -r QuickPlot
86-
git commit -m "Kill submodule"
87-
88-
mv QuickPlot.bak QuickPlot
89-
git add QuickPlot
90-
git commit -m "Resurrect submodule"
91-
92-
### End unholy hack
9354
9455
# Build Singularity target
9556
target=${{ inputs.target }}
9657
singularityTarget=${target/dissolve/singularity}
97-
nix build -L ".?submodules=1#$singularityTarget"
58+
nix build -L ".#$singularityTarget"
9859
9960
# Assemble artifacts
10061
mkdir packages-sif
@@ -105,39 +66,39 @@ runs:
10566
run: |
10667
set -ex
10768
108-
nix bundle -L .#${{ inputs.target }} -o binary
69+
nix bundle --bundler .#default -L .#${{ inputs.target }} -o binary
10970
11071
# Assemble artifacts
11172
mkdir packages-binary
11273
cp -v binary packages-binary/${{ inputs.target }}-${{ inputs.currentVersion }}
11374
114-
- name: Run benchmarks
115-
if: inputs.benchmark == 'true'
116-
shell: bash
117-
run: |
118-
set -ex
119-
export LD_LIBRARY_PATH=`pwd`/build/onetbb/lib
75+
# - name: Run benchmarks
76+
# if: inputs.benchmark == 'true'
77+
# shell: bash
78+
# run: |
79+
# set -ex
80+
# export LD_LIBRARY_PATH=`pwd`/build/onetbb/lib
12081

121-
nix build -L .#benchmarks
122-
rm result
123-
nix run -L .#benchmarks > all_benchmark_results.json
82+
# nix build -L .#benchmarks
83+
# rm result
84+
# nix run -L .#benchmarks > all_benchmark_results.json
12485

125-
cat all_benchmark_results.json
86+
# cat all_benchmark_results.json
12687

12788
# Must reset to HEAD here otherwise the benchmark publishing step will (rightly) fail
128-
git reset HEAD --hard
129-
130-
- name: Store benchmark result
131-
uses: benchmark-action/github-action-benchmark@v1
132-
if: inputs.publishBenchmarks == 'true' && inputs.benchmark == 'true'
133-
with:
134-
tool: 'googlecpp'
135-
output-file-path: all_benchmark_results.json
136-
github-token: ${{ github.token }}
137-
auto-push: true
138-
comment-on-alert: true
139-
alert-threshold: '200%'
140-
alert-comment-cc-users: '@disorderedmaterials/dissolve-devs'
89+
# git reset HEAD --hard
90+
91+
# - name: Store benchmark result
92+
# uses: benchmark-action/github-action-benchmark@v1
93+
# if: inputs.publishBenchmarks == 'true' && inputs.benchmark == 'true'
94+
# with:
95+
# tool: 'googlecpp'
96+
# output-file-path: all_benchmark_results.json
97+
# github-token: ${{ github.token }}
98+
# auto-push: true
99+
# comment-on-alert: true
100+
# alert-threshold: '200%'
101+
# alert-comment-cc-users: '@disorderedmaterials/dissolve-devs'
141102

142103
- name: Tidy nix Store
143104
if: inputs.cacheOnly == 'true'

.github/workflows/build/osx/action.yml

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ runs:
4949
- name: Install Python Dependencies
5050
shell: bash
5151
run: |
52-
pip3 install aqtinstall conan==1.* --break-system-packages
52+
pip3 install aqtinstall conan --break-system-packages
5353
5454
- name: Install Qt
5555
shell: bash
@@ -88,7 +88,7 @@ runs:
8888
run: |
8989
set -ex
9090
mkdir freetype-build && cd freetype-build
91-
cmake ../freetype-latest -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz:bool=true -DCMAKE_DISABLE_FIND_PACKAGE_BZip2:bool=true -DCMAKE_DISABLE_FIND_PACKAGE_PNG:bool=true -DCMAKE_DISABLE_FIND_PACKAGE_ZLIB:bool=true -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec:bool=true -DCMAKE_INSTALL_PREFIX:path=../freetype-install -DBUILD_SHARED_LIBS:bool=OFF -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ inputs.targetDeploymentVersion }}
91+
cmake ../freetype-latest -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz:bool=true -DCMAKE_DISABLE_FIND_PACKAGE_BZip2:bool=true -DCMAKE_DISABLE_FIND_PACKAGE_PNG:bool=true -DCMAKE_DISABLE_FIND_PACKAGE_ZLIB:bool=true -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec:bool=true -DCMAKE_INSTALL_PREFIX:path=../freetype-install -DBUILD_SHARED_LIBS:bool=OFF -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ inputs.osxTargetDeploymentVersion }}
9292
cmake --build . --target install --config Release
9393
9494
#
@@ -122,7 +122,7 @@ runs:
122122
INCLUDE="${RUNNER_TEMP}/freetype-latest;$INCLUDE"
123123
LIB="${RUNNER_TEMP}/freetype-install/lib;${RUNNER_TEMP}/freetype-install/bin;$LIB"
124124
export FREETYPE_DIR="${RUNNER_TEMP}/freetype-install"
125-
cmake ../ftgl-latest -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:path=../ftgl-install -DBUILD_SHARED_LIBS:bool=OFF -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ inputs.targetDeploymentVersion }}
125+
cmake ../ftgl-latest -G Ninja -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:path=../ftgl-install -DBUILD_SHARED_LIBS:bool=OFF -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ inputs.osxTargetDeploymentVersion }}
126126
cmake --build . --target install --config Release
127127
128128
#
@@ -138,6 +138,12 @@ runs:
138138
~/.conan
139139
~/.conancache
140140
141+
- name: Setup Conan Profile
142+
if: ${{ steps.cache-conan.outputs.cache-hit != 'true' }}
143+
shell: bash
144+
run: |
145+
conan profile detect
146+
141147
- name: Build
142148
if: ${{ inputs.cacheOnly == 'false' }}
143149
shell: bash
@@ -166,16 +172,23 @@ runs:
166172
echo "Java Runtime Executable: ${JAVA_RUNTIME}"
167173
168174
# Set conan cache location
169-
conan config set storage.download_cache="${GITHUB_WORKSPACE}/.conancache"
175+
conan config home -cc core.download:download_cache="${GITHUB_WORKSPACE}/.conancache"
170176
171177
# Set minimum deployment target version
172-
export MACOSX_DEPLOYMENT_TARGET=${{ inputs.targetDeploymentVersion }}
178+
export MACOSX_DEPLOYMENT_TARGET=${{ inputs.osxTargetDeploymentVersion }}
173179
174180
# Build
175-
mkdir build && cd build
176-
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.targetDeploymentVersion }}
181+
conan install . --deployer=direct_deploy --build=missing
182+
mkdir -p build && cd build
183+
184+
185+
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 }}
177186
cmake --build . --config Release
178187
188+
# Move conan-installed deps to the build dir
189+
mv ../direct_deploy ./
190+
ls -R direct_deploy
191+
179192
# 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.
180193
mkdir gsl
181194
cp -v $(brew --prefix gsl)/lib/*.dylib ./gsl

0 commit comments

Comments
 (0)