Skip to content

Commit c00e472

Browse files
authored
Merge pull request #58 from mathisloge/develop
Merge develop
2 parents f5eb4e9 + 9b3b88b commit c00e472

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+548
-1155
lines changed

.github/workflows/build_test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- uses: actions/checkout@v5
18-
- uses: actions/setup-python@v5
18+
- uses: actions/setup-python@v6
1919
- uses: pre-commit/[email protected]
2020
- uses: pre-commit-ci/[email protected]
2121
if: always()
@@ -51,7 +51,7 @@ jobs:
5151
cache-key-prefix: "install-qt-action-${{ matrix.qt-version }}"
5252
version: ${{ matrix.qt-version }}
5353

54-
- uses: actions/setup-python@v5
54+
- uses: actions/setup-python@v6
5555
with:
5656
python-version: '3.13'
5757
cache: 'pip' # caching pip dependencies

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
run: |
1717
git config user.name github-actions[bot]
1818
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
19-
- uses: actions/setup-python@v5
19+
- uses: actions/setup-python@v6
2020
with:
2121
python-version: 3.x
2222
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ jobs:
2121
persist-credentials: false
2222

2323
- name: Setup Node.js
24-
uses: actions/setup-node@v4
24+
uses: actions/setup-node@v5
2525
with:
2626
node-version: "lts/*"
27-
- uses: actions/setup-python@v5
27+
- uses: actions/setup-python@v6
2828
with:
2929
python-version: 3.x
3030
- run: pip install -r requirements-dev.txt

CMakeLists.txt

Lines changed: 58 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# SPDX-License-Identifier: MIT
44

