* [cpp-qt-client] Fix warning about deprecated count() method

* [cpp-qt-client] Ignore build directory

* [cpp-qt-client] Use ctest

* Fix CMakeLists.txt for cpp-qt-client
This commit is contained in:
Martin Delille 2023-04-07 10:24:11 +02:00 committed by GitHub
parent b2be16746c
commit f40433d28f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 98 additions and 72 deletions

View File

@ -23,12 +23,16 @@ jobs:
- ubuntu-latest - ubuntu-latest
- macOS-latest - macOS-latest
- windows-latest - windows-latest
include:
- os: windows-latest
tools: 'tools_openssl_x64'
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: jurplel/install-qt-action@v3 - uses: jurplel/install-qt-action@v3
with: with:
version: ${{ matrix.qt-version }} version: ${{ matrix.qt-version }}
tools: ${{ matrix.tools }}
- name: Build - name: Build
working-directory: "samples/client/petstore/cpp-qt" working-directory: "samples/client/petstore/cpp-qt"
run: ./build-and-test.bash run: cmake . && cmake --build .

View File

@ -2,39 +2,53 @@ cmake_minimum_required(VERSION 3.2)
project({{{packageName}}}) project({{{packageName}}})
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CXX_STANDARD_REQUIRED ON)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network Gui)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network Gui) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network Gui)
include(GNUInstallDirs) include(GNUInstallDirs)
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
file(GLOB_RECURSE HEADER_FILES "*.h") add_library(${PROJECT_NAME}
file(GLOB_RECURSE SOURCE_FILES "*.cpp") {{#models}}
{{#model}}
add_library(${PROJECT_NAME} ${HEADER_FILES} ${SOURCE_FILES}) {{classname}}.h
{{/model}}
target_compile_options(${PROJECT_NAME} {{/models}}
PRIVATE {{#apiInfo}}
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>: {{#apis}}
-Wall -Wno-unused-variable> {{#operations}}
) {{classname}}.h
{{/operations}}
{{/apis}}
{{/apiInfo}}
{{prefix}}Helpers.h
{{prefix}}HttpRequest.h
{{prefix}}Object.h
{{prefix}}Enum.h
{{prefix}}HttpFileElement.h
{{prefix}}ServerConfiguration.h
{{prefix}}ServerVariable.h
{{prefix}}Oauth.h
{{#models}}
{{#model}}
{{classname}}.cpp
{{/model}}
{{/models}}
{{#apiInfo}}
{{#apis}}
{{#operations}}
{{classname}}.cpp
{{/operations}}
{{/apis}}
{{/apiInfo}}
{{prefix}}Helpers.cpp
{{prefix}}HttpRequest.cpp
{{prefix}}HttpFileElement.cpp
{{prefix}}Oauth.cpp
)
target_include_directories(${PROJECT_NAME} target_include_directories(${PROJECT_NAME}
PUBLIC PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
) )
@ -48,11 +62,6 @@ target_link_libraries(${PROJECT_NAME}
${ZLIB_LIBRARIES}{{/contentCompression}} ${ZLIB_LIBRARIES}{{/contentCompression}}
) )
if(NOT APPLE)
find_package(OpenSSL REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE ssl crypto)
endif()
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"

View File

@ -225,7 +225,7 @@ bool fromStringValue(const QString &inStr, QByteArray &value) {
} else { } else {
value.clear(); value.clear();
value.append(inStr.toUtf8()); value.append(inStr.toUtf8());
return value.count() > 0; return value.size() > 0;
} }
} }

View File

@ -0,0 +1 @@
build

View File

@ -1,20 +1,25 @@
cmake_minimum_required(VERSION 3.2) cmake_minimum_required(VERSION 3.2)
project(cpp-qt5-petstore) project(cpp-qt-petstore)
set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network Gui Test)
add_subdirectory(client) add_subdirectory(client)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Test)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Test) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Test)
add_executable(${PROJECT_NAME} add_executable(cpp-qt-petstore
PetStore/main.cpp PetStore/main.cpp
PetStore/PetApiTests.cpp PetStore/PetApiTests.cpp
PetStore/StoreApiTests.cpp PetStore/StoreApiTests.cpp
PetStore/UserApiTests.cpp PetStore/UserApiTests.cpp
) )
target_link_libraries(${PROJECT_NAME} PRIVATE CppQtPetstoreClient Qt${QT_VERSION_MAJOR}::Test) target_link_libraries(cpp-qt-petstore PRIVATE CppQtPetstoreClient Qt${QT_VERSION_MAJOR}::Test)
enable_testing()
add_test(NAME cpp-qt-petstore-test COMMAND cpp-qt-petstore)

View File

@ -8,14 +8,14 @@ cd build
cmake .. cmake ..
make cmake --build .
if [[ -z "${RUN_VALGRIND_TESTS}" ]]; then if [[ -z "${RUN_VALGRIND_TESTS}" ]]; then
echo "Running Qt5 Petstore Tests" echo "Running Qt Petstore Tests"
./cpp-qt5-petstore ctest
else else
echo "Running Qt5 Petstore Tests with Valgrind" echo "Running Qt Petstore Tests with Valgrind"
valgrind --leak-check=full ./cpp-qt5-petstore |& tee result.log || exit 1 valgrind --leak-check=full ./cpp-qt-petstore |& tee result.log || exit 1
testCount=$(cat result.log | grep 'Finished testing of' | wc -l) testCount=$(cat result.log | grep 'Finished testing of' | wc -l)
if [ $testCount == 3 ] if [ $testCount == 3 ]
then then

View File

@ -2,39 +2,51 @@ cmake_minimum_required(VERSION 3.2)
project(CppQtPetstoreClient) project(CppQtPetstoreClient)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CXX_STANDARD_REQUIRED ON)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network Gui)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network Gui) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network Gui)
include(GNUInstallDirs) include(GNUInstallDirs)
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
file(GLOB_RECURSE HEADER_FILES "*.h") add_library(${PROJECT_NAME}
file(GLOB_RECURSE SOURCE_FILES "*.cpp") PFXApiResponse.h
PFXCategory.h
add_library(${PROJECT_NAME} ${HEADER_FILES} ${SOURCE_FILES}) PFXOrder.h
PFXPet.h
target_compile_options(${PROJECT_NAME} PFXTag.h
PRIVATE PFXTestAnyType.h
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>: PFXUser.h
-Wall -Wno-unused-variable> PFXPetApi.h
) PFXPrimitivesApi.h
PFXStoreApi.h
PFXUserApi.h
PFXHelpers.h
PFXHttpRequest.h
PFXObject.h
PFXEnum.h
PFXHttpFileElement.h
PFXServerConfiguration.h
PFXServerVariable.h
PFXOauth.h
PFXApiResponse.cpp
PFXCategory.cpp
PFXOrder.cpp
PFXPet.cpp
PFXTag.cpp
PFXTestAnyType.cpp
PFXUser.cpp
PFXPetApi.cpp
PFXPrimitivesApi.cpp
PFXStoreApi.cpp
PFXUserApi.cpp
PFXHelpers.cpp
PFXHttpRequest.cpp
PFXHttpFileElement.cpp
PFXOauth.cpp
)
target_include_directories(${PROJECT_NAME} target_include_directories(${PROJECT_NAME}
PUBLIC PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
) )
@ -46,11 +58,6 @@ target_link_libraries(${PROJECT_NAME}
) )
if(NOT APPLE)
find_package(OpenSSL REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE ssl crypto)
endif()
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"

View File

@ -233,7 +233,7 @@ bool fromStringValue(const QString &inStr, QByteArray &value) {
} else { } else {
value.clear(); value.clear();
value.append(inStr.toUtf8()); value.append(inStr.toUtf8());
return value.count() > 0; return value.size() > 0;
} }
} }