- **Breaking**: The `Agiodisc_t` struct member `putstr` that was previously an
`fputs` analog is replaced by `printf` that is required to behave similar to
`fprintf`.
-- 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
+- the `mingle`, `diffimg`, `gvmap`, and `edgepaint` binaries are now included in
+ the CMake build system
+- the `gvmap.sh` and `vimdot` scripts are 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
"dot_builtins",
"gv2gxl",
"gvedit",
- "gvmap",
- "gvmap.sh",
"gxl2dot",
"prune",
]
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":
+ if binary in ("gvmap.sh", "vimdot") and platform.system() == "Windows":
check_that_tool_does_not_exist(binary, os_id)
- pytest.skip("vimdot is not installed on Windows")
+ pytest.skip(f"{binary} is not installed on Windows")
assert shutil.which(binary) is not None
add_subdirectory(dot)
add_subdirectory(edgepaint)
+add_subdirectory(gvmap)
add_subdirectory(gvpr)
add_subdirectory(mingle)
add_subdirectory(smyrna)
--- /dev/null
+if(with_sfdp)
+
+ add_executable(gvmap
+ country_graph_coloring.c
+ country_graph_coloring.h
+ gvmap.c
+ make_map.c
+ make_map.h
+ power.c
+ power.h
+ )
+
+ target_include_directories(gvmap PRIVATE
+ ../../lib
+ ../../lib/common
+ ../../lib/cgraph
+ ../../lib/cdt
+ )
+
+ target_include_directories(gvmap SYSTEM PRIVATE
+ ${GETOPT_INCLUDE_DIRS}
+ )
+
+ target_link_libraries(gvmap
+ cgraph
+ edgepaintlib
+ gvc
+ ingraphs
+ neatogen
+ rbtree
+ sfdpgen
+ sparse
+ ${MATH_LIB}
+ )
+
+ if(NOT HAVE_GETOPT_H)
+ target_link_libraries(gvmap ${GETOPT_LINK_LIBRARIES})
+ endif()
+
+ find_program(GZIP gzip)
+ if(GZIP)
+ add_custom_target(man-gvmap ALL DEPENDS gvmap.1.gz
+ COMMENT "gvmap man page")
+ add_custom_command(
+ OUTPUT gvmap.1.gz
+ COMMAND ${GZIP} -9 --no-name --to-stdout gvmap.1
+ >"${CMAKE_CURRENT_BINARY_DIR}/gvmap.1.gz"
+ MAIN_DEPENDENCY gvmap.1
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "compress gvmap man page")
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/gvmap.1.gz
+ DESTINATION ${MAN_INSTALL_DIR}/man1)
+ else()
+ install(
+ FILES gvmap.1
+ DESTINATION ${MAN_INSTALL_DIR}/man1
+ )
+ endif()
+
+ install(
+ TARGETS gvmap
+ RUNTIME DESTINATION ${BINARY_INSTALL_DIR}
+ LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
+ ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR}
+ )
+
+ install(
+ FILES gvmap.sh
+ DESTINATION ${BINARY_INSTALL_DIR}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+ )
+
+endif()