55
cmake_minimum_required(VERSION 3.28)
6-
file(READ "${CMAKE_SOURCE_DIR}/package.json" PACKAGE_JSON)
6+
file(READ "package.json" PACKAGE_JSON)
77
string(JSON PACKAGE_JSON_PROJECT_VERSION GET "${PACKAGE_JSON}" version)
88
string(
99
REGEX REPLACE
@@ -28,6 +28,7 @@ include(GenerateExportHeader)
2828
include(FeatureSummary)
2929
include(GNUInstallDirs)
3030
include(GetGitRevisionDescription)
31+
include(CMakeDependentOption)
3132

3233
set(CMAKE_CXX_SCAN_FOR_MODULES OFF)
3334
set(CMAKE_CXX_EXTENSIONS OFF)
@@ -36,13 +37,36 @@ set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
3637
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
3738
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/runtime")
3839

39-
option(QUITE_BUILD_PROBES "Decides if the probes should be build" ON)
40+
option(QUITE_INSTALL "If ON the libraries will be exported" ON)
41+
option(QUITE_BUILD_PROBE_QT "Decides if the probes should be build" ON)
42+
option(QUITE_BUILD_TEST_API "Decides if the testing API should be build" ON)
43+
cmake_dependent_option(
44+
QUITE_BUILD_PYTHON_TEST_API
45+
"Decides if the python testing API should be build"
46+
ON
47+
QUITE_BUILD_TEST_API
48+
OFF
49+
)
50+
option(
51+
QUITE_BUILD_REMOTE_MANAGER
52+
"Decides if the remote manager should be build"
53+
ON
54+
)
55+
56+
add_feature_info(QtProbe QUITE_BUILD_PROBE_QT "Build probeqt")
57+
add_feature_info(TestingApi QUITE_BUILD_TEST_API "Build testing API")
4058
add_feature_info(
41-
Studio
42-
QUITE_BUILD_STUDIO
43-
"The studio provides a way to interactively explore the objects in the app."
59+
TestingPythonApi
60+
QUITE_BUILD_PYTHON_TEST_API
61+
"Build testing API"
4462
)
45-
add_feature_info(Testing BUILD_TESTING "Build all tests.")
63+
add_feature_info(
64+
RemoteManager
65+
QUITE_BUILD_REMOTE_MANAGER
66+
"Build remote manager"
67+
)
68+
69+
add_feature_info(Testing BUILD_TESTING "Build all tests")
4670
add_feature_info(
4771
SharedLibraries
4872
BUILD_SHARED_LIBS
@@ -56,61 +80,67 @@ message(STATUS "git_branch: ${git_branch}")
5680
find_package(Sanitizers REQUIRED)
5781
### NOTE: Set CPM_USE_LOCAL_PACKAGES or CPM_LOCAL_PACKAGES_ONLY to true if you want to use system packages or a package manager like vcpkg.
5882
include(get_cpm)
59-
set(BOOST_VERSION "1.88.0")
83+
set(BOOST_VERSION "1.89.0")
6084
list(APPEND BOOST_INCLUDE_LIBRARIES asio process)
6185
cpmaddpackage(
6286
NAME Boost
6387
VERSION "${BOOST_VERSION}"
6488
URL https://github.com/boostorg/boost/releases/download/boost-${BOOST_VERSION}/boost-${BOOST_VERSION}-cmake.tar.xz
65-
URL_HASH SHA256=f48b48390380cfb94a629872346e3a81370dc498896f16019ade727ab72eb1ec
89+
URL_HASH SHA256=67acec02d0d118b5de9eb441f5fb707b3a1cdd884be00ca24b9a73c995511f74
6690
EXCLUDE_FROM_ALL ON
6791
SYSTEM ON
6892
FIND_PACKAGE_ARGUMENTS "CONFIG"
6993
OPTIONS "BOOST_ENABLE_CMAKE ON" "BOOST_PROCESS_USE_STD_FS ON" "BOOST_SKIP_INSTALL_RULES ${CMAKE_SKIP_INSTALL_RULES}"
7094
)
7195
cpmaddpackage("gh:fmtlib/fmt#11.2.0")
72-
cpmaddpackage("gh:odygrd/quill@10.0.1")
96+
cpmaddpackage("gh:odygrd/quill@10.1.0")
7397
cpmaddpackage(URI "gh:skypjack/[email protected]" NAME "EnTT" FIND_PACKAGE_ARGUMENTS "CONFIG")
74-
cpmaddpackage(URI "gh:CLIUtils/[email protected]" OPTIONS "CLI11_PRECOMPILED ON")
75-
cpmaddpackage(URI "gh:NVIDIA/stdexec#0d0a15c669cbd2571248536a7e70524d8b7071aa" NAME "stdexec" VERSION 0.11 FIND_PACKAGE_ARGUMENTS "CONFIG" OPTIONS "STDEXEC_BUILD_TESTS OFF" "STDEXEC_BUILD_EXAMPLES OFF" "STDEXEC_ENABLE_ASIO ON"
98+
cpmaddpackage(URI "gh:NVIDIA/stdexec#daf12bcc46438f88b3c78212363f7b6531338780" NAME "stdexec" VERSION 0.11 FIND_PACKAGE_ARGUMENTS "CONFIG" OPTIONS "STDEXEC_BUILD_TESTS OFF" "STDEXEC_BUILD_EXAMPLES OFF" "STDEXEC_ENABLE_ASIO ON"
7699
)
77100
cpmaddpackage(URI "gh:Tradias/[email protected]" FIND_PACKAGE_ARGUMENTS "CONFIG" VERSION 3.4.0)
78101
cpmaddpackage(URI "gh:nlohmann/[email protected]" FIND_PACKAGE_ARGUMENTS "CONFIG" NAME "nlohmann_json")
79102
cpmaddpackage(URI "gh:nothings/stb#f0569113c93ad095470c54bf34a17b36646bbbb5" NAME Stb
80103
)
104+
find_package(gRPC CONFIG REQUIRED)
81105
set(Stb_INCLUDE_DIR "$<BUILD_INTERFACE:${Stb_SOURCE_DIR}>")
82-
cpmaddpackage(URI "gh:pybind/[email protected]" FIND_PACKAGE_ARGUMENTS "CONFIG" VERSION 3.0.0)
106+
if(QUITE_BUILD_REMOTE_MANAGER OR BUILD_TESTING)
107+
cpmaddpackage(URI "gh:CLIUtils/[email protected]" OPTIONS "CLI11_PRECOMPILED ON")
108+
endif()
83109
if(BUILD_TESTING)
84110
cpmaddpackage("gh:vector-of-bool/cmrc#952ffddba731fc110bd50409e8d2b8a06abbd237"
85111
)
86-
cpmaddpackage("gh:catchorg/[email protected]")
87112
cpmaddpackage("gh:boost-ext/[email protected]")
88113
endif()
89114

90-
find_package(
91-
Qt6
92-
REQUIRED
93-
COMPONENTS Core Gui Qml Quick Widgets
94-
REQUIRED
95-
)
96-
find_package(gRPC CONFIG REQUIRED)
115+
if(QUITE_BUILD_PROBE_QT)
116+
find_package(
117+
Qt6
118+
REQUIRED
119+
COMPONENTS Core Gui Qml Quick Widgets
120+
REQUIRED
121+
)
122+
endif()
123+
add_subdirectory(libs)
97124
if(BUILD_TESTING)
98-
list(APPEND CMAKE_MODULE_PATH "${Catch2_SOURCE_DIR}/extras")
99-
include(Catch)
125+
add_subdirectory(simple_tester)
100126
endif()
101127

102-
add_subdirectory(libs)
103-
add_subdirectory(python)
104-
add_subdirectory(remote-manager)
128+
if(QUITE_BUILD_PYTHON_TEST_API)
129+
cpmaddpackage(URI "gh:pybind/[email protected]" FIND_PACKAGE_ARGUMENTS "CONFIG" VERSION 3.0.0)
130+
add_subdirectory(python)
131+
endif()
132+
133+
if(QUITE_BUILD_REMOTE_MANAGER)
134+
add_subdirectory(remote-manager)
135+
endif()
105136
if(BUILD_TESTING)
106-
add_subdirectory(integration_test)
107-
add_subdirectory(test)
137+
add_subdirectory(example)
108138
endif()
109139

110140
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES DESCRIPTION "Features:")
111141
feature_summary(WHAT PACKAGES_FOUND DESCRIPTION "Found packages:")
112142

113-
if(NOT CMAKE_SKIP_INSTALL_RULES)
143+
if(QUITE_INSTALL)
114144
include(CMakePackageConfigHelpers)
115145

116146
install(

CMakePresets.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@
1313
"generator": "Ninja",
1414
"installDir": "${sourceDir}/dist",
1515
"cacheVariables": {
16-
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
16+
"CMAKE_EXPORT_COMPILE_COMMANDS": true,
1717
"Python3_FIND_VIRTUALENV": "FIRST",
1818
"Python3_EXECUTABLE": "${sourceDir}/venv",
19-
"BUILD_SHARED_LIBS": "ON"
19+
"BUILD_SHARED_LIBS": true,
20+
"QUITE_BUILD_PROBE_QT": true,
21+
"QUITE_BUILD_TEST_API": true,
22+
"QUITE_BUILD_PYTHON_TEST_API": true
2023
}
2124
},
2225
{
@@ -83,8 +86,6 @@
8386
],
8487
"cacheVariables": {
8588
"BUILD_SHARED_LIBS": false,
86-
"QUITE_BUILD_STUDIO": false,
87-
"QUITE_BUILD_PROBES": true,
8889
"QUITE_EXAMPLES": false
8990
}
9091
},

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
</div
44
55
quite is a new UI testing framework specifically designed for applications built on the Qt framework.
6-
It aims to provide developers and testers with an efficient way to automate the testing of Qt application user interfaces.
6+
It aims to provide developers and testers with an efficient way to automate the testing of Qt user interfaces.
77
88
I welcome any feedback, suggestions, and contributions that can help make quite a robust and reliable native UI testing framework!
99
@@ -13,6 +13,15 @@ I welcome any feedback, suggestions, and contributions that can help make quite
1313
> Changes may occur without notice, and existing code may become incompatible with future versions.
1414
> Until v2 I will not mark any change as breaking change.
1515
16+
# Documentation
17+
18+
Full documentation is available at [quite.rocks](https://quite.rocks).
19+
20+
Some useful starting points:
21+
22+
- [Getting Started](https://quite.rocks/develop/getting-started) – install quite and run your first test
23+
- [Building from Source](https://quite.rocks/develop/building) – instructions for compiling
24+
1625
# Release and branch strategy
1726

1827
All PRs should be target the develop branch.

docs/building.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Building
2+
3+
## Build against system packages
4+
5+
By default, most dependencies are fetched with [CPM.cmake](https://github.com/cpm-cmake/CPM.cmake).
6+
7+
If you prefer to use **system-installed packages** instead of downloading them directly, configure CPM with one of these options:
8+
9+
- `CPM_USE_LOCAL_PACKAGES=ON`
10+
- `CPM_LOCAL_PACKAGES_ONLY=ON`
11+
12+
See the [CPM reference](https://github.com/cpm-cmake/CPM.cmake?tab=readme-ov-file#cpm_use_local_packages) for details.
13+
14+
!!! tip
15+
Use `CPM_LOCAL_PACKAGES_ONLY=ON` when integrating with package managers such as **Conan** or **vcpkg**.
16+
This ensures CPM won’t try to fetch sources remotely.
17+
18+
---
19+
20+
## General dependencies
21+
22+
* [Boost](https://www.boost.org/) >= `1.83.0`
23+
* [gRPC](https://grpc.io/) >= `1.51.1`
24+
* [fmt](https://fmt.dev) >= `11.0.0`
25+
* [Quill](https://github.com/odygrd/quill) >= `10.0.0`
26+
* [EnTT](https://github.com/skypjack/entt) >= `3.15.0`
27+
* [stdexec](https://github.com/NVIDIA/stdexec) >= `daf12bcc46438f88b3c78212363f7b6531338780`
28+
* [asio-grpc](https://github.com/Tradias/asio-grpc) >= `3.3.0`
29+
* [JSON for Modern C++](https://json.nlohmann.me/) >= `3.11.0`
30+
* [stb](https://github.com/nothings/stb) >= `f0569113c93ad095470c54bf34a17b36646bbbb5`
31+
32+
---
33+
34+
## CMake options
35+
36+
The build can be customized with several **CMake options**:
37+
38+
### `QUITE_BUILD_REMOTE_MANAGER`
39+
40+
- **Default:** `ON`
41+
- **Description:** Builds the remote-manager application.
42+
- **Introduced dependencies:**
43+
- [CLI11](https://cliutils.github.io/CLI11/book/)`2.4.0`
44+
45+
---
46+
47+
### `QUITE_BUILD_TEST_API`
48+
49+
- **Default:** `ON`
50+
- **Description:** Builds the C++ testing API.
51+
52+
---
53+
54+
### `QUITE_BUILD_PYTHON_TEST_API`
55+
56+
- **Default:** `ON`
57+
- **Description:** Builds the Python testing API module.
58+
- **Dependencies:** Requires `QUITE_BUILD_TEST_API=ON`.
59+
- **Introduced dependencies:**
60+
- [pybind11](https://pybind11.readthedocs.io/en/stable/)`3.0.0`
61+
62+
See [Python Usage](python-usage.md) for details.
63+
64+
---
65+
66+
### `QUITE_BUILD_PROBE_QT`
67+
68+
- **Default:** `ON`
69+
- **Description:** Builds the Qt probe.
70+
- **Introduced dependencies:**
71+
- [Qt](https://www.qt.io/)`6.5.0`
72+
73+
---
74+
75+
### `QUITE_INSTALL`
76+
77+
- **Default:**: `ON`
78+
- **Description:**: Adds cmake install steps to targets.
79+
80+
---

0 commit comments

Comments
 (0)