aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt33
-rw-r--r--cmake/Win64Depends.sh9
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"?