Mercurial > thymian
diff server/CMakeLists.txt @ 0:a4671277546c tip
created the repository for the thymian project
| author | ferencd |
|---|---|
| date | Tue, 17 Aug 2021 11:19:54 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/CMakeLists.txt Tue Aug 17 11:19:54 2021 +0200 @@ -0,0 +1,75 @@ +cmake_minimum_required (VERSION 3.0) +set (PROJECT thymian) + +set (ECPPC /usr/local/bin/ecppc) + +set (WEB_COMPONENTS + r # Recipe sender + root # Main root + filer # Just send the files + main_root_sender # The recipe root directory sender (which selects recipe categoroes) + category_root_sender # Send a category +) + +include_directories( + "/usr/local/include/" + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} +) + +set(${PROJECT}_SOURCES + "" + CACHE INTERNAL ${PROJECT}_SOURCES +) + +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) + +foreach(comp ${WEB_COMPONENTS}) + list(APPEND ${PROJECT}_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${comp}.cpp ) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${comp}.cpp + COMMAND ${ECPPC} -o ${CMAKE_CURRENT_BINARY_DIR}/${comp}.cpp -v -n ${comp} ${CMAKE_CURRENT_SOURCE_DIR}/${comp}.ecpp + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${comp}.ecpp) + set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/${comp}.cpp) +endforeach() + +set(CPP_SOURCES + config.cpp + category_sender.cpp + file_sender.cpp + flood_check.cpp + main_sender.cpp + r_impl.cpp + url_breaker.cpp + web_component.cpp + web_logmachine.cpp +) + +set(CPP_HEADERS + category_sender.h + config.h + fake_locations.h + file_sender.h + flood_check.h + main_sender.h + r_impl.h + url_breaker.h + web_component.h + web_logmachine.h +) + +if(BUILD_EXECUTABLE_WEB_COMPONENT) + + 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") + + add_library(${PROJECT}_lib ${CPP_HEADERS} ${CPP_SOURCES}) + target_link_libraries(${PROJECT}_lib ${CONAN_LIBS} cxxtools dl tntnet tntdb vmime fpaq0 templater common pthread ) + + add_executable(${PROJECT}_exe main.cpp ${${PROJECT}_SOURCES}) + target_link_libraries(${PROJECT}_exe ${PROJECT}_lib) + +else() + add_library(${PROJECT} SHARED ${${PROJECT}_SOURCES}) + set_target_properties(${PROJECT} PROPERTIES PREFIX "") + target_link_libraries(${PROJECT} ${CONAN_LIBS} cxxtools dl tntnet tntdb vmime fpaq0 templater common pthread ) +endif() +
