diff options
| author | Alexandre Bique <bique.alexandre@gmail.com> | 2021-04-20 00:30:03 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-19 15:30:03 -0700 |
| commit | 4c830b15161ac060fb48d175e0031677ba6e773e (patch) | |
| tree | ab32c6d58aaeee07806879f574a8c5254a75dd08 /ports/cairo | |
| parent | 3ec41f57e64f691a723fd6e89830d01cc9be93e1 (diff) | |
| download | vcpkg-4c830b15161ac060fb48d175e0031677ba6e773e.tar.gz vcpkg-4c830b15161ac060fb48d175e0031677ba6e773e.zip | |
[cairo,cairomm] add fontconfig and quartz feature, raise cairo version (#16825)
Diffstat (limited to 'ports/cairo')
| -rw-r--r-- | ports/cairo/CMakeLists.txt | 56 | ||||
| -rw-r--r-- | ports/cairo/cairo-features.h.in | 5 | ||||
| -rw-r--r-- | ports/cairo/portfile.cmake | 20 | ||||
| -rw-r--r-- | ports/cairo/vcpkg.json | 14 |
4 files changed, 82 insertions, 13 deletions
diff --git a/ports/cairo/CMakeLists.txt b/ports/cairo/CMakeLists.txt index b66d0b905..a4f5f21c9 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 1254b59e5..d0b38dccb 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 c567dc2cc..ab3447dae 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 a8c093e81..dda4fd042 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" } |
