forked from loafle/openapi-generator-original
qt ctest (#14968)
* [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:
parent
b2be16746c
commit
f40433d28f
6
.github/workflows/samples-cpp-qt-client.yaml
vendored
6
.github/workflows/samples-cpp-qt-client.yaml
vendored
@ -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 .
|
||||||
|
@ -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}"
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
samples/client/petstore/cpp-qt/.gitignore
vendored
Normal file
1
samples/client/petstore/cpp-qt/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
build
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -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}"
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user