Add OpenAPI generator

This commit is contained in:
gabdevele
2026-06-02 20:40:45 +02:00 Unverified
parent 1ef41bb2a3
commit 3f0a5ecf9b
9 changed files with 278 additions and 1 deletions
+23
View File
@@ -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)