Browse Source

🔨 CMake MinGW: Set pkgconfig path and fix prefix

1. Make CMake use MinGW's pkgconfig wrapper.
2. Set the correct `prefix` in `pkgconfig` files.
pull/1665/head
Gleb Mazovetskiy 5 years ago committed by Anders Jenbo
parent
commit
7e9ef03334
  1. 6
      .circleci/config.yml
  2. 1
      CMake/mingwcc.cmake
  3. 1
      CMake/mingwcc64.cmake
  4. 4
      Packaging/windows/mingw-prep.sh
  5. 6
      Packaging/windows/mingw-prep64.sh

6
.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

1
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")

1
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")

4
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|" '{}' \;

6
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
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|" '{}' \;

Loading…
Cancel
Save