From 924960a61326e7e27bda1597d5017c0317830a28 Mon Sep 17 00:00:00 2001 From: Frederik Carlier Date: Sun, 11 Feb 2024 14:56:44 +0100 Subject: [PATCH 1/2] Add CI leg using MinGW64 + libobjc2 + clang --- .github/scripts/dependencies.sh | 5 +++-- .github/workflows/main.yml | 29 ++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/.github/scripts/dependencies.sh b/.github/scripts/dependencies.sh index b091c47353..3e8dda89f4 100755 --- a/.github/scripts/dependencies.sh +++ b/.github/scripts/dependencies.sh @@ -64,8 +64,9 @@ install_libdispatch() { mkdir -p $DEPS_PATH -# Windows MSVC toolchain uses tools-windows-msvc scripts to install non-GNUstep dependencies -if [ "$LIBRARY_COMBO" = "ng-gnu-gnu" -a "$IS_WINDOWS_MSVC" != "true" ]; then +# Windows MSVC toolchain uses tools-windows-msvc scripts to install non-GNUstep dependencies; +# the MSYS2 toolchain uses Pacman to install non-GNUstep dependencies. +if [ "$LIBRARY_COMBO" = "ng-gnu-gnu" -a "$IS_WINDOWS_MSVC" != "true" -a "$IS_WINDOWS_MINGW" != "true" ]; then install_libobjc2 install_libdispatch fi diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fc826934e0..8d73a5953b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -158,6 +158,15 @@ jobs: CC: gcc CXX: g++ + - name: Windows x64 MinGW Clang gnustep-2.0 + arch: x86_64 + msystem: MINGW64 + library-combo: ng-gnu-gnu + runtime-version: gnustep-2.0 + CC: clang + CXX: clang + LDFLAGS: -fuse-ld=lld -lstdc++ -lgcc_s + - name: Windows x86 MSVC Clang gnustep-2.0 allow-test-failures: true arch: x86 @@ -223,7 +232,6 @@ jobs: libffi-devel libgnutls-devel icu-devel - mingw-w64-${{matrix.arch}}-gcc-objc mingw-w64-${{matrix.arch}}-pkg-config mingw-w64-${{matrix.arch}}-libxml2 mingw-w64-${{matrix.arch}}-libxslt @@ -231,6 +239,25 @@ jobs: mingw-w64-${{matrix.arch}}-gnutls mingw-w64-${{matrix.arch}}-icu + - name: Set up MSYS2 (gcc) + uses: msys2/setup-msys2@v2 + if: env.CC == 'gcc' + with: + msystem: ${{ matrix.msystem }} + install: > + mingw-w64-${{matrix.arch}}-gcc-objc + + - name: Set up MSYS2 (clang) + uses: msys2/setup-msys2@v2 + if: env.CC == 'clang' + with: + msystem: ${{ matrix.msystem }} + update: true + install: > + mingw-w64-${{matrix.arch}}-libobjc2 + mingw-w64-${{matrix.arch}}-clang + mingw-w64-${{matrix.arch}}-lld + - name: Set up MSYS2 (MSVC) uses: msys2/setup-msys2@v2 if: env.IS_WINDOWS_MSVC == 'true' From d609147bc21cb03139fd0a6a1ccb85cbbf8c8ec9 Mon Sep 17 00:00:00 2001 From: Frederik Carlier Date: Sun, 11 Feb 2024 15:53:37 +0100 Subject: [PATCH 2/2] Avoid -rpath on Windows --- Tests/GNUmakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/GNUmakefile b/Tests/GNUmakefile index cf90f4b128..42b4a55b2d 100644 --- a/Tests/GNUmakefile +++ b/Tests/GNUmakefile @@ -65,7 +65,7 @@ check:: GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES="$(TOP_DIR)/base.make";\ ADDITIONAL_INCLUDE_DIRS="-I$(TOP_DIR)/Headers -I$(TOP_DIR)/Source/$(GNUSTEP_TARGET_DIR)";\ ADDITIONAL_LIB_DIRS="-L$(TOP_DIR)/Source/$(GNUSTEP_OBJ_DIR)";\ - if [ "$(GNUSTEP_TARGET_OS)" != "windows" ]; then \ + if [ "$(GNUSTEP_TARGET_OS)" != "windows" -a "$(GNUSTEP_TARGET_OS)" != "mingw32" ]; then \ PATH="$(TOP_DIR)/Tools/$(GNUSTEP_OBJ_DIR):${PATH}";\ ADDITIONAL_LDFLAGS="-Wl,-rpath,$(TOP_DIR)/Source/$(GNUSTEP_OBJ_DIR)";\ LD_LIBRARY_PATH="$(TOP_DIR)/Source/$(GNUSTEP_OBJ_DIR):${LD_LIBRARY_PATH}";\