[cpp-qt5-client ] Improve CMake (#8724)

* Improve CMake

* Don't link ssl and crypto only for apple

* update samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
This commit is contained in:
Martin Delille 2021-02-27 08:15:24 +01:00 committed by GitHub
parent 85b2b3c2e4
commit 2b716684f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 49 additions and 18 deletions

View File

@ -15,12 +15,28 @@ find_package(Qt5Core REQUIRED)
find_package(Qt5Network REQUIRED){{#contentCompression}} find_package(Qt5Network REQUIRED){{#contentCompression}}
find_package(ZLIB REQUIRED){{/contentCompression}} find_package(ZLIB REQUIRED){{/contentCompression}}
file(GLOB SRCS add_library(${PROJECT_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp {{#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}) if(NOT APPLE)
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Network ssl crypto{{#contentCompression}} ${ZLIB_LIBRARIES}{{/contentCompression}}) 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 14)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)

View File

@ -11,17 +11,19 @@ find_package(Qt5Core REQUIRED)
find_package(Qt5Network REQUIRED) find_package(Qt5Network REQUIRED)
find_package(Qt5Test REQUIRED) find_package(Qt5Test REQUIRED)
file(GLOB SRCS
${CMAKE_CURRENT_SOURCE_DIR}/PetStore/*.cpp
)
include_directories( include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/client ${CMAKE_CURRENT_SOURCE_DIR}/client
) )
add_subdirectory(client) add_subdirectory(client)
add_executable(${PROJECT_NAME} ${SRCS}) add_executable(${PROJECT_NAME}
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Network Qt5::Test ssl crypto client) 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 14)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_EXTENSIONS OFF) set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_EXTENSIONS OFF)

View File

@ -14,12 +14,25 @@ endif ()
find_package(Qt5Core REQUIRED) find_package(Qt5Core REQUIRED)
find_package(Qt5Network REQUIRED) find_package(Qt5Network REQUIRED)
file(GLOB SRCS add_library(${PROJECT_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp 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}) if(NOT APPLE)
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Network ssl crypto) 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 14)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)