BISON_TARGET(HTMLparse ${CMAKE_CURRENT_SOURCE_DIR}/htmlparse.y
${CMAKE_CURRENT_BINARY_DIR}/htmlparse.c)
add_definitions(-DGVC_EXPORTS)
# Generate colortbl.h from sources
add_custom_command(
OUTPUT common/colortbl.h
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/svgcolor_names
${CMAKE_CURRENT_SOURCE_DIR}/brewer_colors
${CMAKE_CURRENT_SOURCE_DIR}/color_names
${CMAKE_CURRENT_SOURCE_DIR}/make_colortbl.py
COMMAND ${CMAKE_COMMAND} -E make_directory
"${CMAKE_CURRENT_BINARY_DIR}/common"
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/make_colortbl.py
${CMAKE_CURRENT_SOURCE_DIR}/brewer_colors
${CMAKE_CURRENT_SOURCE_DIR}/svgcolor_names
${CMAKE_CURRENT_SOURCE_DIR}/color_names
${CMAKE_CURRENT_BINARY_DIR}/common/colortbl.h
COMMENT "generate color table"
)
# Generate entities.h from entities.html
add_custom_command(
OUTPUT common/entities.h
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/entities.html
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/entities.py
COMMAND ${CMAKE_COMMAND} -E make_directory
"${CMAKE_CURRENT_BINARY_DIR}/common"
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/entities.py
${CMAKE_CURRENT_BINARY_DIR}/common/entities.h
COMMENT "generate entities.h"
)
add_library(common_obj OBJECT
# Header files
arith.h
boxes.h
color.h
colorprocs.h
${CMAKE_CURRENT_BINARY_DIR}/common/colortbl.h
const.h
${CMAKE_CURRENT_BINARY_DIR}/common/entities.h
geom.h
geomprocs.h
globals.h
htmllex.h
htmltable.h
macros.h
pointset.h
ps_font_equiv.h
render.h
textspan.h
textspan_lut.h
types.h
usershape.h
utils.h
# Source files
args.c
arrows.c
colxlate.c
ellipse.c
emit.c
geom.c
globals.c
htmllex.c
htmltable.c
input.c
labels.c
ns.c
output.c
pointset.c
postproc.c
psusershape.c
routespl.c
shapes.c
splines.c
taper.c
textspan.c
textspan_lut.c
timing.c
utils.c
# Generated files
${BISON_HTMLparse_OUTPUTS}
)
if(HAVE_C_WUNUSED_BUT_SET_VARIABLE)
set_source_files_properties(${BISON_HTMLparse_OUTPUTS}
PROPERTIES COMPILE_FLAGS -Wno-unused-but-set-variable)
endif()
target_include_directories(common_obj PRIVATE
..
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
../cdt
../cgraph
../gvc
../pack
../pathplan
)
if(EXPAT_FOUND)
target_include_directories(common_obj SYSTEM PRIVATE
${EXPAT_INCLUDE_DIRS}
)
endif()
if(WIN32)
target_include_directories(common_obj
PRIVATE ${WINDOWS_DEPENDENCY_DIR}/include)
endif()
if(WIN32 AND NOT MINGW)
target_include_directories(common_obj PRIVATE ../../windows/include/unistd)
endif()
# From https://gitlab.com/graphviz/graphviz/-/issues/1613 @mdwies 20093010
if(APPLE)
target_compile_options(common_obj PRIVATE "-fno-common")
endif()
add_library(common STATIC
$
)
target_link_libraries(common PRIVATE
cgraph
pathplan
label
xdot
util
)
if(EXPAT_FOUND)
target_link_libraries(common PRIVATE
${EXPAT_LIBRARIES}
)
endif()
# Specify headers to be installed
install(
FILES
arith.h
color.h
geom.h
textspan.h
types.h
usershape.h
DESTINATION ${HEADER_INSTALL_DIR}
)