forked from loafle/openapi-generator-original
* [BUG] [C++][Pistache] cpp-pistache-server generating API include undefined "Object.h" (#2769) Should handle Object.h, AnyType.h correctly. Set.h also tested. - #include Object.h removed and replaced by a typeMapping.put(object, nlohmann::json) like suggested in other issues - object had an invalid syntax: ':' instead of '::' in types with namespace - extra include of #include nlohmann/json.h removed when there's already #include <nlohmann/json.hpp> - nlohmann::json is excluded from model namespace Tested with custom petstore played, with suggested openapi specs coming from issues #2769, #10266, #14234 ```bash rm -rf samples/server/petstore/cpp-pistache-everything/ && ./bin/generate-samples.sh ./bin/configs/cpp-pistache-server-cpp-pistache-everything.yaml && cd samples/server/petstore/cpp-pistache-everything/ && mkdir build && cd build && cmake .. && cmake --build . --parallel ``` * - Adding to samples/server/petstore cpp-pistache-everything * - .md and FILES missing
39 lines
1.1 KiB
CMake
39 lines
1.1 KiB
CMake
cmake_minimum_required (VERSION 3.2)
|
|
|
|
project(api-server)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -pg -g3" )
|
|
|
|
include(ExternalProject)
|
|
|
|
set(EXTERNAL_INSTALL_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/external)
|
|
|
|
ExternalProject_Add(PISTACHE
|
|
GIT_REPOSITORY https://github.com/pistacheio/pistache.git
|
|
BUILD_IN_SOURCE true
|
|
INSTALL_COMMAND meson setup build --prefix=${EXTERNAL_INSTALL_LOCATION} --libdir=lib && meson install -C build
|
|
)
|
|
|
|
ExternalProject_Add(NLOHMANN
|
|
GIT_REPOSITORY https://github.com/nlohmann/json.git
|
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION} -DJSON_BuildTests=OFF
|
|
)
|
|
|
|
include_directories(${EXTERNAL_INSTALL_LOCATION}/include)
|
|
link_directories(${EXTERNAL_INSTALL_LOCATION}/lib)
|
|
|
|
include_directories(model)
|
|
include_directories(api)
|
|
include_directories(impl)
|
|
|
|
file(GLOB SRCS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/api/*.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/impl/*.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/model/*.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
|
|
)
|
|
|
|
add_executable(${PROJECT_NAME} ${SRCS} )
|
|
add_dependencies(${PROJECT_NAME} PISTACHE NLOHMANN)
|
|
target_link_libraries(${PROJECT_NAME} pistache pthread)
|