11name : macOS Builds
22on :
3- push :
4- branches :
5- - main
63 workflow_dispatch :
74
85jobs :
96 build :
107 strategy :
118 matrix :
12- os : [macos-12, macos- 14]
9+ os : [macos-14]
1310 include :
14- - os : macos-12
15- arch : x64
16- osxtarget : 12.0
1711 - os : macos-14
1812 arch : arm64
1913 osxtarget : 14.0
14+ artversion : 1.25.0
2015 fail-fast : false
2116
2217 runs-on : ${{ matrix.os }}
@@ -25,24 +20,27 @@ jobs:
2520 contents : write
2621
2722 steps :
28- - name : Get version
29- uses : actions/checkout@v4
30- with :
31- path : repo
23+ - name : Get OS version
24+ run : |
25+ echo "OS_VERSION=$(sw_vers -productVersion | cut -d . -f 1,2)" >> $GITHUB_ENV
3226
33- - name : Download source
27+ - name : Get version
3428 run : |
35- export ART_DIR="ART-$(cat repo/version.txt)"
36- #wget https://bitbucket.org/agriggio/art/downloads/${ART_DIR}.tar.xz
37- #tar xJf ${ART_DIR}.tar.xz
38- git clone --depth 1 --branch macos-bundle-simplified https://agriggio@bitbucket.org/agriggio/art.git ${ART_DIR}
29+ echo "ART_VERSION=${{ matrix.artversion }}" >> $GITHUB_ENV
3930
40- - if : ${{ matrix.os == 'macos-12' }}
41- name : Install MacPorts x64
42- run : |
43- wget https://github.com/macports/macports-base/releases/download/v2.10.4/MacPorts-2.10.4-12-Monterey.pkg
44- sudo installer -pkg MacPorts-2.10.4-12-Monterey.pkg -target /
31+ - name : Get repo
32+ run : |
33+ export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH
34+ git clone --branch $ART_VERSION --depth 1 \
35+ https://github.com/artpixls/ART.git \
36+ repo
4537
38+ - name : Set build type
39+ run : |
40+ echo "CTL_BUILD_TYPE=Release" >> $GITHUB_ENV
41+ echo "BUILD_TYPE=Release" >> $GITHUB_ENV
42+ echo "WITH_SAN=OFF" >> $GITHUB_ENV
43+
4644 - if : ${{ matrix.os == 'macos-14' }}
4745 name : Install MacPorts arm64
4846 run : |
5351 - name : Install base ports
5452 run : |
5553 export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH
56- sudo port -d install pkgconfig
54+ sudo port install pkgconfig
5755 sudo port install automake
5856 sudo port install autoconf
5957 sudo port install libtool
6967 sudo port install fftw-3-single +openmp
7068 sudo port install openexr
7169 sudo port install lcms2
70+ sudo port install adwaita-icon-theme
71+ sudo port install meson
72+ sudo port install dbus
7273
7374 - name : Install LibRaw
7475 run : |
@@ -102,7 +103,7 @@ jobs:
102103 -DCMAKE_C_COMPILER=/opt/local/bin/clang-mp-17 \
103104 -DCMAKE_CXX_COMPILER=/opt/local/bin/clang++-mp-17 \
104105 -DCMAKE_INSTALL_PREFIX=$INSTDIR \
105- -DCMAKE_BUILD_TYPE=Release \
106+ -DCMAKE_BUILD_TYPE=${CTL_BUILD_TYPE} \
106107 ../CTL
107108 make -j$(nproc)
108109 sudo make install
@@ -131,58 +132,89 @@ jobs:
131132 make -j$(nproc)
132133 sudo make install
133134
135+ - name : Install custom GTK+ with colorspaces support
136+ run : |
137+ export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH
138+ wget https://download.gnome.org/sources/gtk+/3.24/gtk%2B-3.24.43.tar.xz
139+ tar xzf gtk+-3.24.43.tar.xz
140+ cd gtk+-3.24.43
141+ patch -p1 < ../repo/tools/osx/gdk-window-quartz-colorspace.patch
142+ INSTDIR=/opt/art-deps/gtk
143+ meson setup build
144+ meson configure build \
145+ --prefix $INSTDIR \
146+ --buildtype release \
147+ -Ddebug=false \
148+ -Ddemos=false \
149+ -Dexamples=false \
150+ -Dtests=false \
151+ -Dx11_backend=false
152+ meson compile -C build
153+ sudo meson install -C build
154+ sudo cp -a $INSTDIR/include/gtk-3.0/gdk/quartz/gdkquartzwindow.h /opt/local/include/gtk-3.0/gdk/quartz
155+ sudo cp -a $INSTDIR/lib/libgdk-3.0.dylib /opt/local/lib/libgdk-3.0.dylib
156+
134157 - name : Configure build
135158 run : |
136159 export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH
137- export ART_DIR="ART-$(cat repo/version.txt)"
138160 mkdir build
139161 cd build
140162 export PKG_CONFIG_PATH=/opt/art-deps/lib/pkgconfig
141163 /opt/local/bin/cmake \
142164 -DCMAKE_C_COMPILER=/opt/local/bin/clang-mp-17 \
143165 -DCMAKE_CXX_COMPILER=/opt/local/bin/clang++-mp-17 \
144- -DCMAKE_BUILD_TYPE=Release \
166+ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_SAN=${WITH_SAN} \
145167 -DENABLE_CTL=1 \
146168 -DENABLE_LIBRAW=1 \
147169 -DCTL_INCLUDE_DIR=/opt/art-deps/include/CTL \
148170 -DCMAKE_LIBRARY_PATH=/opt/art-deps/lib \
149- -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ matrix.osxtarget }} \
150- ../${ART_DIR}
171+ -DOSX_DEV_BUILD=1 \
172+ -DCMAKE_OSX_DEPLOYMENT_TARGET=$OS_VERSION \
173+ ../repo
151174 cd ..
152175
153176 - name : Build
154177 run : |
155178 export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH
156- /opt/local/bin/cmake --build build --target install
179+ cd build
180+ make -j$(nproc)
181+ make install
157182
158183 - name : Include Lensfun
159184 run : |
160185 export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH
161186 lensfun-update-data
162187
188+ - name : Install exiftool
189+ run : |
190+ wget https://exiftool.org/ver.txt
191+ wget https://exiftool.org/ExifTool-$(cat ver.txt).pkg
192+ sudo installer -pkg ExifTool-$(cat ver.txt).pkg -target /
193+
163194 - name : Create bundle
164195 run : |
165- ART_NAME="ART-$(cat repo/version.txt) "
196+ ART_NAME="ART-${ART_VERSION} "
166197 OUTDIR=$(pwd)
167- cd build/Release /ART.app
168- python "${OUTDIR}/${ART_NAME} /tools/osx/bundle_ART.py" \
198+ cd build/${BUILD_TYPE} /ART.app
199+ python "${OUTDIR}/repo /tools/osx/bundle_ART.py" \
169200 -o "${OUTDIR}" -v -r /opt/art-deps/lib \
170- -d "${ART_NAME}_${{ matrix.os }}_${{ matrix.arch }}"
201+ -r /opt/local/libexec/llvm-17/lib/clang/17/lib/darwin -n
171202 cd "${OUTDIR}"
203+ ARTIFACT_NAME="ART-${ART_VERSION}_macOS-${OS_VERSION}_${{ matrix.arch }}${BUILD_SUFFIX}.tar.gz"
204+ tar czf "${ARTIFACT_NAME}" ART.app
172205
173206 - name : Prepare artifact name
174207 run : |
175- ARTIFACT_NAME="ART-$(cat repo/version.txt)_${{ matrix.os }} _${{ matrix.arch }}.dmg "
208+ ARTIFACT_NAME="ART-${ART_VERSION}_macOS-${OS_VERSION} _${{ matrix.arch }}${BUILD_SUFFIX}.tar.gz "
176209 echo "ARTIFACT_NAME=$ARTIFACT_NAME" >> $GITHUB_ENV
177- # echo "RELEASE_TAG=v$(cat repo/version.txt) " >> $GITHUB_ENV
178- echo "RELEASE_TAG=macOS-testing " >> $GITHUB_ENV
210+ echo "RELEASE_TAG=nightly " >> $GITHUB_ENV
211+ echo "RELEASE_MAKE_LATEST=false " >> $GITHUB_ENV
179212
180213 - name : Publish release
181214 uses : ncipollo/release-action@v1
182215 with :
183216 tag : ${{ env.RELEASE_TAG }}
184217 body : ${{ env.RELEASE_TAG }}
185218 allowUpdates : true
186- makeLatest : false
187- draft : true
219+ makeLatest : ${{ env.RELEASE_MAKE_LATEST }}
188220 artifacts : ${{ env.ARTIFACT_NAME }}
0 commit comments