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

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)