* [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
- macOS-latest
- windows-latest
include:
- os: windows-latest
tools: 'tools_openssl_x64'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt-version }}
tools: ${{ matrix.tools }}
- name: Build
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}}})
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)
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
file(GLOB_RECURSE HEADER_FILES "*.h")
file(GLOB_RECURSE SOURCE_FILES "*.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>
)
add_library(${PROJECT_NAME}
{{#models}}
{{#model}}
{{classname}}.h
{{/model}}
{{/models}}
{{#apiInfo}}
{{#apis}}
{{#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}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
@ -48,11 +62,6 @@ target_link_libraries(${PROJECT_NAME}
${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
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"

View File

@ -225,7 +225,7 @@ bool fromStringValue(const QString &inStr, QByteArray &value) {
} else {
value.clear();
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)
project(cpp-qt5-petstore)
project(cpp-qt-petstore)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network Gui Test)
add_subdirectory(client)
find_package(QT NAMES Qt6 Qt5 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/PetApiTests.cpp
PetStore/StoreApiTests.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 ..
make
cmake --build .
if [[ -z "${RUN_VALGRIND_TESTS}" ]]; then
echo "Running Qt5 Petstore Tests"
./cpp-qt5-petstore
echo "Running Qt Petstore Tests"
ctest
else
echo "Running Qt5 Petstore Tests with Valgrind"
valgrind --leak-check=full ./cpp-qt5-petstore |& tee result.log || exit 1
echo "Running Qt Petstore Tests with Valgrind"
valgrind --leak-check=full ./cpp-qt-petstore |& tee result.log || exit 1
testCount=$(cat result.log | grep 'Finished testing of' | wc -l)
if [ $testCount == 3 ]
then

View File

@ -2,39 +2,51 @@ cmake_minimum_required(VERSION 3.2)
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)
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
file(GLOB_RECURSE HEADER_FILES "*.h")
file(GLOB_RECURSE SOURCE_FILES "*.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>
)
add_library(${PROJECT_NAME}
PFXApiResponse.h
PFXCategory.h
PFXOrder.h
PFXPet.h
PFXTag.h
PFXTestAnyType.h
PFXUser.h
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}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<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
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"

View File

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