[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(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)

View File

@ -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}}

View File

@ -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)

View File

@ -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)

View File

@ -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 \