aboutsummaryrefslogtreecommitdiff
path: root/ports/glib
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 /ports/glib
parentb4422a1b7ec3c0728108972c07f4daeaa2c9b2a8 (diff)
downloadvcpkg-984d95fa5f8892b1065d158a1d97ef70d00485e6.tar.gz
vcpkg-984d95fa5f8892b1065d158a1d97ef70d00485e6.zip
[glib] Add unofficial exports to propagate static dependencies
Diffstat (limited to 'ports/glib')
-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
4 files changed, 37 insertions, 7 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)