blob: 523b2cb82b6e4a74c669b60bf16b7ad840356b44 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
configure_file(cmark_version.h.in
${CMAKE_CURRENT_BINARY_DIR}/cmark_version.h)
configure_file(libcmark.pc.in
${CMAKE_CURRENT_BINARY_DIR}/libcmark.pc
@ONLY)
add_library(cmark
blocks.c
buffer.c
cmark.c
cmark_ctype.c
commonmark.c
houdini_href_e.c
houdini_html_e.c
houdini_html_u.c
html.c
inlines.c
iterator.c
latex.c
man.c
node.c
references.c
render.c
scanners.c
scanners.re
utf8.c
xml.c)
cmark_add_compile_options(cmark)
set_target_properties(cmark PROPERTIES
OUTPUT_NAME "cmark"
# Avoid name clash between PROGRAM and LIBRARY pdb files.
PDB_NAME libcmark
POSITION_INDEPENDENT_CODE YES
# Include minor version and patch level in soname for now.
SOVERSION ${PROJECT_VERSION}
VERSION ${PROJECT_VERSION})
if(NOT BUILD_SHARED_LIBS)
target_compile_definitions(cmark PUBLIC
CMARK_STATIC_DEFINE)
endif()
target_include_directories(cmark INTERFACE
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
generate_export_header(cmark
BASE_NAME ${PROJECT_NAME})
# FIXME(compnerd) this should be removed, but exists solely to allow a migration
# path for OSS Fuzz.
add_custom_target(cmark_static DEPENDS cmark)
add_executable(cmark_exe
main.c)
cmark_add_compile_options(cmark_exe)
set_target_properties(cmark_exe PROPERTIES
OUTPUT_NAME "cmark"
INSTALL_RPATH "${Base_rpath}")
target_link_libraries(cmark_exe PRIVATE
cmark)
install(TARGETS cmark_exe cmark
EXPORT cmark-targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libcmark.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
install(FILES
cmark.h
${CMAKE_CURRENT_BINARY_DIR}/cmark_export.h
${CMAKE_CURRENT_BINARY_DIR}/cmark_version.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
# generate cmark-config.cmake and cmark-config-version.cmake files
configure_package_config_file(
"cmarkConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-config.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cmark")
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-config-version.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)
# install config and version file
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-config-version.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cmark"
)
# install targets file
install(
EXPORT "cmark-targets"
NAMESPACE "cmark::"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cmark"
)
|