- the `mingle`, `diffimg`, and `edgepaint` binaries are now included in the
CMake build system
+- the `vimdot` script is now installed by the CMake build system on operating
+ systems other than Windows
- a brief note about the (previously undocumented) behavior of Graphviz when
sent `SIGUSR1` is now mentioned in the man page
- build system support for `dotty`, `lefty`, and `lneato` has been removed
"gvmap.sh",
"gxl2dot",
"prune",
- "vimdot",
]
tools_not_built_with_msbuild = [
check_that_tool_does_not_exist(binary, os_id)
pytest.skip("smyrna is not built on non-Linux due to lacking dependencies")
+ if binary == "vimdot" and platform.system() == "Windows":
+ check_that_tool_does_not_exist(binary, os_id)
+ pytest.skip("vimdot is not installed on Windows")
+
assert shutil.which(binary) is not None
def check_that_tool_does_not_exist(tool, os_id):
--- /dev/null
+find_package(PANGOCAIRO)
+find_package(PkgConfig)
+if(PkgConfig_FOUND)
+ pkg_check_modules(X11 x11)
+ pkg_check_modules(XRENDER xrender)
+endif()
+
+if(PANGOCAIRO_FOUND AND X11_FOUND AND XRENDER_FOUND)
+
+ add_library(gvplugin_xlib SHARED
+ gvdevice_xlib.c
+ gvplugin_xlib.c
+ )
+
+ target_include_directories(gvplugin_xlib PRIVATE
+ ${GRAPHVIZ_LIB_DIR}
+ ${GRAPHVIZ_LIB_DIR}/cdt
+ ${GRAPHVIZ_LIB_DIR}/cgraph
+ ${GRAPHVIZ_LIB_DIR}/common
+ ${GRAPHVIZ_LIB_DIR}/gvc
+ ${GRAPHVIZ_LIB_DIR}/pathplan
+ )
+
+ target_include_directories(gvplugin_xlib PRIVATE SYSTEM
+ ${PANGOCAIRO_INCLUDE_DIRS}
+ ${X11_INCLUDE_DIRS}
+ ${XRENDER_INCLUDE_DIRS}
+ )
+
+ target_link_libraries(gvplugin_xlib
+ ${PANGOCAIRO_LINK_LIBRARIES}
+ ${X11_LINK_LIBRARIES}
+ ${XRENDER_LINK_LIBRARIES}
+ )
+
+ install(
+ TARGETS gvplugin_xlib
+ RUNTIME DESTINATION ${BINARY_INSTALL_DIR}
+ LIBRARY DESTINATION ${PLUGIN_INSTALL_DIR}
+ ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR}
+ )
+
+ set_target_properties(gvplugin_xlib PROPERTIES
+ VERSION ${GRAPHVIZ_PLUGIN_VERSION}.0.0
+ SOVERSION ${GRAPHVIZ_PLUGIN_VERSION}
+ )
+
+ if(MINGW)
+ # work around https://gitlab.kitware.com/cmake/cmake/-/issues/21716
+ set_target_properties(gvplugin_xlib PROPERTIES
+ RUNTIME_OUTPUT_NAME gvplugin_xlib-${GRAPHVIZ_PLUGIN_VERSION}
+ )
+ endif()
+
+ install(
+ FILES vimdot.sh
+ DESTINATION ${BINARY_INSTALL_DIR}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+ RENAME vimdot
+ )
+
+ find_program(GZIP gzip)
+ if(GZIP)
+ add_custom_target(man-vimdot ALL DEPENDS vimdot.1.gz
+ COMMENT "vimdot man page")
+ add_custom_command(
+ OUTPUT vimdot.1.gz
+ COMMAND ${GZIP} -9 --no-name --to-stdout vimdot.1
+ >"${CMAKE_CURRENT_BINARY_DIR}/vimdot.1.gz"
+ MAIN_DEPENDENCY vimdot.1
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "compress vimdot man page")
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/vimdot.1.gz
+ DESTINATION ${MAN_INSTALL_DIR}/man1)
+ else()
+ install(
+ FILES vimdot.1
+ DESTINATION ${MAN_INSTALL_DIR}/man1
+ )
+ endif()
+
+endif()