aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Bique <bique.alexandre@gmail.com>2021-04-20 00:30:03 +0200
committerGitHub <noreply@github.com>2021-04-19 15:30:03 -0700
commit4c830b15161ac060fb48d175e0031677ba6e773e (patch)
treeab32c6d58aaeee07806879f574a8c5254a75dd08
parent3ec41f57e64f691a723fd6e89830d01cc9be93e1 (diff)
downloadvcpkg-4c830b15161ac060fb48d175e0031677ba6e773e.tar.gz
vcpkg-4c830b15161ac060fb48d175e0031677ba6e773e.zip
[cairo,cairomm] add fontconfig and quartz feature, raise cairo version (#16825)
-rw-r--r--ports/cairo/CMakeLists.txt56
-rw-r--r--ports/cairo/cairo-features.h.in5
-rw-r--r--ports/cairo/portfile.cmake20
-rw-r--r--ports/cairo/vcpkg.json14
-rw-r--r--ports/cairomm/CMakeLists.txt45
-rw-r--r--ports/cairomm/CONTROL6
-rw-r--r--ports/cairomm/portfile.cmake9
-rw-r--r--ports/cairomm/vcpkg.json78
-rw-r--r--versions/baseline.json4
-rw-r--r--versions/c-/cairo.json5
-rw-r--r--versions/c-/cairomm.json5
11 files changed, 211 insertions, 36 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"
}
diff --git a/ports/cairomm/CMakeLists.txt b/ports/cairomm/CMakeLists.txt
index 1cc029786..41591f558 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 7a89c9ec1..000000000
--- 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 c1adb249b..dc5d2c9ff 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 000000000..7c7d62b1b
--- /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 cb552f4f3..1dc640b01 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -1082,11 +1082,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 b2fab7af9..833baaa4e 100644
--- a/versions/c-/cairo.json
+++ b/versions/c-/cairo.json
@@ -1,6 +1,11 @@
{
"versions": [
{
+ "git-tree": "aa8df97c4b06bf590dc04ad931a08f0bf1e47471",
+ "version-string": "1.16.0",
+ "port-version": 10
+ },
+ {
"git-tree": "eb09773c303a9608687dca6a0480ff551c0c2bf9",
"version-string": "1.16.0",
"port-version": 9
diff --git a/versions/c-/cairomm.json b/versions/c-/cairomm.json
index 0e8797f14..eb60a9dcf 100644
--- a/versions/c-/cairomm.json
+++ b/versions/c-/cairomm.json
@@ -1,6 +1,11 @@
{
"versions": [
{
+ "git-tree": "208a6f99a6fbc0239696b79653d769568ca603cc",
+ "version-string": "1.15.3",
+ "port-version": 6
+ },
+ {
"git-tree": "0dce5120b52866ee6e0b485081389f9ea9679fb4",
"version-string": "1.15.3",
"port-version": 5