Merge lp:~saviq/ubuntu-settings-components/packaging-cleanup into lp:ubuntu-settings-components
- packaging-cleanup
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Michał Sawicz |
Approved revision: | 146 |
Merged at revision: | 161 |
Proposed branch: | lp:~saviq/ubuntu-settings-components/packaging-cleanup |
Merge into: | lp:ubuntu-settings-components |
Prerequisite: | lp:~nick-dedekind/ubuntu-settings-components/calendar-test-fixes |
Diff against target: |
1940 lines (+634/-878) 41 files modified
CMakeLists.txt (+8/-43) SettingsComponents.qmlproject (+0/-23) cmake/modules/EnableCoverageReport.cmake (+0/-166) cmake/modules/FindLcov.cmake (+0/-29) cmake/modules/Findgcovr.cmake (+0/-31) cmake/modules/ParseArguments.cmake (+0/-52) cmake/modules/QmlPlugins.cmake (+0/-150) cmake/modules/QmlTest.cmake (+311/-118) cmake_uninstall.cmake.in (+0/-21) debian/changelog (+7/-0) debian/control (+24/-11) debian/qml-module-ubuntu-settings-components.install (+5/-0) debian/rules (+2/-0) debian/tests/control (+4/-0) debian/tests/qmluitests.sh (+10/-0) examples/Fingerprint.qml (+1/-1) plugins/Ubuntu/Settings/Components/CMakeLists.txt (+5/-8) plugins/Ubuntu/Settings/Components/Components.qmltypes (+0/-73) plugins/Ubuntu/Settings/Components/serverpropertysynchroniser.cpp (+0/-1) plugins/Ubuntu/Settings/Menus/CMakeLists.txt (+6/-14) plugins/Ubuntu/Settings/Menus/Menus.qmltypes (+0/-30) runtests.sh (+1/-1) tests/CMakeLists.txt (+50/-7) tests/imports/CMakeLists.txt (+5/-0) tests/imports/check_imports.py (+125/-0) tests/qmltests/CMakeLists.txt (+34/-46) tests/qmltests/Fingerprint/tst_FingerprintNames.qml (+1/-1) tests/qmltests/Fingerprint/tst_FingerprintSetup.qml (+2/-2) tests/qmltests/Fingerprint/tst_Fingerprints.qml (+4/-4) tests/qmltests/Menus/tst_GroupedMessageMenu.qml (+1/-3) tests/qmltests/mocks/Biometryd/CMakeLists.txt (+6/-4) tests/qmltests/mocks/Biometryd/MockDevice.cpp (+0/-2) tests/qmltests/mocks/Biometryd/MockFingerprintReader.cpp (+0/-2) tests/qmltests/mocks/Biometryd/MockOperation.cpp (+0/-2) tests/qmltests/mocks/Biometryd/MockService.cpp (+0/-2) tests/qmltests/mocks/Biometryd/MockTemplateStore.cpp (+0/-2) tests/qmltests/mocks/Biometryd/MockUser.cpp (+0/-2) tests/qmltests/mocks/CMakeLists.txt (+2/-2) tests/qmltests/mocks/GSettings.1.0/CMakeLists.txt (+6/-7) tests/utils/modules/CMakeLists.txt (+2/-0) tests/utils/modules/Ubuntu/Test/CMakeLists.txt (+12/-18) |
To merge this branch: | bzr merge lp:~saviq/ubuntu-settings-components/packaging-cleanup |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Unity8 CI Bot | continuous-integration | Needs Fixing | |
Gerry Boland (community) | Approve | ||
PS Jenkins bot | continuous-integration | Pending | |
Nick Dedekind | Pending | ||
Michael Terry | Pending | ||
Review via email: mp+303125@code.launchpad.net |
This proposal supersedes a proposal from 2016-08-17.
Commit message
Refactor and clean up packaging/build system and add autopkgtests
a lot of clean ups
using cmake-extras instead of a copy of CMake modules
add an import version checker (UITK hates it when you mix 1.2 and 1.3)
add autopkgtest running the qml UI tests
Description of the change
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:130
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:133
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:134
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:136
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:138
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:141
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
- 142. By Michał Sawicz
-
Fix typo
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:140
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:142
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:142
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
- 143. By Michał Sawicz
-
Drop spurious moc includes
- 144. By Michał Sawicz
-
Unskip test after it's been fixed upstream
- 145. By Michał Sawicz
-
Fix up import paths and environment
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:145
https:/
Executed test runs:
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:145
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Gerry Boland (gerboland) wrote : | # |
We should really add QmlTest.cmake to cmake-extras.
I'm not a package expert, but the changes look just fine.
I noticed that plugins/
=== modified file 'debian/control'
+ Ubuntu settings components for Unity
Unity8?
I can't really fault anything. Nice work
Michał Sawicz (saviq) wrote : | # |
> We should really add QmlTest.cmake to cmake-extras.
Agreed, I think I was waiting for it to prove itself. There's a few bits I want in there before putting it up.
Yeah segment.py is a tool to generate the fingerprint image/things.
> Unity8?
Yeah.
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:146
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:146
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Preview Diff
1 | === modified file 'CMakeLists.txt' | |||
2 | --- CMakeLists.txt 2015-08-02 14:42:46 +0000 | |||
3 | +++ CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
4 | @@ -1,6 +1,4 @@ | |||
5 | 1 | |||
6 | 2 | project(settings-components) | 1 | project(settings-components) |
7 | 3 | |||
8 | 4 | cmake_minimum_required(VERSION 2.8.9) | 2 | cmake_minimum_required(VERSION 2.8.9) |
9 | 5 | 3 | ||
10 | 6 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) | 4 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) |
11 | @@ -11,17 +9,13 @@ | |||
12 | 11 | include(FindPkgConfig) | 9 | include(FindPkgConfig) |
13 | 12 | 10 | ||
14 | 13 | find_package(Qt5Quick REQUIRED) | 11 | find_package(Qt5Quick REQUIRED) |
23 | 14 | set(OUR_QT_QUICK_LIB ${Qt5Quick_LIBRARIES}) | 12 | |
24 | 15 | 13 | set(QT_IMPORTS_DIR ${CMAKE_INSTALL_LIBDIR}/qt5/qml) | |
17 | 16 | get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION) | ||
18 | 17 | exec_program(${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_QML" OUTPUT_VARIABLE QT_IMPORTS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) | ||
19 | 18 | file(TO_CMAKE_PATH "${QT_IMPORTS_DIR}" QT_IMPORTS_DIR) | ||
20 | 19 | |||
21 | 20 | set(OUR_QT_QUICK_INCLUDE ${Qt5Quick_INCLUDE_DIRS}) | ||
22 | 21 | LIST(APPEND QT_PKGCONFIG_DEPENDENCIES "Qt5Quick") | ||
25 | 22 | 14 | ||
26 | 23 | find_package(Qt5Core REQUIRED) | 15 | find_package(Qt5Core REQUIRED) |
27 | 16 | find_package(Qt5Qml REQUIRED) | ||
28 | 24 | find_package(Qt5Quick REQUIRED) | 17 | find_package(Qt5Quick REQUIRED) |
29 | 18 | find_package(Qt5Test REQUIRED) | ||
30 | 25 | find_package(Qt5Widgets REQUIRED) | 19 | find_package(Qt5Widgets REQUIRED) |
31 | 26 | add_definitions(-DQT_NO_KEYWORDS) | 20 | add_definitions(-DQT_NO_KEYWORDS) |
32 | 27 | 21 | ||
33 | @@ -34,39 +28,10 @@ | |||
34 | 34 | add_definitions(-DQT_QML_DEBUG) | 28 | add_definitions(-DQT_QML_DEBUG) |
35 | 35 | endif() | 29 | endif() |
36 | 36 | 30 | ||
70 | 37 | include(EnableCoverageReport) | 31 | # Quiet logger |
71 | 38 | ##################################################################### | 32 | set(QUIET_LOGGER OFF CACHE BOOL "Disable test output on stdout.") |
72 | 39 | # Enable code coverage calculation with gcov/gcovr/lcov | 33 | if(NOT QUIET_LOGGER) |
73 | 40 | # Usage: | 34 | set(STDOUT_LOGGER "-o" "-,txt") |
41 | 41 | # * Switch build type to coverage (use ccmake or cmake-gui) | ||
42 | 42 | # * Invoke make, make test, make coverage (or ninja if you use that backend) | ||
43 | 43 | # * Find html report in subdir coveragereport | ||
44 | 44 | # * Find xml report feasible for jenkins in coverage.xml | ||
45 | 45 | ##################################################################### | ||
46 | 46 | if(cmake_build_type_lower MATCHES coverage) | ||
47 | 47 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage" ) | ||
48 | 48 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage" ) | ||
49 | 49 | set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --coverage" ) | ||
50 | 50 | set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage" ) | ||
51 | 51 | ENABLE_COVERAGE_REPORT(TARGETS ${SHELL_APP} FILTER /usr/include ${CMAKE_SOURCE_DIR}/tests/* ${CMAKE_BINARY_DIR}/*) | ||
52 | 52 | endif() | ||
53 | 53 | |||
54 | 54 | configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" | ||
55 | 55 | "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" | ||
56 | 56 | IMMEDIATE @ONLY) | ||
57 | 57 | add_custom_target(uninstall "${CMAKE_COMMAND}" | ||
58 | 58 | -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") | ||
59 | 59 | |||
60 | 60 | # Doc | ||
61 | 61 | OPTION(GENERATE_DOC "Enable qdoc generation" OFF) | ||
62 | 62 | if(GENERATE_DOC) | ||
63 | 63 | message(STATUS "QDoc enabled.") | ||
64 | 64 | find_program(QDOC_BIN qdoc) | ||
65 | 65 | if(NOT QDOC_BIN) | ||
66 | 66 | message(FATAL_ERROR "qdoc command not found") | ||
67 | 67 | else() | ||
68 | 68 | add_subdirectory(doc) | ||
69 | 69 | endif() | ||
74 | 70 | endif() | 35 | endif() |
75 | 71 | 36 | ||
76 | 72 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") | 37 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") |
77 | 73 | 38 | ||
78 | === removed file 'SettingsComponents.qmlproject' | |||
79 | --- SettingsComponents.qmlproject 2013-06-07 15:39:04 +0000 | |||
80 | +++ SettingsComponents.qmlproject 1970-01-01 00:00:00 +0000 | |||
81 | @@ -1,23 +0,0 @@ | |||
82 | 1 | /* File generated by Qt Creator (with Ubuntu Plugin), version 2.7.0 */ | ||
83 | 2 | |||
84 | 3 | import QmlProject 1.1 | ||
85 | 4 | |||
86 | 5 | Project { | ||
87 | 6 | mainFile: "SettingsComponents.qml" | ||
88 | 7 | |||
89 | 8 | /* Include .qml, .js, and image files from current directory and subdirectories */ | ||
90 | 9 | QmlFiles { | ||
91 | 10 | directory: "." | ||
92 | 11 | } | ||
93 | 12 | JavaScriptFiles { | ||
94 | 13 | directory: "." | ||
95 | 14 | } | ||
96 | 15 | ImageFiles { | ||
97 | 16 | directory: "." | ||
98 | 17 | } | ||
99 | 18 | Files { | ||
100 | 19 | filter: "*.desktop" | ||
101 | 20 | } | ||
102 | 21 | /* List of plugin directories passed to QML runtime */ | ||
103 | 22 | importPaths: [ "." ,"/usr/bin","/usr/lib/x86_64-linux-gnu/qt5/qml" ] | ||
104 | 23 | } | ||
105 | 24 | 0 | ||
106 | === removed file 'cmake/modules/EnableCoverageReport.cmake' | |||
107 | --- cmake/modules/EnableCoverageReport.cmake 2013-10-04 10:52:27 +0000 | |||
108 | +++ cmake/modules/EnableCoverageReport.cmake 1970-01-01 00:00:00 +0000 | |||
109 | @@ -1,166 +0,0 @@ | |||
110 | 1 | # - Creates a special coverage build type and target on GCC. | ||
111 | 2 | # | ||
112 | 3 | # Defines a function ENABLE_COVERAGE_REPORT which generates the coverage target | ||
113 | 4 | # for selected targets. Optional arguments to this function are used to filter | ||
114 | 5 | # unwanted results using globbing expressions. Moreover targets with tests for | ||
115 | 6 | # the source code can be specified to trigger regenerating the report if the | ||
116 | 7 | # test has changed | ||
117 | 8 | # | ||
118 | 9 | # ENABLE_COVERAGE_REPORT(TARGETS target... [FILTER filter...] [TESTS test targets...]) | ||
119 | 10 | # | ||
120 | 11 | # To generate a coverage report first build the project with | ||
121 | 12 | # CMAKE_BUILD_TYPE=coverage, then call make test and afterwards make coverage. | ||
122 | 13 | # | ||
123 | 14 | # The coverage report is based on gcov. Depending on the availability of lcov | ||
124 | 15 | # a HTML report will be generated and/or an XML report of gcovr is found. | ||
125 | 16 | # The generated coverage target executes all found solutions. Special targets | ||
126 | 17 | # exist to create e.g. only the xml report: coverage-xml. | ||
127 | 18 | # | ||
128 | 19 | # Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de> | ||
129 | 20 | # | ||
130 | 21 | # This program is free software; you can redistribute it | ||
131 | 22 | # and/or modify it under the terms of the GNU General | ||
132 | 23 | # Public License as published by the Free Software Foundation; | ||
133 | 24 | # either version 2, or (at your option) | ||
134 | 25 | # any later version. | ||
135 | 26 | # | ||
136 | 27 | # This program is distributed in the hope that it will be useful, | ||
137 | 28 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
138 | 29 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
139 | 30 | # GNU General Public License for more details. | ||
140 | 31 | # | ||
141 | 32 | |||
142 | 33 | INCLUDE(ParseArguments) | ||
143 | 34 | |||
144 | 35 | FIND_PACKAGE(Lcov) | ||
145 | 36 | FIND_PACKAGE(gcovr) | ||
146 | 37 | |||
147 | 38 | FUNCTION(ENABLE_COVERAGE_REPORT) | ||
148 | 39 | |||
149 | 40 | # argument parsing | ||
150 | 41 | PARSE_ARGUMENTS(ARG "FILTER;TARGETS;TESTS" "" ${ARGN}) | ||
151 | 42 | |||
152 | 43 | SET(COVERAGE_RAW_FILE "${CMAKE_BINARY_DIR}/coverage.raw.info") | ||
153 | 44 | SET(COVERAGE_FILTERED_FILE "${CMAKE_BINARY_DIR}/coverage.info") | ||
154 | 45 | SET(COVERAGE_REPORT_DIR "${CMAKE_BINARY_DIR}/coveragereport") | ||
155 | 46 | SET(COVERAGE_XML_FILE "${CMAKE_BINARY_DIR}/coverage.xml") | ||
156 | 47 | SET(COVERAGE_XML_COMMAND_FILE "${CMAKE_BINARY_DIR}/coverage-xml.cmake") | ||
157 | 48 | |||
158 | 49 | # decide if there is any tool to create coverage data | ||
159 | 50 | SET(TOOL_FOUND FALSE) | ||
160 | 51 | IF(LCOV_FOUND OR GCOVR_FOUND) | ||
161 | 52 | SET(TOOL_FOUND TRUE) | ||
162 | 53 | ENDIF() | ||
163 | 54 | IF(NOT TOOL_FOUND) | ||
164 | 55 | MESSAGE(STATUS "Cannot enable coverage targets because neither lcov nor gcovr are found.") | ||
165 | 56 | ENDIF() | ||
166 | 57 | |||
167 | 58 | STRING(TOLOWER "${CMAKE_BUILD_TYPE}" COVERAGE_BUILD_TYPE) | ||
168 | 59 | IF(CMAKE_COMPILER_IS_GNUCXX AND TOOL_FOUND AND "${COVERAGE_BUILD_TYPE}" MATCHES "coverage") | ||
169 | 60 | |||
170 | 61 | MESSAGE(STATUS "Coverage support enabled for targets: ${ARG_TARGETS}") | ||
171 | 62 | |||
172 | 63 | # create coverage build type | ||
173 | 64 | SET(CMAKE_CXX_FLAGS_COVERAGE ${CMAKE_CXX_FLAGS_DEBUG} PARENT_SCOPE) | ||
174 | 65 | SET(CMAKE_C_FLAGS_COVERAGE ${CMAKE_C_FLAGS_DEBUG} PARENT_SCOPE) | ||
175 | 66 | SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} coverage PARENT_SCOPE) | ||
176 | 67 | |||
177 | 68 | # instrument targets | ||
178 | 69 | SET_TARGET_PROPERTIES(${ARG_TARGETS} PROPERTIES COMPILE_FLAGS --coverage | ||
179 | 70 | LINK_FLAGS --coverage) | ||
180 | 71 | |||
181 | 72 | # html report | ||
182 | 73 | IF (LCOV_FOUND) | ||
183 | 74 | |||
184 | 75 | MESSAGE(STATUS "Enabling HTML coverage report") | ||
185 | 76 | |||
186 | 77 | # set up coverage target | ||
187 | 78 | |||
188 | 79 | ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_RAW_FILE} | ||
189 | 80 | COMMAND ${LCOV_EXECUTABLE} -c -d ${CMAKE_BINARY_DIR} -o ${COVERAGE_RAW_FILE} | ||
190 | 81 | WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | ||
191 | 82 | COMMENT "Collecting coverage data" | ||
192 | 83 | DEPENDS ${ARG_TARGETS} ${ARG_TESTS} | ||
193 | 84 | VERBATIM) | ||
194 | 85 | |||
195 | 86 | # filter unwanted stuff | ||
196 | 87 | LIST(LENGTH ARG_FILTER FILTER_LENGTH) | ||
197 | 88 | IF(${FILTER_LENGTH} GREATER 0) | ||
198 | 89 | SET(FILTER COMMAND ${LCOV_EXECUTABLE}) | ||
199 | 90 | FOREACH(F ${ARG_FILTER}) | ||
200 | 91 | SET(FILTER ${FILTER} -r ${COVERAGE_FILTERED_FILE} ${F}) | ||
201 | 92 | ENDFOREACH() | ||
202 | 93 | SET(FILTER ${FILTER} -o ${COVERAGE_FILTERED_FILE}) | ||
203 | 94 | ELSE() | ||
204 | 95 | SET(FILTER "") | ||
205 | 96 | ENDIF() | ||
206 | 97 | |||
207 | 98 | ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_FILTERED_FILE} | ||
208 | 99 | COMMAND ${LCOV_EXECUTABLE} -e ${COVERAGE_RAW_FILE} "${CMAKE_SOURCE_DIR}*" -o ${COVERAGE_FILTERED_FILE} | ||
209 | 100 | ${FILTER} | ||
210 | 101 | DEPENDS ${COVERAGE_RAW_FILE} | ||
211 | 102 | COMMENT "Filtering recorded coverage data for project-relevant entries" | ||
212 | 103 | VERBATIM) | ||
213 | 104 | ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_REPORT_DIR} | ||
214 | 105 | COMMAND ${CMAKE_COMMAND} -E make_directory ${COVERAGE_REPORT_DIR} | ||
215 | 106 | COMMAND ${GENHTML_EXECUTABLE} --legend --show-details -t "${PROJECT_NAME} test coverage" -o ${COVERAGE_REPORT_DIR} ${COVERAGE_FILTERED_FILE} | ||
216 | 107 | DEPENDS ${COVERAGE_FILTERED_FILE} | ||
217 | 108 | COMMENT "Generating HTML coverage report in ${COVERAGE_REPORT_DIR}" | ||
218 | 109 | VERBATIM) | ||
219 | 110 | |||
220 | 111 | ADD_CUSTOM_TARGET(coverage-html | ||
221 | 112 | DEPENDS ${COVERAGE_REPORT_DIR}) | ||
222 | 113 | |||
223 | 114 | ENDIF() | ||
224 | 115 | |||
225 | 116 | # xml coverage report | ||
226 | 117 | IF(GCOVR_FOUND) | ||
227 | 118 | |||
228 | 119 | MESSAGE(STATUS "Enabling XML coverage report") | ||
229 | 120 | |||
230 | 121 | # filter unwanted stuff | ||
231 | 122 | SET(GCOV_FILTER "") | ||
232 | 123 | LIST(LENGTH ARG_FILTER FILTER_LENGTH) | ||
233 | 124 | IF(${FILTER_LENGTH} GREATER 0) | ||
234 | 125 | FOREACH(F ${ARG_FILTER}) | ||
235 | 126 | SET(GCOV_FILTER "${GCOV_FILTER} -e \"${F}\"") | ||
236 | 127 | ENDFOREACH() | ||
237 | 128 | ENDIF() | ||
238 | 129 | |||
239 | 130 | # gcovr cannot write directly to a file so the execution needs to | ||
240 | 131 | # be wrapped in a cmake file that generates the file output | ||
241 | 132 | FILE(WRITE ${COVERAGE_XML_COMMAND_FILE} | ||
242 | 133 | "SET(ENV{LANG} en)\n") | ||
243 | 134 | FILE(APPEND ${COVERAGE_XML_COMMAND_FILE} | ||
244 | 135 | "EXECUTE_PROCESS(COMMAND \"${GCOVR_EXECUTABLE}\" -x -r \"${CMAKE_SOURCE_DIR}\" ${GCOV_FILTER} OUTPUT_FILE \"${COVERAGE_XML_FILE}\" WORKING_DIRECTORY \"${CMAKE_BINARY_DIR}\")\n") | ||
245 | 136 | |||
246 | 137 | ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_XML_FILE} | ||
247 | 138 | COMMAND ${CMAKE_COMMAND} ARGS -P ${COVERAGE_XML_COMMAND_FILE} | ||
248 | 139 | COMMENT "Generating coverage XML report" | ||
249 | 140 | VERBATIM) | ||
250 | 141 | |||
251 | 142 | ADD_CUSTOM_TARGET(coverage-xml | ||
252 | 143 | DEPENDS ${COVERAGE_XML_FILE}) | ||
253 | 144 | |||
254 | 145 | ENDIF() | ||
255 | 146 | |||
256 | 147 | # provide a global coverage target executing both steps if available | ||
257 | 148 | SET(GLOBAL_DEPENDS "") | ||
258 | 149 | IF(LCOV_FOUND) | ||
259 | 150 | LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_REPORT_DIR}) | ||
260 | 151 | ENDIF() | ||
261 | 152 | IF(GCOVR_FOUND) | ||
262 | 153 | LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_XML_FILE}) | ||
263 | 154 | ENDIF() | ||
264 | 155 | IF(LCOV_FOUND OR GCOVR_FOUND) | ||
265 | 156 | ADD_CUSTOM_TARGET(coverage | ||
266 | 157 | DEPENDS ${GLOBAL_DEPENDS}) | ||
267 | 158 | ENDIF() | ||
268 | 159 | |||
269 | 160 | ENDIF() | ||
270 | 161 | |||
271 | 162 | # This gets rid of any stale .gcda files. Run this if a running a binary causes lots of messages about | ||
272 | 163 | # about a "merge mismatch for summaries". | ||
273 | 164 | ADD_CUSTOM_TARGET(clean-coverage COMMAND find ${CMAKE_BINARY_DIR} -name '*.gcda' | xargs rm -f) | ||
274 | 165 | |||
275 | 166 | ENDFUNCTION() | ||
276 | 167 | 0 | ||
277 | === removed file 'cmake/modules/FindLcov.cmake' | |||
278 | --- cmake/modules/FindLcov.cmake 2013-10-04 10:52:27 +0000 | |||
279 | +++ cmake/modules/FindLcov.cmake 1970-01-01 00:00:00 +0000 | |||
280 | @@ -1,29 +0,0 @@ | |||
281 | 1 | # - Find lcov | ||
282 | 2 | # Will define: | ||
283 | 3 | # | ||
284 | 4 | # LCOV_EXECUTABLE - the lcov binary | ||
285 | 5 | # GENHTML_EXECUTABLE - the genhtml executable | ||
286 | 6 | # | ||
287 | 7 | # Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de> | ||
288 | 8 | # | ||
289 | 9 | # This program is free software; you can redistribute it | ||
290 | 10 | # and/or modify it under the terms of the GNU General | ||
291 | 11 | # Public License as published by the Free Software Foundation; | ||
292 | 12 | # either version 2, or (at your option) | ||
293 | 13 | # any later version. | ||
294 | 14 | # | ||
295 | 15 | # This program is distributed in the hope that it will be useful, | ||
296 | 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
297 | 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
298 | 18 | # GNU General Public License for more details. | ||
299 | 19 | # | ||
300 | 20 | |||
301 | 21 | INCLUDE(FindPackageHandleStandardArgs) | ||
302 | 22 | |||
303 | 23 | FIND_PROGRAM(LCOV_EXECUTABLE lcov) | ||
304 | 24 | FIND_PROGRAM(GENHTML_EXECUTABLE genhtml) | ||
305 | 25 | |||
306 | 26 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lcov DEFAULT_MSG LCOV_EXECUTABLE GENHTML_EXECUTABLE) | ||
307 | 27 | |||
308 | 28 | # only visible in advanced view | ||
309 | 29 | MARK_AS_ADVANCED(LCOV_EXECUTABLE GENHTML_EXECUTABLE) | ||
310 | 30 | 0 | ||
311 | === removed file 'cmake/modules/Findgcovr.cmake' | |||
312 | --- cmake/modules/Findgcovr.cmake 2013-10-04 10:52:27 +0000 | |||
313 | +++ cmake/modules/Findgcovr.cmake 1970-01-01 00:00:00 +0000 | |||
314 | @@ -1,31 +0,0 @@ | |||
315 | 1 | # - Find gcovr scrip | ||
316 | 2 | # Will define: | ||
317 | 3 | # | ||
318 | 4 | # GCOVR_EXECUTABLE - the gcovr script | ||
319 | 5 | # | ||
320 | 6 | # Uses: | ||
321 | 7 | # | ||
322 | 8 | # GCOVR_ROOT - root to search for the script | ||
323 | 9 | # | ||
324 | 10 | # Copyright (C) 2011 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de> | ||
325 | 11 | # | ||
326 | 12 | # This program is free software; you can redistribute it | ||
327 | 13 | # and/or modify it under the terms of the GNU General | ||
328 | 14 | # Public License as published by the Free Software Foundation; | ||
329 | 15 | # either version 2, or (at your option) | ||
330 | 16 | # any later version. | ||
331 | 17 | # | ||
332 | 18 | # This program is distributed in the hope that it will be useful, | ||
333 | 19 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
334 | 20 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
335 | 21 | # GNU General Public License for more details. | ||
336 | 22 | # | ||
337 | 23 | |||
338 | 24 | INCLUDE(FindPackageHandleStandardArgs) | ||
339 | 25 | |||
340 | 26 | FIND_PROGRAM(GCOVR_EXECUTABLE gcovr HINTS ${GCOVR_ROOT} "${GCOVR_ROOT}/bin") | ||
341 | 27 | |||
342 | 28 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(gcovr DEFAULT_MSG GCOVR_EXECUTABLE) | ||
343 | 29 | |||
344 | 30 | # only visible in advanced view | ||
345 | 31 | MARK_AS_ADVANCED(GCOVR_EXECUTABLE) | ||
346 | 32 | 0 | ||
347 | === removed file 'cmake/modules/ParseArguments.cmake' | |||
348 | --- cmake/modules/ParseArguments.cmake 2013-10-04 10:52:27 +0000 | |||
349 | +++ cmake/modules/ParseArguments.cmake 1970-01-01 00:00:00 +0000 | |||
350 | @@ -1,52 +0,0 @@ | |||
351 | 1 | # Parse arguments passed to a function into several lists separated by | ||
352 | 2 | # upper-case identifiers and options that do not have an associated list e.g.: | ||
353 | 3 | # | ||
354 | 4 | # SET(arguments | ||
355 | 5 | # hello OPTION3 world | ||
356 | 6 | # LIST3 foo bar | ||
357 | 7 | # OPTION2 | ||
358 | 8 | # LIST1 fuz baz | ||
359 | 9 | # ) | ||
360 | 10 | # PARSE_ARGUMENTS(ARG "LIST1;LIST2;LIST3" "OPTION1;OPTION2;OPTION3" ${arguments}) | ||
361 | 11 | # | ||
362 | 12 | # results in 7 distinct variables: | ||
363 | 13 | # * ARG_DEFAULT_ARGS: hello;world | ||
364 | 14 | # * ARG_LIST1: fuz;baz | ||
365 | 15 | # * ARG_LIST2: | ||
366 | 16 | # * ARG_LIST3: foo;bar | ||
367 | 17 | # * ARG_OPTION1: FALSE | ||
368 | 18 | # * ARG_OPTION2: TRUE | ||
369 | 19 | # * ARG_OPTION3: TRUE | ||
370 | 20 | # | ||
371 | 21 | # taken from http://www.cmake.org/Wiki/CMakeMacroParseArguments | ||
372 | 22 | |||
373 | 23 | MACRO(PARSE_ARGUMENTS prefix arg_names option_names) | ||
374 | 24 | SET(DEFAULT_ARGS) | ||
375 | 25 | FOREACH(arg_name ${arg_names}) | ||
376 | 26 | SET(${prefix}_${arg_name}) | ||
377 | 27 | ENDFOREACH(arg_name) | ||
378 | 28 | FOREACH(option ${option_names}) | ||
379 | 29 | SET(${prefix}_${option} FALSE) | ||
380 | 30 | ENDFOREACH(option) | ||
381 | 31 | |||
382 | 32 | SET(current_arg_name DEFAULT_ARGS) | ||
383 | 33 | SET(current_arg_list) | ||
384 | 34 | FOREACH(arg ${ARGN}) | ||
385 | 35 | SET(larg_names ${arg_names}) | ||
386 | 36 | LIST(FIND larg_names "${arg}" is_arg_name) | ||
387 | 37 | IF (is_arg_name GREATER -1) | ||
388 | 38 | SET(${prefix}_${current_arg_name} ${current_arg_list}) | ||
389 | 39 | SET(current_arg_name ${arg}) | ||
390 | 40 | SET(current_arg_list) | ||
391 | 41 | ELSE (is_arg_name GREATER -1) | ||
392 | 42 | SET(loption_names ${option_names}) | ||
393 | 43 | LIST(FIND loption_names "${arg}" is_option) | ||
394 | 44 | IF (is_option GREATER -1) | ||
395 | 45 | SET(${prefix}_${arg} TRUE) | ||
396 | 46 | ELSE (is_option GREATER -1) | ||
397 | 47 | SET(current_arg_list ${current_arg_list} ${arg}) | ||
398 | 48 | ENDIF (is_option GREATER -1) | ||
399 | 49 | ENDIF (is_arg_name GREATER -1) | ||
400 | 50 | ENDFOREACH(arg) | ||
401 | 51 | SET(${prefix}_${current_arg_name} ${current_arg_list}) | ||
402 | 52 | ENDMACRO(PARSE_ARGUMENTS) | ||
403 | 53 | 0 | ||
404 | === removed file 'cmake/modules/QmlPlugins.cmake' | |||
405 | --- cmake/modules/QmlPlugins.cmake 2015-04-07 09:44:47 +0000 | |||
406 | +++ cmake/modules/QmlPlugins.cmake 1970-01-01 00:00:00 +0000 | |||
407 | @@ -1,150 +0,0 @@ | |||
408 | 1 | # If you need to override the qmlplugindump binary, create the qmlplugin executable | ||
409 | 2 | # target before loading this plugin. | ||
410 | 3 | |||
411 | 4 | if(NOT TARGET qmlplugindump) | ||
412 | 5 | find_program(qmlplugindump_exe qmlplugindump) | ||
413 | 6 | |||
414 | 7 | if(NOT qmlplugindump_exe) | ||
415 | 8 | msg(FATAL_ERROR "Could not locate qmlplugindump.") | ||
416 | 9 | endif() | ||
417 | 10 | |||
418 | 11 | add_executable(qmlplugindump IMPORTED) | ||
419 | 12 | set_target_properties(qmlplugindump PROPERTIES IMPORTED_LOCATION ${qmlplugindump_exe}) | ||
420 | 13 | endif() | ||
421 | 14 | |||
422 | 15 | # | ||
423 | 16 | # A custom target for building the qmltypes files manually. | ||
424 | 17 | # | ||
425 | 18 | if (NOT TARGET qmltypes) | ||
426 | 19 | add_custom_target(qmltypes) | ||
427 | 20 | endif() | ||
428 | 21 | |||
429 | 22 | # Creates a target for copying resource files into build dir and optionally installing them. | ||
430 | 23 | # | ||
431 | 24 | # Files will be copied into ${BINARY_DIR}/${path} or ${CMAKE_CURRENT_BINARY_DIR} and installed | ||
432 | 25 | # into ${DESTINATION}/${path}. | ||
433 | 26 | # | ||
434 | 27 | # Resource file names are matched against {*.{qml,js,jpg,png,sci,svg},qmldir}. | ||
435 | 28 | # | ||
436 | 29 | # export_qmlfiles(plugin path | ||
437 | 30 | # [SEARCH_PATH path] # Path to search for resources in (defaults to ${CMAKE_CURRENT_SOURCE_DIR}) | ||
438 | 31 | # [BINARY_DIR path] | ||
439 | 32 | # [DESTINATION path] | ||
440 | 33 | # [TARGET_PREFIX string] # Will be prefixed to the target name | ||
441 | 34 | # ) | ||
442 | 35 | # | ||
443 | 36 | # Created target: | ||
444 | 37 | # - ${TARGET_PREFIX}${plugin}-qmlfiles - Copies resources into the binary dir. | ||
445 | 38 | |||
446 | 39 | macro(export_qmlfiles PLUGIN PATH) | ||
447 | 40 | set(single SEARCH_PATH BINARY_DIR DESTINATION TARGET_PREFIX) | ||
448 | 41 | cmake_parse_arguments(QMLFILES "" "${single}" "" ${ARGN}) | ||
449 | 42 | |||
450 | 43 | if(NOT QMLFILES_SEARCH_PATH) | ||
451 | 44 | set(QMLFILES_SEARCH_PATH ${CMAKE_CURRENT_SOURCE_DIR}) | ||
452 | 45 | endif() | ||
453 | 46 | |||
454 | 47 | if(QMLFILES_BINARY_DIR) | ||
455 | 48 | set(qmlfiles_dir ${QMLFILES_BINARY_DIR}/${PATH}) | ||
456 | 49 | else() | ||
457 | 50 | set(qmlfiles_dir ${CMAKE_CURRENT_BINARY_DIR}) | ||
458 | 51 | endif() | ||
459 | 52 | |||
460 | 53 | file(GLOB QMLFILES | ||
461 | 54 | ${QMLFILES_SEARCH_PATH}/*.qml | ||
462 | 55 | ${QMLFILES_SEARCH_PATH}/*.js | ||
463 | 56 | ${QMLFILES_SEARCH_PATH}/*.jpg | ||
464 | 57 | ${QMLFILES_SEARCH_PATH}/*.png | ||
465 | 58 | ${QMLFILES_SEARCH_PATH}/*.sci | ||
466 | 59 | ${QMLFILES_SEARCH_PATH}/*.svg | ||
467 | 60 | ${QMLFILES_SEARCH_PATH}/*.qmltypes | ||
468 | 61 | ${QMLFILES_SEARCH_PATH}/qmldir | ||
469 | 62 | ) | ||
470 | 63 | |||
471 | 64 | execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${qmlfiles_dir}) | ||
472 | 65 | |||
473 | 66 | # copy the files | ||
474 | 67 | add_custom_target(${QMLFILES_TARGET_PREFIX}${PLUGIN}-qmlfiles ALL | ||
475 | 68 | COMMAND cp ${QMLFILES} ${qmlfiles_dir} | ||
476 | 69 | DEPENDS ${QMLFILES} | ||
477 | 70 | SOURCES ${QMLFILES} | ||
478 | 71 | ) | ||
479 | 72 | |||
480 | 73 | if(QMLFILES_DESTINATION) | ||
481 | 74 | # install the qmlfiles file. | ||
482 | 75 | install(FILES ${QMLFILES} | ||
483 | 76 | DESTINATION ${QMLFILES_DESTINATION}/${PATH} | ||
484 | 77 | ) | ||
485 | 78 | endif() | ||
486 | 79 | endmacro() | ||
487 | 80 | |||
488 | 81 | |||
489 | 82 | # Creates a target for generating the typeinfo file for a QML plugin and/or installs the plugin | ||
490 | 83 | # targets. | ||
491 | 84 | # | ||
492 | 85 | # Files will be copied into ${BINARY_DIR}/${path} or ${CMAKE_CURRENT_BINARY_DIR} and installed | ||
493 | 86 | # into ${DESTINATION}/${path}. If you don't pass BINARY_DIR, it's assumed that current source | ||
494 | 87 | # path ends with ${path}. | ||
495 | 88 | # | ||
496 | 89 | # The generated file will be named after the last segment of the plugin name, e.g. Foo.qmltypes. | ||
497 | 90 | # | ||
498 | 91 | # export_qmlplugin(plugin version path | ||
499 | 92 | # [BINARY_DIR path] | ||
500 | 93 | # [DESTINATION path] | ||
501 | 94 | # [TARGET_PREFIX string] # Will be prefixed to the target name | ||
502 | 95 | # [ENVIRONMENT string] # Will be added to qmlplugindump's env | ||
503 | 96 | # [TARGETS target1 [target2 ...]] # Targets to depend on and install (e.g. the plugin shared object) | ||
504 | 97 | # [NO_TYPES] # Do not create the qmltypes target | ||
505 | 98 | # ) | ||
506 | 99 | # | ||
507 | 100 | # Created target: | ||
508 | 101 | # - ${TARGET_PREFIX}${plugin}-qmltypes - Generates the qmltypes file in the source dir. | ||
509 | 102 | # It will be made a dependency of the "qmltypes" target. | ||
510 | 103 | |||
511 | 104 | macro(export_qmlplugin PLUGIN VERSION PATH) | ||
512 | 105 | set(options NO_TYPES) | ||
513 | 106 | set(single BINARY_DIR DESTINATION TARGET_PREFIX ENVIRONMENT) | ||
514 | 107 | set(multi TARGETS) | ||
515 | 108 | cmake_parse_arguments(QMLPLUGIN "${options}" "${single}" "${multi}" ${ARGN}) | ||
516 | 109 | |||
517 | 110 | get_target_property(qmlplugindump_executable qmlplugindump LOCATION) | ||
518 | 111 | |||
519 | 112 | if(QMLPLUGIN_BINARY_DIR) | ||
520 | 113 | set(qmlplugin_dir ${QMLPLUGIN_BINARY_DIR}/${PATH}) | ||
521 | 114 | else() | ||
522 | 115 | # Find import path to point qmlplugindump at | ||
523 | 116 | string(REGEX REPLACE "/${PATH}$" "" QMLPLUGIN_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}") | ||
524 | 117 | set(qmlplugin_dir ${CMAKE_CURRENT_BINARY_DIR}) | ||
525 | 118 | endif() | ||
526 | 119 | |||
527 | 120 | if(NOT QMLPLUGIN_NO_TYPES) | ||
528 | 121 | # Relative path for the module | ||
529 | 122 | string(REPLACE "${CMAKE_BINARY_DIR}/" "" QMLPLUGIN_MODULE_DIR "${QMLPLUGIN_BINARY_DIR}") | ||
530 | 123 | |||
531 | 124 | # Find the last segment of the plugin name to use as qmltypes basename | ||
532 | 125 | string(REGEX MATCH "[^.]+$" plugin_suffix ${PLUGIN}) | ||
533 | 126 | set(target_prefix ${QMLPLUGIN_TARGET_PREFIX}${PLUGIN}) | ||
534 | 127 | set(qmltypes_path ${CMAKE_CURRENT_SOURCE_DIR}/${plugin_suffix}.qmltypes) | ||
535 | 128 | |||
536 | 129 | add_custom_target(${target_prefix}-qmltypes | ||
537 | 130 | COMMAND env ${QMLPLUGIN_ENVIRONMENT} ${qmlplugindump_executable} -notrelocatable | ||
538 | 131 | ${PLUGIN} ${VERSION} ${QMLPLUGIN_MODULE_DIR} > ${qmltypes_path} | ||
539 | 132 | WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | ||
540 | 133 | ) | ||
541 | 134 | add_dependencies(${target_prefix}-qmltypes ${target_prefix}-qmlfiles ${QMLPLUGIN_TARGETS}) | ||
542 | 135 | add_dependencies(qmltypes ${target_prefix}-qmltypes) | ||
543 | 136 | endif() | ||
544 | 137 | |||
545 | 138 | set_target_properties(${QMLPLUGIN_TARGETS} PROPERTIES | ||
546 | 139 | ARCHIVE_OUTPUT_DIRECTORY ${qmlplugin_dir} | ||
547 | 140 | LIBRARY_OUTPUT_DIRECTORY ${qmlplugin_dir} | ||
548 | 141 | RUNTIME_OUTPUT_DIRECTORY ${qmlplugin_dir} | ||
549 | 142 | ) | ||
550 | 143 | |||
551 | 144 | if (QMLPLUGIN_DESTINATION) | ||
552 | 145 | # Install additional targets | ||
553 | 146 | install(TARGETS ${QMLPLUGIN_TARGETS} | ||
554 | 147 | DESTINATION ${QMLPLUGIN_DESTINATION}/${PATH} | ||
555 | 148 | ) | ||
556 | 149 | endif() | ||
557 | 150 | endmacro() | ||
558 | 151 | 0 | ||
559 | === modified file 'cmake/modules/QmlTest.cmake' | |||
560 | --- cmake/modules/QmlTest.cmake 2015-03-20 15:49:18 +0000 | |||
561 | +++ cmake/modules/QmlTest.cmake 2016-08-17 18:09:13 +0000 | |||
562 | @@ -1,120 +1,313 @@ | |||
573 | 1 | # add_qml_test(path component_name [NO_ADD_TEST] [NO_TARGETS] | 1 | # If you need to override the qmlscene or qmltestrunner executables, |
574 | 2 | # [TARGETS target1 [target2 [...]]] | 2 | # create the corresponding executable target. |
575 | 3 | # [IMPORT_PATHS import_path1 [import_path2 [...]] | 3 | |
576 | 4 | # [PROPERTIES prop1 value1 [prop2 value2 [...]]]) | 4 | # These functions respect the global STDOUT_LOGGER and ARTIFACTS_DIR variables. |
577 | 5 | # | 5 | |
578 | 6 | # NO_ADD_TEST will prevent adding the test to the "test" target | 6 | # You can use those with cmake_parse_arguments |
579 | 7 | # NO_TARGETS will prevent adding the test to any targets | 7 | # if you need to wrap and mangle arguments. |
580 | 8 | # TARGETS lists the targets the test should be added to | 8 | set(QMLTEST_OPTIONS ADD_TEST CACHE INTERNAL "") |
581 | 9 | # IMPORT_PATHS will pass those paths to qmltestrunner as "-import" arguments | 9 | set(QMLTEST_SINGLE ITERATIONS ARG_PREFIX CACHE INTERNAL "") |
582 | 10 | # PROPERTIES will be set on the target and test target. See CMake's set_target_properties() | 10 | set(QMLTEST_MULTI ARGS ENVIRONMENT DEPENDS IMPORT_PATHS TARGETS CACHE INTERNAL "") |
583 | 11 | |||
584 | 12 | # import_executables(name1 [name2 [...]] | ||
585 | 13 | # [OPTIONAL] # continue when not found | ||
586 | 14 | # ) | ||
587 | 15 | # | ||
588 | 16 | # This will find the named executables and import them | ||
589 | 17 | # to an imported target of the same name. | ||
590 | 18 | |||
591 | 19 | function(import_executables) | ||
592 | 20 | cmake_parse_arguments(QMLTEST "OPTIONAL" "" "" ${ARGN}) | ||
593 | 21 | |||
594 | 22 | foreach(NAME ${QMLTEST_UNPARSED_ARGUMENTS}) | ||
595 | 23 | if(NOT TARGET ${NAME}) | ||
596 | 24 | add_executable(${NAME} IMPORTED GLOBAL) | ||
597 | 25 | find_program(${NAME}_exe ${NAME}) | ||
598 | 26 | |||
599 | 27 | if(NOT QMLTEST_OPTIONAL AND NOT ${NAME}_exe) | ||
600 | 28 | message(FATAL_ERROR "Could not locate ${NAME}.") | ||
601 | 29 | elseif(NOT ${NAME}_exe) | ||
602 | 30 | message(STATUS "Could not locate ${NAME}, skipping.") | ||
603 | 31 | else() | ||
604 | 32 | set_target_properties(${NAME} PROPERTIES IMPORTED_LOCATION ${${NAME}_exe}) | ||
605 | 33 | endif() | ||
606 | 34 | endif() | ||
607 | 35 | endforeach() | ||
608 | 36 | endfunction() | ||
609 | 37 | |||
610 | 38 | |||
611 | 39 | # add_qml_test(path component_name | ||
612 | 40 | # [...] | ||
613 | 41 | # ) | ||
614 | 42 | # | ||
615 | 43 | # Add test targets for ${component_name} under ${path}. It's assumed | ||
616 | 44 | # that the test file is named ${path}/tst_${component_name}.qml. | ||
617 | 45 | # | ||
618 | 46 | # This function wraps add_manual_qml_test and add_qml_unittest, | ||
619 | 47 | # see below for available arguments. | ||
620 | 48 | |||
621 | 49 | function(add_qml_test PATH COMPONENT_NAME) | ||
622 | 50 | cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN}) | ||
623 | 51 | mangle_arguments() | ||
624 | 52 | |||
625 | 53 | add_qml_unittest(${ARGV}) | ||
626 | 54 | add_manual_qml_test(${ARGV}) | ||
627 | 55 | endfunction() | ||
628 | 56 | |||
629 | 57 | |||
630 | 58 | # add_qml_unittest(path component_name | ||
631 | 59 | # [...] | ||
632 | 60 | # ) | ||
633 | 61 | # | ||
634 | 62 | # Add test targets for ${component_name} under ${path}. It's assumed | ||
635 | 63 | # that the test file is named ${path}/tst_${component_name}.qml. | ||
636 | 64 | # | ||
637 | 65 | # This function wraps add_executable_test, see below for available arguments. | ||
638 | 66 | |||
639 | 67 | function(add_qml_unittest PATH COMPONENT_NAME) | ||
640 | 68 | import_executables(qmltestrunner) | ||
641 | 69 | |||
642 | 70 | add_executable_test(${COMPONENT_NAME} qmltestrunner | ||
643 | 71 | ${ARGN} | ||
644 | 72 | ARGS -input ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS} | ||
645 | 73 | ) | ||
646 | 74 | endfunction() | ||
647 | 75 | |||
648 | 76 | |||
649 | 77 | # add_manual_qml_test(path component_name | ||
650 | 78 | # [...] | ||
651 | 79 | # ) | ||
652 | 80 | # | ||
653 | 81 | # Add manual test targets for ${component_name} under ${path}. It's assumed | ||
654 | 82 | # that the test file is named ${path}/tst_${component_name}.qml. | ||
655 | 83 | # | ||
656 | 84 | # This function wraps add_manual_test, see below for available arguments. | ||
657 | 85 | |||
658 | 86 | function(add_manual_qml_test PATH COMPONENT_NAME) | ||
659 | 87 | import_executables(qmlscene) | ||
660 | 88 | cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN}) | ||
661 | 89 | |||
662 | 90 | add_manual_test(${COMPONENT_NAME} qmlscene | ||
663 | 91 | ${ARGN} | ||
664 | 92 | ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS} | ||
665 | 93 | ) | ||
666 | 94 | endfunction() | ||
667 | 95 | |||
668 | 96 | |||
669 | 97 | # add_executable_test(target component_name | ||
670 | 98 | # [...] # see doc for add_manual_qml_test for common arguments | ||
671 | 99 | # [ADD_TEST] # whether to add to the "test" target | ||
672 | 100 | # [ARG_PREFIX arg_prefix] # prefix logging arguments with this string | ||
673 | 101 | # [ARGS] arg1 [arg2 [...]] # pass these arguments to the test executable | ||
674 | 102 | # [TARGETS target1 [target2 [...]]] # make the listed targets depend on this test | ||
675 | 103 | # # if a corresponding xvfbtarget1, xvfbtarget2 etc. exists, | ||
676 | 104 | # # this test running under xvfb will be added as a dependency | ||
677 | 105 | # # of those targets | ||
678 | 106 | # [ITERATIONS count] # run this test as a benchmark for ${count} iterations | ||
679 | 107 | # ) | ||
680 | 108 | # | ||
681 | 109 | # Logging options in the standard form of "-o filename,format" | ||
682 | 110 | # will be appended to the arguments list, prefixed with ARG_PREFIX. | ||
683 | 111 | # XUnitXML files will be stored in current binary dir or under | ||
684 | 112 | # ARTIFACTS_DIR, if set. | ||
685 | 113 | # | ||
686 | 114 | # Three targets will be created: | ||
687 | 115 | # - test${component_name} - Runs the test | ||
688 | 116 | # - xvfbtest${component_name} - Runs the test under xvfb | ||
689 | 117 | # - gdbtest${component_name} - Runs the test under gdb | ||
690 | 118 | |||
691 | 119 | function(add_executable_test COMPONENT_NAME TARGET) | ||
692 | 120 | import_executables(gdb xvfb-run OPTIONAL) | ||
693 | 121 | |||
694 | 122 | cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN}) | ||
695 | 123 | mangle_arguments() | ||
696 | 124 | |||
697 | 125 | if(ARTIFACTS_DIR) | ||
698 | 126 | file(RELATIVE_PATH path ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) | ||
699 | 127 | file(MAKE_DIRECTORY ${ARTIFACTS_DIR}/${path}) | ||
700 | 128 | set(file_logger -o ${ARTIFACTS_DIR}/${path}/test${COMPONENT_NAME}.xml,xunitxml) | ||
701 | 129 | else() | ||
702 | 130 | file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) | ||
703 | 131 | set(file_logger -o ${CMAKE_CURRENT_BINARY_DIR}/test${COMPONENT_NAME}.xml,xunitxml) | ||
704 | 132 | endif() | ||
705 | 133 | |||
706 | 134 | bake_arguments("${QMLTEST_ARG_PREFIX}" args ${iterations} ${file_logger} ${STDOUT_LOGGER}) | ||
707 | 135 | |||
708 | 136 | set(qmltest_command | ||
709 | 137 | $<TARGET_FILE:${TARGET}> | ||
710 | 138 | ${QMLTEST_ARGS} | ||
711 | 139 | ${args} | ||
712 | 140 | ) | ||
713 | 141 | |||
714 | 142 | add_qmltest_target(test${COMPONENT_NAME} ${TARGET} | ||
715 | 143 | COMMAND ${qmltest_command} | ||
716 | 144 | ${depends} | ||
717 | 145 | ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} | ||
718 | 146 | ${add_test} | ||
719 | 147 | ${targets} | ||
720 | 148 | ) | ||
721 | 149 | |||
722 | 150 | if(TARGET xvfb-run) | ||
723 | 151 | add_qmltest_target(xvfbtest${COMPONENT_NAME} ${TARGET} | ||
724 | 152 | COMMAND $<TARGET_FILE:xvfb-run> --server-args "-screen 0 1024x768x24" --auto-servernum ${qmltest_command} | ||
725 | 153 | ${depends} | ||
726 | 154 | ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} LD_PRELOAD=/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/mesa/libGL.so.1 | ||
727 | 155 | TARGETS ${xvfb_targets} | ||
728 | 156 | ) | ||
729 | 157 | endif() | ||
730 | 158 | |||
731 | 159 | if(TARGET gdb) | ||
732 | 160 | add_qmltest_target(gdbtest${COMPONENT_NAME} ${TARGET} | ||
733 | 161 | COMMAND $<TARGET_FILE:gdb> -ex run -args ${qmltest_command} | ||
734 | 162 | ${depends} | ||
735 | 163 | ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} | ||
736 | 164 | ) | ||
737 | 165 | endif() | ||
738 | 166 | endfunction() | ||
739 | 167 | |||
740 | 168 | |||
741 | 169 | # add_manual_test(target component_name | ||
742 | 170 | # [DEPENDS target1 [target2 [...]]] # make this test depend on the specified targets | ||
743 | 171 | # [IMPORT_PATHS import_path1 [import_path2 [...]] # use these QML import paths | ||
744 | 172 | # # (they're searched first to last) | ||
745 | 173 | # [ENVIRONMENT var1=value1 [var2=value2 [...]]] # set these environment variables | ||
746 | 174 | # ) | ||
747 | 11 | # | 175 | # |
748 | 12 | # Two targets will be created: | 176 | # Two targets will be created: |
857 | 13 | # - testComponentName - Runs the test with qmltestrunner | 177 | # - try${component_name} - Runs the test for manual interaction |
858 | 14 | # - tryComponentName - Runs the test with uqmlscene, for manual interaction | 178 | # - gdbtry${component_name} - Runs the test under gdb |
859 | 15 | # | 179 | |
860 | 16 | # To change/set a default value for the whole test suite, prior to calling add_qml_test, set: | 180 | function(add_manual_test COMPONENT_NAME TARGET) |
861 | 17 | # qmltest_DEFAULT_NO_ADD_TEST (default: FALSE) | 181 | import_executables(gdb OPTIONAL) |
862 | 18 | # qmltest_DEFAULT_TARGETS | 182 | |
863 | 19 | # qmltest_DEFAULT_IMPORT_PATHS | 183 | cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN}) |
864 | 20 | # qmltest_DEFAULT_PROPERTIES | 184 | mangle_arguments() |
865 | 21 | 185 | ||
866 | 22 | find_program(qmltestrunner_exe qmltestrunner) | 186 | bake_arguments("${QMLTEST_ARG_PREFIX}" args -qmljsdebugger=port:3768,3800) |
867 | 23 | find_program(qmlscene_exe qmlscene) | 187 | |
868 | 24 | 188 | set(qmltry_command | |
869 | 25 | if(NOT qmltestrunner_exe) | 189 | $<TARGET_FILE:${TARGET}> |
870 | 26 | msg(FATAL_ERROR "Could not locate qmltestrunner.") | 190 | ${QMLTEST_ARGS} |
871 | 27 | endif() | 191 | ${args} |
872 | 28 | 192 | ) | |
873 | 29 | macro(add_manual_qml_test SUBPATH COMPONENT_NAME) | 193 | |
874 | 30 | set(options NO_ADD_TEST NO_TARGETS) | 194 | add_qmltest_target(try${COMPONENT_NAME} ${TARGET} |
875 | 31 | set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT) | 195 | COMMAND ${qmltry_command} |
876 | 32 | 196 | ${depends} | |
877 | 33 | cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN}) | 197 | ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} |
878 | 34 | 198 | ) | |
879 | 35 | set(qmlscene_TARGET try${COMPONENT_NAME}) | 199 | |
880 | 36 | set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME}) | 200 | if(TARGET gdb) |
881 | 37 | 201 | add_qmltest_target(gdbtry${COMPONENT_NAME} ${TARGET} | |
882 | 38 | set(qmlscene_imports "") | 202 | COMMAND $<TARGET_FILE:gdb> -ex run -args ${qmltry_command} |
883 | 39 | if(NOT "${qmltest_IMPORT_PATHS}" STREQUAL "") | 203 | ${depends} |
884 | 40 | foreach(IMPORT_PATH ${qmltest_IMPORT_PATHS}) | 204 | ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} |
885 | 41 | list(APPEND qmlscene_imports "-I") | 205 | ) |
886 | 42 | list(APPEND qmlscene_imports ${IMPORT_PATH}) | 206 | endif() |
887 | 43 | endforeach(IMPORT_PATH) | 207 | endfunction() |
888 | 44 | elseif(NOT "${qmltest_DEFAULT_IMPORT_PATHS}" STREQUAL "") | 208 | |
889 | 45 | foreach(IMPORT_PATH ${qmltest_DEFAULT_IMPORT_PATHS}) | 209 | |
890 | 46 | list(APPEND qmlscene_imports "-I") | 210 | ################### INTERNAL #################### |
891 | 47 | list(APPEND qmlscene_imports ${IMPORT_PATH}) | 211 | |
892 | 48 | endforeach(IMPORT_PATH) | 212 | # add_qmltest_target(target_name target |
893 | 49 | endif() | 213 | # COMMAND test_exe [arg1 [...]] # execute this test with arguments |
894 | 50 | 214 | # [...] # see above for available arguments: | |
895 | 51 | set(qmlscene_command | 215 | # # ADD_TEST, ENVIRONMENT, DEPENDS and TARGETS |
896 | 52 | env ${qmltest_ENVIRONMENT} | 216 | # ) |
897 | 53 | ${qmlscene_exe} ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml | 217 | |
898 | 54 | ${qmlscene_imports} | 218 | function(add_qmltest_target TARGET_NAME TARGET) |
899 | 55 | ) | 219 | cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "COMMAND;${QMLTEST_MULTI}" ${ARGN}) |
900 | 56 | add_custom_target(${qmlscene_TARGET} ${qmlscene_command}) | 220 | mangle_arguments() |
901 | 57 | 221 | ||
902 | 58 | endmacro(add_manual_qml_test) | 222 | # Additional arguments |
903 | 59 | 223 | string(TOLOWER "${CMAKE_GENERATOR}" cmake_generator_lower) | |
904 | 60 | macro(add_qml_test SUBPATH COMPONENT_NAME) | 224 | if(cmake_generator_lower STREQUAL "unix makefiles") |
905 | 61 | set(options NO_ADD_TEST NO_TARGETS) | 225 | set(function "$(FUNCTION)") |
906 | 62 | set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT) | 226 | endif() |
907 | 63 | 227 | ||
908 | 64 | cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN}) | 228 | add_custom_target(${TARGET_NAME} |
909 | 65 | 229 | env ${QMLTEST_ENVIRONMENT} | |
910 | 66 | set(qmltest_TARGET test${COMPONENT_NAME}) | 230 | ${QMLTEST_COMMAND} ${function} |
911 | 67 | set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME}) | 231 | DEPENDS ${TARGET} ${QMLTEST_DEPENDS} |
912 | 68 | 232 | ) | |
913 | 69 | set(qmltestrunner_imports "") | 233 | |
914 | 70 | if(NOT "${qmltest_IMPORT_PATHS}" STREQUAL "") | 234 | if(QMLTEST_ADD_TEST) |
915 | 71 | foreach(IMPORT_PATH ${qmltest_IMPORT_PATHS}) | 235 | add_test( |
916 | 72 | list(APPEND qmltestrunner_imports "-import") | 236 | NAME ${TARGET_NAME} |
917 | 73 | list(APPEND qmltestrunner_imports ${IMPORT_PATH}) | 237 | COMMAND ${QMLTEST_COMMAND} |
918 | 74 | endforeach(IMPORT_PATH) | 238 | ) |
919 | 75 | elseif(NOT "${qmltest_DEFAULT_IMPORT_PATHS}" STREQUAL "") | 239 | |
920 | 76 | foreach(IMPORT_PATH ${qmltest_DEFAULT_IMPORT_PATHS}) | 240 | foreach(ENV ${QMLTEST_ENVIRONMENT}) |
921 | 77 | list(APPEND qmltestrunner_imports "-import") | 241 | set_property(TEST ${TARGET_NAME} APPEND PROPERTY ENVIRONMENT ${ENV}) |
922 | 78 | list(APPEND qmltestrunner_imports ${IMPORT_PATH}) | 242 | endforeach() |
923 | 79 | endforeach(IMPORT_PATH) | 243 | |
924 | 80 | endif() | 244 | set_property(TEST ${TARGET_NAME} APPEND PROPERTY DEPENDS ${TARGET}) |
925 | 81 | 245 | foreach(DEPEND ${DEPENDS}) | |
926 | 82 | set(qmltest_command | 246 | set_property(TEST ${TARGET_NAME} APPEND PROPERTY DEPENDS ${DEPEND}) |
927 | 83 | env ${qmltest_ENVIRONMENT} | 247 | endforeach() |
928 | 84 | ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml | 248 | endif() |
929 | 85 | ${qmltestrunner_imports} | 249 | |
930 | 86 | -o ${CMAKE_BINARY_DIR}/${qmltest_TARGET}.xml,xunitxml | 250 | foreach(UPSTREAM_TARGET ${QMLTEST_TARGETS}) |
931 | 87 | -o -,txt | 251 | add_dependencies(${UPSTREAM_TARGET} ${TARGET_NAME}) |
932 | 88 | ) | 252 | endforeach() |
933 | 89 | add_custom_target(${qmltest_TARGET} ${qmltest_command}) | 253 | endfunction() |
934 | 90 | 254 | ||
935 | 91 | if(NOT "${qmltest_PROPERTIES}" STREQUAL "") | 255 | |
936 | 92 | set_target_properties(${qmltest_TARGET} PROPERTIES ${qmltest_PROPERTIES}) | 256 | # mangle_arguments(${ARGN}) |
937 | 93 | elseif(NOT "${qmltest_DEFAULT_PROPERTIES}" STREQUAL "") | 257 | # |
938 | 94 | set_target_properties(${qmltest_TARGET} PROPERTIES ${qmltest_DEFAULT_PROPERTIES}) | 258 | # Verify there were no unparsed arguments and |
939 | 95 | endif() | 259 | # mangle the known ones for further processing. |
940 | 96 | 260 | ||
941 | 97 | if("${qmltest_NO_ADD_TEST}" STREQUAL FALSE AND NOT "${qmltest_DEFAULT_NO_ADD_TEST}" STREQUAL "TRUE") | 261 | macro(mangle_arguments) |
942 | 98 | add_test(${qmltest_TARGET} ${qmltest_command}) | 262 | if(QMLTEST_UNPARSED_ARGUMENTS) |
943 | 99 | 263 | message(FATAL_ERROR "Unexpected arguments: ${QMLTEST_UNPARSED_ARGUMENTS}") | |
944 | 100 | if(NOT "${qmltest_UNPARSED_ARGUMENTS}" STREQUAL "") | 264 | endif() |
945 | 101 | set_tests_properties(${qmltest_TARGET} PROPERTIES ${qmltest_PROPERTIES}) | 265 | |
946 | 102 | elseif(NOT "${qmltest_DEFAULT_PROPERTIES}" STREQUAL "") | 266 | if(QMLTEST_ADD_TEST) |
947 | 103 | set_tests_properties(${qmltest_TARGET} PROPERTIES ${qmltest_DEFAULT_PROPERTIES}) | 267 | set(add_test ADD_TEST) |
948 | 104 | endif() | 268 | endif() |
949 | 105 | endif("${qmltest_NO_ADD_TEST}" STREQUAL FALSE AND NOT "${qmltest_DEFAULT_NO_ADD_TEST}" STREQUAL "TRUE") | 269 | |
950 | 106 | 270 | if(QMLTEST_IMPORT_PATHS) | |
951 | 107 | if("${qmltest_NO_TARGETS}" STREQUAL "FALSE") | 271 | string(REPLACE ";" ":" imports "${QMLTEST_IMPORT_PATHS}") |
952 | 108 | if(NOT "${qmltest_TARGETS}" STREQUAL "") | 272 | endif() |
953 | 109 | foreach(TARGET ${qmltest_TARGETS}) | 273 | |
954 | 110 | add_dependencies(${TARGET} ${qmltest_TARGET}) | 274 | if(QMLTEST_ITERATIONS) |
955 | 111 | endforeach(TARGET) | 275 | set(iterations -iterations ${QMLTEST_ITERATIONS}) |
956 | 112 | elseif(NOT "${qmltest_DEFAULT_TARGETS}" STREQUAL "") | 276 | endif() |
957 | 113 | foreach(TARGET ${qmltest_DEFAULT_TARGETS}) | 277 | |
958 | 114 | add_dependencies(${TARGET} ${qmltest_TARGET}) | 278 | if(QMLTEST_DEPENDS) |
959 | 115 | endforeach(TARGET) | 279 | set(depends DEPENDS ${QMLTEST_DEPENDS}) |
960 | 116 | endif() | 280 | endif() |
961 | 117 | endif("${qmltest_NO_TARGETS}" STREQUAL "FALSE") | 281 | |
962 | 118 | 282 | if(QMLTEST_TARGETS) | |
963 | 119 | add_manual_qml_test(${SUBPATH} ${COMPONENT_NAME} ${ARGN}) | 283 | set(targets TARGETS ${QMLTEST_TARGETS}) |
964 | 120 | endmacro(add_qml_test) | 284 | endif() |
965 | 285 | |||
966 | 286 | set(xvfb_targets "") | ||
967 | 287 | foreach(target ${QMLTEST_TARGETS}) | ||
968 | 288 | if(TARGET xvfb${target}) | ||
969 | 289 | list(APPEND xvfb_targets xvfb${target}) | ||
970 | 290 | endif() | ||
971 | 291 | endforeach() | ||
972 | 292 | set(xvfb_targets "${xvfb_targets}" PARENT_SCOPE) | ||
973 | 293 | endmacro() | ||
974 | 294 | |||
975 | 295 | |||
976 | 296 | # bake_arguments(prefix output | ||
977 | 297 | # arg1 [arg2 [...]] | ||
978 | 298 | # ) | ||
979 | 299 | # | ||
980 | 300 | # If set, add the argument prefix before every passed | ||
981 | 301 | # argument and store the result in ${OUTPUT} variable. | ||
982 | 302 | |||
983 | 303 | function(bake_arguments PREFIX OUTPUT) | ||
984 | 304 | set(args "${ARGN}") | ||
985 | 305 | if(PREFIX) | ||
986 | 306 | set(args "") | ||
987 | 307 | foreach(arg ${ARGN}) | ||
988 | 308 | list(APPEND args ${PREFIX}) | ||
989 | 309 | list(APPEND args ${arg}) | ||
990 | 310 | endforeach() | ||
991 | 311 | endif() | ||
992 | 312 | set(${OUTPUT} "${args}" PARENT_SCOPE) | ||
993 | 313 | endfunction() | ||
994 | 121 | 314 | ||
995 | === removed file 'cmake_uninstall.cmake.in' | |||
996 | --- cmake_uninstall.cmake.in 2013-05-16 17:18:42 +0000 | |||
997 | +++ cmake_uninstall.cmake.in 1970-01-01 00:00:00 +0000 | |||
998 | @@ -1,21 +0,0 @@ | |||
999 | 1 | IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") | ||
1000 | 2 | MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") | ||
1001 | 3 | ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") | ||
1002 | 4 | |||
1003 | 5 | FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) | ||
1004 | 6 | STRING(REGEX REPLACE "\n" ";" files "${files}") | ||
1005 | 7 | FOREACH(file ${files}) | ||
1006 | 8 | MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") | ||
1007 | 9 | IF(EXISTS "$ENV{DESTDIR}${file}") | ||
1008 | 10 | EXEC_PROGRAM( | ||
1009 | 11 | "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" | ||
1010 | 12 | OUTPUT_VARIABLE rm_out | ||
1011 | 13 | RETURN_VALUE rm_retval | ||
1012 | 14 | ) | ||
1013 | 15 | IF(NOT "${rm_retval}" STREQUAL 0) | ||
1014 | 16 | MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") | ||
1015 | 17 | ENDIF(NOT "${rm_retval}" STREQUAL 0) | ||
1016 | 18 | ELSE(EXISTS "$ENV{DESTDIR}${file}") | ||
1017 | 19 | MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") | ||
1018 | 20 | ENDIF(EXISTS "$ENV{DESTDIR}${file}") | ||
1019 | 21 | ENDFOREACH(file) | ||
1020 | 22 | 0 | ||
1021 | === modified file 'debian/changelog' | |||
1022 | --- debian/changelog 2016-08-09 23:00:43 +0000 | |||
1023 | +++ debian/changelog 2016-08-17 18:09:13 +0000 | |||
1024 | @@ -1,3 +1,10 @@ | |||
1025 | 1 | ubuntu-settings-components (0.9-0ubuntu1) UNRELEASED; urgency=medium | ||
1026 | 2 | |||
1027 | 3 | * rename qtdeclarative5-ubuntu-settings-components to new naming scheme, | ||
1028 | 4 | qml-module-ubuntu-settings-components | ||
1029 | 5 | |||
1030 | 6 | -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 29 Jan 2016 00:10:05 +0100 | ||
1031 | 7 | |||
1032 | 1 | ubuntu-settings-components (0.8+16.10.20160809-0ubuntu1) yakkety; urgency=medium | 8 | ubuntu-settings-components (0.8+16.10.20160809-0ubuntu1) yakkety; urgency=medium |
1033 | 2 | 9 | ||
1034 | 3 | [ Albert Astals Cid ] | 10 | [ Albert Astals Cid ] |
1035 | 4 | 11 | ||
1036 | === modified file 'debian/control' | |||
1037 | --- debian/control 2016-06-14 12:01:31 +0000 | |||
1038 | +++ debian/control 2016-08-17 18:09:13 +0000 | |||
1039 | @@ -1,19 +1,21 @@ | |||
1040 | 1 | Source: ubuntu-settings-components | 1 | Source: ubuntu-settings-components |
1041 | 2 | Section: misc | 2 | Section: misc |
1042 | 3 | Priority: optional | 3 | Priority: optional |
1044 | 4 | Maintainer: Andrea Cimitan <andrea.cimitan@canonical.com> | 4 | Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> |
1045 | 5 | Build-Depends: cmake, | 5 | Build-Depends: cmake, |
1046 | 6 | cmake-extras (>= 0.6), | ||
1047 | 6 | debhelper (>= 9), | 7 | debhelper (>= 9), |
1048 | 7 | pkg-config, | 8 | pkg-config, |
1049 | 9 | python3:any, | ||
1050 | 10 | qml-module-qt-labs-folderlistmodel, | ||
1051 | 8 | qml-module-qtquick-layouts, | 11 | qml-module-qtquick-layouts, |
1053 | 9 | qt5-default, | 12 | qml-module-qtquick2, |
1054 | 13 | qml-module-qttest, | ||
1055 | 14 | qml-module-ubuntu-components | qml-module-ubuntu-components-gles, | ||
1056 | 15 | qml-module-ubuntu-thumbnailer0.1, | ||
1057 | 10 | qtbase5-private-dev, | 16 | qtbase5-private-dev, |
1058 | 11 | qtdeclarative5-dev, | 17 | qtdeclarative5-dev, |
1059 | 12 | qtdeclarative5-dev-tools, | 18 | qtdeclarative5-dev-tools, |
1060 | 13 | qtdeclarative5-qtquick2-plugin, | ||
1061 | 14 | qtdeclarative5-quicklayouts-plugin, | ||
1062 | 15 | qtdeclarative5-test-plugin, | ||
1063 | 16 | qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.1) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.1), | ||
1064 | 17 | suru-icon-theme, | 19 | suru-icon-theme, |
1065 | 18 | Standards-Version: 3.9.4 | 20 | Standards-Version: 3.9.4 |
1066 | 19 | Homepage: https://launchpad.net/ubuntu-settings-components | 21 | Homepage: https://launchpad.net/ubuntu-settings-components |
1067 | @@ -26,7 +28,18 @@ | |||
1068 | 26 | Package: qtdeclarative5-ubuntu-settings-components | 28 | Package: qtdeclarative5-ubuntu-settings-components |
1069 | 27 | Architecture: any | 29 | Architecture: any |
1070 | 28 | Multi-Arch: same | 30 | Multi-Arch: same |
1072 | 29 | Pre-Depends: dpkg (>= 1.15.6~) | 31 | Section: oldlibs |
1073 | 32 | Depends: qml-module-ubuntu-settings-components, | ||
1074 | 33 | ${misc:Depends}, | ||
1075 | 34 | Description: transitional dummy package for Ubuntu settings components | ||
1076 | 35 | Ubuntu settings components for Unity8 | ||
1077 | 36 | . | ||
1078 | 37 | This is a transitional dummy package which can be safely removed. | ||
1079 | 38 | |||
1080 | 39 | Package: qml-module-ubuntu-settings-components | ||
1081 | 40 | Architecture: any | ||
1082 | 41 | Multi-Arch: same | ||
1083 | 42 | Pre-Depends: dpkg (>= 1.15.6~), | ||
1084 | 30 | Depends: gsettings-ubuntu-schemas (>= 0.0.7), | 43 | Depends: gsettings-ubuntu-schemas (>= 0.0.7), |
1085 | 31 | qml-module-biometryd, | 44 | qml-module-biometryd, |
1086 | 32 | qml-module-qtquick-layouts, | 45 | qml-module-qtquick-layouts, |
1087 | @@ -35,7 +48,7 @@ | |||
1088 | 35 | suru-icon-theme, | 48 | suru-icon-theme, |
1089 | 36 | ${misc:Depends}, | 49 | ${misc:Depends}, |
1090 | 37 | ${shlibs:Depends}, | 50 | ${shlibs:Depends}, |
1095 | 38 | Breaks: qtdeclarative5-ubuntu-settings-components-assets (<< 0.3), | 51 | Breaks: qtdeclarative5-ubuntu-settings-components (<< 0.9), |
1096 | 39 | Replaces: qtdeclarative5-ubuntu-settings-components-assets (<< 0.3), | 52 | Replaces: qtdeclarative5-ubuntu-settings-components (<< 0.9), |
1097 | 40 | Description: Ubuntu Settings Components | 53 | Description: Ubuntu settings Components |
1098 | 41 | Ubuntu settings components for Unity | 54 | Ubuntu settings components for Unity8 |
1099 | 42 | 55 | ||
1100 | === added file 'debian/qml-module-ubuntu-settings-components.install' | |||
1101 | --- debian/qml-module-ubuntu-settings-components.install 1970-01-01 00:00:00 +0000 | |||
1102 | +++ debian/qml-module-ubuntu-settings-components.install 2016-08-17 18:09:13 +0000 | |||
1103 | @@ -0,0 +1,5 @@ | |||
1104 | 1 | usr/lib/*/qt5/qml/Ubuntu/Settings/Components | ||
1105 | 2 | usr/lib/*/qt5/qml/Ubuntu/Settings/Fingerprint | ||
1106 | 3 | usr/lib/*/qt5/qml/Ubuntu/Settings/Menus | ||
1107 | 4 | usr/lib/*/qt5/qml/Ubuntu/Settings/Vpn | ||
1108 | 5 | usr/share/locale | ||
1109 | 0 | 6 | ||
1110 | === modified file 'debian/rules' | |||
1111 | --- debian/rules 2014-06-26 15:04:45 +0000 | |||
1112 | +++ debian/rules 2016-08-17 18:09:13 +0000 | |||
1113 | @@ -5,5 +5,7 @@ | |||
1114 | 5 | #export DH_VERBOSE=1 | 5 | #export DH_VERBOSE=1 |
1115 | 6 | export DPKG_GENSYMBOLS_CHECK_LEVEL=4 | 6 | export DPKG_GENSYMBOLS_CHECK_LEVEL=4 |
1116 | 7 | 7 | ||
1117 | 8 | export QT_SELECT=5 | ||
1118 | 9 | |||
1119 | 8 | %: | 10 | %: |
1120 | 9 | dh $@ --parallel --fail-missing | 11 | dh $@ --parallel --fail-missing |
1121 | 10 | 12 | ||
1122 | === added directory 'debian/tests' | |||
1123 | === added file 'debian/tests/control' | |||
1124 | --- debian/tests/control 1970-01-01 00:00:00 +0000 | |||
1125 | +++ debian/tests/control 2016-08-17 18:09:13 +0000 | |||
1126 | @@ -0,0 +1,4 @@ | |||
1127 | 1 | Tests: qmluitests.sh | ||
1128 | 2 | Depends: @, | ||
1129 | 3 | @builddeps@, | ||
1130 | 4 | xvfb, | ||
1131 | 0 | 5 | ||
1132 | === added file 'debian/tests/qmluitests.sh' | |||
1133 | --- debian/tests/qmluitests.sh 1970-01-01 00:00:00 +0000 | |||
1134 | +++ debian/tests/qmluitests.sh 2016-08-17 18:09:13 +0000 | |||
1135 | @@ -0,0 +1,10 @@ | |||
1136 | 1 | #!/bin/sh | ||
1137 | 2 | |||
1138 | 3 | export QT_SELECT=5 | ||
1139 | 4 | |||
1140 | 5 | dh_auto_configure -- -DARTIFACTS_DIR=${ADT_ARTIFACTS} \ | ||
1141 | 6 | -DUSC_PLUGINPATH= | ||
1142 | 7 | |||
1143 | 8 | dh_auto_build --parallel -- -C tests/qmltests/mocks | ||
1144 | 9 | |||
1145 | 10 | dh_auto_build --parallel -- -k xvfballtests | ||
1146 | 0 | 11 | ||
1147 | === modified file 'examples/Fingerprint.qml' | |||
1148 | --- examples/Fingerprint.qml 2016-06-15 10:45:27 +0000 | |||
1149 | +++ examples/Fingerprint.qml 2016-08-17 18:09:13 +0000 | |||
1150 | @@ -17,7 +17,7 @@ | |||
1151 | 17 | */ | 17 | */ |
1152 | 18 | 18 | ||
1153 | 19 | import QtQuick 2.4 | 19 | import QtQuick 2.4 |
1155 | 20 | import QtQuick.Layouts 1.2 | 20 | import QtQuick.Layouts 1.1 |
1156 | 21 | import Ubuntu.Components 1.3 | 21 | import Ubuntu.Components 1.3 |
1157 | 22 | import Ubuntu.Components.Popups 1.3 | 22 | import Ubuntu.Components.Popups 1.3 |
1158 | 23 | import Ubuntu.Components.ListItems 1.3 as ListItems | 23 | import Ubuntu.Components.ListItems 1.3 as ListItems |
1159 | 24 | 24 | ||
1160 | === modified file 'plugins/Ubuntu/Settings/Components/CMakeLists.txt' | |||
1161 | --- plugins/Ubuntu/Settings/Components/CMakeLists.txt 2015-04-07 09:42:19 +0000 | |||
1162 | +++ plugins/Ubuntu/Settings/Components/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1163 | @@ -1,12 +1,5 @@ | |||
1164 | 1 | project(UbuntuSettingsComponentsQml) | 1 | project(UbuntuSettingsComponentsQml) |
1165 | 2 | 2 | ||
1166 | 3 | find_package(Qt5Core REQUIRED) | ||
1167 | 4 | |||
1168 | 5 | include_directories( | ||
1169 | 6 | ${CMAKE_CURRENT_SOURCE_DIR} | ||
1170 | 7 | ${CMAKE_CURRENT_BINARY_DIR} | ||
1171 | 8 | ) | ||
1172 | 9 | |||
1173 | 10 | add_definitions(-DUBUNTUSETTINGSCOMPONENTS_LIBRARY) | 3 | add_definitions(-DUBUNTUSETTINGSCOMPONENTS_LIBRARY) |
1174 | 11 | 4 | ||
1175 | 12 | add_library(UbuntuSettingsComponentsQml MODULE | 5 | add_library(UbuntuSettingsComponentsQml MODULE |
1176 | @@ -14,6 +7,10 @@ | |||
1177 | 14 | serverpropertysynchroniser.cpp | 7 | serverpropertysynchroniser.cpp |
1178 | 15 | ) | 8 | ) |
1179 | 16 | 9 | ||
1181 | 17 | qt5_use_modules(UbuntuSettingsComponentsQml Core Qml Quick) | 10 | target_link_libraries(UbuntuSettingsComponentsQml |
1182 | 11 | Qt5::Core | ||
1183 | 12 | Qt5::Qml | ||
1184 | 13 | Qt5::Quick | ||
1185 | 14 | ) | ||
1186 | 18 | 15 | ||
1187 | 19 | add_usc_plugin(Ubuntu.Settings.Components 0.1 Ubuntu/Settings/Components TARGETS UbuntuSettingsComponentsQml) | 16 | add_usc_plugin(Ubuntu.Settings.Components 0.1 Ubuntu/Settings/Components TARGETS UbuntuSettingsComponentsQml) |
1188 | 20 | 17 | ||
1189 | === removed file 'plugins/Ubuntu/Settings/Components/Components.qmltypes' | |||
1190 | --- plugins/Ubuntu/Settings/Components/Components.qmltypes 2015-04-07 09:42:19 +0000 | |||
1191 | +++ plugins/Ubuntu/Settings/Components/Components.qmltypes 1970-01-01 00:00:00 +0000 | |||
1192 | @@ -1,73 +0,0 @@ | |||
1193 | 1 | import QtQuick.tooling 1.1 | ||
1194 | 2 | |||
1195 | 3 | // This file describes the plugin-supplied types contained in the library. | ||
1196 | 4 | // It is used for QML tooling purposes only. | ||
1197 | 5 | // | ||
1198 | 6 | // This file was auto-generated by: | ||
1199 | 7 | // 'qmlplugindump -notrelocatable Ubuntu.Settings.Components 0.1 plugins' | ||
1200 | 8 | |||
1201 | 9 | Module { | ||
1202 | 10 | Component { | ||
1203 | 11 | name: "ServerPropertySynchroniser" | ||
1204 | 12 | prototype: "QObject" | ||
1205 | 13 | exports: ["Ubuntu.Settings.Components/ServerPropertySynchroniser 0.1"] | ||
1206 | 14 | exportMetaObjectRevisions: [0] | ||
1207 | 15 | Property { name: "serverTarget"; type: "QObject"; isPointer: true } | ||
1208 | 16 | Property { name: "serverProperty"; type: "string" } | ||
1209 | 17 | Property { name: "userTarget"; type: "QObject"; isPointer: true } | ||
1210 | 18 | Property { name: "userProperty"; type: "string" } | ||
1211 | 19 | Property { name: "userTrigger"; type: "string" } | ||
1212 | 20 | Property { name: "syncTimeout"; type: "int" } | ||
1213 | 21 | Property { name: "useWaitBuffer"; type: "bool" } | ||
1214 | 22 | Property { name: "maximumWaitBufferInterval"; type: "int" } | ||
1215 | 23 | Property { name: "bufferedSyncTimeout"; type: "bool" } | ||
1216 | 24 | Property { name: "syncWaiting"; type: "bool"; isReadonly: true } | ||
1217 | 25 | Signal { | ||
1218 | 26 | name: "serverTargetChanged" | ||
1219 | 27 | Parameter { name: "serverTarget"; type: "QObject"; isPointer: true } | ||
1220 | 28 | } | ||
1221 | 29 | Signal { | ||
1222 | 30 | name: "serverPropertyChanged" | ||
1223 | 31 | Parameter { name: "serverProperty"; type: "string" } | ||
1224 | 32 | } | ||
1225 | 33 | Signal { | ||
1226 | 34 | name: "userTargetChanged" | ||
1227 | 35 | Parameter { name: "userTarget"; type: "QObject"; isPointer: true } | ||
1228 | 36 | } | ||
1229 | 37 | Signal { | ||
1230 | 38 | name: "userPropertyChanged" | ||
1231 | 39 | Parameter { name: "serverProperty"; type: "string" } | ||
1232 | 40 | } | ||
1233 | 41 | Signal { | ||
1234 | 42 | name: "userTriggerChanged" | ||
1235 | 43 | Parameter { name: "userTrigger"; type: "string" } | ||
1236 | 44 | } | ||
1237 | 45 | Signal { | ||
1238 | 46 | name: "syncTimeoutChanged" | ||
1239 | 47 | Parameter { name: "timeout"; type: "int" } | ||
1240 | 48 | } | ||
1241 | 49 | Signal { | ||
1242 | 50 | name: "syncWaitingChanged" | ||
1243 | 51 | Parameter { name: "waiting"; type: "bool" } | ||
1244 | 52 | } | ||
1245 | 53 | Signal { | ||
1246 | 54 | name: "bufferedSyncTimeoutChanged" | ||
1247 | 55 | Parameter { type: "bool" } | ||
1248 | 56 | } | ||
1249 | 57 | Signal { | ||
1250 | 58 | name: "useWaitBufferChanged" | ||
1251 | 59 | Parameter { name: "useWaitBuffer"; type: "bool" } | ||
1252 | 60 | } | ||
1253 | 61 | Signal { | ||
1254 | 62 | name: "maximumWaitBufferIntervalChanged" | ||
1255 | 63 | Parameter { name: "timeout"; type: "int" } | ||
1256 | 64 | } | ||
1257 | 65 | Signal { | ||
1258 | 66 | name: "syncTriggered" | ||
1259 | 67 | Parameter { name: "value"; type: "QVariant" } | ||
1260 | 68 | } | ||
1261 | 69 | Method { name: "updateUserValue" } | ||
1262 | 70 | Method { name: "activate" } | ||
1263 | 71 | Method { name: "reset" } | ||
1264 | 72 | } | ||
1265 | 73 | } | ||
1266 | 74 | 0 | ||
1267 | === modified file 'plugins/Ubuntu/Settings/Components/serverpropertysynchroniser.cpp' | |||
1268 | --- plugins/Ubuntu/Settings/Components/serverpropertysynchroniser.cpp 2015-05-06 16:31:57 +0000 | |||
1269 | +++ plugins/Ubuntu/Settings/Components/serverpropertysynchroniser.cpp 2016-08-17 18:09:13 +0000 | |||
1270 | @@ -18,7 +18,6 @@ | |||
1271 | 18 | 18 | ||
1272 | 19 | #include <QQmlProperty> | 19 | #include <QQmlProperty> |
1273 | 20 | #include <QTimer> | 20 | #include <QTimer> |
1274 | 21 | #include <QDebug> | ||
1275 | 22 | 21 | ||
1276 | 23 | ServerPropertySynchroniser::ServerPropertySynchroniser(QObject* parent) | 22 | ServerPropertySynchroniser::ServerPropertySynchroniser(QObject* parent) |
1277 | 24 | : QObject(parent) | 23 | : QObject(parent) |
1278 | 25 | 24 | ||
1279 | === modified file 'plugins/Ubuntu/Settings/Menus/CMakeLists.txt' | |||
1280 | --- plugins/Ubuntu/Settings/Menus/CMakeLists.txt 2014-07-31 13:05:44 +0000 | |||
1281 | +++ plugins/Ubuntu/Settings/Menus/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1282 | @@ -1,29 +1,21 @@ | |||
1283 | 1 | project(UbuntuSettingsMenusQml) | 1 | project(UbuntuSettingsMenusQml) |
1284 | 2 | 2 | ||
1293 | 3 | find_package(Qt5Core REQUIRED) | 3 | add_definitions(-DUBUNTUSETTINGSCOMPONENTS_LIBRARY) |
1294 | 4 | 4 | ||
1295 | 5 | include_directories( | 5 | add_library(UbuntuSettingsMenusQml MODULE |
1288 | 6 | ${CMAKE_CURRENT_SOURCE_DIR} | ||
1289 | 7 | ${CMAKE_CURRENT_BINARY_DIR} | ||
1290 | 8 | ) | ||
1291 | 9 | |||
1292 | 10 | set(UbuntuSettingsMenusQml_SOURCES | ||
1296 | 11 | plugin.cpp | 6 | plugin.cpp |
1297 | 12 | types.h | 7 | types.h |
1298 | 13 | ) | ||
1299 | 14 | add_definitions(-DUBUNTUSETTINGSCOMPONENTS_LIBRARY) | ||
1300 | 15 | |||
1301 | 16 | add_library(UbuntuSettingsMenusQml MODULE | ||
1302 | 17 | ${UbuntuSettingsMenusQml_SOURCES} | 8 | ${UbuntuSettingsMenusQml_SOURCES} |
1303 | 18 | ) | 9 | ) |
1304 | 19 | 10 | ||
1305 | 20 | target_link_libraries(UbuntuSettingsMenusQml | 11 | target_link_libraries(UbuntuSettingsMenusQml |
1306 | 12 | Qt5::Core | ||
1307 | 13 | Qt5::Qml | ||
1308 | 14 | Qt5::Quick | ||
1309 | 21 | ${GLIB_LIBRARIES} | 15 | ${GLIB_LIBRARIES} |
1310 | 22 | ${GIO_LIBRARIES} | 16 | ${GIO_LIBRARIES} |
1311 | 23 | ${QMENUMODEL_LDFLAGS} | 17 | ${QMENUMODEL_LDFLAGS} |
1312 | 24 | ${LIBUPSTART_LIBRARIES} | 18 | ${LIBUPSTART_LIBRARIES} |
1313 | 25 | ) | 19 | ) |
1314 | 26 | 20 | ||
1315 | 27 | qt5_use_modules(UbuntuSettingsMenusQml Core Qml Quick) | ||
1316 | 28 | |||
1317 | 29 | add_usc_plugin(Ubuntu.Settings.Menus 0.1 Ubuntu/Settings/Menus TARGETS UbuntuSettingsMenusQml) | 21 | add_usc_plugin(Ubuntu.Settings.Menus 0.1 Ubuntu/Settings/Menus TARGETS UbuntuSettingsMenusQml) |
1318 | 30 | 22 | ||
1319 | === removed file 'plugins/Ubuntu/Settings/Menus/Menus.qmltypes' | |||
1320 | --- plugins/Ubuntu/Settings/Menus/Menus.qmltypes 2015-04-07 09:42:19 +0000 | |||
1321 | +++ plugins/Ubuntu/Settings/Menus/Menus.qmltypes 1970-01-01 00:00:00 +0000 | |||
1322 | @@ -1,30 +0,0 @@ | |||
1323 | 1 | import QtQuick.tooling 1.1 | ||
1324 | 2 | |||
1325 | 3 | // This file describes the plugin-supplied types contained in the library. | ||
1326 | 4 | // It is used for QML tooling purposes only. | ||
1327 | 5 | // | ||
1328 | 6 | // This file was auto-generated by: | ||
1329 | 7 | // 'qmlplugindump -notrelocatable Ubuntu.Settings.Menus 0.1 plugins' | ||
1330 | 8 | |||
1331 | 9 | Module { | ||
1332 | 10 | Component { | ||
1333 | 11 | name: "TransferState" | ||
1334 | 12 | prototype: "QObject" | ||
1335 | 13 | exports: ["Ubuntu.Settings.Menus/TransferState 0.1"] | ||
1336 | 14 | isCreatable: false | ||
1337 | 15 | exportMetaObjectRevisions: [0] | ||
1338 | 16 | Enum { | ||
1339 | 17 | name: "TransferStates" | ||
1340 | 18 | values: { | ||
1341 | 19 | "Queued": 0, | ||
1342 | 20 | "Running": 1, | ||
1343 | 21 | "Paused": 2, | ||
1344 | 22 | "Canceled": 3, | ||
1345 | 23 | "Hashing": 4, | ||
1346 | 24 | "Processing": 5, | ||
1347 | 25 | "Finished": 6, | ||
1348 | 26 | "Error": 7 | ||
1349 | 27 | } | ||
1350 | 28 | } | ||
1351 | 29 | } | ||
1352 | 30 | } | ||
1353 | 31 | 0 | ||
1354 | === modified file 'runtests.sh' | |||
1355 | --- runtests.sh 2014-08-04 14:27:30 +0000 | |||
1356 | +++ runtests.sh 2016-08-17 18:09:13 +0000 | |||
1357 | @@ -53,7 +53,7 @@ | |||
1358 | 53 | 53 | ||
1359 | 54 | cd - | 54 | cd - |
1360 | 55 | 55 | ||
1362 | 56 | make -k qmltests | 56 | make -k alltests |
1363 | 57 | 57 | ||
1364 | 58 | cd - | 58 | cd - |
1365 | 59 | 59 | ||
1366 | 60 | 60 | ||
1367 | === modified file 'tests/CMakeLists.txt' | |||
1368 | --- tests/CMakeLists.txt 2016-02-29 18:14:22 +0000 | |||
1369 | +++ tests/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1370 | @@ -1,10 +1,53 @@ | |||
1371 | 1 | include(QmlTest) | ||
1372 | 2 | |||
1373 | 3 | # QML tests that require graphical capabilities. | ||
1374 | 4 | add_custom_target(uitests) | ||
1375 | 5 | add_custom_target(xvfbuitests) | ||
1376 | 6 | |||
1377 | 7 | add_custom_target(alltests) | ||
1378 | 8 | add_dependencies(alltests uitests) | ||
1379 | 9 | |||
1380 | 10 | add_custom_target(xvfballtests) | ||
1381 | 11 | add_dependencies(xvfballtests xvfbuitests) | ||
1382 | 12 | |||
1383 | 1 | add_subdirectory(utils) | 13 | add_subdirectory(utils) |
1384 | 2 | 14 | ||
1392 | 3 | # QML tests that require graphical capabitlies. | 15 | set(USC_PLUGINPATH "${CMAKE_BINARY_DIR}/plugins" CACHE PATH "Path to pre-built u-s-c plugin dir.") |
1393 | 4 | add_custom_target(qmluitests) | 16 | |
1394 | 5 | add_dependencies(qmluitests UbuntuTest) | 17 | set(USC_IMPORT_PATHS |
1395 | 6 | 18 | ${CMAKE_BINARY_DIR}/tests/qmltests/mocks | |
1396 | 7 | add_custom_target(qmltests) | 19 | ${CMAKE_BINARY_DIR}/tests/utils/modules |
1397 | 8 | add_dependencies(qmltests qmluitests) | 20 | ${USC_PLUGINPATH} |
1398 | 9 | 21 | ) | |
1399 | 22 | |||
1400 | 23 | macro(usc_parse_arguments) | ||
1401 | 24 | cmake_parse_arguments(USCTEST | ||
1402 | 25 | "${QMLTEST_OPTIONS}" | ||
1403 | 26 | "${QMLTEST_SINGLE}" | ||
1404 | 27 | "${QMLTEST_MULTI}" | ||
1405 | 28 | ${ARGN} | ||
1406 | 29 | ) | ||
1407 | 30 | |||
1408 | 31 | set(environment | ||
1409 | 32 | UNITY_TESTING=1 | ||
1410 | 33 | LANGUAGE=C | ||
1411 | 34 | LC_ALL=C.UTF-8 | ||
1412 | 35 | ) | ||
1413 | 36 | endmacro() | ||
1414 | 37 | |||
1415 | 38 | # add a graphical qml test | ||
1416 | 39 | # see QmlTest.cmake for additional options | ||
1417 | 40 | function(add_usc_qmltest PATH COMPONENT_NAME) | ||
1418 | 41 | usc_parse_arguments(${ARGN}) | ||
1419 | 42 | add_qml_test(${PATH} ${COMPONENT_NAME} | ||
1420 | 43 | DEPENDS UbuntuTest | ||
1421 | 44 | IMPORT_PATHS ${USC_IMPORT_PATHS} | ||
1422 | 45 | TARGETS uitests | ||
1423 | 46 | ${ARGN} | ||
1424 | 47 | ENVIRONMENT ${environment} | ||
1425 | 48 | ${USCTEST_ENVIRONMENT} | ||
1426 | 49 | ) | ||
1427 | 50 | endfunction() | ||
1428 | 51 | |||
1429 | 52 | add_subdirectory(imports) | ||
1430 | 10 | add_subdirectory(qmltests) | 53 | add_subdirectory(qmltests) |
1431 | 11 | 54 | ||
1432 | === added directory 'tests/imports' | |||
1433 | === added file 'tests/imports/CMakeLists.txt' | |||
1434 | --- tests/imports/CMakeLists.txt 1970-01-01 00:00:00 +0000 | |||
1435 | +++ tests/imports/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1436 | @@ -0,0 +1,5 @@ | |||
1437 | 1 | |||
1438 | 2 | # | ||
1439 | 3 | # Test that all imports for QtQuick and Ubuntu.Components use the wanted version | ||
1440 | 4 | # | ||
1441 | 5 | add_test(imports ${CMAKE_CURRENT_SOURCE_DIR}/check_imports.py ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}) | ||
1442 | 0 | 6 | ||
1443 | === added file 'tests/imports/check_imports.py' | |||
1444 | --- tests/imports/check_imports.py 1970-01-01 00:00:00 +0000 | |||
1445 | +++ tests/imports/check_imports.py 2016-08-17 18:09:13 +0000 | |||
1446 | @@ -0,0 +1,125 @@ | |||
1447 | 1 | #! /usr/bin/env python3 | ||
1448 | 2 | |||
1449 | 3 | # | ||
1450 | 4 | # Copyright (C) 2015 Canonical Ltd | ||
1451 | 5 | # | ||
1452 | 6 | # This program is free software: you can redistribute it and/or modify | ||
1453 | 7 | # it under the terms of the GNU General Public License version 3 as | ||
1454 | 8 | # published by the Free Software Foundation. | ||
1455 | 9 | # | ||
1456 | 10 | # This program is distributed in the hope that it will be useful, | ||
1457 | 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1458 | 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
1459 | 13 | # GNU General Public License for more details. | ||
1460 | 14 | # | ||
1461 | 15 | # You should have received a copy of the GNU General Public License | ||
1462 | 16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
1463 | 17 | # | ||
1464 | 18 | |||
1465 | 19 | # | ||
1466 | 20 | # Little helper program to test that all source files import | ||
1467 | 21 | # versions we want | ||
1468 | 22 | # | ||
1469 | 23 | # Usage: check_imports.py directory [ignore_prefix] | ||
1470 | 24 | # | ||
1471 | 25 | # The directory specifies the (recursive) location of the source files. Any | ||
1472 | 26 | # files with a path that starts with ignore_prefix are not checked. This is | ||
1473 | 27 | # useful to exclude files that are generated into the build directory. | ||
1474 | 28 | # | ||
1475 | 29 | # See the file_pat definition below for a list of files that are checked. | ||
1476 | 30 | # | ||
1477 | 31 | |||
1478 | 32 | from __future__ import print_function | ||
1479 | 33 | |||
1480 | 34 | import argparse | ||
1481 | 35 | import os | ||
1482 | 36 | import re | ||
1483 | 37 | import sys | ||
1484 | 38 | |||
1485 | 39 | |||
1486 | 40 | # Print msg on stderr, preceded by program name and followed by newline | ||
1487 | 41 | def error(msg): | ||
1488 | 42 | print(os.path.basename(sys.argv[0]) + ": " + msg, file=sys.stderr) | ||
1489 | 43 | |||
1490 | 44 | |||
1491 | 45 | # Function to raise errors encountered by os.walk | ||
1492 | 46 | def raise_error(e): | ||
1493 | 47 | raise e | ||
1494 | 48 | |||
1495 | 49 | # Qt Quick patterns | ||
1496 | 50 | # If you increase this make sure you increase | ||
1497 | 51 | # the Qt version in debian/control and in CMakeLists.txt | ||
1498 | 52 | quick_pat = re.compile(r'.*import QtQuick.*$') | ||
1499 | 53 | quick_good_pat = re.compile(r'.*import QtQuick 2\.4.*$') | ||
1500 | 54 | quick_layouts_good_pat = re.compile(r'.*import QtQuick.Layouts 1\.1.*$') | ||
1501 | 55 | quick_window_good_pat = re.compile(r'.*import QtQuick.Window 2\.2.*$') | ||
1502 | 56 | |||
1503 | 57 | # Ubuntu Components patterns | ||
1504 | 58 | ubuntu_components_pat = re.compile(r'.*import Ubuntu.Components.*') | ||
1505 | 59 | ubuntu_good_components_pat = re.compile(r'.*import Ubuntu.Components.*1\.3.*') | ||
1506 | 60 | |||
1507 | 61 | def scan_for_bad_import(file_path, all_pat, good_pats): | ||
1508 | 62 | errors = [] | ||
1509 | 63 | with open(file_path, 'rt', encoding='utf-8') as ifile: | ||
1510 | 64 | for lino, line in enumerate(ifile, start=1): | ||
1511 | 65 | if all_pat.match(line): | ||
1512 | 66 | good_found = False | ||
1513 | 67 | for good_pat in good_pats: | ||
1514 | 68 | if good_pat.match(line): | ||
1515 | 69 | good_found = True | ||
1516 | 70 | if not good_found: | ||
1517 | 71 | errors.append(lino) | ||
1518 | 72 | if 0 < len(errors) <= 10: | ||
1519 | 73 | if len(errors) > 1: | ||
1520 | 74 | plural = 's' | ||
1521 | 75 | else: | ||
1522 | 76 | plural = '' | ||
1523 | 77 | print( | ||
1524 | 78 | "%s: bad import version in line%s %s" % ( | ||
1525 | 79 | file_path, plural, ", ".join((str(i) for i in errors)))) | ||
1526 | 80 | elif errors: | ||
1527 | 81 | print("%s: bad import version in multiple lines" % file_path) | ||
1528 | 82 | return bool(errors) | ||
1529 | 83 | |||
1530 | 84 | # Parse args | ||
1531 | 85 | |||
1532 | 86 | parser = argparse.ArgumentParser( | ||
1533 | 87 | description='Test that source files contain the wanted import version.') | ||
1534 | 88 | parser.add_argument( | ||
1535 | 89 | 'dir', nargs=1, | ||
1536 | 90 | help='The directory to (recursively) search for source files') | ||
1537 | 91 | parser.add_argument( | ||
1538 | 92 | 'ignore_prefix', nargs='?', default=None, | ||
1539 | 93 | help='Ignore source files with a path that starts with the given prefix.') | ||
1540 | 94 | args = parser.parse_args() | ||
1541 | 95 | |||
1542 | 96 | # Files we want to check for import version. | ||
1543 | 97 | |||
1544 | 98 | file_pat = ( | ||
1545 | 99 | r'(.*\.(js|qml)$)') | ||
1546 | 100 | pat = re.compile(file_pat) | ||
1547 | 101 | |||
1548 | 102 | # Find all the files with matching file extension in the specified | ||
1549 | 103 | # directory and check them | ||
1550 | 104 | |||
1551 | 105 | directory = os.path.abspath(args.dir[0]) | ||
1552 | 106 | ignore = args.ignore_prefix and os.path.abspath(args.ignore_prefix) or None | ||
1553 | 107 | |||
1554 | 108 | found_bad_import = False | ||
1555 | 109 | try: | ||
1556 | 110 | for root, dirs, files in os.walk(directory, onerror=raise_error): | ||
1557 | 111 | for file in files: | ||
1558 | 112 | path = os.path.join(root, file) | ||
1559 | 113 | if not (ignore and path.startswith(ignore)) and pat.match(file): | ||
1560 | 114 | quick_good_pats = [quick_good_pat, quick_layouts_good_pat, quick_window_good_pat] | ||
1561 | 115 | if scan_for_bad_import(path, quick_pat, quick_good_pats): | ||
1562 | 116 | found_bad_import = True | ||
1563 | 117 | if scan_for_bad_import(path, ubuntu_components_pat, [ubuntu_good_components_pat]): | ||
1564 | 118 | found_bad_import = True | ||
1565 | 119 | |||
1566 | 120 | except OSError as e: | ||
1567 | 121 | error("cannot create file list for \"" + dir + "\": " + e.strerror) | ||
1568 | 122 | sys.exit(1) | ||
1569 | 123 | |||
1570 | 124 | if found_bad_import: | ||
1571 | 125 | sys.exit(1) | ||
1572 | 0 | 126 | ||
1573 | === modified file 'tests/qmltests/CMakeLists.txt' | |||
1574 | --- tests/qmltests/CMakeLists.txt 2016-06-30 15:44:36 +0000 | |||
1575 | +++ tests/qmltests/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1576 | @@ -1,48 +1,36 @@ | |||
1577 | 1 | # add_qml_test macro | ||
1578 | 2 | include(QmlTest) | ||
1579 | 3 | |||
1580 | 4 | add_subdirectory(mocks) | 1 | add_subdirectory(mocks) |
1581 | 5 | 2 | ||
1625 | 6 | set(qmltest_DEFAULT_TARGETS qmluitests) | 3 | add_usc_qmltest(Components Calendar) |
1626 | 7 | set(qmltest_DEFAULT_NO_ADD_TEST TRUE) | 4 | add_usc_qmltest(Components ServerPropertySynchroniser) |
1627 | 8 | set(qmltest_DEFAULT_PROPERTIES ENVIRONMENT "LC_ALL=C") | 5 | |
1628 | 9 | 6 | add_usc_qmltest(Menus AccessPointMenu) | |
1629 | 10 | set(qmltest_DEFAULT_IMPORT_PATHS | 7 | add_usc_qmltest(Menus ButtonMenu) |
1630 | 11 | ${CMAKE_BINARY_DIR}/plugins | 8 | add_usc_qmltest(Menus CalendarMenu) |
1631 | 12 | ${CMAKE_BINARY_DIR}/tests/utils/modules | 9 | add_usc_qmltest(Menus CheckableMenu) |
1632 | 13 | ) | 10 | add_usc_qmltest(Menus EventMenu) |
1633 | 14 | 11 | add_usc_qmltest(Menus GroupedMessageMenu) | |
1634 | 15 | add_qml_test(Components Calendar) | 12 | add_usc_qmltest(Menus MediaPlayerMenu) |
1635 | 16 | add_qml_test(Components ServerPropertySynchroniser) | 13 | add_usc_qmltest(Menus PlaybackItemMenu) |
1636 | 17 | 14 | add_usc_qmltest(Menus ProgressBarMenu) | |
1637 | 18 | add_qml_test(Menus AccessPointMenu) | 15 | add_usc_qmltest(Menus ProgressValueMenu) |
1638 | 19 | add_qml_test(Menus ButtonMenu) | 16 | add_usc_qmltest(Menus SectionMenu) |
1639 | 20 | add_qml_test(Menus CalendarMenu) | 17 | add_usc_qmltest(Menus SimpleMessageMenu) |
1640 | 21 | add_qml_test(Menus CheckableMenu) | 18 | add_usc_qmltest(Menus SliderMenu) |
1641 | 22 | add_qml_test(Menus EventMenu) | 19 | add_usc_qmltest(Menus SnapDecisionMenu) |
1642 | 23 | add_qml_test(Menus GroupedMessageMenu) | 20 | add_usc_qmltest(Menus SwitchMenu) |
1643 | 24 | add_qml_test(Menus MediaPlayerMenu) | 21 | add_usc_qmltest(Menus UserSessionMenu) |
1644 | 25 | add_qml_test(Menus PlaybackItemMenu) | 22 | add_usc_qmltest(Menus TextMessageMenu) |
1645 | 26 | add_qml_test(Menus ProgressBarMenu) | 23 | add_usc_qmltest(Menus TimeZoneMenu) |
1646 | 27 | add_qml_test(Menus ProgressValueMenu) | 24 | add_usc_qmltest(Menus TransferMenu) |
1647 | 28 | add_qml_test(Menus SectionMenu) | 25 | |
1648 | 29 | add_qml_test(Menus SimpleMessageMenu) | 26 | add_usc_qmltest(Vpn VpnList) |
1649 | 30 | add_qml_test(Menus SliderMenu) | 27 | add_usc_qmltest(Vpn VpnEditor) |
1650 | 31 | add_qml_test(Menus SnapDecisionMenu) | 28 | add_usc_qmltest(Vpn VpnOpenvpnEditor) |
1651 | 32 | add_qml_test(Menus SwitchMenu) | 29 | add_usc_qmltest(Vpn VpnPptpEditor) |
1652 | 33 | add_qml_test(Menus UserSessionMenu) | 30 | add_usc_qmltest(Vpn VpnPreviewDialogCertificateChecks) |
1653 | 34 | add_qml_test(Menus TextMessageMenu) | 31 | add_usc_qmltest(Vpn VpnPreviewDialog ENVIRONMENT NO_SSL_CERTIFICATE_CHECK=1) |
1654 | 35 | add_qml_test(Menus TimeZoneMenu) | 32 | |
1655 | 36 | add_qml_test(Menus TransferMenu) | 33 | add_usc_qmltest(Fingerprint Fingerprints) |
1656 | 37 | 34 | add_usc_qmltest(Fingerprint FingerprintNames) | |
1657 | 38 | add_qml_test(Vpn VpnList) | 35 | add_usc_qmltest(Fingerprint FingerprintSetup) |
1658 | 39 | add_qml_test(Vpn VpnEditor) | 36 | add_usc_qmltest(Fingerprint FingerprintVisual) |
1616 | 40 | add_qml_test(Vpn VpnOpenvpnEditor) | ||
1617 | 41 | add_qml_test(Vpn VpnPptpEditor) | ||
1618 | 42 | add_qml_test(Vpn VpnPreviewDialogCertificateChecks) | ||
1619 | 43 | add_qml_test(Vpn VpnPreviewDialog ENVIRONMENT NO_SSL_CERTIFICATE_CHECK=1) | ||
1620 | 44 | |||
1621 | 45 | add_qml_test(Fingerprint Fingerprints IMPORT_PATHS ${CMAKE_CURRENT_BINARY_DIR}/mocks) | ||
1622 | 46 | add_qml_test(Fingerprint FingerprintNames IMPORT_PATHS ${CMAKE_CURRENT_BINARY_DIR}/mocks) | ||
1623 | 47 | add_qml_test(Fingerprint FingerprintSetup IMPORT_PATHS ${CMAKE_CURRENT_BINARY_DIR}/mocks) | ||
1624 | 48 | add_qml_test(Fingerprint FingerprintVisual) | ||
1659 | 49 | 37 | ||
1660 | === modified file 'tests/qmltests/Fingerprint/tst_FingerprintNames.qml' | |||
1661 | --- tests/qmltests/Fingerprint/tst_FingerprintNames.qml 2016-06-15 10:45:27 +0000 | |||
1662 | +++ tests/qmltests/Fingerprint/tst_FingerprintNames.qml 2016-08-17 18:09:13 +0000 | |||
1663 | @@ -60,7 +60,7 @@ | |||
1664 | 60 | } | 60 | } |
1665 | 61 | 61 | ||
1666 | 62 | UbuntuTestCase { | 62 | UbuntuTestCase { |
1668 | 63 | name: "TestOverview" | 63 | name: "FingerprintNames" |
1669 | 64 | when: windowShown | 64 | when: windowShown |
1670 | 65 | 65 | ||
1671 | 66 | property var pageInstance: null | 66 | property var pageInstance: null |
1672 | 67 | 67 | ||
1673 | === modified file 'tests/qmltests/Fingerprint/tst_FingerprintSetup.qml' | |||
1674 | --- tests/qmltests/Fingerprint/tst_FingerprintSetup.qml 2016-06-20 13:53:42 +0000 | |||
1675 | +++ tests/qmltests/Fingerprint/tst_FingerprintSetup.qml 2016-08-17 18:09:13 +0000 | |||
1676 | @@ -62,7 +62,7 @@ | |||
1677 | 62 | } | 62 | } |
1678 | 63 | 63 | ||
1679 | 64 | UbuntuTestCase { | 64 | UbuntuTestCase { |
1681 | 65 | name: "SetupUI" | 65 | name: "FingerprintSetup" |
1682 | 66 | when: windowShown | 66 | when: windowShown |
1683 | 67 | 67 | ||
1684 | 68 | property var setupInstance: null | 68 | property var setupInstance: null |
1685 | @@ -113,7 +113,7 @@ | |||
1686 | 113 | } | 113 | } |
1687 | 114 | 114 | ||
1688 | 115 | function test_startedState() { | 115 | function test_startedState() { |
1690 | 116 | var targetText = i18n.dtr("ubuntu-settings-components", "Swipe your finger repeatedly over the reader."); | 116 | var targetText = i18n.dtr("ubuntu-settings-components", "Tap your finger repeatedly on the reader."); |
1691 | 117 | setupInstance.enrollmentProgressed(0.5, {}); | 117 | setupInstance.enrollmentProgressed(0.5, {}); |
1692 | 118 | statusLabelSpy.wait(); | 118 | statusLabelSpy.wait(); |
1693 | 119 | compare(getStatusLabel().text, targetText); | 119 | compare(getStatusLabel().text, targetText); |
1694 | 120 | 120 | ||
1695 | === modified file 'tests/qmltests/Fingerprint/tst_Fingerprints.qml' | |||
1696 | --- tests/qmltests/Fingerprint/tst_Fingerprints.qml 2016-06-15 10:45:27 +0000 | |||
1697 | +++ tests/qmltests/Fingerprint/tst_Fingerprints.qml 2016-08-17 18:09:13 +0000 | |||
1698 | @@ -41,7 +41,7 @@ | |||
1699 | 41 | } | 41 | } |
1700 | 42 | 42 | ||
1701 | 43 | UbuntuTestCase { | 43 | UbuntuTestCase { |
1703 | 44 | name: "FingerprintPanel" | 44 | name: "Fingerprints" |
1704 | 45 | when: windowShown | 45 | when: windowShown |
1705 | 46 | 46 | ||
1706 | 47 | property var fingerprintsInstance: null | 47 | property var fingerprintsInstance: null |
1707 | @@ -75,7 +75,7 @@ | |||
1708 | 75 | return findInvisibleChild(fingerprintsInstance, "removalObserver"); | 75 | return findInvisibleChild(fingerprintsInstance, "removalObserver"); |
1709 | 76 | } | 76 | } |
1710 | 77 | 77 | ||
1712 | 78 | function getBrokenDialog() { | 78 | function getBrokenDialog() { |
1713 | 79 | return findChild(testRoot, "fingerprintReaderBrokenDialog"); | 79 | return findChild(testRoot, "fingerprintReaderBrokenDialog"); |
1714 | 80 | } | 80 | } |
1715 | 81 | 81 | ||
1716 | @@ -119,7 +119,7 @@ | |||
1717 | 119 | // Halt testing until dialog has been destroyed. | 119 | // Halt testing until dialog has been destroyed. |
1718 | 120 | tryCompareFunction(function() { | 120 | tryCompareFunction(function() { |
1719 | 121 | return getBrokenDialog(); | 121 | return getBrokenDialog(); |
1721 | 122 | }, null); | 122 | }, undefined); |
1722 | 123 | } | 123 | } |
1723 | 124 | 124 | ||
1724 | 125 | function test_noPasscode() { | 125 | function test_noPasscode() { |
1725 | @@ -209,7 +209,7 @@ | |||
1726 | 209 | // to function. | 209 | // to function. |
1727 | 210 | tryCompareFunction(function() { | 210 | tryCompareFunction(function() { |
1728 | 211 | return findChild(testRoot, "fingerprintRemoveAllDialog"); | 211 | return findChild(testRoot, "fingerprintRemoveAllDialog"); |
1730 | 212 | }, null); | 212 | }, undefined); |
1731 | 213 | } | 213 | } |
1732 | 214 | 214 | ||
1733 | 215 | function test_enrollmentSucceeded() { | 215 | function test_enrollmentSucceeded() { |
1734 | 216 | 216 | ||
1735 | === modified file 'tests/qmltests/Menus/tst_GroupedMessageMenu.qml' | |||
1736 | --- tests/qmltests/Menus/tst_GroupedMessageMenu.qml 2016-02-11 11:23:02 +0000 | |||
1737 | +++ tests/qmltests/Menus/tst_GroupedMessageMenu.qml 2016-08-17 18:09:13 +0000 | |||
1738 | @@ -69,7 +69,7 @@ | |||
1739 | 69 | target: messageMenu2 | 69 | target: messageMenu2 |
1740 | 70 | } | 70 | } |
1741 | 71 | 71 | ||
1743 | 72 | TestCase { | 72 | UbuntuTestCase { |
1744 | 73 | name: "GropedMessageMenu" | 73 | name: "GropedMessageMenu" |
1745 | 74 | when: windowShown | 74 | when: windowShown |
1746 | 75 | 75 | ||
1747 | @@ -84,8 +84,6 @@ | |||
1748 | 84 | } | 84 | } |
1749 | 85 | 85 | ||
1750 | 86 | function test_dismiss() { | 86 | function test_dismiss() { |
1751 | 87 | skip("QTBUG-35656"); | ||
1752 | 88 | // TODO - Remove skip once bug has been fixed. https://bugreports.qt-project.org/browse/QTBUG-35656 | ||
1753 | 89 | mouseFlick(messageMenu2, messageMenu2.width / 2, messageMenu2.height / 2, messageMenu2.width, messageMenu2.height / 2, true, true, units.gu(1), 10); | 87 | mouseFlick(messageMenu2, messageMenu2.width / 2, messageMenu2.height / 2, messageMenu2.width, messageMenu2.height / 2, true, true, units.gu(1), 10); |
1754 | 90 | tryCompareFunction(function() { return signalSpyDismiss.count > 0; }, true); | 88 | tryCompareFunction(function() { return signalSpyDismiss.count > 0; }, true); |
1755 | 91 | } | 89 | } |
1756 | 92 | 90 | ||
1757 | === modified file 'tests/qmltests/mocks/Biometryd/CMakeLists.txt' | |||
1758 | --- tests/qmltests/mocks/Biometryd/CMakeLists.txt 2016-06-14 22:33:55 +0000 | |||
1759 | +++ tests/qmltests/mocks/Biometryd/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1760 | @@ -2,7 +2,7 @@ | |||
1761 | 2 | ${CMAKE_CURRENT_BINARY_DIR} | 2 | ${CMAKE_CURRENT_BINARY_DIR} |
1762 | 3 | ) | 3 | ) |
1763 | 4 | 4 | ||
1765 | 5 | set(MOCK_BIOMETRYD_SOURCES | 5 | add_library(MockBiometryd MODULE |
1766 | 6 | plugin.cpp | 6 | plugin.cpp |
1767 | 7 | MockDevice.cpp | 7 | MockDevice.cpp |
1768 | 8 | MockFingerprintReader.cpp | 8 | MockFingerprintReader.cpp |
1769 | @@ -13,8 +13,10 @@ | |||
1770 | 13 | MockUser.cpp | 13 | MockUser.cpp |
1771 | 14 | ) | 14 | ) |
1772 | 15 | 15 | ||
1776 | 16 | add_library(MockBiometryd MODULE ${MOCK_BIOMETRYD_SOURCES}) | 16 | target_link_libraries(MockBiometryd |
1777 | 17 | 17 | Qt5::Core | |
1778 | 18 | qt5_use_modules(MockBiometryd Qml Quick Core) | 18 | Qt5::Qml |
1779 | 19 | Qt5::Quick | ||
1780 | 20 | ) | ||
1781 | 19 | 21 | ||
1782 | 20 | add_usc_mock(Biometryd 0.0 Biometryd TARGETS MockBiometryd) | 22 | add_usc_mock(Biometryd 0.0 Biometryd TARGETS MockBiometryd) |
1783 | 21 | 23 | ||
1784 | === modified file 'tests/qmltests/mocks/Biometryd/MockDevice.cpp' | |||
1785 | --- tests/qmltests/mocks/Biometryd/MockDevice.cpp 2016-05-09 13:42:27 +0000 | |||
1786 | +++ tests/qmltests/mocks/Biometryd/MockDevice.cpp 2016-08-17 18:09:13 +0000 | |||
1787 | @@ -26,5 +26,3 @@ | |||
1788 | 26 | { | 26 | { |
1789 | 27 | return m_ts; | 27 | return m_ts; |
1790 | 28 | } | 28 | } |
1791 | 29 | |||
1792 | 30 | #include "MockDevice.moc" | ||
1793 | 31 | 29 | ||
1794 | === modified file 'tests/qmltests/mocks/Biometryd/MockFingerprintReader.cpp' | |||
1795 | --- tests/qmltests/mocks/Biometryd/MockFingerprintReader.cpp 2016-05-09 13:42:27 +0000 | |||
1796 | +++ tests/qmltests/mocks/Biometryd/MockFingerprintReader.cpp 2016-08-17 18:09:13 +0000 | |||
1797 | @@ -45,5 +45,3 @@ | |||
1798 | 45 | { | 45 | { |
1799 | 46 | return "masks"; | 46 | return "masks"; |
1800 | 47 | } | 47 | } |
1801 | 48 | |||
1802 | 49 | #include "MockFingerprintReader.moc" | ||
1803 | 50 | 48 | ||
1804 | === modified file 'tests/qmltests/mocks/Biometryd/MockOperation.cpp' | |||
1805 | --- tests/qmltests/mocks/Biometryd/MockOperation.cpp 2016-05-22 19:43:19 +0000 | |||
1806 | +++ tests/qmltests/mocks/Biometryd/MockOperation.cpp 2016-08-17 18:09:13 +0000 | |||
1807 | @@ -30,5 +30,3 @@ | |||
1808 | 30 | { | 30 | { |
1809 | 31 | return true; | 31 | return true; |
1810 | 32 | } | 32 | } |
1811 | 33 | |||
1812 | 34 | #include "MockOperation.moc" | ||
1813 | 35 | 33 | ||
1814 | === modified file 'tests/qmltests/mocks/Biometryd/MockService.cpp' | |||
1815 | --- tests/qmltests/mocks/Biometryd/MockService.cpp 2016-06-02 12:20:29 +0000 | |||
1816 | +++ tests/qmltests/mocks/Biometryd/MockService.cpp 2016-08-17 18:09:13 +0000 | |||
1817 | @@ -38,5 +38,3 @@ | |||
1818 | 38 | m_available = available; | 38 | m_available = available; |
1819 | 39 | Q_EMIT (availableChanged(available)); | 39 | Q_EMIT (availableChanged(available)); |
1820 | 40 | } | 40 | } |
1821 | 41 | |||
1822 | 42 | #include "MockService.moc" | ||
1823 | 43 | 41 | ||
1824 | === modified file 'tests/qmltests/mocks/Biometryd/MockTemplateStore.cpp' | |||
1825 | --- tests/qmltests/mocks/Biometryd/MockTemplateStore.cpp 2016-06-14 22:33:55 +0000 | |||
1826 | +++ tests/qmltests/mocks/Biometryd/MockTemplateStore.cpp 2016-08-17 18:09:13 +0000 | |||
1827 | @@ -52,5 +52,3 @@ | |||
1828 | 52 | Q_UNUSED(user); | 52 | Q_UNUSED(user); |
1829 | 53 | return new MockList(this); | 53 | return new MockList(this); |
1830 | 54 | } | 54 | } |
1831 | 55 | |||
1832 | 56 | #include "MockTemplateStore.moc" | ||
1833 | 57 | 55 | ||
1834 | === modified file 'tests/qmltests/mocks/Biometryd/MockUser.cpp' | |||
1835 | --- tests/qmltests/mocks/Biometryd/MockUser.cpp 2016-05-09 13:42:27 +0000 | |||
1836 | +++ tests/qmltests/mocks/Biometryd/MockUser.cpp 2016-08-17 18:09:13 +0000 | |||
1837 | @@ -29,5 +29,3 @@ | |||
1838 | 29 | { | 29 | { |
1839 | 30 | m_uid = uid; | 30 | m_uid = uid; |
1840 | 31 | } | 31 | } |
1841 | 32 | |||
1842 | 33 | #include "MockUser.moc" | ||
1843 | 34 | 32 | ||
1844 | === modified file 'tests/qmltests/mocks/CMakeLists.txt' | |||
1845 | --- tests/qmltests/mocks/CMakeLists.txt 2016-06-14 12:01:31 +0000 | |||
1846 | +++ tests/qmltests/mocks/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1847 | @@ -23,8 +23,8 @@ | |||
1848 | 23 | ${MOCK_UNPARSED_ARGUMENTS} | 23 | ${MOCK_UNPARSED_ARGUMENTS} |
1849 | 24 | ) | 24 | ) |
1850 | 25 | else() | 25 | else() |
1853 | 26 | export_qmlfiles(${PLUGIN} ${PATH} TARGET_PREFIX Mock ${MOCK_UNPARSED_ARGUMENTS}) | 26 | export_qmlfiles(${PLUGIN} ${PATH} TARGET_PREFIX Mock NO_INSTALL ${MOCK_UNPARSED_ARGUMENTS}) |
1854 | 27 | export_qmlplugin(${PLUGIN} ${VERSION} ${PATH} TARGET_PREFIX Mock ${MOCK_UNPARSED_ARGUMENTS}) | 27 | export_qmlplugin(${PLUGIN} ${VERSION} ${PATH} TARGET_PREFIX Mock NO_INSTALL ${MOCK_UNPARSED_ARGUMENTS}) |
1855 | 28 | endif() | 28 | endif() |
1856 | 29 | endmacro() | 29 | endmacro() |
1857 | 30 | 30 | ||
1858 | 31 | 31 | ||
1859 | === modified file 'tests/qmltests/mocks/GSettings.1.0/CMakeLists.txt' | |||
1860 | --- tests/qmltests/mocks/GSettings.1.0/CMakeLists.txt 2016-06-14 12:01:31 +0000 | |||
1861 | +++ tests/qmltests/mocks/GSettings.1.0/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1862 | @@ -1,20 +1,19 @@ | |||
1863 | 1 | include_directories( | 1 | include_directories( |
1864 | 2 | ${CMAKE_CURRENT_BINARY_DIR} | 2 | ${CMAKE_CURRENT_BINARY_DIR} |
1865 | 3 | ${Qt5Core_INCLUDE_DIRS} | ||
1866 | 4 | ${Qt5Quick_INCLUDE_DIRS} | ||
1867 | 5 | ) | 3 | ) |
1868 | 6 | 4 | ||
1869 | 7 | set(GSettingsQML_SOURCES | 5 | set(GSettingsQML_SOURCES |
1870 | 6 | ) | ||
1871 | 7 | |||
1872 | 8 | add_library(FakeGSettingsQml MODULE | ||
1873 | 8 | fake_gsettings.cpp | 9 | fake_gsettings.cpp |
1874 | 9 | plugin.cpp | 10 | plugin.cpp |
1875 | 10 | ) | 11 | ) |
1876 | 11 | 12 | ||
1877 | 12 | add_library(FakeGSettingsQml MODULE ${GSettingsQML_SOURCES}) | ||
1878 | 13 | target_link_libraries(FakeGSettingsQml | 13 | target_link_libraries(FakeGSettingsQml |
1881 | 14 | ${Qt5Core_LIBRARIES} | 14 | Qt5::Core |
1882 | 15 | ${Qt5Quick_LIBRARIES} | 15 | Qt5::Quick |
1883 | 16 | Qt5::Qml | ||
1884 | 16 | ) | 17 | ) |
1885 | 17 | 18 | ||
1886 | 18 | qt5_use_modules(FakeGSettingsQml Qml) | ||
1887 | 19 | |||
1888 | 20 | add_usc_mock(GSettings 1.0 GSettings.1.0 TARGETS FakeGSettingsQml) | 19 | add_usc_mock(GSettings 1.0 GSettings.1.0 TARGETS FakeGSettingsQml) |
1889 | 21 | 20 | ||
1890 | === modified file 'tests/utils/modules/CMakeLists.txt' | |||
1891 | --- tests/utils/modules/CMakeLists.txt 2013-10-04 10:10:47 +0000 | |||
1892 | +++ tests/utils/modules/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1893 | @@ -1,1 +1,3 @@ | |||
1894 | 1 | include(QmlPlugins) | ||
1895 | 2 | |||
1896 | 1 | add_subdirectory(Ubuntu) | 3 | add_subdirectory(Ubuntu) |
1897 | 2 | 4 | ||
1898 | === modified file 'tests/utils/modules/Ubuntu/Test/CMakeLists.txt' | |||
1899 | --- tests/utils/modules/Ubuntu/Test/CMakeLists.txt 2013-10-04 10:52:27 +0000 | |||
1900 | +++ tests/utils/modules/Ubuntu/Test/CMakeLists.txt 2016-08-17 18:09:13 +0000 | |||
1901 | @@ -1,27 +1,21 @@ | |||
1903 | 1 | add_definitions(-DQT_NO_KEYWORDS) | 1 | include_directories( |
1904 | 2 | ${Qt5Gui_PRIVATE_INCLUDE_DIRS} | ||
1905 | 3 | ) | ||
1906 | 2 | 4 | ||
1908 | 3 | set(UbuntuTestQML_SOURCES | 5 | add_library(UbuntuTestQml MODULE |
1909 | 4 | testutil.cpp | 6 | testutil.cpp |
1910 | 5 | plugin.cpp | 7 | plugin.cpp |
1911 | 6 | TouchEventSequenceWrapper.cpp | 8 | TouchEventSequenceWrapper.cpp |
1912 | 7 | ) | 9 | ) |
1913 | 8 | 10 | ||
1929 | 9 | include_directories( | 11 | target_link_libraries(UbuntuTestQml |
1930 | 10 | ${CMAKE_CURRENT_SOURCE_DIR} | 12 | Qt5::Core |
1931 | 11 | ${Qt5Gui_PRIVATE_INCLUDE_DIRS} | 13 | Qt5::Quick |
1932 | 12 | ) | 14 | Qt5::Test |
1918 | 13 | |||
1919 | 14 | add_library(UbuntuTestQml MODULE ${UbuntuTestQML_SOURCES}) | ||
1920 | 15 | |||
1921 | 16 | qt5_use_modules(UbuntuTestQml Core Quick Test) | ||
1922 | 17 | |||
1923 | 18 | # copy qml files into build directory for shadow builds | ||
1924 | 19 | file(GLOB QML_JS_FILES *.js *.qml qmldir) | ||
1925 | 20 | |||
1926 | 21 | add_custom_target(UbuntuTestQmlJsFiles ALL | ||
1927 | 22 | COMMAND cp ${QML_JS_FILES} ${CMAKE_CURRENT_BINARY_DIR} | ||
1928 | 23 | DEPENDS ${QML_JS_FILES} | ||
1933 | 24 | ) | 15 | ) |
1934 | 25 | 16 | ||
1935 | 17 | export_qmlfiles(Ubuntu.Test Ubuntu/Test NO_INSTALL) | ||
1936 | 18 | export_qmlplugin(Ubuntu.Test 0.1 Ubuntu/Test TARGETS UbuntuTestQml NO_INSTALL) | ||
1937 | 19 | |||
1938 | 26 | add_custom_target(UbuntuTest) | 20 | add_custom_target(UbuntuTest) |
1940 | 27 | add_dependencies(UbuntuTest UbuntuTestQml UbuntuTestQmlJsFiles) | 21 | add_dependencies(UbuntuTest UbuntuTestQml Ubuntu.Test-qmlfiles) |
FAILED: Continuous integration, rev:129 /unity8- jenkins. ubuntu. com/job/ lp-ubuntu- settings- components- ci/47/ /unity8- jenkins. ubuntu. com/job/ build/2567 /unity8- jenkins. ubuntu. com/job/ test-0- autopkgtest/ label=amd64, release= vivid+overlay, testname= qmluitests. sh/1391 /unity8- jenkins. ubuntu. com/job/ test-0- autopkgtest/ label=amd64, release= xenial+ overlay, testname= qmluitests. sh/1391 /unity8- jenkins. ubuntu. com/job/ test-0- autopkgtest/ label=amd64, release= yakkety, testname= qmluitests. sh/1391 /unity8- jenkins. ubuntu. com/job/ build-0- fetch/2595 /unity8- jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 2475 /unity8- jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 2475 /unity8- jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= yakkety/ 2475 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= vivid+overlay/ 2469 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= vivid+overlay/ 2469/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 2469 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 2469/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= yakkety/ 2469 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= yakkety/ 2469/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= vivid+overlay/ 2469 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= vivid+overlay/ 2469/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 2469 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 2469/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= yakkety/ 2469 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= yakkety/ 2469/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= vivid+overlay/ 2469 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= vivid+overlay/ 2469/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 2469 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 2469/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= yakkety/ 2469 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= yakkety/ 2469/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /unity8- jenkins. ubuntu. com/job/ lp-ubuntu- settings- components- ci/47/rebuild
https:/