From 2b716684f33c49c4adae9363d3a655163d7763a3 Mon Sep 17 00:00:00 2001 From: Martin Delille Date: Sat, 27 Feb 2021 08:15:24 +0100 Subject: [PATCH] [cpp-qt5-client ] Improve CMake (#8724) * Improve CMake * Don't link ssl and crypto only for apple * update samples Co-authored-by: William Cheng --- .../cpp-qt5-client/CMakeLists.txt.mustache | 24 +++++++++++++++---- .../resources/cpp-qt5-client/Project.mustache | 4 ++-- .../client/petstore/cpp-qt5/CMakeLists.txt | 14 ++++++----- .../petstore/cpp-qt5/client/CMakeLists.txt | 21 ++++++++++++---- .../petstore/cpp-qt5/client/PFXclient.pri | 4 ++-- 5 files changed, 49 insertions(+), 18 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/cpp-qt5-client/CMakeLists.txt.mustache b/modules/openapi-generator/src/main/resources/cpp-qt5-client/CMakeLists.txt.mustache index 02836560074..b78e15fb97f 100644 --- a/modules/openapi-generator/src/main/resources/cpp-qt5-client/CMakeLists.txt.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-qt5-client/CMakeLists.txt.mustache @@ -15,12 +15,28 @@ find_package(Qt5Core REQUIRED) find_package(Qt5Network REQUIRED){{#contentCompression}} find_package(ZLIB REQUIRED){{/contentCompression}} -file(GLOB SRCS - ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp +add_library(${PROJECT_NAME} +{{#models}} +{{#model}} + {{classname}}.cpp +{{/model}} +{{/models}} +{{#apiInfo}} +{{#apis}} +{{#operations}} + {{classname}}.cpp +{{/operations}} +{{/apis}} +{{/apiInfo}} + {{prefix}}Helpers.cpp + {{prefix}}HttpRequest.cpp + {{prefix}}HttpFileElement.cpp ) +target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Network {{#contentCompression}} ${ZLIB_LIBRARIES}{{/contentCompression}}) -add_library(${PROJECT_NAME} ${SRCS}) -target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Network ssl crypto{{#contentCompression}} ${ZLIB_LIBRARIES}{{/contentCompression}}) +if(NOT APPLE) + target_link_libraries(${PROJECT_NAME} PRIVATE ssl crypto) +endif() set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14) set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) diff --git a/modules/openapi-generator/src/main/resources/cpp-qt5-client/Project.mustache b/modules/openapi-generator/src/main/resources/cpp-qt5-client/Project.mustache index 5a601d0978a..a815942bc7d 100644 --- a/modules/openapi-generator/src/main/resources/cpp-qt5-client/Project.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-qt5-client/Project.mustache @@ -22,8 +22,8 @@ HEADERS += \ $${PWD}/{{prefix}}Enum.h \ $${PWD}/{{prefix}}HttpFileElement.h \ $${PWD}/{{prefix}}ServerConfiguration.h \ - $${PWD}/{{prefix}}ServerVariable.h - + $${PWD}/{{prefix}}ServerVariable.h + SOURCES += \ # Models {{#models}} diff --git a/samples/client/petstore/cpp-qt5/CMakeLists.txt b/samples/client/petstore/cpp-qt5/CMakeLists.txt index 517669ae806..5d408c92e72 100644 --- a/samples/client/petstore/cpp-qt5/CMakeLists.txt +++ b/samples/client/petstore/cpp-qt5/CMakeLists.txt @@ -11,17 +11,19 @@ find_package(Qt5Core REQUIRED) find_package(Qt5Network REQUIRED) find_package(Qt5Test REQUIRED) -file(GLOB SRCS - ${CMAKE_CURRENT_SOURCE_DIR}/PetStore/*.cpp -) - include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/client ) add_subdirectory(client) -add_executable(${PROJECT_NAME} ${SRCS}) -target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Network Qt5::Test ssl crypto client) +add_executable(${PROJECT_NAME} + PetStore/main.cpp + PetStore/PetApiTests.cpp + PetStore/StoreApiTests.cpp + PetStore/UserApiTests.cpp + ) +target_link_libraries(${PROJECT_NAME} PRIVATE client) +target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Network Qt5::Test) set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14) set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_EXTENSIONS OFF) diff --git a/samples/client/petstore/cpp-qt5/client/CMakeLists.txt b/samples/client/petstore/cpp-qt5/client/CMakeLists.txt index 317566a3001..414d1c08636 100644 --- a/samples/client/petstore/cpp-qt5/client/CMakeLists.txt +++ b/samples/client/petstore/cpp-qt5/client/CMakeLists.txt @@ -14,12 +14,25 @@ endif () find_package(Qt5Core REQUIRED) find_package(Qt5Network REQUIRED) -file(GLOB SRCS - ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp +add_library(${PROJECT_NAME} + PFXApiResponse.cpp + PFXCategory.cpp + PFXOrder.cpp + PFXPet.cpp + PFXTag.cpp + PFXUser.cpp + PFXPetApi.cpp + PFXStoreApi.cpp + PFXUserApi.cpp + PFXHelpers.cpp + PFXHttpRequest.cpp + PFXHttpFileElement.cpp ) +target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Network ) -add_library(${PROJECT_NAME} ${SRCS}) -target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Network ssl crypto) +if(NOT APPLE) + target_link_libraries(${PROJECT_NAME} PRIVATE ssl crypto) +endif() set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14) set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) diff --git a/samples/client/petstore/cpp-qt5/client/PFXclient.pri b/samples/client/petstore/cpp-qt5/client/PFXclient.pri index d2a439be269..8cfd6cc6252 100644 --- a/samples/client/petstore/cpp-qt5/client/PFXclient.pri +++ b/samples/client/petstore/cpp-qt5/client/PFXclient.pri @@ -19,8 +19,8 @@ HEADERS += \ $${PWD}/PFXEnum.h \ $${PWD}/PFXHttpFileElement.h \ $${PWD}/PFXServerConfiguration.h \ - $${PWD}/PFXServerVariable.h - + $${PWD}/PFXServerVariable.h + SOURCES += \ # Models $${PWD}/PFXApiResponse.cpp \