You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.8 KiB
78 lines
1.8 KiB
project (stgen3) |
|
|
|
# specify the C++ standard |
|
set(CMAKE_CXX_STANDARD 20) |
|
set(CMAKE_CXX_STANDARD_REQUIRED True) |
|
set(CMAKE_CXX_EXTENSIONS False) |
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF) |
|
set(BUILD_SHARED_LIBS OFF) |
|
|
|
if (CMAKE_BUILD_TYPE STREQUAL "Release") |
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") |
|
endif () |
|
|
|
cmake_minimum_required(VERSION 3.17) |
|
|
|
include(FetchContent) |
|
|
|
FetchContent_Declare(spdlog |
|
GIT_REPOSITORY "https://github.com/gabime/spdlog" |
|
GIT_TAG "v1.8.2" |
|
) |
|
|
|
FetchContent_Declare(tinyxml2 |
|
GIT_REPOSITORY "https://github.com/leethomason/tinyxml2" |
|
) |
|
|
|
FetchContent_Declare(lexbor |
|
GIT_REPOSITORY "https://github.com/lexbor/lexbor" |
|
GIT_TAG 52c9f2e606d78fe111ac95f83fcb6c9212e53efb |
|
) |
|
|
|
FetchContent_MakeAvailable(spdlog) |
|
FetchContent_MakeAvailable(tinyxml2) |
|
FetchContent_MakeAvailable(lexbor) |
|
|
|
add_subdirectory(lib/MultiMarkdown-6) |
|
|
|
if(NOT TARGET tinyxml2) # Stand-alone build |
|
find_package(tinyxml2 REQUIRED) |
|
endif() |
|
|
|
if(NOT TARGET spdlog) |
|
# Stand-alone build |
|
find_package(spdlog REQUIRED) |
|
endif() |
|
|
|
if(NOT TARGET lexbor) |
|
# Stand-alone build |
|
find_package(lexbor REQUIRED) |
|
endif() |
|
|
|
ADD_EXECUTABLE(stgen3 util.cpp darkhttpd.c duktape/src/duktape.c markdown.cpp |
|
main.cpp) |
|
|
|
|
|
target_include_directories(stgen3 PRIVATE include duktape/src |
|
lib/syntect-c/include) |
|
|
|
|
|
add_custom_command( |
|
OUTPUT default-templates.h |
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
|
COMMAND bash defaults.sh |
|
message("defaults-h") |
|
) |
|
|
|
target_link_libraries(stgen3 PRIVATE tinyxml2) |
|
|
|
|
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/build/MultiMarkdown-6/libMultiMarkdown.a) |
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/syntect-c/target/release/libcyntct.a) |
|
target_link_libraries(stgen3 PRIVATE pthread dl) |
|
|
|
target_link_libraries(stgen3 PRIVATE tinyxml2) |
|
target_link_libraries(stgen3 PRIVATE lexbor_static.a) |
|
|
|
install(TARGETS stgen3)
|
|
|