Update config generation
This commit is contained in:
parent
092bf2d7d3
commit
621b3581a5
4 changed files with 129 additions and 130 deletions
|
|
@ -6,6 +6,7 @@ set(LOGGER_CLASS UnixLogger CACHE STRING "One of UnixLogger, FileLogger or NullL
|
|||
|
||||
add_executable (hermes
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Configfile.cpp
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Configfile.h
|
||||
src/Exception.cpp
|
||||
src/hermes.cpp
|
||||
src/ServerSocket.cpp
|
||||
|
|
@ -14,7 +15,7 @@ add_executable (hermes
|
|||
src/Proxy.cpp
|
||||
src/Socket.cpp)
|
||||
|
||||
option(BUILD_DOC "Build documentation")
|
||||
option(BUILD_DOCS "Build documentation")
|
||||
|
||||
if(WIN32)
|
||||
set(SOURCES ${SOURCES}
|
||||
|
|
@ -31,7 +32,7 @@ target_sources(hermes PRIVATE src/${LOGGER_CLASS}.cpp)
|
|||
find_library (SQLITE3_LIBRARY NAMES libsqlite3 sqlite3)
|
||||
|
||||
# optional dependency libspf2
|
||||
find_library (SPF2_LIBRARY NAMES spf2 libspf2)
|
||||
find_library (SPF2_LIBRARY REQUIRED NAMES spf2 libspf2)
|
||||
if(SPF2_LIB)
|
||||
target_compile_definitions(hermes PRIVATE HAVE_SPF2)
|
||||
target_sources(hermes PRIVATE src/Spf.cpp)
|
||||
|
|
@ -49,26 +50,43 @@ include_directories(
|
|||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
src)
|
||||
|
||||
set(CONFIG_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/src/Configfile.tmpl)
|
||||
|
||||
# generation of various files
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Configfile.cpp
|
||||
COMMAND cpp ${OPT_DEFS} ${CMAKE_CURRENT_SOURCE_DIR}/src/Configfile.tmpl -I
|
||||
${CMAKE_CURRENT_BINARY_DIR} |
|
||||
python ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_config.py
|
||||
DEPENDS src/Configfile.cpp.in src/Configfile.h.in src/Configfile.tmpl
|
||||
docs/hermes-options.html.in scripts/generate_config.py)
|
||||
COMMAND python "${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_config.py" "${CONFIG_TEMPLATE}"
|
||||
--cpp-template "${CMAKE_CURRENT_SOURCE_DIR}/src/Configfile.cpp.in"
|
||||
--output-cpp "${CMAKE_CURRENT_BINARY_DIR}/Configfile.cpp"
|
||||
DEPENDS ${CONFIG_TEMPLATE} src/Configfile.cpp.in)
|
||||
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Configfile.h
|
||||
COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_config.py "${CONFIG_TEMPLATE}"
|
||||
--h-template "${CMAKE_CURRENT_SOURCE_DIR}/include/Configfile.h.in"
|
||||
--output-h "${CMAKE_CURRENT_BINARY_DIR}/Configfile.h"
|
||||
DEPENDS ${CONFIG_TEMPLATE} include/Configfile.h.in)
|
||||
|
||||
# DEPENDS src/Configfile.cpp.in src/Configfile.h.in src/Configfile.tmpl
|
||||
# docs/hermes-options.html.in scripts/generate_config.py)
|
||||
|
||||
# doxygen
|
||||
if (BUILD_DOCS)
|
||||
add_custom_command(OUTPUT docs/hermesrc.example
|
||||
COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_config.py "${CONFIG_TEMPLATE}"
|
||||
--output-example "${CMAKE_CURRENT_BINARY_DIR}/docs/hermesrc.example"
|
||||
DEPENDS ${CONFIG_TEMPLATE})
|
||||
add_custom_command(OUTPUT docs/html/hermes-options.html
|
||||
COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_config.py "${CONFIG_TEMPLATE}"
|
||||
--html-template "${CMAKE_CURRENT_SOURCE_DIR}/docs/hermes-options.html.in"
|
||||
--output-html "${CMAKE_CURRENT_BINARY_DIR}/docs/html/hermes-options.html"
|
||||
DEPENDS ${CONFIG_TEMPLATE} docs/hermes-options.html.in)
|
||||
find_package (Doxygen)
|
||||
if(DOXYGEN_FOUND)
|
||||
add_custom_target(doc ALL
|
||||
doxygen
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/docs)
|
||||
install(
|
||||
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/docs/html
|
||||
TYPE DOC)
|
||||
endif()
|
||||
add_custom_target(doc ALL
|
||||
doxygen "${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs
|
||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/docs/html/hermes-options.html" "${CMAKE_CURRENT_BINARY_DIR}/docs/hermesrc.example")
|
||||
install(
|
||||
DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs/html
|
||||
TYPE DOC)
|
||||
endif()
|
||||
|
||||
target_link_libraries(hermes
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue