[graphviz] Update to 14.1.1 (#48447)

This commit is contained in:
Kai Pastor
2026-01-05 21:28:34 +01:00
committed by GitHub
parent 5087d22fd7
commit e3db8f65d2
22 changed files with 872 additions and 394 deletions

261
ports/graphviz/build.diff Normal file
View File

@@ -0,0 +1,261 @@
diff --git a/cmd/dot/CMakeLists.txt b/cmd/dot/CMakeLists.txt
index 245e44e04..3193c4d7f 100644
--- a/cmd/dot/CMakeLists.txt
+++ b/cmd/dot/CMakeLists.txt
@@ -174,6 +174,10 @@ else()
target_link_libraries(dot PRIVATE gvplugin_webp)
endif()
+ if(HAVE_QUARTZ)
+ target_link_libraries(dot PRIVATE gvplugin_quartz)
+ endif()
+
install(
TARGETS dot
RUNTIME DESTINATION ${BINARY_INSTALL_DIR}
diff --git a/cmd/gvpr/CMakeLists.txt b/cmd/gvpr/CMakeLists.txt
index 7bca2427a..98b7016d7 100644
--- a/cmd/gvpr/CMakeLists.txt
+++ b/cmd/gvpr/CMakeLists.txt
@@ -1,5 +1,3 @@
-add_definitions(-DEXPORT_GVPR)
-
add_executable(gvpr-bin
# Source files
gvprmain.c
@@ -13,12 +11,9 @@ target_include_directories(gvpr-bin PRIVATE
)
target_link_libraries(gvpr-bin PRIVATE
- ast
cgraph
gvc
gvpr
- expr
- sfio
)
set_target_properties(gvpr-bin
diff --git a/lib/ast/CMakeLists.txt b/lib/ast/CMakeLists.txt
index a77af5574..000d71b77 100644
--- a/lib/ast/CMakeLists.txt
+++ b/lib/ast/CMakeLists.txt
@@ -1,4 +1,4 @@
-add_library(ast STATIC
+add_library(ast OBJECT # private in gvpr
# Header files
ast.h
error.h
diff --git a/lib/cdt/CMakeLists.txt b/lib/cdt/CMakeLists.txt
index ed192dac8..7110f1a79 100644
--- a/lib/cdt/CMakeLists.txt
+++ b/lib/cdt/CMakeLists.txt
@@ -1,4 +1,6 @@
+if(BUILD_SHARED_LIBS)
add_definitions(-DEXPORT_CDT)
+endif()
add_library(cdt
# Header files
diff --git a/lib/cgraph/CMakeLists.txt b/lib/cgraph/CMakeLists.txt
index 794b5c186..d05d87a22 100644
--- a/lib/cgraph/CMakeLists.txt
+++ b/lib/cgraph/CMakeLists.txt
@@ -7,7 +7,9 @@ FLEX_TARGET(Scan
)
ADD_FLEX_BISON_DEPENDENCY(Scan Grammar)
+if(BUILD_SHARED_LIBS)
add_definitions(-DEXPORT_CGRAPH -DEXPORT_CGHDR)
+endif()
if(WIN32 AND NOT MINGW)
add_definitions(-DYY_NO_UNISTD_H)
endif()
diff --git a/lib/common/CMakeLists.txt b/lib/common/CMakeLists.txt
index be815ef72..0a6c703dc 100644
--- a/lib/common/CMakeLists.txt
+++ b/lib/common/CMakeLists.txt
@@ -122,20 +122,17 @@ if(APPLE)
target_compile_options(common_obj PRIVATE "-fno-common")
endif()
-add_library(common STATIC
- $<TARGET_OBJECTS:common_obj>
-)
-
-target_link_libraries(common PRIVATE
+# legacy; target objects in gvc
+add_library(common INTERFACE)
+target_link_libraries(common INTERFACE
cgraph
pathplan
- label
xdot
util
)
if(EXPAT_FOUND)
- target_link_libraries(common PRIVATE
+ target_link_libraries(common INTERFACE
${EXPAT_LIBRARIES}
)
endif()
diff --git a/lib/dotgen/CMakeLists.txt b/lib/dotgen/CMakeLists.txt
index e7802eb46..931a18b1f 100644
--- a/lib/dotgen/CMakeLists.txt
+++ b/lib/dotgen/CMakeLists.txt
@@ -35,5 +35,6 @@ target_include_directories(dotgen PRIVATE
target_link_libraries(dotgen PRIVATE
cgraph
+ gvc # ortho, pack
util
)
diff --git a/lib/expr/CMakeLists.txt b/lib/expr/CMakeLists.txt
index 452ecc9c2..fbb1f99e5 100644
--- a/lib/expr/CMakeLists.txt
+++ b/lib/expr/CMakeLists.txt
@@ -5,7 +5,7 @@ BISON_TARGET(
COMPILE_FLAGS "--yacc -Wno-yacc --defines --debug --verbose"
)
-add_library(expr STATIC
+add_library(expr OBJECT # private in gvpr
# Header files
exgram.h
exlib.h
diff --git a/lib/gvc/CMakeLists.txt b/lib/gvc/CMakeLists.txt
index 8530818a8..45a669e6a 100644
--- a/lib/gvc/CMakeLists.txt
+++ b/lib/gvc/CMakeLists.txt
@@ -52,8 +52,9 @@ if(WIN32 AND NOT MINGW)
)
endif()
-target_link_libraries(gvc PRIVATE
+target_sources(gvc PRIVATE
$<TARGET_OBJECTS:common_obj>
+ $<TARGET_OBJECTS:label>
$<TARGET_OBJECTS:pack_obj>
)
@@ -61,7 +62,6 @@ target_link_libraries(gvc PRIVATE
cdt
cgraph
common
- pack
util
)
@@ -78,10 +78,7 @@ if(ZLIB_FOUND)
endif()
if(with_ortho)
- target_link_libraries(gvc PRIVATE
- $<TARGET_OBJECTS:ortho_obj>
- )
- target_link_libraries(gvc PRIVATE ortho)
+ target_sources(gvc PRIVATE $<TARGET_OBJECTS:ortho_obj>)
endif()
# Installation location of library files
diff --git a/lib/gvpr/CMakeLists.txt b/lib/gvpr/CMakeLists.txt
index 35fccf805..eb3b50596 100644
--- a/lib/gvpr/CMakeLists.txt
+++ b/lib/gvpr/CMakeLists.txt
@@ -1,4 +1,6 @@
+if(BUILD_SHARED_LIBS)
add_definitions(-DEXPORT_GVPR)
+endif()
add_library(gvpr
# Header files
@@ -44,13 +46,16 @@ if(WIN32 AND NOT MINGW)
target_include_directories(gvpr PRIVATE ../../windows/include/unistd)
endif()
-target_link_libraries(gvpr PRIVATE
+target_sources(gvpr PRIVATE
$<TARGET_OBJECTS:ast>
+ $<TARGET_OBJECTS:expr>
+ $<TARGET_OBJECTS:sfio>
+)
+
+target_link_libraries(gvpr PRIVATE
cgraph
gvc
util
- $<TARGET_OBJECTS:expr>
- $<TARGET_OBJECTS:sfio>
)
if(NOT HAVE_GETOPT_H)
diff --git a/lib/label/CMakeLists.txt b/lib/label/CMakeLists.txt
index a9f690150..aa33a6871 100644
--- a/lib/label/CMakeLists.txt
+++ b/lib/label/CMakeLists.txt
@@ -1,6 +1,6 @@
add_definitions(-DGVC_EXPORTS)
-add_library(label STATIC
+add_library(label OBJECT # export with gvc
# Header files
index.h
node.h
diff --git a/lib/ortho/CMakeLists.txt b/lib/ortho/CMakeLists.txt
index 7c2b83832..62f1bc5d7 100644
--- a/lib/ortho/CMakeLists.txt
+++ b/lib/ortho/CMakeLists.txt
@@ -35,10 +35,7 @@ target_include_directories(ortho_obj PRIVATE
target_link_libraries(ortho_obj PRIVATE util)
-add_library(ortho STATIC
- $<TARGET_OBJECTS:ortho_obj>
-)
-
-target_link_libraries(ortho PRIVATE util)
+add_library(ortho INTERFACE) # legacy
+target_link_libraries(ortho INTERFACE gvc) # target objects in gvc
endif()
diff --git a/lib/pack/CMakeLists.txt b/lib/pack/CMakeLists.txt
index 585fefe9f..13e2eb99e 100644
--- a/lib/pack/CMakeLists.txt
+++ b/lib/pack/CMakeLists.txt
@@ -21,11 +21,9 @@ target_include_directories(pack_obj PRIVATE
target_link_libraries(pack_obj PRIVATE util)
-add_library(pack STATIC
- $<TARGET_OBJECTS:pack_obj>
-)
-
-target_link_libraries(pack PRIVATE util)
+# legacy; target objects in gvc
+add_library(pack INTERFACE)
+target_link_libraries(pack INTERFACE gvc)
# Specify headers to be installed
install(
diff --git a/lib/sfio/CMakeLists.txt b/lib/sfio/CMakeLists.txt
index d92a13201..237872715 100644
--- a/lib/sfio/CMakeLists.txt
+++ b/lib/sfio/CMakeLists.txt
@@ -1,4 +1,4 @@
-add_library(sfio STATIC
+add_library(sfio OBJECT # private in gvpr
# Header files
sfhdr.h
sfio.h
diff --git a/lib/xdot/CMakeLists.txt b/lib/xdot/CMakeLists.txt
index 70a317d72..12788b3d8 100644
--- a/lib/xdot/CMakeLists.txt
+++ b/lib/xdot/CMakeLists.txt
@@ -1,4 +1,6 @@
+if(BUILD_SHARED_LIBS)
add_definitions(-DEXPORT_XDOT)
+endif()
add_library(xdot
# Header files

View File

@@ -1,10 +1,9 @@
if(MSVC)
find_package(unofficial-getopt-win32 CONFIG REQUIRED)
set(GETOPT_LIBRARY "unofficial::getopt-win32::getopt" CACHE INTERNAL "vcpkg")
set(GETOPT_RUNTIME_LIBRARY "unused" CACHE INTERNAL "vcpkg")
endif()
if(MINGW AND BUILD_SHARED_LIBS AND NOT CMAKE_CROSSCOMPILING)
# Prevent running `configure_plugins.cmake`.
set(CMAKE_CROSSCOMPILING 1)
endif()
if(WIN32 AND NOT MINGW)
find_package(getopt CONFIG REQUIRED)
if(TARGET getopt::getopt_shared)
set(GETOPT_LIBRARY "getopt::getopt_shared" CACHE INTERNAL "vcpkg")
else()
set(GETOPT_LIBRARY "getopt::getopt_static" CACHE INTERNAL "vcpkg")
endif()
set(GETOPT_RUNTIME_LIBRARY "unused" CACHE INTERNAL "vcpkg")
endif()

View File

@@ -0,0 +1,197 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b02632b1f..cce1f3e9b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -327,8 +327,8 @@ if(PkgConfig_FOUND)
message(FATAL_ERROR "-DWITH_GDK=ON and GDK not found")
endif()
endif()
- pkg_check_modules(GDK_PIXBUF gdk-pixbuf-2.0)
- pkg_check_modules(LASI lasi)
+ set(GDK_PIXBUF_FOUND 0)
+ set(LASI_FOUND 0)
if(AUTO_POPPLER)
pkg_check_modules(POPPLER poppler-glib)
elseif(WITH_POPPLER)
@@ -682,7 +682,13 @@ endif()
if(UNIX)
find_library(MATH_LIB m)
- link_libraries(${MATH_LIB})
+ if(MATH_LIB)
+ set(MATH_LIB m CACHE INTERNAL "")
+ link_libraries(${MATH_LIB})
+ string(APPEND LIBGVC_PC_LIBS_PRIVATE " -lm")
+ else()
+ set(MATH_LIB "")
+ endif()
endif()
if(WIN32)
diff --git a/cmake/FindCAIRO.cmake b/cmake/FindCAIRO.cmake
index a6fdf8e3c..a4690653b 100644
--- a/cmake/FindCAIRO.cmake
+++ b/cmake/FindCAIRO.cmake
@@ -1,8 +1,11 @@
include(FindPackageHandleStandardArgs)
find_package(PkgConfig)
-pkg_check_modules(CAIRO cairo)
-if(MINGW)
+pkg_check_modules(CAIRO cairo IMPORTED_TARGET)
+if(CAIRO_FOUND)
+ set(CAIRO_LIBRARIES PkgConfig::CAIRO)
+ set(CAIRO_LINK_LIBRARIES PkgConfig::CAIRO)
+elseif(MINGW)
find_program(CAIRO_RUNTIME_LIBRARY NAMES libcairo-2.dll)
find_program(EXPAT_RUNTIME_LIBRARY NAMES libexpat-1.dll)
find_program(FONTCONFIG_RUNTIME_LIBRARY NAMES libfontconfig-1.dll)
diff --git a/cmake/FindGD.cmake b/cmake/FindGD.cmake
index 49d372c37..2ed7e42af 100644
--- a/cmake/FindGD.cmake
+++ b/cmake/FindGD.cmake
@@ -1,3 +1,11 @@
+find_package(PkgConfig)
+pkg_check_modules(GD gdlib IMPORTED_TARGET)
+set(GD_LIBRARIES PkgConfig::GD)
+foreach(item IN ITEMS FONTCONFIG FREETYPE GIF JPEG PNG)
+ set(HAVE_GD_${item} 1)
+endforeach()
+return()
+
find_path(GD_INCLUDE_DIR gd.h)
find_library(GD_LIBRARY NAMES gd libgd)
diff --git a/cmake/FindGTS.cmake b/cmake/FindGTS.cmake
index bc1d5ea35..8114884a5 100644
--- a/cmake/FindGTS.cmake
+++ b/cmake/FindGTS.cmake
@@ -1,9 +1,11 @@
include(FindPackageHandleStandardArgs)
find_package(PkgConfig)
-pkg_check_modules(GTS gts)
+pkg_check_modules(GTS gts IMPORTED_TARGET)
-if(MINGW)
+if(GTS_FOUND)
+ set(GTS_LINK_LIBRARIES PkgConfig::GTS)
+elseif(MINGW)
find_package(GLIB)
find_program(GTS_RUNTIME_LIBRARY NAMES libgts-0-7-5.dll)
diff --git a/cmake/FindLTDL.cmake b/cmake/FindLTDL.cmake
index e74d23f52..42d9ae23c 100644
--- a/cmake/FindLTDL.cmake
+++ b/cmake/FindLTDL.cmake
@@ -20,4 +20,7 @@ mark_as_advanced(LTDL_INCLUDE_DIR LTDL_LIBRARY)
set(LTDL_INCLUDE_DIRS ${LTDL_INCLUDE_DIR})
if(NOT WIN32 OR MINGW)
set(LTDL_LIBRARIES ${LTDL_LIBRARY})
+ if(CMAKE_DL_LIBS AND NOT BUILD_SHARED_LIBS)
+ set(LTDL_LIBRARIES "${LTDL_LIBRARIES};${CMAKE_DL_LIBS}")
+ endif()
endif()
diff --git a/cmake/FindPANGOCAIRO.cmake b/cmake/FindPANGOCAIRO.cmake
index d185f0bf7..222789a96 100644
--- a/cmake/FindPANGOCAIRO.cmake
+++ b/cmake/FindPANGOCAIRO.cmake
@@ -1,9 +1,12 @@
include(FindPackageHandleStandardArgs)
find_package(PkgConfig)
-pkg_check_modules(PANGOCAIRO pangocairo)
+pkg_check_modules(PANGOCAIRO pangocairo IMPORTED_TARGET)
-if(MINGW)
+if(1)
+ set(PANGOCAIRO_LIBRARIES PkgConfig::PANGOCAIRO)
+ set(PANGOCAIRO_LINK_LIBRARIES PkgConfig::PANGOCAIRO) # https://gitlab.kitware.com/cmake/cmake/-/issues/16154
+elseif(MINGW)
find_package(GLIB)
find_program(GOBJECT_RUNTIME_LIBRARY NAMES libgobject-2.0-0.dll)
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 65a357678..e656b1228 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -53,3 +53,6 @@ if(BUILD_SHARED_LIBS)
DESTINATION ${LIBRARY_INSTALL_DIR}/cmake/graphviz
)
endif()
+
+set(LIBGVC_PC_LIBS_PRIVATE "${LIBGVC_PC_LIBS_PRIVATE}" PARENT_SCOPE)
+set(LIBGVC_PC_REQUIRES_PRIVATE "${LIBGVC_PC_REQUIRES_PRIVATE}" PARENT_SCOPE)
diff --git a/lib/cgraph/libcgraph.pc.in b/lib/cgraph/libcgraph.pc.in
index 2b8c8f47b..168ce85f0 100644
--- a/lib/cgraph/libcgraph.pc.in
+++ b/lib/cgraph/libcgraph.pc.in
@@ -6,5 +6,6 @@ includedir=@includedir@
Name: libcgraph
Description: Graph library (file i/o, dot language parsing, graph, subgraph, node, edge, attribute, data structure manipulation)
Version: @VERSION@
+Libs.private: -lutil
Libs: -L${libdir} -lcgraph -lcdt
Cflags: -I${includedir} -I${includedir}/@PACKAGE@
diff --git a/lib/common/CMakeLists.txt b/lib/common/CMakeLists.txt
index 3b0e469f4..265de0354 100644
--- a/lib/common/CMakeLists.txt
+++ b/lib/common/CMakeLists.txt
@@ -137,6 +137,9 @@ if(EXPAT_FOUND)
${EXPAT_LIBRARIES}
)
endif()
+if(EXPAT_FOUND)
+ string(APPEND LIBGVC_PC_REQUIRES_PRIVATE " expat")
+endif()
# Specify headers to be installed
install(
@@ -149,3 +152,5 @@ install(
usershape.h
DESTINATION ${HEADER_INSTALL_DIR}
)
+
+set(LIBGVC_PC_REQUIRES_PRIVATE "${LIBGVC_PC_REQUIRES_PRIVATE}" PARENT_SCOPE)
diff --git a/lib/gvc/CMakeLists.txt b/lib/gvc/CMakeLists.txt
index 11dba53f3..1d54de861 100644
--- a/lib/gvc/CMakeLists.txt
+++ b/lib/gvc/CMakeLists.txt
@@ -68,12 +68,17 @@ if(LTDL_FOUND)
target_include_directories(gvc SYSTEM PRIVATE ${LTDL_INCLUDE_DIRS})
if(NOT WIN32 OR MINGW)
target_link_libraries(gvc PUBLIC ${LTDL_LIBRARIES})
+ string(APPEND LIBGVC_PC_LIBS_PRIVATE " -lltdl")
+ if(CMAKE_DL_LIBS STREQUAL "dl")
+ string(APPEND LIBGVC_PC_LIBS_PRIVATE " -ldl")
+ endif()
endif()
endif()
if(ZLIB_FOUND)
target_include_directories(gvc SYSTEM PRIVATE ${ZLIB_INCLUDE_DIRS})
target_link_libraries(gvc PUBLIC ${ZLIB_LIBRARIES})
+ string(APPEND LIBGVC_PC_REQUIRES_PRIVATE " zlib")
endif()
if(with_ortho)
@@ -159,3 +164,6 @@ if(BUILD_SHARED_LIBS)
DESTINATION ${LIBRARY_INSTALL_DIR}/cmake/graphviz
)
endif()
+
+set(LIBGVC_PC_LIBS_PRIVATE "${LIBGVC_PC_LIBS_PRIVATE}" PARENT_SCOPE)
+set(LIBGVC_PC_REQUIRES_PRIVATE "${LIBGVC_PC_REQUIRES_PRIVATE} libpathplan libxdot" PARENT_SCOPE)
diff --git a/lib/gvc/libgvc.pc.in b/lib/gvc/libgvc.pc.in
index f12b472e1..9b89519f8 100644
--- a/lib/gvc/libgvc.pc.in
+++ b/lib/gvc/libgvc.pc.in
@@ -7,6 +7,8 @@ plugins=@GVPLUGIN_VERSION@
Name: libgvc
Description: The GraphVizContext library
Version: @VERSION@
+Requires.private: @LIBGVC_PC_REQUIRES_PRIVATE@
+Libs.private: @LIBGVC_PC_LIBS_PRIVATE@ -lutil
Libs: -L${libdir} -lgvc -lcgraph -lcdt
Cflags: -I${includedir} -I${includedir}/@PACKAGE@

View File

@@ -1,36 +0,0 @@
diff --git a/cmd/gvedit/main.cpp b/cmd/gvedit/main.cpp
index 98a2a4a..e810c36 100644
--- a/cmd/gvedit/main.cpp
+++ b/cmd/gvedit/main.cpp
@@ -30,6 +30,7 @@
#ifdef _MSC_VER
+#elif 0
#pragma comment( lib, "cgraph.lib" )
#pragma comment( lib, "gvc.lib" )
#endif
diff --git a/plugin/gdk/gvloadimage_gdk.c b/plugin/gdk/gvloadimage_gdk.c
index 84c6a6a..0d3ec64 100644
--- a/plugin/gdk/gvloadimage_gdk.c
+++ b/plugin/gdk/gvloadimage_gdk.c
@@ -22,6 +22,7 @@
#include <gdk/gdkcairo.h>
#ifdef _MSC_VER //*dependencies
+#elif 0
#pragma comment( lib, "gvc.lib" )
#pragma comment( lib, "glib-2.0.lib" )
#pragma comment( lib, "cairo.lib" )
diff --git a/plugin/webp/gvloadimage_webp.c b/plugin/webp/gvloadimage_webp.c
index c983556..446d43f 100644
--- a/plugin/webp/gvloadimage_webp.c
+++ b/plugin/webp/gvloadimage_webp.c
@@ -24,6 +24,7 @@
#include <webp/decode.h>
#ifdef _MSC_VER //*dependencies
+#elif 0
#pragma comment( lib, "gvc.lib" )
#pragma comment( lib, "glib-2.0.lib" )
#pragma comment( lib, "pango-1.0.lib" )

View File

@@ -1,151 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 12fd424..11371df 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -185,12 +185,14 @@ find_package(PkgConfig)
if(PkgConfig_FOUND)
pkg_check_modules(GDK gdk-2.0)
pkg_check_modules(GDK_PIXBUF gdk-pixbuf-2.0)
- pkg_check_modules(LASI lasi)
- pkg_check_modules(POPPLER poppler-glib)
+ set(LASI_FOUND 0)
+ set(POPPLER_FOUND 0)
pkg_check_modules(RSVG librsvg-2.0)
pkg_check_modules(WEBP libwebp)
+ if(UNIX)
pkg_check_modules(X11 x11)
pkg_check_modules(XRENDER xrender)
+ endif()
else()
set(GDK_FOUND 0)
set(GDK_PIXBUF_FOUND 0)
diff --git a/cmake/FindCAIRO.cmake b/cmake/FindCAIRO.cmake
index 65bb42f..47949f6 100644
--- a/cmake/FindCAIRO.cmake
+++ b/cmake/FindCAIRO.cmake
@@ -1,6 +1,6 @@
include(FindPackageHandleStandardArgs)
-if(WIN32)
+if(0)
find_path(
CAIRO_INCLUDE_DIR cairo.h
PATH_SUFFIXES cairo
@@ -39,7 +39,9 @@ if(WIN32)
)
else()
find_package(PkgConfig)
- pkg_check_modules(CAIRO cairo)
+ pkg_check_modules(CAIRO cairo IMPORTED_TARGET)
+ set(CAIRO_LIBRARIES PkgConfig::CAIRO)
+ set(CAIRO_LINK_LIBRARIES PkgConfig::CAIRO)
find_package_handle_standard_args(CAIRO DEFAULT_MSG
CAIRO_INCLUDE_DIRS
diff --git a/cmake/FindGD.cmake b/cmake/FindGD.cmake
index 0deb5e6..ef42889 100644
--- a/cmake/FindGD.cmake
+++ b/cmake/FindGD.cmake
@@ -1,3 +1,11 @@
+find_package(PkgConfig)
+pkg_check_modules(GD gdlib IMPORTED_TARGET)
+set(GD_LIBRARIES PkgConfig::GD)
+foreach(item IN ITEMS FONTCONFIG FREETYPE GIF JPEG PNG)
+ set(HAVE_GD_${item} 1)
+endforeach()
+return()
+
find_path(GD_INCLUDE_DIR gd.h)
find_library(GD_LIBRARY NAMES gd libgd)
find_program(GD_RUNTIME_LIBRARY libgd.dll)
diff --git a/cmake/FindGTS.cmake b/cmake/FindGTS.cmake
index 8e544e9..88dd849 100644
--- a/cmake/FindGTS.cmake
+++ b/cmake/FindGTS.cmake
@@ -1,5 +1,5 @@
include(FindPackageHandleStandardArgs)
-if(WIN32)
+if(0)
find_path(GTS_INCLUDE_DIR gts.h)
find_path(GLIB_INCLUDE_DIR glib.h PATH_SUFFIXES glib-2.0)
find_path(GLIBCONFIG_INCLUDE_DIR glibconfig.h
@@ -40,7 +40,8 @@ if(WIN32)
)
else()
find_package(PkgConfig)
- pkg_check_modules(GTS gts)
+ pkg_check_modules(GTS gts IMPORTED_TARGET)
+ set(GTS_LINK_LIBRARIES PkgConfig::GTS)
find_package_handle_standard_args(GTS DEFAULT_MSG
GTS_INCLUDE_DIRS
diff --git a/cmake/FindLTDL.cmake b/cmake/FindLTDL.cmake
index e955b74..046e9e8 100644
--- a/cmake/FindLTDL.cmake
+++ b/cmake/FindLTDL.cmake
@@ -17,4 +17,7 @@ mark_as_advanced(LTDL_INCLUDE_DIR LTDL_LIBRARY)
set(LTDL_INCLUDE_DIRS ${LTDL_INCLUDE_DIR})
if(NOT WIN32 OR MINGW)
set(LTDL_LIBRARIES ${LTDL_LIBRARY})
+ if(CMAKE_DL_LIBS AND NOT BUILD_SHARED_LIBS)
+ set(LTDL_LIBRARIES "${LTDL_LIBRARIES};${CMAKE_DL_LIBS}")
+ endif()
endif()
diff --git a/cmake/FindPANGOCAIRO.cmake b/cmake/FindPANGOCAIRO.cmake
index b92e5be..01c4cc7 100644
--- a/cmake/FindPANGOCAIRO.cmake
+++ b/cmake/FindPANGOCAIRO.cmake
@@ -1,6 +1,6 @@
include(FindPackageHandleStandardArgs)
-if(WIN32)
+if(0)
find_path(PANGOCAIRO_INCLUDE_DIR pango/pangocairo.h PATH_SUFFIXES pango-1.0)
find_path(GLIB_INCLUDE_DIR glib.h PATH_SUFFIXES glib-2.0)
find_path(GLIBCONFIG_INCLUDE_DIR glibconfig.h
@@ -78,7 +78,9 @@ if(WIN32)
)
else()
find_package(PkgConfig)
- pkg_check_modules(PANGOCAIRO pangocairo)
+ pkg_check_modules(PANGOCAIRO pangocairo IMPORTED_TARGET)
+ set(PANGOCAIRO_LIBRARIES PkgConfig::PANGOCAIRO)
+ set(PANGOCAIRO_LINK_LIBRARIES PkgConfig::PANGOCAIRO) # https://gitlab.kitware.com/cmake/cmake/-/issues/16154
find_package_handle_standard_args(PANGOCAIRO DEFAULT_MSG
PANGOCAIRO_INCLUDE_DIRS
diff --git a/cmd/dot/CMakeLists.txt b/cmd/dot/CMakeLists.txt
index d2ea435..3b068b0 100644
--- a/cmd/dot/CMakeLists.txt
+++ b/cmd/dot/CMakeLists.txt
@@ -146,7 +146,6 @@ endif()
find_package(PkgConfig)
if(PkgConfig_FOUND)
- pkg_check_modules(GTS gts)
if(GTS_FOUND)
target_include_directories(dot SYSTEM PRIVATE ${GTS_INCLUDE_DIRS})
target_link_libraries(dot PRIVATE ${GTS_LINK_LIBRARIES})
@@ -223,7 +222,7 @@ if(WEBP_FOUND)
endif()
find_library(SOCKET socket)
-if(SOCKET)
+if(0)
target_link_libraries(dot PRIVATE ${SOCKET})
endif()
diff --git a/lib/cdt/CMakeLists.txt b/lib/cdt/CMakeLists.txt
index 4057b57..bf1a913 100644
--- a/lib/cdt/CMakeLists.txt
+++ b/lib/cdt/CMakeLists.txt
@@ -68,3 +68,9 @@ set_target_properties(cdt PROPERTIES
VERSION 5.0.0
SOVERSION 5
)
+
+set(THREADS_PREFER_PTHREAD_FLAG ON)
+find_package(Threads)
+if(TARGET Threads::Threads)
+ target_link_libraries(cdt Threads::Threads)
+endif()

149
ports/graphviz/install.diff Normal file
View File

@@ -0,0 +1,149 @@
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index e656b1228..41faad061 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -47,7 +47,13 @@ if(with_cxx_api)
add_subdirectory(gvc++)
endif()
-if(BUILD_SHARED_LIBS)
+if(1)
+ set_target_properties(util PROPERTIES OUTPUT_NAME gvutil)
+ install(TARGETS common util EXPORT private)
+ install(EXPORT private
+ NAMESPACE graphviz::private::
+ DESTINATION ${LIBRARY_INSTALL_DIR}/cmake/graphviz
+ )
install(
FILES graphvizConfig.cmake
DESTINATION ${LIBRARY_INSTALL_DIR}/cmake/graphviz
diff --git a/lib/cdt/CMakeLists.txt b/lib/cdt/CMakeLists.txt
index 7110f1a79..f37d48414 100644
--- a/lib/cdt/CMakeLists.txt
+++ b/lib/cdt/CMakeLists.txt
@@ -71,7 +71,7 @@ set_target_properties(cdt PROPERTIES
SOVERSION 6
)
-if(BUILD_SHARED_LIBS)
+if(1)
install(
EXPORT cdtConfig
FILE cdtConfig.cmake
diff --git a/lib/cgraph/CMakeLists.txt b/lib/cgraph/CMakeLists.txt
index d05d87a22..c267c5410 100644
--- a/lib/cgraph/CMakeLists.txt
+++ b/lib/cgraph/CMakeLists.txt
@@ -109,7 +109,7 @@ set_target_properties(cgraph PROPERTIES
SOVERSION 8
)
-if(BUILD_SHARED_LIBS)
+if(1)
install(
EXPORT cgraphConfig
FILE cgraphConfig.cmake
diff --git a/lib/cgraph/libcgraph.pc.in b/lib/cgraph/libcgraph.pc.in
index 168ce85f0..9340aa32e 100644
--- a/lib/cgraph/libcgraph.pc.in
+++ b/lib/cgraph/libcgraph.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
Name: libcgraph
Description: Graph library (file i/o, dot language parsing, graph, subgraph, node, edge, attribute, data structure manipulation)
Version: @VERSION@
-Libs.private: -lutil
+Libs.private: -lgvprivate_util
Libs: -L${libdir} -lcgraph -lcdt
Cflags: -I${includedir} -I${includedir}/@PACKAGE@
diff --git a/lib/graphvizConfig.cmake b/lib/graphvizConfig.cmake
index e8c07cd73..2995c48a0 100644
--- a/lib/graphvizConfig.cmake
+++ b/lib/graphvizConfig.cmake
@@ -1,3 +1,4 @@
+include(${CMAKE_CURRENT_LIST_DIR}/private.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/cdtConfig.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/cgraphConfig.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/gvcConfig.cmake)
diff --git a/lib/gvc/CMakeLists.txt b/lib/gvc/CMakeLists.txt
index 9f523354c..a6fb51f1d 100644
--- a/lib/gvc/CMakeLists.txt
+++ b/lib/gvc/CMakeLists.txt
@@ -158,7 +158,7 @@ if(WIN32 AND ZLIB_FOUND AND install_win_dependency_dlls)
)
endif()
-if(BUILD_SHARED_LIBS)
+if(1)
install(
EXPORT gvcConfig
FILE gvcConfig.cmake
diff --git a/lib/gvc/libgvc.pc.in b/lib/gvc/libgvc.pc.in
index 9b89519f8..22ee26e4c 100644
--- a/lib/gvc/libgvc.pc.in
+++ b/lib/gvc/libgvc.pc.in
@@ -8,7 +8,7 @@ Name: libgvc
Description: The GraphVizContext library
Version: @VERSION@
Requires.private: @LIBGVC_PC_REQUIRES_PRIVATE@
-Libs.private: @LIBGVC_PC_LIBS_PRIVATE@ -lutil
+Libs.private: @LIBGVC_PC_LIBS_PRIVATE@ -lgvutil
Libs: -L${libdir} -lgvc -lcgraph -lcdt
Cflags: -I${includedir} -I${includedir}/@PACKAGE@
diff --git a/lib/gvpr/CMakeLists.txt b/lib/gvpr/CMakeLists.txt
index eb3b50596..0789fadd6 100644
--- a/lib/gvpr/CMakeLists.txt
+++ b/lib/gvpr/CMakeLists.txt
@@ -104,7 +104,7 @@ set_target_properties(gvpr PROPERTIES
SOVERSION 2
)
-if(BUILD_SHARED_LIBS)
+if(1)
install(
EXPORT gvprConfig
FILE gvprConfig.cmake
diff --git a/lib/pathplan/CMakeLists.txt b/lib/pathplan/CMakeLists.txt
index 6dfc79ad6..31fff4e42 100644
--- a/lib/pathplan/CMakeLists.txt
+++ b/lib/pathplan/CMakeLists.txt
@@ -74,7 +74,7 @@ set_target_properties(pathplan PROPERTIES
SOVERSION 4
)
-if(BUILD_SHARED_LIBS)
+if(1)
install(
EXPORT pathplanConfig
FILE pathplanConfig.cmake
diff --git a/lib/xdot/CMakeLists.txt b/lib/xdot/CMakeLists.txt
index 12788b3d8..e614c539c 100644
--- a/lib/xdot/CMakeLists.txt
+++ b/lib/xdot/CMakeLists.txt
@@ -60,7 +60,7 @@ set_target_properties(xdot PROPERTIES
SOVERSION 4
)
-if(BUILD_SHARED_LIBS)
+if(1)
install(
EXPORT xdotConfig
FILE xdotConfig.cmake
diff --git a/plugin/CMakeLists.txt b/plugin/CMakeLists.txt
index 3eac7cd4d..9e41c2fd2 100644
--- a/plugin/CMakeLists.txt
+++ b/plugin/CMakeLists.txt
@@ -24,3 +24,13 @@ add_subdirectory(rsvg)
add_subdirectory(vt)
add_subdirectory(webp)
add_subdirectory(xlib)
+
+if(NOT BUILD_SHARED_LIBS)
+ get_directory_property(subdirs SUBDIRECTORIES)
+ foreach(dir IN LISTS subdirs)
+ get_directory_property(targets DIRECTORY "${dir}" BUILDSYSTEM_TARGETS)
+ if(targets)
+ install(TARGETS ${targets})
+ endif()
+ endforeach()
+endif()

View File

@@ -0,0 +1,12 @@
diff --git a/lib/gvc/CMakeLists.txt b/lib/gvc/CMakeLists.txt
index 1d54de861..116322e51 100644
--- a/lib/gvc/CMakeLists.txt
+++ b/lib/gvc/CMakeLists.txt
@@ -41,6 +41,7 @@ target_include_directories(gvc
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../cgraph>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../common>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../pathplan>
+ $<INSTALL_INTERFACE:include>
$<INSTALL_INTERFACE:include/graphviz>
PRIVATE
../..

View File

@@ -1,73 +1,85 @@
set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) # for plugins
set(VCPKG_POLICY_DLLS_WITHOUT_EXPORTS enabled) # kitty and vt plugin not ready yet?
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.com
OUT_SOURCE_PATH SOURCE_PATH
REPO graphviz/graphviz
REF "${VERSION}"
SHA512 6b0cffaf4bde7df260894b1b9d74e8a1d5aec11736511a86d99bc369e3f8db99f7050ae917cf1a066cc7d87695a57ef5b9c19521d211fee48c8a0c41ad0f4aac
SHA512 c486175bbdb62f6d8123ba9623921eb8948a472a2fa31c99f22775b383e6a6380a29224ae8e959617de8960c2a2ad346bb34b20dbf5bc780e5590f4f29930e23
HEAD_REF main
PATCHES
disable-pragma-lib.patch
fix-dependencies.patch
build.diff
dependencies.diff
install.diff
no-absolute-paths.patch
select-plugins.patch
static-linkage.patch
webp-install.patch
workaround-insufficiently-ugly-wchar-h.patch # Avoids conflict between #define S and VS2022 17.13's <wchar.h>
official-include-dir.diff # https://gitlab.com/graphviz/graphviz/-/issues/2798
skip-configure-plugins.diff
version.diff
)
vcpkg_list(SET OPTIONS)
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
vcpkg_download_distfile(
LTDL_H_PATH
URLS "https://gitlab.com/graphviz/graphviz-windows-dependencies/-/raw/141d3a21be904fa8dc2ae3ed01d36684db07a35d/x64/include/ltdl.h"
FILENAME graphviz-ltdl-141d3a21.h
SHA512 f2d20e849e35060536265f47014c40eb70e57dacd600a9db112fc465fbfa6a66217b44a8c3dc33039c260a27f09d9034b329b03cc28c32a22ec503fcd17b78cd
)
file(INSTALL "${LTDL_H_PATH}" DESTINATION "${SOURCE_PATH}/libltdl" RENAME ltdl.h)
vcpkg_list(APPEND OPTIONS "-DLTDL_INCLUDE_DIR=${SOURCE_PATH}/libltdl")
endif()
vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS
FEATURES
tools GRAPHVIZ_CLI
)
if(VCPKG_HOST_IS_WINDOWS)
vcpkg_acquire_msys(MSYS_ROOT PACKAGES gawk)
vcpkg_add_to_path("${MSYS_ROOT}/usr/bin")
unset(ENV{MSYSTEM_PREFIX})
endif()
foreach(lang IN ITEMS D GO GUILE JAVA JAVASCRIPT LUA PERL PHP PYTHON R RUBY SHARP TCL)
list(APPEND OPTIONS -DENABLE_${lang}=OFF)
endforeach()
vcpkg_find_acquire_program(BISON)
vcpkg_find_acquire_program(FLEX)
vcpkg_find_acquire_program(GIT)
vcpkg_find_acquire_program(PKGCONFIG)
vcpkg_find_acquire_program(PYTHON3)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
"-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake"
"-DVERSION=${VERSION}"
"-DBISON_EXECUTABLE=${BISON}"
"-DFLEX_EXECUTABLE=${FLEX}"
"-DGIT=${GIT}"
"-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
"-DPython3_EXECUTABLE=${PYTHON3}"
"-DPKG_CONFIG_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf/pkgconf"
"-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake"
-Dinstall_win_dependency_dlls=OFF
-Duse_win_pre_inst_libs=OFF
-Dwith_gvedit=OFF
-Dwith_smyrna=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_ANN=ON
-DCMAKE_DISABLE_FIND_PACKAGE_DevIL=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_CAIRO=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_EXPAT=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_GD=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_LTDL=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_PANGOCAIRO=ON
-DENABLE_LTDL=ON
-DENABLE_SWIG=OFF
-DWITH_EXPAT=ON
-DWITH_GDK=OFF
-DWITH_GHOSTSCRIPT=OFF
-DWITH_GTK=OFF
-DWITH_GVEDIT=OFF
-DWITH_POPPLER=OFF
-DWITH_RSVG=ON
-DWITH_SMYRNA=OFF
-DWITH_WEBP=ON
-DWITH_X=OFF
-DWITH_ZLIB=ON
-DVCPKG_LOCK_FIND_PACKAGE_AA=OFF
-DVCPKG_LOCK_FIND_PACKAGE_ANN=OFF
-DVCPKG_LOCK_FIND_PACKAGE_CAIRO=ON
-DVCPKG_LOCK_FIND_PACKAGE_DevIL=OFF
-DVCPKG_LOCK_FIND_PACKAGE_EXPAT=ON
-DVCPKG_LOCK_FIND_PACKAGE_Freetype=OFF
-DVCPKG_LOCK_FIND_PACKAGE_GD=ON
-DVCPKG_LOCK_FIND_PACKAGE_GTS=ON
-DVCPKG_LOCK_FIND_PACKAGE_PANGOCAIRO=ON
${OPTIONS}
OPTIONS_DEBUG
-DGRAPHVIZ_CLI=OFF
MAYBE_UNUSED_VARIABLES
install_win_dependency_dlls
)
vcpkg_cmake_install(ADD_BIN_TO_PATH)
vcpkg_fixup_pkgconfig()
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/graphviz)
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/graphvizConfig.cmake" cmake-config)
file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/graphvizConfig.cmake"
"include(CMakeFindDependencyMacro)\nfind_dependency(getopt CONFIG)\n${cmake-config}"
)
endif()
# Resolve cyclic dependency for static cmake targets. Hide from usage heuristics.
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/private.cmake" [[if(DEFINED ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets)]] "if(0)")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/private.cmake" [[add_library(]] "add_library(#[[skip-usage-heuristics]] ")
if(VCPKG_TARGET_IS_WINDOWS)
file(GLOB headers "${CURRENT_PACKAGES_DIR}/include/graphviz/*.h")
@@ -93,64 +105,66 @@ file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/share/man"
)
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
foreach(script_or_link IN ITEMS "dot2gxl${VCPKG_TARGET_EXECUTABLE_SUFFIX}" gvmap.sh)
if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/${script_or_link}")
file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script_or_link}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script_or_link}")
file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script_or_link}")
endif()
endforeach()
vcpkg_copy_tools(
TOOL_NAMES
acyclic
bcomps
ccomps
circo
cluster
diffimg
dijkstra
dot
edgepaint
fdp
gc
gml2gv
graphml2gv
gv2gml
gv2gxl
gvcolor
gvgen
gvmap
gvpack
gvpr
gxl2dot
gxl2gv
mm2gv
neato
nop
osage
patchwork
prune
sccmap
sfdp
tred
twopi
unflatten
AUTO_CLEAN
)
file(GLOB plugin_config "${CURRENT_PACKAGES_DIR}/lib/graphviz/config*" "${CURRENT_PACKAGES_DIR}/bin/config*")
if(NOT plugin_config)
message(WARNING
"In order to create the plugin configuration file, "
"you must run `dot -c` on the target system."
if("tools" IN_LIST FEATURES)
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
foreach(script_or_link IN ITEMS "dot2gxl${VCPKG_TARGET_EXECUTABLE_SUFFIX}" gvmap.sh dot_sandbox)
if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/${script_or_link}")
file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script_or_link}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script_or_link}")
endif()
endforeach()
vcpkg_copy_tools(
TOOL_NAMES
acyclic
bcomps
ccomps
circo
cluster
diffimg
dijkstra
dot
edgepaint
fdp
gc
gml2gv
graphml2gv
gv2gml
gv2gxl
gvcolor
gvgen
gvmap
gvpack
gvpr
gxl2dot
gxl2gv
mm2gv
neato
nop
osage
patchwork
prune
sccmap
sfdp
tred
twopi
unflatten
AUTO_CLEAN
)
endif()
if(VCPKG_TARGET_IS_WINDOWS)
file(GLOB plugins "${CURRENT_PACKAGES_DIR}/bin/gvplugin_*")
file(COPY ${plugins} ${plugin_config} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
else()
file(COPY "${CURRENT_PACKAGES_DIR}/lib/graphviz" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
vcpkg_copy_tools(TOOL_NAMES dot_builtins AUTO_CLEAN)
file(GLOB plugin_config "${CURRENT_PACKAGES_DIR}/lib/graphviz/config*" "${CURRENT_PACKAGES_DIR}/bin/config*")
if(NOT plugin_config)
message(WARNING
"In order to create the plugin configuration file, "
"you must run `dot -c` on the target system."
)
endif()
if(VCPKG_TARGET_IS_WINDOWS)
file(GLOB plugins "${CURRENT_PACKAGES_DIR}/bin/gvplugin_*")
file(COPY ${plugins} ${plugin_config} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
else()
file(COPY "${CURRENT_PACKAGES_DIR}/lib/graphviz" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
endif()
endif()
endif()
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

View File

@@ -1,20 +0,0 @@
diff --git a/plugin/CMakeLists.txt b/plugin/CMakeLists.txt
index c8cac8e..d14bf9c 100644
--- a/plugin/CMakeLists.txt
+++ b/plugin/CMakeLists.txt
@@ -1,15 +1,11 @@
add_subdirectory(core)
-add_subdirectory(devil)
add_subdirectory(dot_layout)
add_subdirectory(gd)
add_subdirectory(gdiplus)
add_subdirectory(gdk)
-add_subdirectory(gs)
add_subdirectory(kitty)
-add_subdirectory(lasi)
add_subdirectory(neato_layout)
add_subdirectory(pango)
-add_subdirectory(poppler)
add_subdirectory(quartz)
add_subdirectory(rsvg)
add_subdirectory(vt)

View File

@@ -0,0 +1,10 @@
diff --git a/cmake/configure_plugins.cmake.in b/cmake/configure_plugins.cmake.in
index 66a02d198..2848b3378 100644
--- a/cmake/configure_plugins.cmake.in
+++ b/cmake/configure_plugins.cmake.in
@@ -1,3 +1,5 @@
+return() # skip: host-only, using paths from staging dir
+
# Run dot -c in the staging install directory to create the config8
# plugin before the final package is created.
#

View File

@@ -1,39 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 14f2847..e56a970 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,6 +30,9 @@ if(WIN32)
# libraries, so the GVDLL symbol can be unconditionally set until
# such support is introduced.
add_definitions(-DGVDLL)
+ if(NOT BUILD_SHARED_LIBS)
+ add_definitions(-DEXPORT_CDT -DEXPORT_CGHDR -DEXPORT_CGRAPH -DGVC_EXPORTS -DPATHPLAN_EXPORTS -DEXPORT_XDOT)
+ endif()
option(install_win_dependency_dlls "Install 3rd party dependencies" ON)
endif()
diff --git a/plugin/gd/gvrender_gd.c b/plugin/gd/gvrender_gd.c
index 76bbbf2..f877fa7 100644
--- a/plugin/gd/gvrender_gd.c
+++ b/plugin/gd/gvrender_gd.c
@@ -242,7 +242,7 @@ static void gdgen_end_page(GVJ_t * job)
#else
#define GD_IMPORT
#endif
-GD_IMPORT extern gdFontPtr gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, gdFontGiant;
+BGD_EXPORT_DATA_PROT extern gdFontPtr gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, gdFontGiant;
void gdgen_text(gdImagePtr im, pointf spf, pointf epf, int fontcolor, double fontsize, int fontdpi, double fontangle, char *fontname, char *str)
{
diff --git a/plugin/pango/CMakeLists.txt b/plugin/pango/CMakeLists.txt
index aca7eec..901f118 100644
--- a/plugin/pango/CMakeLists.txt
+++ b/plugin/pango/CMakeLists.txt
@@ -58,6 +58,7 @@ if(CAIRO_FOUND AND PANGOCAIRO_FOUND)
set_target_properties(gvplugin_pango PROPERTIES
VERSION ${GRAPHVIZ_PLUGIN_VERSION}.0.0
SOVERSION ${GRAPHVIZ_PLUGIN_VERSION}
+ LINKER_LANGUAGE CXX # for cairo
)
if(MINGW)

View File

@@ -1,11 +1,9 @@
{
"name": "graphviz",
"version-semver": "10.0.1",
"port-version": 3,
"version-semver": "14.1.1",
"description": "Graph Visualization Tools",
"homepage": "https://graphviz.org/",
"license": "EPL-1.0",
"supports": "!staticcrt",
"dependencies": [
{
"name": "cairo",
@@ -13,7 +11,10 @@
},
"expat",
"gdk-pixbuf",
"getopt",
{
"name": "getopt-win32",
"platform": "windows & !mingw"
},
"gts",
{
"name": "libgd",
@@ -26,17 +27,26 @@
"tiff"
]
},
{
"name": "libltdl",
"platform": "!windows | mingw"
},
"librsvg",
"libwebp",
"pango",
{
"name": "pkgconf",
"host": true
},
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
},
"zlib"
]
],
"features": {
"tools": {
"description": "Install graphviz executables"
}
}
}

View File

@@ -0,0 +1,35 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a3e7857..ac5a5c9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.21 FATAL_ERROR)
-project(Graphviz)
+project(Graphviz VERSION ${VERSION})
include(FeatureSummary)
@@ -703,6 +703,7 @@ endif()
find_package(Python3 COMPONENTS Interpreter)
set_package_properties(Python3 PROPERTIES TYPE REQUIRED)
+if(0)
execute_process(
COMMAND ${Python3_EXECUTABLE} gen_version.py --major
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
@@ -745,6 +746,15 @@ execute_process(
OUTPUT_STRIP_TRAILING_WHITESPACE
COMMAND_ERROR_IS_FATAL ANY
)
+endif()
+set(GRAPHVIZ_VERSION_MAJOR ${Graphviz_VERSION_MAJOR})
+set(GRAPHVIZ_VERSION_MINOR ${Graphviz_VERSION_MINOR})
+set(GRAPHVIZ_VERSION_PATCH ${Graphviz_VERSION_PATCH})
+set(GRAPHVIZ_VERSION_PRE_RELEASE "")
+set(GRAPHVIZ_VERSION_BUILD 0)
+set(GRAPHVIZ_VERSION
+ "${GRAPHVIZ_VERSION_MAJOR}.${GRAPHVIZ_VERSION_MINOR}.${GRAPHVIZ_VERSION_PATCH}${GRAPHVIZ_VERSION_PRE_RELEASE}"
+)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/builddate.h
"#define BUILDDATE \"${GRAPHVIZ_VERSION_BUILD}\"")

View File

@@ -1,13 +0,0 @@
diff --git a/plugin/webp/CMakeLists.txt b/plugin/webp/CMakeLists.txt
index 21913a8..4811930 100644
--- a/plugin/webp/CMakeLists.txt
+++ b/plugin/webp/CMakeLists.txt
@@ -45,7 +45,7 @@ if(WEBP_FOUND)
install(
TARGETS gvplugin_webp
RUNTIME DESTINATION ${BINARY_INSTALL_DIR}
- LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
+ LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR}
ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR}
)

View File

@@ -1,12 +0,0 @@
diff --git a/lib/expr/expr.h b/lib/expr/expr.h
index 3d7fbd6..d6cfb53 100644
--- a/lib/expr/expr.h
+++ b/lib/expr/expr.h
@@ -36,6 +36,7 @@ extern "C" {
#include <stddef.h>
#include <stdio.h>
#include <vmalloc/vmalloc.h>
+#include <wchar.h>
#define EX_VERSION 20000101L

View File

@@ -279,9 +279,6 @@ gobject-introspection:arm64-windows=fail
gobject-introspection:x64-android=fail
graphicsmagick:arm64-uwp=fail
graphicsmagick:x64-uwp=fail
graphviz:arm-neon-android=fail
graphviz:arm64-android=fail
graphviz:x64-android=fail
# gsoap does not offer stable public source downloads
gsoap:x64-android=fail
gsoap:x64-windows-release=skip

View File

@@ -542,8 +542,7 @@ gppanel:x64-uwp = cascade
grantlee:arm64-uwp = cascade
grantlee:x64-uwp = cascade
graphene(uwp) = cascade
graphviz:arm64-uwp = cascade
graphviz:x64-uwp = cascade
graphviz(uwp) = cascade
grppi[tbb]:arm64-uwp = cascade
grppi[tbb]:x64-uwp = cascade
gst-rtsp-server:arm64-uwp = cascade
@@ -1664,7 +1663,6 @@ ginkgo[openmp](windows) = feature-fails # needs openmp 3.0 support but msvc only
glew[egl](osx) = feature-fails
glib-networking[openssl, gnutls] = options # You have to select exactly one ssl backend
google-cloud-cpp[storagetransfer](osx) = feature-fails # See https://github.com/microsoft/vcpkg/issues/32149
graphviz(osx) = fail # CMake configure error. See https://github.com/microsoft/vcpkg/issues/44414
grpc[codegen](uwp) = feature-fails # linker errors. See https://github.com/microsoft/vcpkg/issues/33622
gstreamer[nvcodec](windows) = feature-fails
gstreamer[vulkan](android | windows) = feature-fails

View File

@@ -0,0 +1,20 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.com
OUT_SOURCE_PATH GRAPHVIZ_PATH
REPO graphviz/graphviz
REF 14.0.4
SHA512 993a39a1c18d1b4d34596ee2e3e16189b7ac757bfc1feee28efd928525f83c54a1b785579e5a4b0f9c8ce8269063a3542398c592c397d338053443e8f93ca3a2
HEAD_REF main
)
vcpkg_find_acquire_program(PKGCONFIG)
set(ENV{PKG_CONFIG} "${PKGCONFIG}")
vcpkg_cmake_configure(
SOURCE_PATH "${CURRENT_PORT_DIR}/project"
OPTIONS
"-DGRAPHVIZ_PATH=${GRAPHVIZ_PATH}"
)
vcpkg_cmake_build()

View File

@@ -0,0 +1,25 @@
cmake_minimum_required(VERSION 3.30)
project(graphviz-test)
find_package(graphviz CONFIG REQUIRED)
add_executable(simple-cmake "${GRAPHVIZ_PATH}/dot.demo/simple.c")
target_link_libraries(simple-cmake PRIVATE graphviz::gvc graphviz::cgraph)
find_package(PkgConfig REQUIRED)
pkg_check_modules(PC_LIBGVC libgvc IMPORTED_TARGET REQUIRED)
add_executable(simple-pkgconfig "${GRAPHVIZ_PATH}/dot.demo/simple.c")
target_link_libraries(simple-pkgconfig PRIVATE PkgConfig::PC_LIBGVC)
# Validate all imported targets in CMake generation step.
get_directory_property(imported_targets IMPORTED_TARGETS)
foreach(target IN LISTS imported_targets)
string(MAKE_C_IDENTIFIER "${target}" id)
add_executable(check-${id} EXCLUDE_FROM_ALL "placeholder.c")
target_link_libraries(check-${id} PRIVATE ${target})
endforeach()
set_source_files_properties("placeholder.c" PROPERTIES GENERATED 1)

View File

@@ -0,0 +1,17 @@
{
"name": "vcpkg-ci-graphviz",
"version-string": "ci",
"description": "Validation port",
"homepage": "https://github.com/microsoft/vcpkg",
"license": "MIT",
"dependencies": [
{
"name": "graphviz",
"default-features": false
},
{
"name": "vcpkg-cmake",
"host": true
}
]
}

View File

@@ -3461,8 +3461,8 @@
"port-version": 4
},
"graphviz": {
"baseline": "10.0.1",
"port-version": 3
"baseline": "14.1.1",
"port-version": 0
},
"greatest": {
"baseline": "1.5.0",

View File

@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "dbe3c4ae19c1ddebe17426e838183ddf8c6730e7",
"version-semver": "14.1.1",
"port-version": 0
},
{
"git-tree": "3e9c7044c50ed9e178cba90b5b1dd3ae2ea5899e",
"version-semver": "10.0.1",