aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-07-09 17:29:28 -0700
committerRobert Schumacher <roschuma@microsoft.com>2018-07-17 16:09:12 -0700
commit984d95fa5f8892b1065d158a1d97ef70d00485e6 (patch)
tree13b59f18990923d48b79df3a18dbb65d877c2ad1
parentb4422a1b7ec3c0728108972c07f4daeaa2c9b2a8 (diff)
downloadvcpkg-984d95fa5f8892b1065d158a1d97ef70d00485e6.tar.gz
vcpkg-984d95fa5f8892b1065d158a1d97ef70d00485e6.zip
[glib] Add unofficial exports to propagate static dependencies
-rw-r--r--ports/glib/CMakeLists.txt31
-rw-r--r--ports/glib/CONTROL2
-rw-r--r--ports/glib/cmake/unofficial-glib-config.in.cmake7
-rw-r--r--ports/glib/portfile.cmake4
-rw-r--r--ports/harfbuzz/CONTROL2
-rw-r--r--ports/harfbuzz/glib-cmake.patch29
-rw-r--r--ports/harfbuzz/portfile.cmake1
7 files changed, 68 insertions, 8 deletions
diff --git a/ports/glib/CMakeLists.txt b/ports/glib/CMakeLists.txt
index 3743b0a34..debfd8dd5 100644
--- a/ports/glib/CMakeLists.txt
+++ b/ports/glib/CMakeLists.txt
@@ -126,7 +126,7 @@ else()
target_link_libraries(glib PRIVATE Threads::Threads ${CMAKE_DL_LIBS})
endif()
target_include_directories(glib PRIVATE ${PCRE_INCLUDE_DIR} ${ICONV_INCLUDE_DIR})
-target_include_directories(glib PUBLIC ${LIBINTL_INCLUDE_DIR})
+target_include_directories(glib PUBLIC $<BUILD_INTERFACE:${LIBINTL_INCLUDE_DIR}> $<INSTALL_INTERFACE:include>)
list(APPEND GLIB_TARGETS glib)
if(NOT GLIB_SKIP_HEADERS)
install(FILES glib/glib.h glib/glib-object.h ${CMAKE_BINARY_DIR}/config/glib/glibconfig.h DESTINATION include)
@@ -151,7 +151,7 @@ extract_vcproj_sources(win32/vs14/gobject.vcxproj GOBJECT_SOURCES)
add_library(gobject ${GOBJECT_SOURCES})
target_compile_definitions(gobject PRIVATE GOBJECT_COMPILATION G_LOG_DOMAIN="GLib-GObject")
target_link_libraries(gobject PRIVATE gthread glib ${FFI_LIBRARY})
-target_include_directories(gobject PRIVATE ${FFI_INCLUDE_DIR})
+target_include_directories(gobject PRIVATE ${FFI_INCLUDE_DIR} PUBLIC $<INSTALL_INTERFACE:include>)
list(APPEND GLIB_TARGETS gobject)
if(NOT GLIB_SKIP_HEADERS)
file(GLOB GOBJECT_HEADERS gobject/*.h gobject/gobjectnotifyqueue.c)
@@ -164,7 +164,7 @@ add_library(gmodule gmodule/gmodule.c)
target_compile_definitions(gmodule PRIVATE G_LOG_DOMAIN="GModule")
target_link_libraries(gmodule PRIVATE glib ${LIBINTL_LIBRARY})
target_include_directories(gmodule PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gmodule>)
-target_include_directories(gmodule PRIVATE ${LIBINTL_INCLUDE_DIR})
+target_include_directories(gmodule PRIVATE ${LIBINTL_INCLUDE_DIR} PUBLIC $<INSTALL_INTERFACE:include>)
list(APPEND GLIB_TARGETS gmodule)
if(NOT GLIB_SKIP_HEADERS)
install(FILES gmodule/gmodule.h DESTINATION include)
@@ -232,7 +232,7 @@ endif()
add_library(gio ${GIO_SOURCES})
target_compile_definitions(gio PRIVATE GIO_COMPILATION G_LOG_DOMAIN="GLib-GIO")
target_link_libraries(gio PRIVATE glib gmodule gobject ZLIB::ZLIB ${LIBRESOLV_LIBRARY} ${LIBINTL_LIBRARY})
-target_include_directories(gio PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gio>)
+target_include_directories(gio PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/gio> $<INSTALL_INTERFACE:include/gio>)
if(WIN32)
target_link_libraries(gio PRIVATE ws2_32 shlwapi dnsapi iphlpapi)
elseif(APPLE)
@@ -297,7 +297,28 @@ if(NOT GLIB_SKIP_TOOLS)
install(TARGETS ${GLIB_TOOLS} RUNTIME DESTINATION tools/glib)
endif()
-install(TARGETS ${GLIB_TARGETS} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+install(
+ TARGETS ${GLIB_TARGETS}
+ EXPORT glib
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+install(
+ EXPORT glib
+ NAMESPACE unofficial::glib::
+ FILE unofficial-glib-targets.cmake
+ DESTINATION share/unofficial-glib
+)
+configure_file(
+ cmake/unofficial-glib-config.in.cmake
+ cmake/unofficial-glib-config.cmake
+ @ONLY
+)
+install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/unofficial-glib-config.cmake
+ DESTINATION share/unofficial-glib
+)
message(STATUS "Link-time dependencies:")
message(STATUS " " ${ZLIB_LIBRARIES})
diff --git a/ports/glib/CONTROL b/ports/glib/CONTROL
index f37b794cb..0e04397f8 100644
--- a/ports/glib/CONTROL
+++ b/ports/glib/CONTROL
@@ -1,4 +1,4 @@
Source: glib
-Version: 2.52.3-9
+Version: 2.52.3-11
Description: Portable, general-purpose utility library.
Build-Depends: zlib, pcre, libffi, gettext, libiconv
diff --git a/ports/glib/cmake/unofficial-glib-config.in.cmake b/ports/glib/cmake/unofficial-glib-config.in.cmake
new file mode 100644
index 000000000..976e52a9b
--- /dev/null
+++ b/ports/glib/cmake/unofficial-glib-config.in.cmake
@@ -0,0 +1,7 @@
+if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
+ include(CMakeFindDependencyMacro)
+ find_dependency(Threads)
+ find_dependency(unofficial-iconv)
+endif()
+
+include("${CMAKE_CURRENT_LIST_DIR}/unofficial-glib-targets.cmake")
diff --git a/ports/glib/portfile.cmake b/ports/glib/portfile.cmake
index a500cbd24..96baa9b3e 100644
--- a/ports/glib/portfile.cmake
+++ b/ports/glib/portfile.cmake
@@ -42,9 +42,11 @@ vcpkg_configure_cmake(
OPTIONS_DEBUG
-DGLIB_SKIP_HEADERS=ON
-DGLIB_SKIP_TOOLS=ON
- )
+)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-glib TARGET_PATH share/unofficial-glib)
+
vcpkg_copy_pdbs()
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/glib)
diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL
index d503ca111..85ffb5e0a 100644
--- a/ports/harfbuzz/CONTROL
+++ b/ports/harfbuzz/CONTROL
@@ -1,5 +1,5 @@
Source: harfbuzz
-Version: 1.8.2-2
+Version: 1.8.2-3
Description: HarfBuzz OpenType text shaping engine
Build-Depends: freetype, ragel
Default-Features: ucdn
diff --git a/ports/harfbuzz/glib-cmake.patch b/ports/harfbuzz/glib-cmake.patch
new file mode 100644
index 000000000..cdd7f48a6
--- /dev/null
+++ b/ports/harfbuzz/glib-cmake.patch
@@ -0,0 +1,29 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3c52731..8305f27 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -314,22 +314,12 @@ endif ()
+ if (HB_HAVE_GLIB)
+ add_definitions(-DHAVE_GLIB)
+
+- # https://github.com/WebKit/webkit/blob/master/Source/cmake/FindGLIB.cmake
+- find_package(PkgConfig)
+- pkg_check_modules(PC_GLIB QUIET glib-2.0)
+-
+- find_library(GLIB_LIBRARIES NAMES glib-2.0 HINTS ${PC_GLIB_LIBDIR} ${PC_GLIB_LIBRARY_DIRS})
+- find_path(GLIBCONFIG_INCLUDE_DIR NAMES glibconfig.h HINTS ${PC_LIBDIR} ${PC_LIBRARY_DIRS} ${PC_GLIB_INCLUDEDIR} ${PC_GLIB_INCLUDE_DIRS} PATH_SUFFIXES glib-2.0/include)
+- find_path(GLIB_INCLUDE_DIR NAMES glib.h HINTS ${PC_GLIB_INCLUDEDIR} ${PC_GLIB_INCLUDE_DIRS} PATH_SUFFIXES glib-2.0)
+-
+- include_directories(${GLIBCONFIG_INCLUDE_DIR} ${GLIB_INCLUDE_DIR})
++ find_package(unofficial-glib CONFIG REQUIRED)
+
+ list(APPEND project_sources ${PROJECT_SOURCE_DIR}/src/hb-glib.cc)
+ list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-glib.h)
+
+- list(APPEND THIRD_PARTY_LIBS ${GLIB_LIBRARIES})
+-
+- mark_as_advanced(GLIB_LIBRARIES GLIBCONFIG_INCLUDE_DIR GLIB_INCLUDE_DIR)
++ list(APPEND THIRD_PARTY_LIBS unofficial::glib::glib)
+ endif ()
+
+ if (HB_HAVE_ICU)
diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake
index 728b26fdb..0a6d41792 100644
--- a/ports/harfbuzz/portfile.cmake
+++ b/ports/harfbuzz/portfile.cmake
@@ -13,6 +13,7 @@ vcpkg_apply_patches(
PATCHES
"${CMAKE_CURRENT_LIST_DIR}/0001-fix-uwp-build.patch"
"${CMAKE_CURRENT_LIST_DIR}/find-package-freetype-2.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/glib-cmake.patch"
)
SET(HB_HAVE_ICU "OFF")