diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2022-08-10 16:04:10 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2022-08-10 16:04:10 +0200 |
commit | 2e684d2f4e663a5c7469d4b2b831b336af35126d (patch) | |
tree | 77fdc186d7b1bbe5936d8a6396c7f015773cad87 | |
parent | 57739ff81e6de71080a7983811daa9d4a5a8a4a3 (diff) | |
download | tdv-2e684d2f4e663a5c7469d4b2b831b336af35126d.tar.gz tdv-2e684d2f4e663a5c7469d4b2b831b336af35126d.tar.xz tdv-2e684d2f4e663a5c7469d4b2b831b336af35126d.zip |
Clean up cross-compilation
-rw-r--r-- | CMakeLists.txt | 33 | ||||
-rw-r--r-- | cmake/Win64Depends.sh | 9 |
2 files changed, 23 insertions, 19 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1dc1dc9..d740ec0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,18 +17,23 @@ if (WIN32) message (FATAL_ERROR "Win32 must be cross-compiled to build sensibly") endif () - set (WIN32_DEPENDS_PATH ${PROJECT_SOURCE_DIR}/win32-depends) - list (APPEND CMAKE_PREFIX_PATH ${WIN32_DEPENDS_PATH}) - list (APPEND CMAKE_INCLUDE_PATH ${WIN32_DEPENDS_PATH}/lib) + set (win32_deps_root "${PROJECT_SOURCE_DIR}") + set (win32_deps_prefix "${win32_deps_root}/mingw64") + list (APPEND CMAKE_PREFIX_PATH "${win32_deps_prefix}") + list (APPEND CMAKE_INCLUDE_PATH "${win32_deps_prefix}/lib") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mms-bitfields") if (CMAKE_CROSSCOMPILING) - list (APPEND CMAKE_FIND_ROOT_PATH ${WIN32_DEPENDS_PATH}) - endif (CMAKE_CROSSCOMPILING) + list (APPEND CMAKE_FIND_ROOT_PATH ${win32_deps_prefix}) + endif () - set (ENV{PKG_CONFIG_LIBDIR} - "${WIN32_DEPENDS_PATH}/share/pkgconfig:${WIN32_DEPENDS_PATH}/lib/pkgconfig") -endif (WIN32) + # Relativize prefixes, and bar pkg-config from looking up host libraries + set (ENV{PKG_CONFIG_SYSROOT_DIR} "${win32_deps_root}") + set (win32_deps_pcpath + "${win32_deps_prefix}/share/pkgconfig:${win32_deps_prefix}/lib/pkgconfig") + set (ENV{PKG_CONFIG_PATH} "${win32_deps_pcpath}") + set (ENV{PKG_CONFIG_LIBDIR} "${win32_deps_pcpath}") +endif () # Dependencies find_package (ZLIB REQUIRED) @@ -306,25 +311,25 @@ elseif (WITH_GUI) # This rather crude filter has been mostly copied over from logdiag install (TARGETS sdgui DESTINATION .) install (DIRECTORY - ${WIN32_DEPENDS_PATH}/bin/ + ${win32_deps_prefix}/bin/ DESTINATION . FILES_MATCHING PATTERN "*.dll") install (DIRECTORY - ${WIN32_DEPENDS_PATH}/etc/ + ${win32_deps_prefix}/etc/ DESTINATION etc) install (DIRECTORY - ${WIN32_DEPENDS_PATH}/lib/gdk-pixbuf-2.0 + ${win32_deps_prefix}/lib/gdk-pixbuf-2.0 DESTINATION lib FILES_MATCHING PATTERN "*" PATTERN "*.a" EXCLUDE) install (DIRECTORY - ${WIN32_DEPENDS_PATH}/share/glib-2.0/schemas + ${win32_deps_prefix}/share/glib-2.0/schemas DESTINATION share/glib-2.0) install (DIRECTORY - ${WIN32_DEPENDS_PATH}/share/icons/Adwaita + ${win32_deps_prefix}/share/icons/Adwaita DESTINATION share/icons OPTIONAL) install (FILES - ${WIN32_DEPENDS_PATH}/share/icons/hicolor/index.theme + ${win32_deps_prefix}/share/icons/hicolor/index.theme DESTINATION share/icons/hicolor) install (DIRECTORY ${icon_base} DESTINATION share) diff --git a/cmake/Win64Depends.sh b/cmake/Win64Depends.sh index 25cab88..9a13177 100644 --- a/cmake/Win64Depends.sh +++ b/cmake/Win64Depends.sh @@ -54,13 +54,12 @@ configure() { glib-compile-schemas share/glib-2.0/schemas wine64 bin/gdk-pixbuf-query-loaders.exe \ > lib/gdk-pixbuf-2.0/2.10.0/loaders.cache - - # pkgconf has a command line option for this, but CMake can't pass it - sed -i "s|^prefix=/mingw64|prefix=$(pwd)|" {share,lib}/pkgconfig/*.pc } -mkdir -p win32-depends -cd win32-depends +# This directory name matches the prefix in .pc files, so we don't need to +# modify them (pkgconf has --prefix-variable, but CMake can't pass that option) +mkdir -p mingw64 +cd mingw64 dbsync fetch mingw-w64-x86_64-gtk3 mingw-w64-x86_64-icu \ mingw-w64-x86_64-libwinpthread-git # because we don't do "provides"? |