ferencd@0: cmake_minimum_required (VERSION 3.0) ferencd@0: set (PROJECT thymian) ferencd@0: ferencd@0: set (ECPPC /usr/local/bin/ecppc) ferencd@0: ferencd@0: set (WEB_COMPONENTS ferencd@0: r # Recipe sender ferencd@0: root # Main root ferencd@0: filer # Just send the files ferencd@0: main_root_sender # The recipe root directory sender (which selects recipe categoroes) ferencd@0: category_root_sender # Send a category ferencd@0: ) ferencd@0: ferencd@0: include_directories( ferencd@0: "/usr/local/include/" ferencd@0: ${CMAKE_CURRENT_BINARY_DIR} ferencd@0: ${CMAKE_CURRENT_SOURCE_DIR} ferencd@0: ) ferencd@0: ferencd@0: set(${PROJECT}_SOURCES ferencd@0: "" ferencd@0: CACHE INTERNAL ${PROJECT}_SOURCES ferencd@0: ) ferencd@0: ferencd@0: OPTION(BUILD_EXECUTABLE_WEB_COMPONENT "Build a standalone executable of the web component. If you don't select this, a library will be built, you will need to run it with tntnet." ON) ferencd@0: ferencd@0: foreach(comp ${WEB_COMPONENTS}) ferencd@0: list(APPEND ${PROJECT}_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${comp}.cpp ) ferencd@0: add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${comp}.cpp ferencd@0: COMMAND ${ECPPC} -o ${CMAKE_CURRENT_BINARY_DIR}/${comp}.cpp -v -n ${comp} ${CMAKE_CURRENT_SOURCE_DIR}/${comp}.ecpp ferencd@0: DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${comp}.ecpp) ferencd@0: set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/${comp}.cpp) ferencd@0: endforeach() ferencd@0: ferencd@0: set(CPP_SOURCES ferencd@0: config.cpp ferencd@0: category_sender.cpp ferencd@0: file_sender.cpp ferencd@0: flood_check.cpp ferencd@0: main_sender.cpp ferencd@0: r_impl.cpp ferencd@0: url_breaker.cpp ferencd@0: web_component.cpp ferencd@0: web_logmachine.cpp ferencd@0: ) ferencd@0: ferencd@0: set(CPP_HEADERS ferencd@0: category_sender.h ferencd@0: config.h ferencd@0: fake_locations.h ferencd@0: file_sender.h ferencd@0: flood_check.h ferencd@0: main_sender.h ferencd@0: r_impl.h ferencd@0: url_breaker.h ferencd@0: web_component.h ferencd@0: web_logmachine.h ferencd@0: ) ferencd@0: ferencd@0: if(BUILD_EXECUTABLE_WEB_COMPONENT) ferencd@0: ferencd@0: set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wno-deprecated -Wall -Wextra -Wstrict-aliasing -pedantic -fmax-errors=5 -Wno-error=strict-overflow -Wunreachable-code -Wcast-align -Wcast-qual -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wnoexcept -Wno-old-style-cast -Woverloaded-virtual -Wredundant-decls -Wno-shadow -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default -Wno-unused -Wno-variadic-macros -Wno-parentheses -fdiagnostics-show-option --param max-gcse-memory=200000000 --param=max-vartrack-size=600000000") ferencd@0: ferencd@0: add_library(${PROJECT}_lib ${CPP_HEADERS} ${CPP_SOURCES}) ferencd@0: target_link_libraries(${PROJECT}_lib ${CONAN_LIBS} cxxtools dl tntnet tntdb vmime fpaq0 templater common pthread ) ferencd@0: ferencd@0: add_executable(${PROJECT}_exe main.cpp ${${PROJECT}_SOURCES}) ferencd@0: target_link_libraries(${PROJECT}_exe ${PROJECT}_lib) ferencd@0: ferencd@0: else() ferencd@0: add_library(${PROJECT} SHARED ${${PROJECT}_SOURCES}) ferencd@0: set_target_properties(${PROJECT} PROPERTIES PREFIX "") ferencd@0: target_link_libraries(${PROJECT} ${CONAN_LIBS} cxxtools dl tntnet tntdb vmime fpaq0 templater common pthread ) ferencd@0: endif() ferencd@0: