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.
100 lines
3.3 KiB
100 lines
3.3 KiB
project (stgen3) |
|
|
|
# specify the C++ standard |
|
set(CMAKE_CXX_STANDARD 20) |
|
set(CMAKE_CXX_STANDARD_REQUIRED True) |
|
|
|
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) |
|
|
|
############## ONLY REQUIRED FOR lasem ########################## |
|
find_package(PkgConfig REQUIRED) |
|
pkg_search_module(GLIB REQUIRED glib-2.0) |
|
################################################################### |
|
|
|
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" |
|
) |
|
|
|
FetchContent_MakeAvailable(spdlog) |
|
FetchContent_MakeAvailable(tinyxml2) |
|
FetchContent_MakeAvailable(lexbor) |
|
|
|
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() |
|
|
|
link_directories(${GLIB_LIBRARY_DIRS}) |
|
|
|
ADD_EXECUTABLE(stgen3 util.cpp darkhttpd.c duktape/src/duktape.c markdown.cpp |
|
main.cpp lib/cpp-base64/base64.cpp) |
|
|
|
|
|
target_include_directories(stgen3 PRIVATE include duktape/src lib/mtex2MML/src itexToMML/itex-src |
|
lib/lasem/src lib/cpp-base64 lib/gtkmathview-0.8.0/insdir/include ) |
|
|
|
target_include_directories(stgen3 PRIVATE /usr/include/libxml2) |
|
# Horrible Horrible headers for lasem |
|
target_include_directories(stgen3 PRIVATE ${GLIB_INCLUDE_DIRS} /usr/include/cairo /usr/include/gdk-pixbuf-2.0 /usr/include/pango-1.0 /usr/include/harfbuzz/) |
|
|
|
add_custom_command( |
|
OUTPUT default-templates.h |
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
|
COMMAND bash defaults.sh |
|
message("defaults-h") |
|
) |
|
|
|
add_definitions(${GLIB_CFLAGS_OTHER}) |
|
|
|
|
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathmlsvg.a) |
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathmlsvg.a) |
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathview_frontend_libxml2.a) |
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathview_backend_svg.a) |
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/gtkmathview-0.8.0/insdir/lib/libmathview.a) |
|
|
|
target_link_libraries(stgen3 PRIVATE tinyxml2) |
|
target_link_libraries(stgen3 PRIVATE xml2) |
|
|
|
|
|
|
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/MultiMarkdown/build/libMultiMarkdown.a) |
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/itexToMML/itex-src/libitex2MML.a) |
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/mtex2MML/build/libmtex2MML.a) |
|
target_link_libraries(stgen3 PRIVATE tinyxml2) |
|
target_link_libraries(stgen3 PRIVATE lexbor) |
|
target_link_libraries(stgen3 PRIVATE ${CMAKE_SOURCE_DIR}/lib/src-highlite/build/b/lib/libsource-highlight.a) |
|
target_link_libraries(stgen3 PRIVATE boost_regex) |
|
target_link_libraries(stgen3 PRIVATE |
|
${CMAKE_SOURCE_DIR}/lib/lasem/src/.libs/liblasem-0.6.so ${GLIB_LIBRARIES} m |
|
pthread /usr/lib64/libgobject-2.0.so.0 /usr/lib64/libcairo.so.2) |
|
|
|
install(TARGETS stgen3)
|
|
|