From d6a29e582f40b9ff80e6a01aaa839cb005ff43ed Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Thu, 25 Jul 2024 13:08:15 +0200 Subject: [PATCH] CI updates --- .github/workflows/ci.yml | 18 ++++++++++++++++-- misc/cmake/functions.cmake | 8 +++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5a33d4f2..f50e0824 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -130,6 +130,13 @@ jobs: run: | N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}" | sed 's/[^0-9a-zA-Z_.-]/-/g') mkdir -p "tmp/artifact/$N" + dirs="gcc/debug gcc/release clang/debug clang/release" + if test "${{ matrix.use_extra }}" = "true"; then + dirs="$dirs gcc-m32/debug gcc-m32/release gcc-mx32/debug gcc-mx32/release" + dirs="$dirs cross-windows-mingw32/debug cross-windows-mingw32/release" + dirs="$dirs cross-windows-mingw64/debug cross-windows-mingw64/release" + fi + for d in $dirs; do DESTDIR="$PWD/tmp/artifact/$N/Install/$d" cmake --install build/extra/$d; done (cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N") (cd tmp/artifact && tar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N") echo "artifact_name=$N" >> $GITHUB_ENV @@ -260,6 +267,9 @@ jobs: X="${{ matrix.xcode_version }}"; test -n "$X" && X="-xcode-$X" N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}$X" | sed 's/[^0-9a-zA-Z_.-]/-/g') mkdir -p "tmp/artifact/$N" + dirs="clang/debug clang/release" + test -n "${{ matrix.gcc }}" && dirs="$dirs gcc/debug gcc/release" + for d in $dirs; do DESTDIR="$PWD/tmp/artifact/$N/Install/$d" cmake --install build/extra/$d; done (cd build && rsync -R -a */*/*/upx "../tmp/artifact/$N/") (cd tmp/artifact && gtar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N") echo "artifact_name=$N" >> $GITHUB_ENV @@ -542,8 +552,8 @@ jobs: chmod +x zig-ar zig-cc zig-cxx zig-ranlib ls -la; head zig-ar zig-cc zig-cxx zig-ranlib # update ZIG_TARGET - ZIG_TARGET=${ZIG_TARGET/i386-/x86-} # i386 => x86 - ZIG_TARGET=${ZIG_TARGET/muslsf/musl} # muslsf => musl + ZIG_TARGET=${ZIG_TARGET/i386-/x86-} # i386 => x86 + ZIG_TARGET=${ZIG_TARGET/-muslsf/-musl} # muslsf => musl echo "ZIG_TARGET=$ZIG_TARGET" >> $GITHUB_ENV # -fPIE is for compilation only => also use the correct linker flag "-pie" # INFO: it seems the zig driver does handle this automatically(??), so not really needed @@ -569,6 +579,10 @@ jobs: run: | N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-zigcc-${{ matrix.zig_target }}${ZIG_PIC}" | sed 's/[^0-9a-zA-Z_.-]/-/g') mkdir -p "tmp/artifact/$N" + if [[ "${{ matrix.zig_target }}" == *-linux* ]]; then + dirs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release" + for d in $dirs; do DESTDIR="$PWD/tmp/artifact/$N/Install/$d" cmake --install build/zig/$d; done + fi (cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N") (cd tmp/artifact && tar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N") echo "artifact_name=$N" >> $GITHUB_ENV diff --git a/misc/cmake/functions.cmake b/misc/cmake/functions.cmake index 46be5c1f..c68f153e 100644 --- a/misc/cmake/functions.cmake +++ b/misc/cmake/functions.cmake @@ -42,7 +42,13 @@ macro(upx_set_default_build_type type) if(NOT upx_global_is_multi_config AND NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "${upx_global_default_build_type}" CACHE STRING "Choose the type of build." FORCE) endif() - # also enable CMAKE_EXPORT_COMPILE_COMMANDS by default + # also enable some global settings by default + if(NOT DEFINED CMAKE_C_STANDARD_REQUIRED) + set(CMAKE_C_STANDARD_REQUIRED ON) + endif() + if(NOT DEFINED CMAKE_CXX_STANDARD_REQUIRED) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + endif() if(NOT DEFINED CMAKE_EXPORT_COMPILE_COMMANDS) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) endif()