Compare commits

..
Author SHA1 Message Date
gronod ba409108bd Merge pull request 'Merge development into main (fix macOS arm64 cross-compilation)' (#50) from development into main
Windows x86_64 Release Build / build (push) Successful in 8m20s
Linux x86_64 Release Build / build (push) Successful in 9m8s
macOS Release Build / build (arm64, macOS_arm64_bin, arm64-apple-darwin) (push) Successful in 5m28s
macOS Release Build / build (x86_64, macOS_x86_64_bin, x86_64-apple-darwin) (push) Successful in 5m30s
macOS Release Build / universal (push) Successful in 1m30s
Merge pull request #50 from development into main
2026-09-05 19:53:02 +01:00
gronod 0005cc61bf Merge pull request 'fix: enable arm64 macOS cross-compilation on Intel runners' (#49) from fix/macos-arm64-cross-compile into development
Merge pull request #49 from fix/macos-arm64-cross-compile into development
2026-09-05 19:52:53 +01:00
gronod 017744fbdc fix(build): enable arm64 cross-compilation on Intel macOS runners
- Add -arch arm64 / -arch x86_64 compiler and linker flags to Jambase for macOS
- Pre-generate mkg3states and imdi_make outputs using host compiler before cross-compilation
- Conditionalize code-generator execution in tiff/Jamfile and imdi/Jamfile when outputs exist
- Add architecture verification in workflow smoke tests and universal packaging steps
2026-09-05 19:51:19 +01:00
gronod b55702337c Merge pull request 'Merge development into main (v3.5.0-ICCery1.8)' (#48) from development into main
Windows x86_64 Release Build / build (push) Failing after 2m12s
macOS Release Build / build (arm64, macOS_arm64_bin, arm64-apple-darwin) (push) Successful in 5m11s
Linux x86_64 Release Build / build (push) Successful in 8m35s
macOS Release Build / build (x86_64, macOS_x86_64_bin, x86_64-apple-darwin) (push) Successful in 5m42s
macOS Release Build / universal (push) Failing after 19s
2026-09-05 18:16:54 +01:00
gronod ca85951565 Merge pull request 'feat: i1Pro 2 visual LED feedback in chartread (#37)' (#47) from feat/i1pro2-led-feedback into development 2026-09-05 18:16:42 +01:00
gronod 0672ab7fea Merge pull request 'ci(gitea): build intel and arm64 in matrix and merge into universal binary' (#46) from development into main
macOS Release Build / build (arm64, macOS_arm64_bin, arm64-apple-darwin) (push) Successful in 5m23s
Linux x86_64 Release Build / build (push) Successful in 9m0s
Windows x86_64 Release Build / build (push) Successful in 8m25s
macOS Release Build / build (x86_64, macOS_x86_64_bin, x86_64-apple-darwin) (push) Successful in 5m35s
macOS Release Build / universal (push) Failing after 19s
Reviewed-on: #46
2026-09-05 17:51:58 +01:00
gronod e80e41beb9 Merge pull request 'Development' (#45) from development into main
Linux x86_64 Release Build / build (push) Successful in 11m36s
Windows x86_64 Release Build / build (push) Canceled after 2m47s
macOS x86_64 Release Build / build (push) Canceled after 0s
Reviewed-on: #45
2026-09-05 16:23:16 +01:00
gronod c5c06f5dc6 Merge pull request 'Merge development into main (CCOPTFLAG fix)' (#43) from development into main
Windows x86_64 Release Build / build (push) Failing after 1m27s
macOS x86_64 Release Build / build (push) Successful in 4m23s
Linux x86_64 Release Build / build (push) Successful in 10m53s
Merge pull request #43 from development into main
2026-09-05 16:05:24 +01:00
gronod 931d92cddf Merge pull request 'Merge development into main (macOS CI fix)' (#41) from development into main
Windows x86_64 Release Build / build (push) Failing after 1m22s
macOS x86_64 Release Build / build (push) Failing after 2m47s
Linux x86_64 Release Build / build (push) Successful in 9m52s
Merge pull request #41 from development into main
2026-09-05 15:59:11 +01:00
gronod edeb6dcf67 Merge pull request 'Merge development into main (v3.5.0-ICCery1.7)' (#39) from development into main
macOS x86_64 Release Build / build (push) Failing after 12s
Windows x86_64 Release Build / build (push) Successful in 8m22s
Linux x86_64 Release Build / build (push) Successful in 11m48s
Merge pull request #39 from development into main
2026-09-05 15:43:27 +01:00
gronod d271bb603d Merge pull request 'Development' (#36) from development into main
Windows x86_64 Release Build / build (push) Successful in 8m5s
Linux x86_64 Release Build / build (push) Successful in 9m22s
Reviewed-on: #36
2026-09-01 12:10:31 +01:00
4 changed files with 76 additions and 18 deletions
+41 -5
View File
@@ -41,6 +41,22 @@ jobs:
export MACHTYPE=${{ matrix.machtype }} export MACHTYPE=${{ matrix.machtype }}
export HOSTTYPE=${{ matrix.arch }} export HOSTTYPE=${{ matrix.arch }}
export CCOPTFLAG="-O0 -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types -Wno-error=int-conversion -Wno-error=implicit-int" export CCOPTFLAG="-O0 -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types -Wno-error=int-conversion -Wno-error=implicit-int"
# Pre-generate code-generator outputs using host compiler if needed
if [ ! -f tiff/libtiff/tif_fax3sm.c ]; then
echo "Pre-generating tiff/libtiff/tif_fax3sm.c using host compiler..."
(cd tiff && chmod +x configure && ./configure --disable-old-jpeg --disable-pixarlog --disable-zlib --disable-jbig --disable-lzma) >/dev/null 2>&1 || true
cc -Itiff/libtiff tiff/libtiff/mkg3states.c tiff/port/strcasecmp.c -o tiff/mkg3states
tiff/mkg3states -c const tiff/libtiff/tif_fax3sm.c
rm -f tiff/mkg3states
fi
if [ ! -f imdi/imdi_k.h ] || [ ! -f imdi/imdi_k.c ]; then
echo "Pre-generating imdi kernel files using host compiler..."
cc -Ih -Inumlib imdi/imdi_make.c imdi/imdi_gen.c imdi/cgen.c -o imdi/imdi_make
(cd imdi && ./imdi_make -f -d .)
rm -f imdi/imdi_make
fi
jam -q -d2 -fJambase -j1 -sBUILTIN_TIFF=true -sBUILTIN_JPEG=true -sBUILTIN_PNG=true -sBUILTIN_Z=true -sBUILTIN_SSL=true install jam -q -d2 -fJambase -j1 -sBUILTIN_TIFF=true -sBUILTIN_JPEG=true -sBUILTIN_PNG=true -sBUILTIN_Z=true -sBUILTIN_SSL=true install
- name: Ad-hoc Sign & Verify Binaries - name: Ad-hoc Sign & Verify Binaries
@@ -58,10 +74,26 @@ jobs:
ARGYLL_NOT_INTERACTIVE: "1" ARGYLL_NOT_INTERACTIVE: "1"
ARGYLL_EXCLUDE_SERIAL_SCAN: "1" ARGYLL_EXCLUDE_SERIAL_SCAN: "1"
run: | run: |
./bin/dispcal -? || true HOST_ARCH="$(uname -m)"
./bin/chartread -? || true if [ "${{ matrix.arch }}" = "$HOST_ARCH" ]; then
./bin/colprof -? || true echo "Running native execution smoke tests for ${{ matrix.arch }}..."
./bin/targen -? || true ./bin/dispcal -? || true
./bin/chartread -? || true
./bin/colprof -? || true
./bin/targen -? || true
else
echo "Skipping execution smoke tests when cross-compiling (${{ matrix.arch }} on $HOST_ARCH)."
fi
echo "Verifying Mach-O binary architectures match ${{ matrix.arch }}:"
for f in bin/*; do
if [ -f "$f" ] && file "$f" | grep -q "Mach-O"; then
echo "$f: $(file -b "$f")"
if ! file "$f" | grep -q "${{ matrix.arch }}"; then
echo "ERROR: $f architecture does not match expected ${{ matrix.arch }}!"
exit 1
fi
fi
done
- name: Package Release - name: Package Release
run: | run: |
@@ -160,7 +192,11 @@ jobs:
echo "=== Binary Architecture & Signature Verification ===" echo "=== Binary Architecture & Signature Verification ==="
for file in bin/*; do for file in bin/*; do
if [ -f "$file" ] && file "$file" | grep -q "Mach-O"; then if [ -f "$file" ] && file "$file" | grep -q "Mach-O"; then
file "$file" echo "$file: $(file -b "$file")"
if ! file "$file" | grep -q "universal binary"; then
echo "ERROR: $file is not a universal binary!"
exit 1
fi
codesign -dvv "$file" codesign -dvv "$file"
fi fi
done done
+19 -1
View File
@@ -1045,7 +1045,25 @@ else if $(UNIX)
LINKFLAGS += -framework Carbon ; # default for .c LINKFLAGS += -framework Carbon ; # default for .c
LINKFLAGS += -framework Cocoa ; # default for .m LINKFLAGS += -framework Cocoa ; # default for .m
if $(COMPILER) = "OSX10_6_X86_64BIT" { if $(TARGET_ARCH) = "arm64"
|| $(HOSTTYPE) = "arm64"
|| $(MACHTYPE) = "arm64-apple-darwin" {
ECHO "Target architecture: macOS ARM 64-bit (arm64)" ;
TARGET64 = true ;
CCFLAGS += -arch arm64 ;
C++FLAGS += -arch arm64 ;
LINKFLAGS += -arch arm64 ;
} else if $(TARGET_ARCH) = "x86_64"
|| $(HOSTTYPE) = "x86_64"
|| $(MACHTYPE) = "x86_64-apple-darwin" {
ECHO "Target architecture: macOS Intel 64-bit (x86_64)" ;
TARGET64 = true ;
CCFLAGS += -arch x86_64 ;
C++FLAGS += -arch x86_64 ;
LINKFLAGS += -arch x86_64 ;
} else if $(COMPILER) = "OSX10_6_X86_64BIT" {
ECHO "We're cross compiling to OSX 10.6 AMD/Intel 64 bit" ; ECHO "We're cross compiling to OSX 10.6 AMD/Intel 64 bit" ;
# setup script needs to export MACOSX_DEPLOYMENT_TARGET="10.6" # setup script needs to export MACOSX_DEPLOYMENT_TARGET="10.6"
# and export CROSS_CFLAGS=--target=x86_64-apple-macosx10.6.0 # and export CROSS_CFLAGS=--target=x86_64-apple-macosx10.6.0
+9 -7
View File
@@ -33,16 +33,18 @@ if $(NT) && $(MINGW64) {
# imdi low level cgen test code # imdi low level cgen test code
Main ctest : ctest.c cgen.c ; Main ctest : ctest.c cgen.c ;
# make imdi code program
Main imdi_make : imdi_make.c imdi_gen.c cgen.c ;
HDRS = ../h ../numlib ; HDRS = ../h ../numlib ;
LINKLIBS = ../numlib/libnum ; LINKLIBS = ../numlib/libnum ;
# GenFile source.c : program args ; make custom file # make imdi code program
# Generate all the kernel files if ! [ GLOB imdi : imdi_k.h ] || ! [ GLOB imdi : imdi_k.c ] {
GenFileND imdi_k.h : imdi_make $(IMDI_MAKE_OPT) -d [ NormPaths $(DOT) ] ; Main imdi_make : imdi_make.c imdi_gen.c cgen.c ;
Clean clean : imdi_k.c ;
# GenFile source.c : program args ; make custom file
# Generate all the kernel files
GenFileND imdi_k.h : imdi_make $(IMDI_MAKE_OPT) -d [ NormPaths $(DOT) ] ;
Clean clean : imdi_k.c ;
}
# imdi library # imdi library
Library libimdi : imdi.c imdi_tab.c ; Library libimdi : imdi.c imdi_tab.c ;
+7 -5
View File
@@ -31,12 +31,14 @@ ObjectKeep port/getopt.c ;
ObjectKeep port/strcasecmp.c ; ObjectKeep port/strcasecmp.c ;
# generation utilities (don't use libport ! - there will be dependency problems for Xcompile!) # generation utilities (don't use libport ! - there will be dependency problems for Xcompile!)
if $(UNIX) { if ! [ GLOB tiff/libtiff : tif_fax3sm.c ] {
Main mkg3states : libtiff/mkg3states.c [ CatPaths port : strcasecmp.c ] ; if $(UNIX) {
} else { Main mkg3states : libtiff/mkg3states.c [ CatPaths port : strcasecmp.c ] ;
Main mkg3states : libtiff/mkg3states.c [ CatPaths port : getopt.c strcasecmp.c ] ; } else {
Main mkg3states : libtiff/mkg3states.c [ CatPaths port : getopt.c strcasecmp.c ] ;
}
GenFileND libtiff/tif_fax3sm.c : mkg3states -c const [ NormPaths libtiff/tif_fax3sm.c ] ;
} }
GenFileND libtiff/tif_fax3sm.c : mkg3states -c const [ NormPaths libtiff/tif_fax3sm.c ] ;
# support library for tools # support library for tools
if $(UNIX) { if $(UNIX) {