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

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)