Add OpenAPI generator
This commit is contained in:
@@ -7,6 +7,8 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
find_package(Python3 COMPONENTS Interpreter REQUIRED)
|
||||
|
||||
option(USE_SYSTEM_DROGON "Use an installed Drogon package instead of CPM" OFF)
|
||||
|
||||
if (USE_SYSTEM_DROGON)
|
||||
@@ -68,5 +70,26 @@ target_link_libraries(${PROJECT_NAME}
|
||||
Drogon::Drogon
|
||||
)
|
||||
|
||||
file(GLOB CONTROLLER_HEADERS CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/controllers/*.h
|
||||
)
|
||||
set(OPENAPI_OUTPUT ${CMAKE_BINARY_DIR}/openapi/visione.openapi.json)
|
||||
add_custom_command(
|
||||
OUTPUT ${OPENAPI_OUTPUT}
|
||||
COMMAND ${Python3_EXECUTABLE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tools/drogon-openapi-gen/generate.py
|
||||
--controllers ${CMAKE_CURRENT_SOURCE_DIR}/controllers
|
||||
--out ${OPENAPI_OUTPUT}
|
||||
--title "Visione API"
|
||||
--version ${PROJECT_VERSION}
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tools/drogon-openapi-gen/generate.py
|
||||
${CONTROLLER_HEADERS}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(openapi ALL DEPENDS ${OPENAPI_OUTPUT})
|
||||
add_dependencies(${PROJECT_NAME} openapi)
|
||||
|
||||
enable_testing()
|
||||
add_subdirectory(test)
|
||||
|
||||
Reference in New Issue
Block a user