diff --git a/ports/cairo/CMakeLists.txt b/ports/cairo/CMakeLists.txt index 5e2b794e12249b..6470d8d09d5ab8 100644 --- a/ports/cairo/CMakeLists.txt +++ b/ports/cairo/CMakeLists.txt @@ -182,7 +182,6 @@ find_package(Threads REQUIRED) find_package(ZLIB REQUIRED) find_package(PNG REQUIRED) find_package(Freetype REQUIRED) -find_package(unofficial-glib CONFIG REQUIRED) find_package(unofficial-fontconfig CONFIG REQUIRED) find_package(unofficial-pixman CONFIG REQUIRED) @@ -225,32 +224,37 @@ set(CAIRO_GOBJECT_SOURCES "../util/cairo-gobject/cairo-gobject-structs.c") # GObject support sources do not include header with export macro -if(BUILD_SHARED_LIBS) - if(MSVC) - set_source_files_properties( - "../util/cairo-gobject/cairo-gobject-enums.c" - "../util/cairo-gobject/cairo-gobject-structs.c" - PROPERTIES COMPILE_DEFINITIONS "cairo_public=__declspec(dllexport)") - else() - set_source_files_properties( - "../util/cairo-gobject/cairo-gobject-enums.c" - "../util/cairo-gobject/cairo-gobject-structs.c" - PROPERTIES COMPILE_DEFINITIONS "cairo_public=__attribute__((visibility(\"default\")))") +if(WITH_GOBJECT) + if(BUILD_SHARED_LIBS) + if(MSVC) + set_source_files_properties( + "../util/cairo-gobject/cairo-gobject-enums.c" + "../util/cairo-gobject/cairo-gobject-structs.c" + PROPERTIES COMPILE_DEFINITIONS "cairo_public=__declspec(dllexport)") + else() + set_source_files_properties( + "../util/cairo-gobject/cairo-gobject-enums.c" + "../util/cairo-gobject/cairo-gobject-structs.c" + PROPERTIES COMPILE_DEFINITIONS "cairo_public=__attribute__((visibility(\"default\")))") + endif() endif() + + find_package(unofficial-glib CONFIG REQUIRED) + add_library(cairo-gobject ${CAIRO_GOBJECT_SOURCES}) + target_link_libraries(cairo-gobject PRIVATE cairo unofficial::glib::gobject unofficial::glib::glib) endif() -add_library(cairo-gobject ${CAIRO_GOBJECT_SOURCES}) -target_link_libraries(cairo-gobject PRIVATE cairo unofficial::glib::gobject unofficial::glib::glib) - if(MSVC) # cairo produces a lot of warnings which are disabled here because they otherwise fill up the log files # NOTE: options only available to MSVC, clang in macOS doesn't understand these flags target_compile_options(cairo PRIVATE "/wd4244" "/wd4146" "/wd4312" "/wd4267" "/wd4996" "/wd4311" "/wd4334" "/wd4101" ) - target_compile_options(cairo-gobject PRIVATE - "/wd4244" "/wd4146" "/wd4312" "/wd4267" "/wd4996" "/wd4311" "/wd4334" "/wd4101" - ) + if(WITH_GOBJECT) + target_compile_options(cairo-gobject PRIVATE + "/wd4244" "/wd4146" "/wd4312" "/wd4267" "/wd4996" "/wd4311" "/wd4334" "/wd4101" + ) + endif() endif() if (CAIRO_HAS_XLIB_SURFACE) @@ -265,13 +269,22 @@ if (WITH_X11) install(FILES ${CAIRO_X11_HEADERS} DESTINATION include/cairo) endif() -install(TARGETS cairo cairo-gobject +install(TARGETS cairo EXPORT cairo-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) +if(WITH_GOBJECT) + install(TARGETS cairo-gobject + EXPORT cairo-targets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +endif() + install( EXPORT cairo-targets NAMESPACE unofficial::cairo:: @@ -284,9 +297,11 @@ include(CMakeFindDependencyMacro) find_dependency(ZLIB) find_dependency(PNG) find_dependency(Freetype) -find_dependency(unofficial-glib CONFIG) find_dependency(unofficial-fontconfig CONFIG) find_dependency(unofficial-pixman CONFIG) +if(WITH_GOBJECT) + find_dependency(unofficial-glib CONFIG) +endif() include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-cairo-targets.cmake) ") diff --git a/ports/cairo/CONTROL b/ports/cairo/CONTROL index 99fd90610c36fe..cbbe5d3d85bc2e 100644 --- a/ports/cairo/CONTROL +++ b/ports/cairo/CONTROL @@ -1,8 +1,12 @@ Source: cairo -Version: 1.16.0-4 +Version: 1.16.0-5 Homepage: https://cairographics.org Description: Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB. -Build-Depends: zlib, libpng, pixman, glib, freetype, fontconfig +Build-Depends: zlib, libpng, pixman, freetype, fontconfig Feature: x11 -Description: build with x11 support \ No newline at end of file +Description: build with x11 support + +Feature: gobject +Description: build gobject module +Build-Depends: glib \ No newline at end of file diff --git a/ports/cairo/portfile.cmake b/ports/cairo/portfile.cmake index 61db053e239268..2dab7e4c2e04b2 100644 --- a/ports/cairo/portfile.cmake +++ b/ports/cairo/portfile.cmake @@ -24,8 +24,15 @@ if ("x11" IN_LIST FEATURES) message(WARNING "You will need to install Xorg dependencies to use feature x11:\napt install libx11-dev libxft-dev\n") endif() +if("gobject" IN_LIST FEATURES) + if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") + message(FATAL_ERROR "Feature gobject currently only supports dynamic build.") + endif() +endif() + vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS x11 WITH_X11 + gobject WITH_GOBJECT ) vcpkg_configure_cmake( @@ -55,4 +62,4 @@ file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${ vcpkg_copy_pdbs() -#vcpkg_test_cmake(PACKAGE_NAME unofficial-cairo) +#vcpkg_test_cmake(PACKAGE_NAME unofficial-cairo) \ No newline at end of file diff --git a/ports/pango/CONTROL b/ports/pango/CONTROL index 72b2aaa1070830..2e1d6679e44832 100644 --- a/ports/pango/CONTROL +++ b/ports/pango/CONTROL @@ -1,5 +1,5 @@ Source: pango -Version: 1.40.11-6 +Version: 1.40.11-7 Homepage: https://ftp.gnome.org/pub/GNOME/sources/pango/ Description: Text and font handling library. -Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz[glib] (!(windows&static)&!osx) +Build-Depends: glib, gettext, cairo[gobject], fontconfig, freetype, harfbuzz[glib] (!(windows&static)&!osx) diff --git a/ports/pango/portfile.cmake b/ports/pango/portfile.cmake index 699343fdcdeeb2..475d49f01038ec 100644 --- a/ports/pango/portfile.cmake +++ b/ports/pango/portfile.cmake @@ -1,5 +1,3 @@ -include(vcpkg_common_functions) - set(PANGO_VERSION 1.40.11) vcpkg_download_distfile(ARCHIVE URLS "http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-${PANGO_VERSION}.tar.xz" @@ -25,5 +23,4 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_copy_pdbs() -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/pango) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/pango/COPYING ${CURRENT_PACKAGES_DIR}/share/pango/copyright) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file