diff --git a/ports/cairo/CMakeLists.txt b/ports/cairo/CMakeLists.txt index b66d0b905007ab..a4f5f21c96e18c 100644 --- a/ports/cairo/CMakeLists.txt +++ b/ports/cairo/CMakeLists.txt @@ -4,7 +4,7 @@ project(cairo C) # Add include directories include_directories(".") if(WIN32) - include_directories("./win32") + include_directories("./win32") endif() set(CAIRO_HEADERS @@ -15,7 +15,7 @@ set(CAIRO_HEADERS cairo-ps.h cairo-script.h cairo-svg.h - ../cairo-version.h + cairo-version.h cairo-win32.h ../util/cairo-gobject/cairo-gobject.h cairo-ft.h @@ -25,6 +25,11 @@ set(CAIRO_X11_HEADERS cairo-xlib.h ) +set(CAIRO_QUARTZ_HEADERS + cairo-quartz.h + cairo-quartz-image.h +) + file(GLOB SOURCES "cairo-analysis-surface.c" "cairo-arc.c" @@ -163,6 +168,15 @@ if(WITH_FREETYPE) list(APPEND SOURCES ${_FREETYPE_SOURCES}) endif() +if(WITH_QUARTZ) + file(GLOB _QUARTZ_SOURCES + "cairo-quartz-font.c" + "cairo-quartz-image-surface.c" + "cairo-quartz-surface.c" + ) + list(APPEND SOURCES ${_QUARTZ_SOURCES}) +endif() + # win32 file(GLOB PLATFORM_SOURCES_WIN32 "win32/cairo-win32-debug.c" @@ -176,7 +190,7 @@ file(GLOB PLATFORM_SOURCES_WIN32 ) if(WIN32) - list(APPEND SOURCES ${PLATFORM_SOURCES_WIN32}) + list(APPEND SOURCES ${PLATFORM_SOURCES_WIN32}) endif() set(CMAKE_DEBUG_POSTFIX "d") @@ -186,8 +200,14 @@ find_package(ZLIB REQUIRED) find_package(PNG REQUIRED) if(WITH_FREETYPE) find_package(Freetype REQUIRED) +endif() +if(WITH_FONTCONFIG) find_package(Fontconfig REQUIRED) endif() +if(WITH_QUARTZ) + find_library(CF CoreFoundation) + find_library(CG CoreGraphics) +endif() find_package(unofficial-pixman CONFIG REQUIRED) # Cairo needs to be told which features of FreeType are availible @@ -219,14 +239,23 @@ if (WITH_X11) endif() if(WITH_FREETYPE) target_include_directories(cairo PUBLIC ${FREETYPE_INCLUDE_DIRS}) - target_link_libraries(cairo PRIVATE Freetype::Freetype Fontconfig::Fontconfig) + target_link_libraries(cairo PRIVATE Freetype::Freetype) +endif() + +if(WITH_FONTCONFIG) + target_link_libraries(cairo PRIVATE Fontconfig::Fontconfig) endif() + target_link_libraries(cairo PRIVATE ZLIB::ZLIB PNG::PNG unofficial::pixman::pixman-1) if(WIN32) target_link_libraries(cairo PRIVATE gdi32 msimg32 user32) endif() +if(WITH_QUARTZ) + target_link_libraries(cairo PRIVATE ${CF} ${CG}) +endif() + # GObject support module set(CAIRO_GOBJECT_SOURCES @@ -248,9 +277,9 @@ if(WITH_GOBJECT) PROPERTIES COMPILE_DEFINITIONS "cairo_public=__attribute__((visibility(\"default\")))") endif() endif() - - find_package(unofficial-glib CONFIG REQUIRED) - add_library(cairo-gobject ${CAIRO_GOBJECT_SOURCES}) + + 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() @@ -274,6 +303,11 @@ endif() install(FILES ${CAIRO_HEADERS} DESTINATION include) install(FILES ${CAIRO_HEADERS} DESTINATION include/cairo) +if(WITH_QUARTZ) + install(FILES ${CAIRO_QUARTZ_HEADERS} DESTINATION include) + install(FILES ${CAIRO_QUARTZ_HEADERS} DESTINATION include/cairo) +endif() + if (WITH_X11) install(FILES ${CAIRO_X11_HEADERS} DESTINATION include) install(FILES ${CAIRO_X11_HEADERS} DESTINATION include/cairo) @@ -292,7 +326,7 @@ if(WITH_GOBJECT) RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib -) +) endif() install( @@ -308,12 +342,18 @@ find_dependency(ZLIB) find_dependency(PNG) if(${WITH_FREETYPE}) find_dependency(Freetype) +endif() +if(${WITH_FONTCONFIG}) find_dependency(Fontconfig) endif() find_dependency(unofficial-pixman CONFIG) if(${WITH_GOBJECT}) find_dependency(unofficial-glib CONFIG) endif() +if(${WITH_QUARTZ}) + find_library(CF CoreFoundation) + find_library(CG CoreGraphics) +endif() include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-cairo-targets.cmake) ") diff --git a/ports/cairo/cairo-features.h.in b/ports/cairo/cairo-features.h.in index 1254b59e53c134..d0b38dccbce36c 100644 --- a/ports/cairo/cairo-features.h.in +++ b/ports/cairo/cairo-features.h.in @@ -35,4 +35,9 @@ /* Require FontConfig */ #cmakedefine01 CAIRO_HAS_FC_FONT +// apple quartz support +#cmakedefine01 CAIRO_HAS_QUARTZ_FONT +#cmakedefine01 CAIRO_HAS_QUARTZ_IMAGE_SURFACE +#cmakedefine01 CAIRO_HAS_QUARTZ_SURFACE + #endif diff --git a/ports/cairo/portfile.cmake b/ports/cairo/portfile.cmake index c567dc2ccbbda8..ab3447dae141d4 100644 --- a/ports/cairo/portfile.cmake +++ b/ports/cairo/portfile.cmake @@ -18,8 +18,19 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/sr if("freetype" IN_LIST FEATURES) set(CAIRO_HAS_FT_FONT TRUE) +endif() + +if("fontconfig" IN_LIST FEATURES) set(CAIRO_HAS_FC_FONT TRUE) endif() + +if("quartz" IN_LIST FEATURES) + set(CAIRO_HAS_QUARTZ TRUE) + set(CAIRO_HAS_QUARTZ_FONT TRUE) + set(CAIRO_HAS_QUARTZ_IMAGE_SURFACE TRUE) + set(CAIRO_HAS_QUARTZ_SURFACE TRUE) +endif() + configure_file("${CMAKE_CURRENT_LIST_DIR}/cairo-features.h.in" "${SOURCE_PATH}/src/cairo-features.h") if ("x11" IN_LIST FEATURES) @@ -36,9 +47,12 @@ if("gobject" IN_LIST FEATURES) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - x11 WITH_X11 - gobject WITH_GOBJECT - freetype WITH_FREETYPE + FEATURES + x11 WITH_X11 + gobject WITH_GOBJECT + freetype WITH_FREETYPE + fontconfig WITH_FONTCONFIG + quartz WITH_QUARTZ ) vcpkg_configure_cmake( diff --git a/ports/cairo/vcpkg.json b/ports/cairo/vcpkg.json index a8c093e81b5d92..dda4fd0425065b 100644 --- a/ports/cairo/vcpkg.json +++ b/ports/cairo/vcpkg.json @@ -1,7 +1,8 @@ { + "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json", "name": "cairo", "version-string": "1.16.0", - "port-version": 9, + "port-version": 10, "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.", "homepage": "https://cairographics.org", "dependencies": [ @@ -10,13 +11,19 @@ "zlib" ], "default-features": [ + "fontconfig", "freetype" ], "features": { + "fontconfig": { + "description": "build with fontconfig", + "dependencies": [ + "fontconfig" + ] + }, "freetype": { "description": "use the freetype font backend", "dependencies": [ - "fontconfig", "freetype" ] }, @@ -26,6 +33,9 @@ "glib" ] }, + "quartz": { + "description": "build with quartz support" + }, "x11": { "description": "build with x11 support" } diff --git a/ports/cairomm/CMakeLists.txt b/ports/cairomm/CMakeLists.txt index 1cc02978601678..41591f558d96de 100644 --- a/ports/cairomm/CMakeLists.txt +++ b/ports/cairomm/CMakeLists.txt @@ -34,9 +34,6 @@ configure_file("build/cmake/cairomm.rc.cmake" "cairomm.rc" @ONLY) #build set(cairomm_cc cairomm/context.cc - cairomm/context_surface_quartz.cc - cairomm/context_surface_win32.cc - cairomm/context_surface_xlib.cc cairomm/device.cc cairomm/exception.cc cairomm/fontface.cc @@ -45,16 +42,11 @@ set(cairomm_cc cairomm/path.cc cairomm/pattern.cc cairomm/private.cc - cairomm/quartz_font.cc - cairomm/quartz_surface.cc cairomm/region.cc cairomm/scaledfont.cc cairomm/script.cc cairomm/script_surface.cc - cairomm/surface.cc - cairomm/win32_font.cc - cairomm/win32_surface.cc - cairomm/xlib_surface.cc) + cairomm/surface.cc) set(cairomm_public_h cairomm/cairomm.h @@ -67,18 +59,13 @@ set(cairomm_public_h cairomm/matrix.h cairomm/path.h cairomm/pattern.h - cairomm/quartz_font.h - cairomm/quartz_surface.h cairomm/refptr.h cairomm/region.h cairomm/scaledfont.h cairomm/script.h cairomm/script_surface.h cairomm/surface.h - cairomm/types.h - cairomm/win32_font.h - cairomm/win32_surface.h - cairomm/xlib_surface.h) + cairomm/types.h) set(cairomm_private_h cairomm/context_private.h @@ -87,6 +74,34 @@ set(cairomm_private_h set(cairomm_rc ${CMAKE_BINARY_DIR}/cairomm.rc) +if(WITH_QUARTZ) + list(APPEND cairomm_cc + cairomm/context_surface_quartz.cc + cairomm/quartz_font.cc + cairomm/quartz_surface.cc) + list(APPEND cairomm_public_h + cairomm/xlib_surface.h) +endif() + +if(WITH_X11) + list(APPEND cairomm_cc + cairomm/xlib_surface.cc + cairomm/context_surface_xlib.cc) + list(APPEND cairomm_public_h + cairomm/quartz_font.h + cairomm/quartz_surface.h) +endif() + +if(WIN32) + list(APPEND cairomm_cc + cairomm/context_surface_win32.cc + cairomm/win32_font.cc + cairomm/win32_surface.cc) + list(APPEND cairomm_public_h + cairomm/win32_font.h + cairomm/win32_surface.h) +endif() + add_library(cairomm-1.0 ${cairomm_cc} ${cairomm_rc}) target_link_libraries(cairomm-1.0 ${CAIRO_LIBRARY} ${SIGC++_LIBRARY} Freetype::Freetype) target_include_directories(cairomm-1.0 PRIVATE diff --git a/ports/cairomm/CONTROL b/ports/cairomm/CONTROL deleted file mode 100644 index 7a89c9ec1de468..00000000000000 --- a/ports/cairomm/CONTROL +++ /dev/null @@ -1,6 +0,0 @@ -Source: cairomm -Version: 1.15.3 -Port-Version: 5 -Homepage: https://www.cairographics.org -Description: A C++ wrapper for the cairo graphics library -Build-Depends: cairo, libsigcpp diff --git a/ports/cairomm/portfile.cmake b/ports/cairomm/portfile.cmake index c1adb249b01bc2..dc5d2c9fff5d19 100644 --- a/ports/cairomm/portfile.cmake +++ b/ports/cairomm/portfile.cmake @@ -19,6 +19,15 @@ vcpkg_extract_source_archive_ex( file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake DESTINATION ${SOURCE_PATH}/build) +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + x11 WITH_X11 + gobject WITH_GOBJECT + freetype WITH_FREETYPE + fontconfig WITH_FONTCONFIG + quartz WITH_QUARTZ +) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/cairomm/vcpkg.json b/ports/cairomm/vcpkg.json new file mode 100644 index 00000000000000..7c7d62b1b98387 --- /dev/null +++ b/ports/cairomm/vcpkg.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json", + "name": "cairomm", + "version-string": "1.15.3", + "port-version": 6, + "description": "A C++ wrapper for the cairo graphics library.", + "homepage": "https://cairographics.org", + "dependencies": [ + "cairo", + "libsigcpp" + ], + "default-features": [ + "fontconfig", + "freetype" + ], + "features": { + "fontconfig": { + "description": "build with fontconfig", + "dependencies": [ + { + "name": "cairo", + "default-features": false, + "features": [ + "fontconfig" + ] + } + ] + }, + "freetype": { + "description": "use the freetype font backend", + "dependencies": [ + { + "name": "cairo", + "default-features": false, + "features": [ + "freetype" + ] + } + ] + }, + "gobject": { + "description": "build gobject module", + "dependencies": [ + { + "name": "cairo", + "default-features": false, + "features": [ + "gobject" + ] + } + ] + }, + "quartz": { + "description": "build with quartz support", + "dependencies": [ + { + "name": "cairo", + "default-features": false, + "features": [ + "quartz" + ] + } + ] + }, + "x11": { + "description": "build with x11 support", + "dependencies": [ + { + "name": "cairo", + "default-features": false, + "features": [ + "x11" + ] + } + ] + } + } +} diff --git a/versions/baseline.json b/versions/baseline.json index 5b043cf59fb2f6..61330482ce6060 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -1074,11 +1074,11 @@ }, "cairo": { "baseline": "1.16.0", - "port-version": 9 + "port-version": 10 }, "cairomm": { "baseline": "1.15.3", - "port-version": 5 + "port-version": 6 }, "camport3": { "baseline": "1.5.3", diff --git a/versions/c-/cairo.json b/versions/c-/cairo.json index b2fab7af92b4a4..833baaa4ea372a 100644 --- a/versions/c-/cairo.json +++ b/versions/c-/cairo.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "aa8df97c4b06bf590dc04ad931a08f0bf1e47471", + "version-string": "1.16.0", + "port-version": 10 + }, { "git-tree": "eb09773c303a9608687dca6a0480ff551c0c2bf9", "version-string": "1.16.0", diff --git a/versions/c-/cairomm.json b/versions/c-/cairomm.json index 0e8797f14846c2..eb60a9dcf9fa39 100644 --- a/versions/c-/cairomm.json +++ b/versions/c-/cairomm.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "208a6f99a6fbc0239696b79653d769568ca603cc", + "version-string": "1.15.3", + "port-version": 6 + }, { "git-tree": "0dce5120b52866ee6e0b485081389f9ea9679fb4", "version-string": "1.15.3",