From 7e9ef0333454478f4272e3647579b33d53550174 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Sat, 24 Apr 2021 03:25:45 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20CMake=20MinGW:=20Set=20pkgconfig?= =?UTF-8?q?=20path=20and=20fix=20prefix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Make CMake use MinGW's pkgconfig wrapper. 2. Set the correct `prefix` in `pkgconfig` files. --- .circleci/config.yml | 6 +++--- CMake/mingwcc.cmake | 1 + CMake/mingwcc64.cmake | 1 + Packaging/windows/mingw-prep.sh | 4 ++++ Packaging/windows/mingw-prep64.sh | 6 +++++- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1d4c9a77f..ab86332b1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,7 @@ jobs: steps: - checkout - run: apt-get update -y - - run: apt-get install -y cmake file g++ git libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsodium-dev rpm wget + - run: apt-get install -y cmake file g++ git libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsodium-dev rpm wget - run: cmake -S. -Bbuild .. -DNIGHTLY_BUILD=ON -DCMAKE_INSTALL_PREFIX=/usr - run: cmake --build build -j 2 --target package - store_artifacts: {path: ./build/devilutionx, destination: devilutionx_linux_x86_64} @@ -65,7 +65,7 @@ jobs: steps: - checkout - run: apt-get update -y - - run: apt-get install -y cmake gcc-mingw-w64-i686 g++-mingw-w64-i686 wget git sudo + - run: apt-get install -y cmake gcc-mingw-w64-i686 g++-mingw-w64-i686 pkg-config-mingw-w64-i686 wget git sudo - run: Packaging/windows/mingw-prep.sh - run: cmake -S. -Bbuild -DNIGHTLY_BUILD=ON -DCMAKE_TOOLCHAIN_FILE=../CMake/mingwcc.cmake - run: cmake --build build -j 2 --target package @@ -78,7 +78,7 @@ jobs: steps: - checkout - run: apt-get update -y - - run: apt-get install -y cmake gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 wget git sudo + - run: apt-get install -y cmake gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 pkg-config-mingw-w64-x86-64 wget git sudo - run: Packaging/windows/mingw-prep64.sh - run: cmake -S. -Bbuild -DNIGHTLY_BUILD=ON -DCMAKE_TOOLCHAIN_FILE=../CMake/mingwcc64.cmake - run: cmake --build build -j 2 --target package diff --git a/CMake/mingwcc.cmake b/CMake/mingwcc.cmake index ed24d4ece..7be2bc970 100644 --- a/CMake/mingwcc.cmake +++ b/CMake/mingwcc.cmake @@ -12,6 +12,7 @@ list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "${CROSS_PREFIX}/i686-w64-min SET(CMAKE_C_COMPILER "i686-w64-mingw32-gcc") SET(CMAKE_CXX_COMPILER "i686-w64-mingw32-g++") set(CMAKE_RC_COMPILER "i686-w64-mingw32-windres") +set(PKG_CONFIG_EXECUTABLE "${CROSS_PREFIX}/bin/i686-w64-mingw32-pkg-config") SET(CMAKE_FIND_ROOT_PATH "${CROSS_PREFIX}/i686-w64-mingw32" "${CROSS_PREFIX}/i686-w64-mingw32/i686-w64-mingw32") diff --git a/CMake/mingwcc64.cmake b/CMake/mingwcc64.cmake index dfe8115c6..bfcd41094 100644 --- a/CMake/mingwcc64.cmake +++ b/CMake/mingwcc64.cmake @@ -12,6 +12,7 @@ list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "${CROSS_PREFIX}/x86_64-w64-m SET(CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc") SET(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++") set(CMAKE_RC_COMPILER "x86_64-w64-mingw32-windres") +set(PKG_CONFIG_EXECUTABLE "${CROSS_PREFIX}/bin/x86_64-w64-mingw32-pkg-config") SET(CMAKE_FIND_ROOT_PATH "${CROSS_PREFIX}/x86_64-w64-mingw32" "${CROSS_PREFIX}/x86_64-w64-mingw32/x86_64-w64-mingw32") diff --git a/Packaging/windows/mingw-prep.sh b/Packaging/windows/mingw-prep.sh index c3664337c..5bd4d1f46 100755 --- a/Packaging/windows/mingw-prep.sh +++ b/Packaging/windows/mingw-prep.sh @@ -13,3 +13,7 @@ wget https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libs tar -xzf libsodium-1.0.18-mingw.tar.gz --no-same-owner sudo cp -r libsodium-win32/* /usr/i686-w64-mingw32 sudo cp -r SDL2*/i686-w64-mingw32 /usr + +# Fixup pkgconfig prefix: +find "/usr/i686-w64-mingw32/lib/pkgconfig/" -name '*.pc' -exec \ + sed -i "s|^prefix=.*|prefix=/usr/i686-w64-mingw32|" '{}' \; diff --git a/Packaging/windows/mingw-prep64.sh b/Packaging/windows/mingw-prep64.sh index 853af723b..434a542df 100755 --- a/Packaging/windows/mingw-prep64.sh +++ b/Packaging/windows/mingw-prep64.sh @@ -12,4 +12,8 @@ tar -xzf SDL2_mixer-devel-2.0.4-mingw.tar.gz wget https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18-mingw.tar.gz tar -xzf libsodium-1.0.18-mingw.tar.gz --no-same-owner sudo cp -r libsodium-win64/* /usr/x86_64-w64-mingw32 -sudo cp -r SDL2*/x86_64-w64-mingw32 /usr \ No newline at end of file +sudo cp -r SDL2*/x86_64-w64-mingw32 /usr + +# Fixup pkgconfig prefix: +find "/usr/x86_64-w64-mingw32/lib/pkgconfig/" -name '*.pc' -exec \ + sed -i "s|^prefix=.*|prefix=/usr/x86_64-w64-mingw32|" '{}' \;