I use a standard set of templates, changes are made in api-header.mustache and api-source.mustache. Their _old versions contain the originals. Additions are necessary for the header argument in the generated functions so that you can authenticate using cookies.
91 lines
2.7 KiB
Text
91 lines
2.7 KiB
Text
#
|
|
# {{{appName}}}
|
|
# {{{appDescription}}}
|
|
#
|
|
# The version of the OpenAPI document: 1.0.0
|
|
#
|
|
# https://openapi-generator.tech
|
|
#
|
|
# NOTE: Auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
|
|
cmake_minimum_required (VERSION 3.10)
|
|
|
|
project({{{packageName}}} CXX)
|
|
|
|
# Force -fPIC even if the project is configured for building a static library.
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
set(CXX_STANDARD_REQUIRED ON)
|
|
if(NOT CMAKE_CXX_STANDARD)
|
|
if(DEFINED CMAKE_CXX20_STANDARD_COMPILE_OPTION OR
|
|
DEFINED CMAKE_CXX20_EXTENSION_COMPILE_OPTION)
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
elseif(DEFINED CMAKE_CXX17_STANDARD_COMPILE_OPTION OR
|
|
DEFINED CMAKE_CXX17_EXTENSION_COMPILE_OPTION)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
elseif(DEFINED CMAKE_CXX14_STANDARD_COMPILE_OPTION OR
|
|
DEFINED CMAKE_CXX14_EXTENSION_COMPILE_OPTION)
|
|
set(CMAKE_CXX_STANDARD 14)
|
|
else()
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
endif()
|
|
endif()
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE Release)
|
|
endif()
|
|
|
|
find_package(cpprestsdk REQUIRED)
|
|
target_compile_definitions(cpprestsdk::cpprest INTERFACE _TURN_OFF_PLATFORM_STRING)
|
|
find_package(Boost REQUIRED)
|
|
|
|
include(GNUInstallDirs)
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
file(GLOB_RECURSE HEADER_FILES "include/*.h")
|
|
file(GLOB_RECURSE SOURCE_FILES "src/*.cpp")
|
|
|
|
add_library(${PROJECT_NAME} ${HEADER_FILES} ${SOURCE_FILES})
|
|
|
|
target_compile_options(${PROJECT_NAME}
|
|
PRIVATE
|
|
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:
|
|
-Wall -Wno-unused-variable -Wno-unused-lambda-capture>
|
|
)
|
|
|
|
target_include_directories(${PROJECT_NAME}
|
|
PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
)
|
|
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC Boost::headers cpprestsdk::cpprest)
|
|
|
|
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
|
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
|
)
|
|
|
|
install(
|
|
TARGETS ${PROJECT_NAME}
|
|
EXPORT ${PROJECT_NAME}Targets
|
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
|
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
|
)
|
|
|
|
install(
|
|
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/${PROJECT_NAME}
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
)
|
|
|
|
install(
|
|
FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
)
|
|
|
|
install(
|
|
EXPORT ${PROJECT_NAME}Targets
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
)
|