-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
72 lines (59 loc) · 2.96 KB
/
Copy pathCMakeLists.txt
File metadata and controls
72 lines (59 loc) · 2.96 KB
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
cmake_minimum_required (VERSION 2.6)
project (MarkdownPanda)
set(SDS_VERSION "2.0.0")
include_directories("${PROJECT_SOURCE_DIR}/include")
include_directories("${PROJECT_SOURCE_DIR}/src")
include_directories("${PROJECT_SOURCE_DIR}/external-libraries/sds-${SDS_VERSION}")
# Settings CMAKE variables
set(CMAKE_EXPORT_COMPILE_COMMANDS yes)
# Settings variables
set(SOURCE_FILES_MDPANDA src/markdownpanda.c src/plugins.c)
set(SOURCE_FILES ${SOURCE_FILES_MDPANDA} src/markdownpanda_md2html.c external-libraries/sds-${SDS_VERSION}/sds.c)
# Platform Specific
if(APPLE)
include_directories(/usr/local/include)
link_directories(/usr/local/lib)
endif()
# Check if user wants to disable markdown->HTML conversion
if (EXCLUDE_MD2HTML MATCHES "yes")
message(STATUS "Markdown->HTML conversion is DISABLED.")
else()
message(STATUS "Markdown->HTML conversion is ENABLED. If needed, you can disable it by passing the '-DEXCLUDE_MD2HTML=yes' option to cmake.")
set(SOURCE_FILES ${SOURCE_FILES} src/markdownpanda_md2html.c)
endif()
add_executable(mdpanda src/main.c ${SOURCE_FILES})
add_library(markdownpanda_static STATIC ${SOURCE_FILES})
find_package (Threads)
target_link_libraries(mdpanda ${PROJECT_SOURCE_DIR}/lib/libmyhtml_static.a)
target_link_libraries(mdpanda ${PROJECT_SOURCE_DIR}/lib/libcmark-gfm-extensions.a)
target_link_libraries(mdpanda ${PROJECT_SOURCE_DIR}/lib/libcmark-gfm.a)
target_link_libraries(mdpanda ${CMAKE_THREAD_LIBS_INIT})
# Unit testing
find_library(CRITERION criterion)
if (CRITERION)
add_executable(RunUnitTests test/src/main-test.c)
target_link_libraries(RunUnitTests criterion)
target_link_libraries(RunUnitTests markdownpanda_static)
target_link_libraries(RunUnitTests ${PROJECT_SOURCE_DIR}/lib/libmyhtml_static.a)
target_link_libraries(RunUnitTests ${PROJECT_SOURCE_DIR}/lib/libcmark-gfm-extensions.a)
target_link_libraries(RunUnitTests ${PROJECT_SOURCE_DIR}/lib/libcmark-gfm.a)
target_link_libraries(RunUnitTests ${CMAKE_THREAD_LIBS_INIT})
else()
message(WARNING "Criterion unit testing framework is NOT installed. You may proceed but no unit tests will be generated.")
endif()
add_executable(NotAUnitTest test/src/not-a-unit-test.c)
target_link_libraries(NotAUnitTest markdownpanda_static)
target_link_libraries(NotAUnitTest ${PROJECT_SOURCE_DIR}/lib/libmyhtml_static.a)
target_link_libraries(NotAUnitTest ${PROJECT_SOURCE_DIR}/lib/libcmark-gfm-extensions.a)
target_link_libraries(NotAUnitTest ${PROJECT_SOURCE_DIR}/lib/libcmark-gfm.a)
target_link_libraries(NotAUnitTest ${CMAKE_THREAD_LIBS_INIT})
# Install
install(TARGETS mdpanda markdownpanda_static
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib)
install(FILES src/markdownpanda.h DESTINATION include/markdownpanda)
install(FILES src/cpp.hpp DESTINATION include/markdownpanda)
install(FILES src/qt.hpp DESTINATION include/markdownpanda)
install(FILES lib/libmyhtml_static.a DESTINATION lib)
install(FILES lib/libcmark-gfm-extensions.a DESTINATION lib)
install(FILES lib/libcmark-gfm.a DESTINATION lib)