Merge lp:~saviq/ubuntu-settings-components/packaging-cleanup into lp:~registry/ubuntu-settings-components/trunk

Proposed by Michał Sawicz
Status: Superseded
Proposed branch: lp:~saviq/ubuntu-settings-components/packaging-cleanup
Merge into: lp:~registry/ubuntu-settings-components/trunk
Prerequisite: lp:~aacid/ubuntu-settings-components/standarizeImports
Diff against target: 1817 lines (+820/-732)
27 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 (+6/-0)
debian/control (+19/-6)
debian/qml-module-ubuntu-system-components.install (+2/-0)
debian/tests/control (+4/-0)
debian/tests/qmluitests.sh (+5/-0)
plugins/Ubuntu/Settings/Components/CMakeLists.txt (+5/-8)
plugins/Ubuntu/Settings/Components/Components.qmltypes (+65/-1)
plugins/Ubuntu/Settings/Components/serverpropertysynchroniser.cpp (+0/-1)
plugins/Ubuntu/Settings/Menus/CMakeLists.txt (+6/-14)
plugins/Ubuntu/Settings/Menus/Menus.qmltypes (+66/-1)
runtests.sh (+1/-1)
tests/CMakeLists.txt (+24/-7)
tests/imports/CMakeLists.txt (+5/-0)
tests/imports/check_imports.py (+125/-0)
tests/qmltests/CMakeLists.txt (+30/-42)
tests/utils/modules/CMakeLists.txt (+2/-0)
tests/utils/modules/Ubuntu/Test/CMakeLists.txt (+12/-18)
tests/utils/modules/Ubuntu/Test/Test.qmltypes (+124/-0)
To merge this branch: bzr merge lp:~saviq/ubuntu-settings-components/packaging-cleanup
Reviewer Review Type Date Requested Status
Unity8 CI Bot (community) continuous-integration Needs Fixing
Michael Terry (community) Needs Information
Nick Dedekind (community) Approve
PS Jenkins bot (community) continuous-integration Needs Fixing
Review via email: mp+284376@code.launchpad.net

This proposal has been superseded by a proposal from 2016-06-02.

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 (except for QmlPlugins, bug #1539314)
add an import version checker (UITK hates it when you mix 1.2 and 1.3)
add autopkgtest running the qml UI tests

To post a comment you must log in.
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:120
https://unity8-jenkins.ubuntu.com/job/lp-ubuntu-settings-components-1-ci/12/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/631
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay/201
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial/201
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/654
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/672
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/672
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial/668/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-ubuntu-settings-components-1-ci/12/rebuild

review: Approve (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:120
https://unity8-jenkins.ubuntu.com/job/lp-ubuntu-settings-components-1-ci/12/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/631
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay/201
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial/201
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/654
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/672
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/672
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/668/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial/668
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial/668/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-ubuntu-settings-components-1-ci/12/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Nick Dedekind (nick-dedekind) wrote :

 * Did you perform an exploratory manual test run of the code change and any related functionality?
Yes

 * Did CI run pass? If not, please explain why.
Unrelated test failure.

review: Approve
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:121
https://unity8-jenkins.ubuntu.com/job/lp-ubuntu-settings-components-1-ci/14/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/635
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay/204
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial/204
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/658
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/676
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/676
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/672
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/672/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial/672
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial/672/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/672
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/672/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial/672
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial/672/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/672
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/672/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial/672
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial/672/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-ubuntu-settings-components-1-ci/14/rebuild

review: Approve (continuous-integration)
Revision history for this message
Michael Terry (mterry) wrote :

As for packaging... It's not common to provide an oldlibs transitional version AND do the Breaks/Conflicts/Provides dance. Usually one or the other. I think either would work fine for this case.

Doing both will mean the transitional one pulls in the new one, but the new one can't live with the transitional one. I'm not sure what would happen on an upgrade there. It might work like you want, but I'm not positive what apt does. Have you tested the upgrade case there? Maybe with a silo to be able to test apt logic?

review: Needs Information
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
122. By Michał Sawicz

Merge trunk

123. By Michał Sawicz

Drop qmltypes files

124. By Michał Sawicz

Don't mix imports

125. By Michał Sawicz

Update QmlTest.cmake

126. By Michał Sawicz

Bump transitional version

127. By Michał Sawicz

Build mocks in autopkgtests

128. By Michał Sawicz

Fix FingerprintSetup test

129. By Michał Sawicz

Don't depend on qt5-default, export QT_SELECT instead

130. By Michał Sawicz

Rename install file

131. By Michał Sawicz

Update install file

132. By Michał Sawicz

Don't install mocks

133. By Michał Sawicz

Use imported Qt5 targets

134. By Michał Sawicz

Fix install file

135. By Michał Sawicz

Add missing thumbnailer dep and transition to qml-module-* dependencies

136. By Michał Sawicz

wrap-and-sort -at

137. By Michał Sawicz

Add missing dependency on folderlistmodel

138. By Michał Sawicz

Fix test suite names

139. By Michał Sawicz

Fix tst_Fingerprints.qml

140. By Michał Sawicz

Fix import path

141. By Michał Sawicz

Merge lp:~nick-dedekind/ubuntu-settings-components/calendar-test-fixes

142. By Michał Sawicz

Fix typo

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

146. By Michał Sawicz

8

Unmerged revisions

146. By Michał Sawicz

8

145. By Michał Sawicz

Fix up import paths and environment

144. By Michał Sawicz

Unskip test after it's been fixed upstream

143. By Michał Sawicz

Drop spurious moc includes

142. By Michał Sawicz

Fix typo

141. By Michał Sawicz

Merge lp:~nick-dedekind/ubuntu-settings-components/calendar-test-fixes

140. By Michał Sawicz

Fix import path

139. By Michał Sawicz

Fix tst_Fingerprints.qml

138. By Michał Sawicz

Fix test suite names

137. By Michał Sawicz

Add missing dependency on folderlistmodel

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2015-08-02 14:42:46 +0000
3+++ CMakeLists.txt 2016-03-24 12:20:44 +0000
4@@ -1,6 +1,4 @@
5-
6 project(settings-components)
7-
8 cmake_minimum_required(VERSION 2.8.9)
9
10 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
11@@ -11,17 +9,13 @@
12 include(FindPkgConfig)
13
14 find_package(Qt5Quick REQUIRED)
15-set(OUR_QT_QUICK_LIB ${Qt5Quick_LIBRARIES})
16-
17-get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
18-exec_program(${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_QML" OUTPUT_VARIABLE QT_IMPORTS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
19-file(TO_CMAKE_PATH "${QT_IMPORTS_DIR}" QT_IMPORTS_DIR)
20-
21-set(OUR_QT_QUICK_INCLUDE ${Qt5Quick_INCLUDE_DIRS})
22-LIST(APPEND QT_PKGCONFIG_DEPENDENCIES "Qt5Quick")
23+
24+set(QT_IMPORTS_DIR ${CMAKE_INSTALL_LIBDIR}/qt5/qml)
25
26 find_package(Qt5Core REQUIRED)
27+find_package(Qt5Qml REQUIRED)
28 find_package(Qt5Quick REQUIRED)
29+find_package(Qt5Test REQUIRED)
30 find_package(Qt5Widgets REQUIRED)
31 add_definitions(-DQT_NO_KEYWORDS)
32
33@@ -34,39 +28,10 @@
34 add_definitions(-DQT_QML_DEBUG)
35 endif()
36
37-include(EnableCoverageReport)
38-#####################################################################
39-# Enable code coverage calculation with gcov/gcovr/lcov
40-# Usage:
41-# * Switch build type to coverage (use ccmake or cmake-gui)
42-# * Invoke make, make test, make coverage (or ninja if you use that backend)
43-# * Find html report in subdir coveragereport
44-# * Find xml report feasible for jenkins in coverage.xml
45-#####################################################################
46-if(cmake_build_type_lower MATCHES coverage)
47- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage" )
48- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage" )
49- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --coverage" )
50- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage" )
51- ENABLE_COVERAGE_REPORT(TARGETS ${SHELL_APP} FILTER /usr/include ${CMAKE_SOURCE_DIR}/tests/* ${CMAKE_BINARY_DIR}/*)
52-endif()
53-
54-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
55- "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
56- IMMEDIATE @ONLY)
57-add_custom_target(uninstall "${CMAKE_COMMAND}"
58- -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
59-
60-# Doc
61-OPTION(GENERATE_DOC "Enable qdoc generation" OFF)
62-if(GENERATE_DOC)
63- message(STATUS "QDoc enabled.")
64- find_program(QDOC_BIN qdoc)
65- if(NOT QDOC_BIN)
66- message(FATAL_ERROR "qdoc command not found")
67- else()
68- add_subdirectory(doc)
69- endif()
70+# Quiet logger
71+set(QUIET_LOGGER OFF CACHE BOOL "Disable test output on stdout.")
72+if(NOT QUIET_LOGGER)
73+ set(STDOUT_LOGGER "-o" "-,txt")
74 endif()
75
76 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
77
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-/* File generated by Qt Creator (with Ubuntu Plugin), version 2.7.0 */
83-
84-import QmlProject 1.1
85-
86-Project {
87- mainFile: "SettingsComponents.qml"
88-
89- /* Include .qml, .js, and image files from current directory and subdirectories */
90- QmlFiles {
91- directory: "."
92- }
93- JavaScriptFiles {
94- directory: "."
95- }
96- ImageFiles {
97- directory: "."
98- }
99- Files {
100- filter: "*.desktop"
101- }
102- /* List of plugin directories passed to QML runtime */
103- importPaths: [ "." ,"/usr/bin","/usr/lib/x86_64-linux-gnu/qt5/qml" ]
104-}
105
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-# - Creates a special coverage build type and target on GCC.
111-#
112-# Defines a function ENABLE_COVERAGE_REPORT which generates the coverage target
113-# for selected targets. Optional arguments to this function are used to filter
114-# unwanted results using globbing expressions. Moreover targets with tests for
115-# the source code can be specified to trigger regenerating the report if the
116-# test has changed
117-#
118-# ENABLE_COVERAGE_REPORT(TARGETS target... [FILTER filter...] [TESTS test targets...])
119-#
120-# To generate a coverage report first build the project with
121-# CMAKE_BUILD_TYPE=coverage, then call make test and afterwards make coverage.
122-#
123-# The coverage report is based on gcov. Depending on the availability of lcov
124-# a HTML report will be generated and/or an XML report of gcovr is found.
125-# The generated coverage target executes all found solutions. Special targets
126-# exist to create e.g. only the xml report: coverage-xml.
127-#
128-# Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de>
129-#
130-# This program is free software; you can redistribute it
131-# and/or modify it under the terms of the GNU General
132-# Public License as published by the Free Software Foundation;
133-# either version 2, or (at your option)
134-# any later version.
135-#
136-# This program is distributed in the hope that it will be useful,
137-# but WITHOUT ANY WARRANTY; without even the implied warranty of
138-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
139-# GNU General Public License for more details.
140-#
141-
142-INCLUDE(ParseArguments)
143-
144-FIND_PACKAGE(Lcov)
145-FIND_PACKAGE(gcovr)
146-
147-FUNCTION(ENABLE_COVERAGE_REPORT)
148-
149- # argument parsing
150- PARSE_ARGUMENTS(ARG "FILTER;TARGETS;TESTS" "" ${ARGN})
151-
152- SET(COVERAGE_RAW_FILE "${CMAKE_BINARY_DIR}/coverage.raw.info")
153- SET(COVERAGE_FILTERED_FILE "${CMAKE_BINARY_DIR}/coverage.info")
154- SET(COVERAGE_REPORT_DIR "${CMAKE_BINARY_DIR}/coveragereport")
155- SET(COVERAGE_XML_FILE "${CMAKE_BINARY_DIR}/coverage.xml")
156- SET(COVERAGE_XML_COMMAND_FILE "${CMAKE_BINARY_DIR}/coverage-xml.cmake")
157-
158- # decide if there is any tool to create coverage data
159- SET(TOOL_FOUND FALSE)
160- IF(LCOV_FOUND OR GCOVR_FOUND)
161- SET(TOOL_FOUND TRUE)
162- ENDIF()
163- IF(NOT TOOL_FOUND)
164- MESSAGE(STATUS "Cannot enable coverage targets because neither lcov nor gcovr are found.")
165- ENDIF()
166-
167- STRING(TOLOWER "${CMAKE_BUILD_TYPE}" COVERAGE_BUILD_TYPE)
168- IF(CMAKE_COMPILER_IS_GNUCXX AND TOOL_FOUND AND "${COVERAGE_BUILD_TYPE}" MATCHES "coverage")
169-
170- MESSAGE(STATUS "Coverage support enabled for targets: ${ARG_TARGETS}")
171-
172- # create coverage build type
173- SET(CMAKE_CXX_FLAGS_COVERAGE ${CMAKE_CXX_FLAGS_DEBUG} PARENT_SCOPE)
174- SET(CMAKE_C_FLAGS_COVERAGE ${CMAKE_C_FLAGS_DEBUG} PARENT_SCOPE)
175- SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} coverage PARENT_SCOPE)
176-
177- # instrument targets
178- SET_TARGET_PROPERTIES(${ARG_TARGETS} PROPERTIES COMPILE_FLAGS --coverage
179- LINK_FLAGS --coverage)
180-
181- # html report
182- IF (LCOV_FOUND)
183-
184- MESSAGE(STATUS "Enabling HTML coverage report")
185-
186- # set up coverage target
187-
188- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_RAW_FILE}
189- COMMAND ${LCOV_EXECUTABLE} -c -d ${CMAKE_BINARY_DIR} -o ${COVERAGE_RAW_FILE}
190- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
191- COMMENT "Collecting coverage data"
192- DEPENDS ${ARG_TARGETS} ${ARG_TESTS}
193- VERBATIM)
194-
195- # filter unwanted stuff
196- LIST(LENGTH ARG_FILTER FILTER_LENGTH)
197- IF(${FILTER_LENGTH} GREATER 0)
198- SET(FILTER COMMAND ${LCOV_EXECUTABLE})
199- FOREACH(F ${ARG_FILTER})
200- SET(FILTER ${FILTER} -r ${COVERAGE_FILTERED_FILE} ${F})
201- ENDFOREACH()
202- SET(FILTER ${FILTER} -o ${COVERAGE_FILTERED_FILE})
203- ELSE()
204- SET(FILTER "")
205- ENDIF()
206-
207- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_FILTERED_FILE}
208- COMMAND ${LCOV_EXECUTABLE} -e ${COVERAGE_RAW_FILE} "${CMAKE_SOURCE_DIR}*" -o ${COVERAGE_FILTERED_FILE}
209- ${FILTER}
210- DEPENDS ${COVERAGE_RAW_FILE}
211- COMMENT "Filtering recorded coverage data for project-relevant entries"
212- VERBATIM)
213- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_REPORT_DIR}
214- COMMAND ${CMAKE_COMMAND} -E make_directory ${COVERAGE_REPORT_DIR}
215- COMMAND ${GENHTML_EXECUTABLE} --legend --show-details -t "${PROJECT_NAME} test coverage" -o ${COVERAGE_REPORT_DIR} ${COVERAGE_FILTERED_FILE}
216- DEPENDS ${COVERAGE_FILTERED_FILE}
217- COMMENT "Generating HTML coverage report in ${COVERAGE_REPORT_DIR}"
218- VERBATIM)
219-
220- ADD_CUSTOM_TARGET(coverage-html
221- DEPENDS ${COVERAGE_REPORT_DIR})
222-
223- ENDIF()
224-
225- # xml coverage report
226- IF(GCOVR_FOUND)
227-
228- MESSAGE(STATUS "Enabling XML coverage report")
229-
230- # filter unwanted stuff
231- SET(GCOV_FILTER "")
232- LIST(LENGTH ARG_FILTER FILTER_LENGTH)
233- IF(${FILTER_LENGTH} GREATER 0)
234- FOREACH(F ${ARG_FILTER})
235- SET(GCOV_FILTER "${GCOV_FILTER} -e \"${F}\"")
236- ENDFOREACH()
237- ENDIF()
238-
239- # gcovr cannot write directly to a file so the execution needs to
240- # be wrapped in a cmake file that generates the file output
241- FILE(WRITE ${COVERAGE_XML_COMMAND_FILE}
242- "SET(ENV{LANG} en)\n")
243- FILE(APPEND ${COVERAGE_XML_COMMAND_FILE}
244- "EXECUTE_PROCESS(COMMAND \"${GCOVR_EXECUTABLE}\" -x -r \"${CMAKE_SOURCE_DIR}\" ${GCOV_FILTER} OUTPUT_FILE \"${COVERAGE_XML_FILE}\" WORKING_DIRECTORY \"${CMAKE_BINARY_DIR}\")\n")
245-
246- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_XML_FILE}
247- COMMAND ${CMAKE_COMMAND} ARGS -P ${COVERAGE_XML_COMMAND_FILE}
248- COMMENT "Generating coverage XML report"
249- VERBATIM)
250-
251- ADD_CUSTOM_TARGET(coverage-xml
252- DEPENDS ${COVERAGE_XML_FILE})
253-
254- ENDIF()
255-
256- # provide a global coverage target executing both steps if available
257- SET(GLOBAL_DEPENDS "")
258- IF(LCOV_FOUND)
259- LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_REPORT_DIR})
260- ENDIF()
261- IF(GCOVR_FOUND)
262- LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_XML_FILE})
263- ENDIF()
264- IF(LCOV_FOUND OR GCOVR_FOUND)
265- ADD_CUSTOM_TARGET(coverage
266- DEPENDS ${GLOBAL_DEPENDS})
267- ENDIF()
268-
269- ENDIF()
270-
271- # This gets rid of any stale .gcda files. Run this if a running a binary causes lots of messages about
272- # about a "merge mismatch for summaries".
273- ADD_CUSTOM_TARGET(clean-coverage COMMAND find ${CMAKE_BINARY_DIR} -name '*.gcda' | xargs rm -f)
274-
275-ENDFUNCTION()
276
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-# - Find lcov
282-# Will define:
283-#
284-# LCOV_EXECUTABLE - the lcov binary
285-# GENHTML_EXECUTABLE - the genhtml executable
286-#
287-# Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de>
288-#
289-# This program is free software; you can redistribute it
290-# and/or modify it under the terms of the GNU General
291-# Public License as published by the Free Software Foundation;
292-# either version 2, or (at your option)
293-# any later version.
294-#
295-# This program is distributed in the hope that it will be useful,
296-# but WITHOUT ANY WARRANTY; without even the implied warranty of
297-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
298-# GNU General Public License for more details.
299-#
300-
301-INCLUDE(FindPackageHandleStandardArgs)
302-
303-FIND_PROGRAM(LCOV_EXECUTABLE lcov)
304-FIND_PROGRAM(GENHTML_EXECUTABLE genhtml)
305-
306-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lcov DEFAULT_MSG LCOV_EXECUTABLE GENHTML_EXECUTABLE)
307-
308-# only visible in advanced view
309-MARK_AS_ADVANCED(LCOV_EXECUTABLE GENHTML_EXECUTABLE)
310
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-# - Find gcovr scrip
316-# Will define:
317-#
318-# GCOVR_EXECUTABLE - the gcovr script
319-#
320-# Uses:
321-#
322-# GCOVR_ROOT - root to search for the script
323-#
324-# Copyright (C) 2011 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de>
325-#
326-# This program is free software; you can redistribute it
327-# and/or modify it under the terms of the GNU General
328-# Public License as published by the Free Software Foundation;
329-# either version 2, or (at your option)
330-# any later version.
331-#
332-# This program is distributed in the hope that it will be useful,
333-# but WITHOUT ANY WARRANTY; without even the implied warranty of
334-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
335-# GNU General Public License for more details.
336-#
337-
338-INCLUDE(FindPackageHandleStandardArgs)
339-
340-FIND_PROGRAM(GCOVR_EXECUTABLE gcovr HINTS ${GCOVR_ROOT} "${GCOVR_ROOT}/bin")
341-
342-FIND_PACKAGE_HANDLE_STANDARD_ARGS(gcovr DEFAULT_MSG GCOVR_EXECUTABLE)
343-
344-# only visible in advanced view
345-MARK_AS_ADVANCED(GCOVR_EXECUTABLE)
346
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-# Parse arguments passed to a function into several lists separated by
352-# upper-case identifiers and options that do not have an associated list e.g.:
353-#
354-# SET(arguments
355-# hello OPTION3 world
356-# LIST3 foo bar
357-# OPTION2
358-# LIST1 fuz baz
359-# )
360-# PARSE_ARGUMENTS(ARG "LIST1;LIST2;LIST3" "OPTION1;OPTION2;OPTION3" ${arguments})
361-#
362-# results in 7 distinct variables:
363-# * ARG_DEFAULT_ARGS: hello;world
364-# * ARG_LIST1: fuz;baz
365-# * ARG_LIST2:
366-# * ARG_LIST3: foo;bar
367-# * ARG_OPTION1: FALSE
368-# * ARG_OPTION2: TRUE
369-# * ARG_OPTION3: TRUE
370-#
371-# taken from http://www.cmake.org/Wiki/CMakeMacroParseArguments
372-
373-MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
374- SET(DEFAULT_ARGS)
375- FOREACH(arg_name ${arg_names})
376- SET(${prefix}_${arg_name})
377- ENDFOREACH(arg_name)
378- FOREACH(option ${option_names})
379- SET(${prefix}_${option} FALSE)
380- ENDFOREACH(option)
381-
382- SET(current_arg_name DEFAULT_ARGS)
383- SET(current_arg_list)
384- FOREACH(arg ${ARGN})
385- SET(larg_names ${arg_names})
386- LIST(FIND larg_names "${arg}" is_arg_name)
387- IF (is_arg_name GREATER -1)
388- SET(${prefix}_${current_arg_name} ${current_arg_list})
389- SET(current_arg_name ${arg})
390- SET(current_arg_list)
391- ELSE (is_arg_name GREATER -1)
392- SET(loption_names ${option_names})
393- LIST(FIND loption_names "${arg}" is_option)
394- IF (is_option GREATER -1)
395- SET(${prefix}_${arg} TRUE)
396- ELSE (is_option GREATER -1)
397- SET(current_arg_list ${current_arg_list} ${arg})
398- ENDIF (is_option GREATER -1)
399- ENDIF (is_arg_name GREATER -1)
400- ENDFOREACH(arg)
401- SET(${prefix}_${current_arg_name} ${current_arg_list})
402-ENDMACRO(PARSE_ARGUMENTS)
403
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-# If you need to override the qmlplugindump binary, create the qmlplugin executable
409-# target before loading this plugin.
410-
411-if(NOT TARGET qmlplugindump)
412- find_program(qmlplugindump_exe qmlplugindump)
413-
414- if(NOT qmlplugindump_exe)
415- msg(FATAL_ERROR "Could not locate qmlplugindump.")
416- endif()
417-
418- add_executable(qmlplugindump IMPORTED)
419- set_target_properties(qmlplugindump PROPERTIES IMPORTED_LOCATION ${qmlplugindump_exe})
420-endif()
421-
422-#
423-# A custom target for building the qmltypes files manually.
424-#
425-if (NOT TARGET qmltypes)
426- add_custom_target(qmltypes)
427-endif()
428-
429-# Creates a target for copying resource files into build dir and optionally installing them.
430-#
431-# Files will be copied into ${BINARY_DIR}/${path} or ${CMAKE_CURRENT_BINARY_DIR} and installed
432-# into ${DESTINATION}/${path}.
433-#
434-# Resource file names are matched against {*.{qml,js,jpg,png,sci,svg},qmldir}.
435-#
436-# export_qmlfiles(plugin path
437-# [SEARCH_PATH path] # Path to search for resources in (defaults to ${CMAKE_CURRENT_SOURCE_DIR})
438-# [BINARY_DIR path]
439-# [DESTINATION path]
440-# [TARGET_PREFIX string] # Will be prefixed to the target name
441-# )
442-#
443-# Created target:
444-# - ${TARGET_PREFIX}${plugin}-qmlfiles - Copies resources into the binary dir.
445-
446-macro(export_qmlfiles PLUGIN PATH)
447- set(single SEARCH_PATH BINARY_DIR DESTINATION TARGET_PREFIX)
448- cmake_parse_arguments(QMLFILES "" "${single}" "" ${ARGN})
449-
450- if(NOT QMLFILES_SEARCH_PATH)
451- set(QMLFILES_SEARCH_PATH ${CMAKE_CURRENT_SOURCE_DIR})
452- endif()
453-
454- if(QMLFILES_BINARY_DIR)
455- set(qmlfiles_dir ${QMLFILES_BINARY_DIR}/${PATH})
456- else()
457- set(qmlfiles_dir ${CMAKE_CURRENT_BINARY_DIR})
458- endif()
459-
460- file(GLOB QMLFILES
461- ${QMLFILES_SEARCH_PATH}/*.qml
462- ${QMLFILES_SEARCH_PATH}/*.js
463- ${QMLFILES_SEARCH_PATH}/*.jpg
464- ${QMLFILES_SEARCH_PATH}/*.png
465- ${QMLFILES_SEARCH_PATH}/*.sci
466- ${QMLFILES_SEARCH_PATH}/*.svg
467- ${QMLFILES_SEARCH_PATH}/*.qmltypes
468- ${QMLFILES_SEARCH_PATH}/qmldir
469- )
470-
471- execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${qmlfiles_dir})
472-
473- # copy the files
474- add_custom_target(${QMLFILES_TARGET_PREFIX}${PLUGIN}-qmlfiles ALL
475- COMMAND cp ${QMLFILES} ${qmlfiles_dir}
476- DEPENDS ${QMLFILES}
477- SOURCES ${QMLFILES}
478- )
479-
480- if(QMLFILES_DESTINATION)
481- # install the qmlfiles file.
482- install(FILES ${QMLFILES}
483- DESTINATION ${QMLFILES_DESTINATION}/${PATH}
484- )
485- endif()
486-endmacro()
487-
488-
489-# Creates a target for generating the typeinfo file for a QML plugin and/or installs the plugin
490-# targets.
491-#
492-# Files will be copied into ${BINARY_DIR}/${path} or ${CMAKE_CURRENT_BINARY_DIR} and installed
493-# into ${DESTINATION}/${path}. If you don't pass BINARY_DIR, it's assumed that current source
494-# path ends with ${path}.
495-#
496-# The generated file will be named after the last segment of the plugin name, e.g. Foo.qmltypes.
497-#
498-# export_qmlplugin(plugin version path
499-# [BINARY_DIR path]
500-# [DESTINATION path]
501-# [TARGET_PREFIX string] # Will be prefixed to the target name
502-# [ENVIRONMENT string] # Will be added to qmlplugindump's env
503-# [TARGETS target1 [target2 ...]] # Targets to depend on and install (e.g. the plugin shared object)
504-# [NO_TYPES] # Do not create the qmltypes target
505-# )
506-#
507-# Created target:
508-# - ${TARGET_PREFIX}${plugin}-qmltypes - Generates the qmltypes file in the source dir.
509-# It will be made a dependency of the "qmltypes" target.
510-
511-macro(export_qmlplugin PLUGIN VERSION PATH)
512- set(options NO_TYPES)
513- set(single BINARY_DIR DESTINATION TARGET_PREFIX ENVIRONMENT)
514- set(multi TARGETS)
515- cmake_parse_arguments(QMLPLUGIN "${options}" "${single}" "${multi}" ${ARGN})
516-
517- get_target_property(qmlplugindump_executable qmlplugindump LOCATION)
518-
519- if(QMLPLUGIN_BINARY_DIR)
520- set(qmlplugin_dir ${QMLPLUGIN_BINARY_DIR}/${PATH})
521- else()
522- # Find import path to point qmlplugindump at
523- string(REGEX REPLACE "/${PATH}$" "" QMLPLUGIN_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
524- set(qmlplugin_dir ${CMAKE_CURRENT_BINARY_DIR})
525- endif()
526-
527- if(NOT QMLPLUGIN_NO_TYPES)
528- # Relative path for the module
529- string(REPLACE "${CMAKE_BINARY_DIR}/" "" QMLPLUGIN_MODULE_DIR "${QMLPLUGIN_BINARY_DIR}")
530-
531- # Find the last segment of the plugin name to use as qmltypes basename
532- string(REGEX MATCH "[^.]+$" plugin_suffix ${PLUGIN})
533- set(target_prefix ${QMLPLUGIN_TARGET_PREFIX}${PLUGIN})
534- set(qmltypes_path ${CMAKE_CURRENT_SOURCE_DIR}/${plugin_suffix}.qmltypes)
535-
536- add_custom_target(${target_prefix}-qmltypes
537- COMMAND env ${QMLPLUGIN_ENVIRONMENT} ${qmlplugindump_executable} -notrelocatable
538- ${PLUGIN} ${VERSION} ${QMLPLUGIN_MODULE_DIR} > ${qmltypes_path}
539- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
540- )
541- add_dependencies(${target_prefix}-qmltypes ${target_prefix}-qmlfiles ${QMLPLUGIN_TARGETS})
542- add_dependencies(qmltypes ${target_prefix}-qmltypes)
543- endif()
544-
545- set_target_properties(${QMLPLUGIN_TARGETS} PROPERTIES
546- ARCHIVE_OUTPUT_DIRECTORY ${qmlplugin_dir}
547- LIBRARY_OUTPUT_DIRECTORY ${qmlplugin_dir}
548- RUNTIME_OUTPUT_DIRECTORY ${qmlplugin_dir}
549- )
550-
551- if (QMLPLUGIN_DESTINATION)
552- # Install additional targets
553- install(TARGETS ${QMLPLUGIN_TARGETS}
554- DESTINATION ${QMLPLUGIN_DESTINATION}/${PATH}
555- )
556- endif()
557-endmacro()
558
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-03-24 12:20:44 +0000
562@@ -1,120 +1,313 @@
563-# add_qml_test(path component_name [NO_ADD_TEST] [NO_TARGETS]
564-# [TARGETS target1 [target2 [...]]]
565-# [IMPORT_PATHS import_path1 [import_path2 [...]]
566-# [PROPERTIES prop1 value1 [prop2 value2 [...]]])
567-#
568-# NO_ADD_TEST will prevent adding the test to the "test" target
569-# NO_TARGETS will prevent adding the test to any targets
570-# TARGETS lists the targets the test should be added to
571-# IMPORT_PATHS will pass those paths to qmltestrunner as "-import" arguments
572-# PROPERTIES will be set on the target and test target. See CMake's set_target_properties()
573+# If you need to override the qmlscene or qmltestrunner executables,
574+# create the corresponding executable target.
575+
576+# These functions respect the global STDOUT_LOGGER and ARTIFACTS_DIR variables.
577+
578+# You can use those with cmake_parse_arguments
579+# if you need to wrap and mangle arguments.
580+set(QMLTEST_OPTIONS ADD_TEST CACHE INTERNAL "")
581+set(QMLTEST_SINGLE ITERATIONS ARG_PREFIX CACHE INTERNAL "")
582+set(QMLTEST_MULTI ARGS ENVIRONMENT DEPENDS IMPORT_PATHS TARGETS CACHE INTERNAL "")
583+
584+# import_executables(name1 [name2 [...]]
585+# [OPTIONAL] # continue when not found
586+# )
587+#
588+# This will find the named executables and import them
589+# to an imported target of the same name.
590+
591+function(import_executables)
592+ cmake_parse_arguments(QMLTEST "OPTIONAL" "" "" ${ARGN})
593+
594+ foreach(NAME ${QMLTEST_UNPARSED_ARGUMENTS})
595+ if(NOT TARGET ${NAME})
596+ add_executable(${NAME} IMPORTED GLOBAL)
597+ find_program(${NAME}_exe ${NAME})
598+
599+ if(NOT QMLTEST_OPTIONAL AND NOT ${NAME}_exe)
600+ message(FATAL_ERROR "Could not locate ${NAME}.")
601+ elseif(NOT ${NAME}_exe)
602+ message(STATUS "Could not locate ${NAME}, skipping.")
603+ else()
604+ set_target_properties(${NAME} PROPERTIES IMPORTED_LOCATION ${${NAME}_exe})
605+ endif()
606+ endif()
607+ endforeach()
608+endfunction()
609+
610+
611+# add_qml_test(path component_name
612+# [...]
613+# )
614+#
615+# Add test targets for ${component_name} under ${path}. It's assumed
616+# that the test file is named ${path}/tst_${component_name}.qml.
617+#
618+# This function wraps add_manual_qml_test and add_qml_unittest,
619+# see below for available arguments.
620+
621+function(add_qml_test PATH COMPONENT_NAME)
622+ cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
623+ mangle_arguments()
624+
625+ add_qml_unittest(${ARGV})
626+ add_manual_qml_test(${ARGV})
627+endfunction()
628+
629+
630+# add_qml_unittest(path component_name
631+# [...]
632+# )
633+#
634+# Add test targets for ${component_name} under ${path}. It's assumed
635+# that the test file is named ${path}/tst_${component_name}.qml.
636+#
637+# This function wraps add_executable_test, see below for available arguments.
638+
639+function(add_qml_unittest PATH COMPONENT_NAME)
640+ import_executables(qmltestrunner)
641+
642+ add_executable_test(${COMPONENT_NAME} qmltestrunner
643+ ${ARGN}
644+ ARGS -input ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS}
645+ )
646+endfunction()
647+
648+
649+# add_manual_qml_test(path component_name
650+# [...]
651+# )
652+#
653+# Add manual test targets for ${component_name} under ${path}. It's assumed
654+# that the test file is named ${path}/tst_${component_name}.qml.
655+#
656+# This function wraps add_manual_test, see below for available arguments.
657+
658+function(add_manual_qml_test PATH COMPONENT_NAME)
659+ import_executables(qmlscene)
660+ cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
661+
662+ add_manual_test(${COMPONENT_NAME} qmlscene
663+ ${ARGN}
664+ ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS}
665+ )
666+endfunction()
667+
668+
669+# add_executable_test(target component_name
670+# [...] # see doc for add_manual_qml_test for common arguments
671+# [ADD_TEST] # whether to add to the "test" target
672+# [ARG_PREFIX arg_prefix] # prefix logging arguments with this string
673+# [ARGS] arg1 [arg2 [...]] # pass these arguments to the test executable
674+# [TARGETS target1 [target2 [...]]] # make the listed targets depend on this test
675+# # if a corresponding xvfbtarget1, xvfbtarget2 etc. exists,
676+# # this test running under xvfb will be added as a dependency
677+# # of those targets
678+# [ITERATIONS count] # run this test as a benchmark for ${count} iterations
679+# )
680+#
681+# Logging options in the standard form of "-o filename,format"
682+# will be appended to the arguments list, prefixed with ARG_PREFIX.
683+# XUnitXML files will be stored in current binary dir or under
684+# ARTIFACTS_DIR, if set.
685+#
686+# Three targets will be created:
687+# - test${component_name} - Runs the test
688+# - xvfbtest${component_name} - Runs the test under xvfb
689+# - gdbtest${component_name} - Runs the test under gdb
690+
691+function(add_executable_test COMPONENT_NAME TARGET)
692+ import_executables(gdb xvfb-run OPTIONAL)
693+
694+ cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
695+ mangle_arguments()
696+
697+ if(ARTIFACTS_DIR)
698+ file(RELATIVE_PATH path ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
699+ file(MAKE_DIRECTORY ${ARTIFACTS_DIR}/${path})
700+ set(file_logger -o ${ARTIFACTS_DIR}/${path}/test${COMPONENT_NAME}.xml,xunitxml)
701+ else()
702+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
703+ set(file_logger -o ${CMAKE_CURRENT_BINARY_DIR}/test${COMPONENT_NAME}.xml,xunitxml)
704+ endif()
705+
706+ bake_arguments("${QMLTEST_ARG_PREFIX}" args ${iterations} ${file_logger} ${STDOUT_LOGGER})
707+
708+ set(qmltest_command
709+ $<TARGET_FILE:${TARGET}>
710+ ${QMLTEST_ARGS}
711+ ${args}
712+ )
713+
714+ add_qmltest_target(test${COMPONENT_NAME} ${TARGET}
715+ COMMAND ${qmltest_command}
716+ ${depends}
717+ ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
718+ ${add_test}
719+ ${targets}
720+ )
721+
722+ if(TARGET xvfb-run)
723+ add_qmltest_target(xvfbtest${COMPONENT_NAME} ${TARGET}
724+ COMMAND $<TARGET_FILE:xvfb-run> --server-args "-screen 0 1024x768x24" --auto-servernum ${qmltest_command}
725+ ${depends}
726+ ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} LD_PRELOAD=/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/mesa/libGL.so.1
727+ TARGETS ${xvfb_targets}
728+ )
729+ endif()
730+
731+ if(TARGET gdb)
732+ add_qmltest_target(gdbtest${COMPONENT_NAME} ${TARGET}
733+ COMMAND $<TARGET_FILE:gdb> -ex run -args ${qmltest_command}
734+ ${depends}
735+ ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
736+ )
737+ endif()
738+endfunction()
739+
740+
741+# add_manual_test(target component_name
742+# [DEPENDS target1 [target2 [...]]] # make this test depend on the specified targets
743+# [IMPORT_PATHS import_path1 [import_path2 [...]] # use these QML import paths
744+# # (they're searched first to last)
745+# [ENVIRONMENT var1=value1 [var2=value2 [...]]] # set these environment variables
746+# )
747 #
748 # Two targets will be created:
749-# - testComponentName - Runs the test with qmltestrunner
750-# - tryComponentName - Runs the test with uqmlscene, for manual interaction
751-#
752-# To change/set a default value for the whole test suite, prior to calling add_qml_test, set:
753-# qmltest_DEFAULT_NO_ADD_TEST (default: FALSE)
754-# qmltest_DEFAULT_TARGETS
755-# qmltest_DEFAULT_IMPORT_PATHS
756-# qmltest_DEFAULT_PROPERTIES
757-
758-find_program(qmltestrunner_exe qmltestrunner)
759-find_program(qmlscene_exe qmlscene)
760-
761-if(NOT qmltestrunner_exe)
762- msg(FATAL_ERROR "Could not locate qmltestrunner.")
763-endif()
764-
765-macro(add_manual_qml_test SUBPATH COMPONENT_NAME)
766- set(options NO_ADD_TEST NO_TARGETS)
767- set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
768-
769- cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
770-
771- set(qmlscene_TARGET try${COMPONENT_NAME})
772- set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
773-
774- set(qmlscene_imports "")
775- if(NOT "${qmltest_IMPORT_PATHS}" STREQUAL "")
776- foreach(IMPORT_PATH ${qmltest_IMPORT_PATHS})
777- list(APPEND qmlscene_imports "-I")
778- list(APPEND qmlscene_imports ${IMPORT_PATH})
779- endforeach(IMPORT_PATH)
780- elseif(NOT "${qmltest_DEFAULT_IMPORT_PATHS}" STREQUAL "")
781- foreach(IMPORT_PATH ${qmltest_DEFAULT_IMPORT_PATHS})
782- list(APPEND qmlscene_imports "-I")
783- list(APPEND qmlscene_imports ${IMPORT_PATH})
784- endforeach(IMPORT_PATH)
785- endif()
786-
787- set(qmlscene_command
788- env ${qmltest_ENVIRONMENT}
789- ${qmlscene_exe} ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
790- ${qmlscene_imports}
791- )
792- add_custom_target(${qmlscene_TARGET} ${qmlscene_command})
793-
794-endmacro(add_manual_qml_test)
795-
796-macro(add_qml_test SUBPATH COMPONENT_NAME)
797- set(options NO_ADD_TEST NO_TARGETS)
798- set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
799-
800- cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
801-
802- set(qmltest_TARGET test${COMPONENT_NAME})
803- set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
804-
805- set(qmltestrunner_imports "")
806- if(NOT "${qmltest_IMPORT_PATHS}" STREQUAL "")
807- foreach(IMPORT_PATH ${qmltest_IMPORT_PATHS})
808- list(APPEND qmltestrunner_imports "-import")
809- list(APPEND qmltestrunner_imports ${IMPORT_PATH})
810- endforeach(IMPORT_PATH)
811- elseif(NOT "${qmltest_DEFAULT_IMPORT_PATHS}" STREQUAL "")
812- foreach(IMPORT_PATH ${qmltest_DEFAULT_IMPORT_PATHS})
813- list(APPEND qmltestrunner_imports "-import")
814- list(APPEND qmltestrunner_imports ${IMPORT_PATH})
815- endforeach(IMPORT_PATH)
816- endif()
817-
818- set(qmltest_command
819- env ${qmltest_ENVIRONMENT}
820- ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
821- ${qmltestrunner_imports}
822- -o ${CMAKE_BINARY_DIR}/${qmltest_TARGET}.xml,xunitxml
823- -o -,txt
824- )
825- add_custom_target(${qmltest_TARGET} ${qmltest_command})
826-
827- if(NOT "${qmltest_PROPERTIES}" STREQUAL "")
828- set_target_properties(${qmltest_TARGET} PROPERTIES ${qmltest_PROPERTIES})
829- elseif(NOT "${qmltest_DEFAULT_PROPERTIES}" STREQUAL "")
830- set_target_properties(${qmltest_TARGET} PROPERTIES ${qmltest_DEFAULT_PROPERTIES})
831- endif()
832-
833- if("${qmltest_NO_ADD_TEST}" STREQUAL FALSE AND NOT "${qmltest_DEFAULT_NO_ADD_TEST}" STREQUAL "TRUE")
834- add_test(${qmltest_TARGET} ${qmltest_command})
835-
836- if(NOT "${qmltest_UNPARSED_ARGUMENTS}" STREQUAL "")
837- set_tests_properties(${qmltest_TARGET} PROPERTIES ${qmltest_PROPERTIES})
838- elseif(NOT "${qmltest_DEFAULT_PROPERTIES}" STREQUAL "")
839- set_tests_properties(${qmltest_TARGET} PROPERTIES ${qmltest_DEFAULT_PROPERTIES})
840- endif()
841- endif("${qmltest_NO_ADD_TEST}" STREQUAL FALSE AND NOT "${qmltest_DEFAULT_NO_ADD_TEST}" STREQUAL "TRUE")
842-
843- if("${qmltest_NO_TARGETS}" STREQUAL "FALSE")
844- if(NOT "${qmltest_TARGETS}" STREQUAL "")
845- foreach(TARGET ${qmltest_TARGETS})
846- add_dependencies(${TARGET} ${qmltest_TARGET})
847- endforeach(TARGET)
848- elseif(NOT "${qmltest_DEFAULT_TARGETS}" STREQUAL "")
849- foreach(TARGET ${qmltest_DEFAULT_TARGETS})
850- add_dependencies(${TARGET} ${qmltest_TARGET})
851- endforeach(TARGET)
852- endif()
853- endif("${qmltest_NO_TARGETS}" STREQUAL "FALSE")
854-
855- add_manual_qml_test(${SUBPATH} ${COMPONENT_NAME} ${ARGN})
856-endmacro(add_qml_test)
857+# - try${component_name} - Runs the test for manual interaction
858+# - gdbtry${component_name} - Runs the test under gdb
859+
860+function(add_manual_test COMPONENT_NAME TARGET)
861+ import_executables(gdb OPTIONAL)
862+
863+ cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
864+ mangle_arguments()
865+
866+ bake_arguments("${QMLTEST_ARG_PREFIX}" args -qmljsdebugger=port:3768)
867+
868+ set(qmltry_command
869+ $<TARGET_FILE:${TARGET}>
870+ ${QMLTEST_ARGS}
871+ ${args}
872+ )
873+
874+ add_qmltest_target(try${COMPONENT_NAME} ${TARGET}
875+ COMMAND ${qmltry_command}
876+ ${depends}
877+ ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
878+ )
879+
880+ if(TARGET gdb)
881+ add_qmltest_target(gdbtry${COMPONENT_NAME} ${TARGET}
882+ COMMAND $<TARGET_FILE:gdb> -ex run -args ${qmltry_command}
883+ ${depends}
884+ ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT}
885+ )
886+ endif()
887+endfunction()
888+
889+
890+################### INTERNAL ####################
891+
892+# add_qmltest_target(target_name target
893+# COMMAND test_exe [arg1 [...]] # execute this test with arguments
894+# [...] # see above for available arguments:
895+# # ADD_TEST, ENVIRONMENT, DEPENDS and TARGETS
896+# )
897+
898+function(add_qmltest_target TARGET_NAME TARGET)
899+ cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "COMMAND;${QMLTEST_MULTI}" ${ARGN})
900+ mangle_arguments()
901+
902+ # Additional arguments
903+ string(TOLOWER "${CMAKE_GENERATOR}" cmake_generator_lower)
904+ if(cmake_generator_lower STREQUAL "unix makefiles")
905+ set(function "$(FUNCTION)")
906+ endif()
907+
908+ add_custom_target(${TARGET_NAME}
909+ env ${QMLTEST_ENVIRONMENT}
910+ ${QMLTEST_COMMAND} ${function}
911+ DEPENDS ${TARGET} ${QMLTEST_DEPENDS}
912+ )
913+
914+ if(QMLTEST_ADD_TEST)
915+ add_test(
916+ NAME ${TARGET_NAME}
917+ COMMAND ${QMLTEST_COMMAND}
918+ )
919+
920+ foreach(ENV ${QMLTEST_ENVIRONMENT})
921+ set_property(TEST ${TARGET_NAME} APPEND PROPERTY ENVIRONMENT ${ENV})
922+ endforeach()
923+
924+ set_property(TEST ${TARGET_NAME} APPEND PROPERTY DEPENDS ${TARGET})
925+ foreach(DEPEND ${DEPENDS})
926+ set_property(TEST ${TARGET_NAME} APPEND PROPERTY DEPENDS ${DEPEND})
927+ endforeach()
928+ endif()
929+
930+ foreach(UPSTREAM_TARGET ${QMLTEST_TARGETS})
931+ add_dependencies(${UPSTREAM_TARGET} ${TARGET_NAME})
932+ endforeach()
933+endfunction()
934+
935+
936+# mangle_arguments(${ARGN})
937+#
938+# Verify there were no unparsed arguments and
939+# mangle the known ones for further processing.
940+
941+macro(mangle_arguments)
942+ if(QMLTEST_UNPARSED_ARGUMENTS)
943+ message(FATAL_ERROR "Unexpected arguments: ${QMLTEST_UNPARSED_ARGUMENTS}")
944+ endif()
945+
946+ if(QMLTEST_ADD_TEST)
947+ set(add_test ADD_TEST)
948+ endif()
949+
950+ if(QMLTEST_IMPORT_PATHS)
951+ string(REPLACE ";" ":" imports "${QMLTEST_IMPORT_PATHS}")
952+ endif()
953+
954+ if(QMLTEST_ITERATIONS)
955+ set(iterations -iterations ${QMLTEST_ITERATIONS})
956+ endif()
957+
958+ if(QMLTEST_DEPENDS)
959+ set(depends DEPENDS ${QMLTEST_DEPENDS})
960+ endif()
961+
962+ if(QMLTEST_TARGETS)
963+ set(targets TARGETS ${QMLTEST_TARGETS})
964+ endif()
965+
966+ set(xvfb_targets "")
967+ foreach(target ${QMLTEST_TARGETS})
968+ if(TARGET xvfb${target})
969+ list(APPEND xvfb_targets xvfb${target})
970+ endif()
971+ endforeach()
972+ set(xvfb_targets "${xvfb_targets}" PARENT_SCOPE)
973+endmacro()
974+
975+
976+# bake_arguments(prefix output
977+# arg1 [arg2 [...]]
978+# )
979+#
980+# If set, add the argument prefix before every passed
981+# argument and store the result in ${OUTPUT} variable.
982+
983+function(bake_arguments PREFIX OUTPUT)
984+ set(args "${ARGN}")
985+ if(PREFIX)
986+ set(args "")
987+ foreach(arg ${ARGN})
988+ list(APPEND args ${PREFIX})
989+ list(APPEND args ${arg})
990+ endforeach()
991+ endif()
992+ set(${OUTPUT} "${args}" PARENT_SCOPE)
993+endfunction()
994
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-IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
1000- MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
1001-ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
1002-
1003-FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
1004-STRING(REGEX REPLACE "\n" ";" files "${files}")
1005-FOREACH(file ${files})
1006- MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
1007- IF(EXISTS "$ENV{DESTDIR}${file}")
1008- EXEC_PROGRAM(
1009- "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
1010- OUTPUT_VARIABLE rm_out
1011- RETURN_VALUE rm_retval
1012- )
1013- IF(NOT "${rm_retval}" STREQUAL 0)
1014- MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
1015- ENDIF(NOT "${rm_retval}" STREQUAL 0)
1016- ELSE(EXISTS "$ENV{DESTDIR}${file}")
1017- MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
1018- ENDIF(EXISTS "$ENV{DESTDIR}${file}")
1019-ENDFOREACH(file)
1020
1021=== modified file 'debian/changelog'
1022--- debian/changelog 2016-03-21 16:54:09 +0000
1023+++ debian/changelog 2016-03-24 12:20:44 +0000
1024@@ -52,6 +52,12 @@
1025
1026 -- Zoltan Balogh <zoltan.balogh@canonical.com> Wed, 02 Mar 2016 21:39:36 +0000
1027
1028+ubuntu-system-components (0.7-0ubuntu1) UNRELEASED; urgency=medium
1029+
1030+ * New package name: ubuntu-system-components
1031+
1032+ -- Michal Sawicz <michal.sawicz@canonical.com> Fri, 29 Jan 2016 00:10:05 +0100
1033+
1034 ubuntu-settings-components (0.6+16.04.20151102-0ubuntu1) xenial; urgency=medium
1035
1036 [ CI Train Bot ]
1037
1038=== modified file 'debian/control'
1039--- debian/control 2016-03-01 15:37:36 +0000
1040+++ debian/control 2016-03-24 12:20:44 +0000
1041@@ -1,10 +1,12 @@
1042-Source: ubuntu-settings-components
1043+Source: ubuntu-system-components
1044 Section: misc
1045 Priority: optional
1046-Maintainer: Andrea Cimitan <andrea.cimitan@canonical.com>
1047+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
1048 Build-Depends: cmake,
1049+ cmake-extras (>= 0.6),
1050 debhelper (>= 9),
1051 pkg-config,
1052+ python3:any,
1053 qml-module-qtquick-layouts,
1054 qt5-default,
1055 qtbase5-private-dev,
1056@@ -26,13 +28,24 @@
1057 Package: qtdeclarative5-ubuntu-settings-components
1058 Architecture: any
1059 Multi-Arch: same
1060+Section: oldlibs
1061+Depends: qml-module-ubuntu-system-components, ${misc:Depends}
1062+Description: transitional dummy package for Ubuntu system components
1063+ Ubuntu system components for Unity
1064+ .
1065+ This is a transitional dummy package which can be safely removed.
1066+
1067+Package: qml-module-ubuntu-system-components
1068+Architecture: any
1069+Multi-Arch: same
1070 Pre-Depends: dpkg (>= 1.15.6~)
1071 Depends: qml-module-qtquick-layouts,
1072 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.1) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.1),
1073 suru-icon-theme,
1074 ${misc:Depends},
1075 ${shlibs:Depends},
1076-Breaks: qtdeclarative5-ubuntu-settings-components-assets (<< 0.3),
1077-Replaces: qtdeclarative5-ubuntu-settings-components-assets (<< 0.3),
1078-Description: Ubuntu Settings Components
1079- Ubuntu settings components for Unity
1080\ No newline at end of file
1081+Breaks: qtdeclarative5-ubuntu-settings-components (<< 0.7),
1082+Replaces: qtdeclarative5-ubuntu-settings-components (<< 0.7),
1083+Provides: qtdeclarative5-ubuntu-settings-components,
1084+Description: Ubuntu System Components
1085+ Ubuntu system components for Unity
1086
1087=== added file 'debian/qml-module-ubuntu-system-components.install'
1088--- debian/qml-module-ubuntu-system-components.install 1970-01-01 00:00:00 +0000
1089+++ debian/qml-module-ubuntu-system-components.install 2016-03-24 12:20:44 +0000
1090@@ -0,0 +1,2 @@
1091+usr/lib/*/qt5/qml/Ubuntu/Settings/Components
1092+usr/lib/*/qt5/qml/Ubuntu/Settings/Menus
1093
1094=== added directory 'debian/tests'
1095=== added file 'debian/tests/control'
1096--- debian/tests/control 1970-01-01 00:00:00 +0000
1097+++ debian/tests/control 2016-03-24 12:20:44 +0000
1098@@ -0,0 +1,4 @@
1099+Tests: qmluitests.sh
1100+Depends: @,
1101+ @builddeps@,
1102+ xvfb,
1103
1104=== added file 'debian/tests/qmluitests.sh'
1105--- debian/tests/qmluitests.sh 1970-01-01 00:00:00 +0000
1106+++ debian/tests/qmluitests.sh 2016-03-24 12:20:44 +0000
1107@@ -0,0 +1,5 @@
1108+#!/bin/sh
1109+
1110+dh_auto_configure -- -DARTIFACTS_DIR=${ADT_ARTIFACTS}
1111+
1112+dh_auto_build --parallel -- -k xvfballtests
1113
1114=== modified file 'plugins/Ubuntu/Settings/Components/CMakeLists.txt'
1115--- plugins/Ubuntu/Settings/Components/CMakeLists.txt 2015-04-07 09:42:19 +0000
1116+++ plugins/Ubuntu/Settings/Components/CMakeLists.txt 2016-03-24 12:20:44 +0000
1117@@ -1,12 +1,5 @@
1118 project(UbuntuSettingsComponentsQml)
1119
1120-find_package(Qt5Core REQUIRED)
1121-
1122-include_directories(
1123- ${CMAKE_CURRENT_SOURCE_DIR}
1124- ${CMAKE_CURRENT_BINARY_DIR}
1125-)
1126-
1127 add_definitions(-DUBUNTUSETTINGSCOMPONENTS_LIBRARY)
1128
1129 add_library(UbuntuSettingsComponentsQml MODULE
1130@@ -14,6 +7,10 @@
1131 serverpropertysynchroniser.cpp
1132 )
1133
1134-qt5_use_modules(UbuntuSettingsComponentsQml Core Qml Quick)
1135+target_link_libraries(UbuntuSettingsComponentsQml
1136+ Qt5::Core
1137+ Qt5::Qml
1138+ Qt5::Quick
1139+)
1140
1141 add_usc_plugin(Ubuntu.Settings.Components 0.1 Ubuntu/Settings/Components TARGETS UbuntuSettingsComponentsQml)
1142
1143=== modified file 'plugins/Ubuntu/Settings/Components/Components.qmltypes'
1144--- plugins/Ubuntu/Settings/Components/Components.qmltypes 2015-04-07 09:42:19 +0000
1145+++ plugins/Ubuntu/Settings/Components/Components.qmltypes 2016-03-24 12:20:44 +0000
1146@@ -1,4 +1,4 @@
1147-import QtQuick.tooling 1.1
1148+import QtQuick.tooling 1.2
1149
1150 // This file describes the plugin-supplied types contained in the library.
1151 // It is used for QML tooling purposes only.
1152@@ -7,6 +7,22 @@
1153 // 'qmlplugindump -notrelocatable Ubuntu.Settings.Components 0.1 plugins'
1154
1155 Module {
1156+ dependencies: [
1157+ "QtFeedback 5.0",
1158+ "QtGraphicalEffects 1.0",
1159+ "QtQml 2.0",
1160+ "QtQuick 2.4",
1161+ "QtQuick.Layouts 1.1",
1162+ "QtQuick.Window 2.2",
1163+ "Ubuntu.Components 1.3",
1164+ "Ubuntu.Components.ListItems 1.3",
1165+ "Ubuntu.Components.Popups 1.3",
1166+ "Ubuntu.Components.Styles 1.3",
1167+ "Ubuntu.Components.Themes 1.3",
1168+ "Ubuntu.Components.Themes.Ambiance 1.3",
1169+ "Ubuntu.PerformanceMetrics 1.0",
1170+ "com.canonical.Oxide 1.9"
1171+ ]
1172 Component {
1173 name: "ServerPropertySynchroniser"
1174 prototype: "QObject"
1175@@ -70,4 +86,52 @@
1176 Method { name: "activate" }
1177 Method { name: "reset" }
1178 }
1179+ Component {
1180+ prototype: "Palette_QMLTYPE_2"
1181+ name: "Palette"
1182+ exports: ["Palette -1.-1"]
1183+ exportMetaObjectRevisions: [-1]
1184+ isComposite: true
1185+ }
1186+ Component {
1187+ prototype: "QObject"
1188+ name: "PaletteValues"
1189+ exports: ["PaletteValues -1.-1"]
1190+ exportMetaObjectRevisions: [-1]
1191+ isComposite: true
1192+ Property { name: "background"; type: "QColor" }
1193+ Property { name: "backgroundText"; type: "QColor" }
1194+ Property { name: "base"; type: "QColor" }
1195+ Property { name: "baseText"; type: "QColor" }
1196+ Property { name: "foreground"; type: "QColor" }
1197+ Property { name: "foregroundText"; type: "QColor" }
1198+ Property { name: "overlay"; type: "QColor" }
1199+ Property { name: "overlayText"; type: "QColor" }
1200+ Property { name: "field"; type: "QColor" }
1201+ Property { name: "fieldText"; type: "QColor" }
1202+ Property { name: "selection"; type: "QColor" }
1203+ }
1204+ Component {
1205+ prototype: "QObject"
1206+ name: "UbuntuColors"
1207+ exports: ["UbuntuColors -1.-1"]
1208+ exportMetaObjectRevisions: [-1]
1209+ isComposite: true
1210+ isCreatable: false
1211+ isSingleton: true
1212+ Property { name: "orange"; type: "QColor"; isReadonly: true }
1213+ Property { name: "lightAubergine"; type: "QColor"; isReadonly: true }
1214+ Property { name: "midAubergine"; type: "QColor"; isReadonly: true }
1215+ Property { name: "darkAubergine"; type: "QColor"; isReadonly: true }
1216+ Property { name: "warmGrey"; type: "QColor"; isReadonly: true }
1217+ Property { name: "coolGrey"; type: "QColor"; isReadonly: true }
1218+ Property { name: "orangeGradient"; type: "QQuickGradient"; isPointer: true }
1219+ Property { name: "greyGradient"; type: "QQuickGradient"; isPointer: true }
1220+ Property { name: "lightGrey"; type: "QColor"; isReadonly: true }
1221+ Property { name: "darkGrey"; type: "QColor"; isReadonly: true }
1222+ Property { name: "red"; type: "QColor"; isReadonly: true }
1223+ Property { name: "green"; type: "QColor"; isReadonly: true }
1224+ Property { name: "blue"; type: "QColor"; isReadonly: true }
1225+ Property { name: "purple"; type: "QColor"; isReadonly: true }
1226+ }
1227 }
1228
1229=== modified file 'plugins/Ubuntu/Settings/Components/serverpropertysynchroniser.cpp'
1230--- plugins/Ubuntu/Settings/Components/serverpropertysynchroniser.cpp 2015-05-06 16:31:57 +0000
1231+++ plugins/Ubuntu/Settings/Components/serverpropertysynchroniser.cpp 2016-03-24 12:20:44 +0000
1232@@ -18,7 +18,6 @@
1233
1234 #include <QQmlProperty>
1235 #include <QTimer>
1236-#include <QDebug>
1237
1238 ServerPropertySynchroniser::ServerPropertySynchroniser(QObject* parent)
1239 : QObject(parent)
1240
1241=== modified file 'plugins/Ubuntu/Settings/Menus/CMakeLists.txt'
1242--- plugins/Ubuntu/Settings/Menus/CMakeLists.txt 2014-07-31 13:05:44 +0000
1243+++ plugins/Ubuntu/Settings/Menus/CMakeLists.txt 2016-03-24 12:20:44 +0000
1244@@ -1,29 +1,21 @@
1245 project(UbuntuSettingsMenusQml)
1246
1247-find_package(Qt5Core REQUIRED)
1248-
1249-include_directories(
1250- ${CMAKE_CURRENT_SOURCE_DIR}
1251- ${CMAKE_CURRENT_BINARY_DIR}
1252-)
1253-
1254-set(UbuntuSettingsMenusQml_SOURCES
1255+add_definitions(-DUBUNTUSETTINGSCOMPONENTS_LIBRARY)
1256+
1257+add_library(UbuntuSettingsMenusQml MODULE
1258 plugin.cpp
1259 types.h
1260-)
1261-add_definitions(-DUBUNTUSETTINGSCOMPONENTS_LIBRARY)
1262-
1263-add_library(UbuntuSettingsMenusQml MODULE
1264 ${UbuntuSettingsMenusQml_SOURCES}
1265 )
1266
1267 target_link_libraries(UbuntuSettingsMenusQml
1268+ Qt5::Core
1269+ Qt5::Qml
1270+ Qt5::Quick
1271 ${GLIB_LIBRARIES}
1272 ${GIO_LIBRARIES}
1273 ${QMENUMODEL_LDFLAGS}
1274 ${LIBUPSTART_LIBRARIES}
1275 )
1276
1277-qt5_use_modules(UbuntuSettingsMenusQml Core Qml Quick)
1278-
1279 add_usc_plugin(Ubuntu.Settings.Menus 0.1 Ubuntu/Settings/Menus TARGETS UbuntuSettingsMenusQml)
1280
1281=== modified file 'plugins/Ubuntu/Settings/Menus/Menus.qmltypes'
1282--- plugins/Ubuntu/Settings/Menus/Menus.qmltypes 2015-04-07 09:42:19 +0000
1283+++ plugins/Ubuntu/Settings/Menus/Menus.qmltypes 2016-03-24 12:20:44 +0000
1284@@ -1,4 +1,4 @@
1285-import QtQuick.tooling 1.1
1286+import QtQuick.tooling 1.2
1287
1288 // This file describes the plugin-supplied types contained in the library.
1289 // It is used for QML tooling purposes only.
1290@@ -7,6 +7,23 @@
1291 // 'qmlplugindump -notrelocatable Ubuntu.Settings.Menus 0.1 plugins'
1292
1293 Module {
1294+ dependencies: [
1295+ "QtFeedback 5.0",
1296+ "QtGraphicalEffects 1.0",
1297+ "QtQml 2.0",
1298+ "QtQuick 2.4",
1299+ "QtQuick.Layouts 1.1",
1300+ "QtQuick.Window 2.2",
1301+ "Ubuntu.Components 1.3",
1302+ "Ubuntu.Components.ListItems 1.3",
1303+ "Ubuntu.Components.Popups 1.3",
1304+ "Ubuntu.Components.Styles 1.3",
1305+ "Ubuntu.Components.Themes 1.3",
1306+ "Ubuntu.Components.Themes.Ambiance 1.3",
1307+ "Ubuntu.PerformanceMetrics 1.0",
1308+ "Ubuntu.Settings.Components 0.1",
1309+ "com.canonical.Oxide 1.9"
1310+ ]
1311 Component {
1312 name: "TransferState"
1313 prototype: "QObject"
1314@@ -27,4 +44,52 @@
1315 }
1316 }
1317 }
1318+ Component {
1319+ prototype: "Palette_QMLTYPE_2"
1320+ name: "Palette"
1321+ exports: ["Palette -1.-1"]
1322+ exportMetaObjectRevisions: [-1]
1323+ isComposite: true
1324+ }
1325+ Component {
1326+ prototype: "QObject"
1327+ name: "PaletteValues"
1328+ exports: ["PaletteValues -1.-1"]
1329+ exportMetaObjectRevisions: [-1]
1330+ isComposite: true
1331+ Property { name: "background"; type: "QColor" }
1332+ Property { name: "backgroundText"; type: "QColor" }
1333+ Property { name: "base"; type: "QColor" }
1334+ Property { name: "baseText"; type: "QColor" }
1335+ Property { name: "foreground"; type: "QColor" }
1336+ Property { name: "foregroundText"; type: "QColor" }
1337+ Property { name: "overlay"; type: "QColor" }
1338+ Property { name: "overlayText"; type: "QColor" }
1339+ Property { name: "field"; type: "QColor" }
1340+ Property { name: "fieldText"; type: "QColor" }
1341+ Property { name: "selection"; type: "QColor" }
1342+ }
1343+ Component {
1344+ prototype: "QObject"
1345+ name: "UbuntuColors"
1346+ exports: ["UbuntuColors -1.-1"]
1347+ exportMetaObjectRevisions: [-1]
1348+ isComposite: true
1349+ isCreatable: false
1350+ isSingleton: true
1351+ Property { name: "orange"; type: "QColor"; isReadonly: true }
1352+ Property { name: "lightAubergine"; type: "QColor"; isReadonly: true }
1353+ Property { name: "midAubergine"; type: "QColor"; isReadonly: true }
1354+ Property { name: "darkAubergine"; type: "QColor"; isReadonly: true }
1355+ Property { name: "warmGrey"; type: "QColor"; isReadonly: true }
1356+ Property { name: "coolGrey"; type: "QColor"; isReadonly: true }
1357+ Property { name: "orangeGradient"; type: "QQuickGradient"; isPointer: true }
1358+ Property { name: "greyGradient"; type: "QQuickGradient"; isPointer: true }
1359+ Property { name: "lightGrey"; type: "QColor"; isReadonly: true }
1360+ Property { name: "darkGrey"; type: "QColor"; isReadonly: true }
1361+ Property { name: "red"; type: "QColor"; isReadonly: true }
1362+ Property { name: "green"; type: "QColor"; isReadonly: true }
1363+ Property { name: "blue"; type: "QColor"; isReadonly: true }
1364+ Property { name: "purple"; type: "QColor"; isReadonly: true }
1365+ }
1366 }
1367
1368=== modified file 'runtests.sh'
1369--- runtests.sh 2014-08-04 14:27:30 +0000
1370+++ runtests.sh 2016-03-24 12:20:44 +0000
1371@@ -53,7 +53,7 @@
1372
1373 cd -
1374
1375-make -k qmltests
1376+make -k alltests
1377
1378 cd -
1379
1380
1381=== modified file 'tests/CMakeLists.txt'
1382--- tests/CMakeLists.txt 2016-02-29 18:14:22 +0000
1383+++ tests/CMakeLists.txt 2016-03-24 12:20:44 +0000
1384@@ -1,10 +1,27 @@
1385+include(QmlTest)
1386+
1387+# QML tests that require graphical capabilities.
1388+add_custom_target(uitests)
1389+add_custom_target(xvfbuitests)
1390+
1391+add_custom_target(alltests)
1392+add_dependencies(alltests uitests)
1393+
1394+add_custom_target(xvfballtests)
1395+add_dependencies(xvfballtests xvfbuitests)
1396+
1397 add_subdirectory(utils)
1398
1399-# QML tests that require graphical capabitlies.
1400-add_custom_target(qmluitests)
1401-add_dependencies(qmluitests UbuntuTest)
1402-
1403-add_custom_target(qmltests)
1404-add_dependencies(qmltests qmluitests)
1405-
1406+# add a graphical qml test
1407+# see QmlTest.cmake for additional options
1408+function(add_usc_qmltest PATH COMPONENT_NAME)
1409+ add_qml_test(${PATH} ${COMPONENT_NAME}
1410+ DEPENDS UbuntuTest
1411+ IMPORT_PATHS ${CMAKE_BINARY_DIR}/tests/utils/modules
1412+ TARGETS uitests
1413+ ${ARGN}
1414+ )
1415+endfunction()
1416+
1417+add_subdirectory(imports)
1418 add_subdirectory(qmltests)
1419
1420=== added directory 'tests/imports'
1421=== added file 'tests/imports/CMakeLists.txt'
1422--- tests/imports/CMakeLists.txt 1970-01-01 00:00:00 +0000
1423+++ tests/imports/CMakeLists.txt 2016-03-24 12:20:44 +0000
1424@@ -0,0 +1,5 @@
1425+
1426+#
1427+# Test that all imports for QtQuick and Ubuntu.Components use the wanted version
1428+#
1429+add_test(imports ${CMAKE_CURRENT_SOURCE_DIR}/check_imports.py ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
1430
1431=== added file 'tests/imports/check_imports.py'
1432--- tests/imports/check_imports.py 1970-01-01 00:00:00 +0000
1433+++ tests/imports/check_imports.py 2016-03-24 12:20:44 +0000
1434@@ -0,0 +1,125 @@
1435+#! /usr/bin/env python3
1436+
1437+#
1438+# Copyright (C) 2015 Canonical Ltd
1439+#
1440+# This program is free software: you can redistribute it and/or modify
1441+# it under the terms of the GNU General Public License version 3 as
1442+# published by the Free Software Foundation.
1443+#
1444+# This program is distributed in the hope that it will be useful,
1445+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1446+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1447+# GNU General Public License for more details.
1448+#
1449+# You should have received a copy of the GNU General Public License
1450+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1451+#
1452+
1453+#
1454+# Little helper program to test that all source files import
1455+# versions we want
1456+#
1457+# Usage: check_imports.py directory [ignore_prefix]
1458+#
1459+# The directory specifies the (recursive) location of the source files. Any
1460+# files with a path that starts with ignore_prefix are not checked. This is
1461+# useful to exclude files that are generated into the build directory.
1462+#
1463+# See the file_pat definition below for a list of files that are checked.
1464+#
1465+
1466+from __future__ import print_function
1467+
1468+import argparse
1469+import os
1470+import re
1471+import sys
1472+
1473+
1474+# Print msg on stderr, preceded by program name and followed by newline
1475+def error(msg):
1476+ print(os.path.basename(sys.argv[0]) + ": " + msg, file=sys.stderr)
1477+
1478+
1479+# Function to raise errors encountered by os.walk
1480+def raise_error(e):
1481+ raise e
1482+
1483+# Qt Quick patterns
1484+# If you increase this make sure you increase
1485+# the Qt version in debian/control and in CMakeLists.txt
1486+quick_pat = re.compile(r'.*import QtQuick.*$')
1487+quick_good_pat = re.compile(r'.*import QtQuick 2\.4.*$')
1488+quick_layouts_good_pat = re.compile(r'.*import QtQuick.Layouts 1\.1.*$')
1489+quick_window_good_pat = re.compile(r'.*import QtQuick.Window 2\.2.*$')
1490+
1491+# Ubuntu Components patterns
1492+ubuntu_components_pat = re.compile(r'.*import Ubuntu.Components.*')
1493+ubuntu_good_components_pat = re.compile(r'.*import Ubuntu.Components.*1\.3.*')
1494+
1495+def scan_for_bad_import(file_path, all_pat, good_pats):
1496+ errors = []
1497+ with open(file_path, 'rt', encoding='utf-8') as ifile:
1498+ for lino, line in enumerate(ifile, start=1):
1499+ if all_pat.match(line):
1500+ good_found = False
1501+ for good_pat in good_pats:
1502+ if good_pat.match(line):
1503+ good_found = True
1504+ if not good_found:
1505+ errors.append(lino)
1506+ if 0 < len(errors) <= 10:
1507+ if len(errors) > 1:
1508+ plural = 's'
1509+ else:
1510+ plural = ''
1511+ print(
1512+ "%s: bad import version in line%s %s" % (
1513+ file_path, plural, ", ".join((str(i) for i in errors))))
1514+ elif errors:
1515+ print("%s: bad import version in multiple lines" % file_path)
1516+ return bool(errors)
1517+
1518+# Parse args
1519+
1520+parser = argparse.ArgumentParser(
1521+ description='Test that source files contain the wanted import version.')
1522+parser.add_argument(
1523+ 'dir', nargs=1,
1524+ help='The directory to (recursively) search for source files')
1525+parser.add_argument(
1526+ 'ignore_prefix', nargs='?', default=None,
1527+ help='Ignore source files with a path that starts with the given prefix.')
1528+args = parser.parse_args()
1529+
1530+# Files we want to check for import version.
1531+
1532+file_pat = (
1533+ r'(.*\.(js|qml)$)')
1534+pat = re.compile(file_pat)
1535+
1536+# Find all the files with matching file extension in the specified
1537+# directory and check them
1538+
1539+directory = os.path.abspath(args.dir[0])
1540+ignore = args.ignore_prefix and os.path.abspath(args.ignore_prefix) or None
1541+
1542+found_bad_import = False
1543+try:
1544+ for root, dirs, files in os.walk(directory, onerror=raise_error):
1545+ for file in files:
1546+ path = os.path.join(root, file)
1547+ if not (ignore and path.startswith(ignore)) and pat.match(file):
1548+ quick_good_pats = [quick_good_pat, quick_layouts_good_pat, quick_window_good_pat]
1549+ if scan_for_bad_import(path, quick_pat, quick_good_pats):
1550+ found_bad_import = True
1551+ if scan_for_bad_import(path, ubuntu_components_pat, [ubuntu_good_components_pat]):
1552+ found_bad_import = True
1553+
1554+except OSError as e:
1555+ error("cannot create file list for \"" + dir + "\": " + e.strerror)
1556+ sys.exit(1)
1557+
1558+if found_bad_import:
1559+ sys.exit(1)
1560
1561=== modified file 'tests/qmltests/CMakeLists.txt'
1562--- tests/qmltests/CMakeLists.txt 2016-03-09 14:04:14 +0000
1563+++ tests/qmltests/CMakeLists.txt 2016-03-24 12:20:44 +0000
1564@@ -1,42 +1,30 @@
1565-# add_qml_test macro
1566-include(QmlTest)
1567-
1568-set(qmltest_DEFAULT_TARGETS qmluitests)
1569-set(qmltest_DEFAULT_NO_ADD_TEST TRUE)
1570-set(qmltest_DEFAULT_PROPERTIES ENVIRONMENT "LC_ALL=C")
1571-
1572-set(qmltest_DEFAULT_IMPORT_PATHS
1573- ${CMAKE_BINARY_DIR}/plugins
1574- ${CMAKE_BINARY_DIR}/tests/utils/modules
1575-)
1576-
1577-add_qml_test(Components Calendar)
1578-add_qml_test(Components ServerPropertySynchroniser)
1579-add_qml_test(Components StatusIcon)
1580-
1581-add_qml_test(Menus AccessPointMenu)
1582-add_qml_test(Menus ButtonMenu)
1583-add_qml_test(Menus CalendarMenu)
1584-add_qml_test(Menus CheckableMenu)
1585-add_qml_test(Menus EventMenu)
1586-add_qml_test(Menus GroupedMessageMenu)
1587-add_qml_test(Menus MediaPlayerMenu)
1588-add_qml_test(Menus PlaybackItemMenu)
1589-add_qml_test(Menus ProgressBarMenu)
1590-add_qml_test(Menus ProgressValueMenu)
1591-add_qml_test(Menus SectionMenu)
1592-add_qml_test(Menus SimpleMessageMenu)
1593-add_qml_test(Menus SliderMenu)
1594-add_qml_test(Menus SnapDecisionMenu)
1595-add_qml_test(Menus SwitchMenu)
1596-add_qml_test(Menus UserSessionMenu)
1597-add_qml_test(Menus TextMessageMenu)
1598-add_qml_test(Menus TimeZoneMenu)
1599-add_qml_test(Menus TransferMenu)
1600-
1601-add_qml_test(Vpn VpnList)
1602-add_qml_test(Vpn VpnEditor)
1603-add_qml_test(Vpn VpnOpenvpnEditor)
1604-add_qml_test(Vpn VpnPptpEditor)
1605-add_qml_test(Vpn VpnPreviewDialogCertificateChecks)
1606-add_qml_test(Vpn VpnPreviewDialog ENVIRONMENT NO_SSL_CERTIFICATE_CHECK=1)
1607+add_usc_qmltest(Components Calendar)
1608+add_usc_qmltest(Components ServerPropertySynchroniser)
1609+add_usc_qmltest(Components StatusIcon)
1610+
1611+add_usc_qmltest(Menus AccessPointMenu)
1612+add_usc_qmltest(Menus ButtonMenu)
1613+add_usc_qmltest(Menus CalendarMenu)
1614+add_usc_qmltest(Menus CheckableMenu)
1615+add_usc_qmltest(Menus EventMenu)
1616+add_usc_qmltest(Menus GroupedMessageMenu)
1617+add_usc_qmltest(Menus MediaPlayerMenu)
1618+add_usc_qmltest(Menus PlaybackItemMenu)
1619+add_usc_qmltest(Menus ProgressBarMenu)
1620+add_usc_qmltest(Menus ProgressValueMenu)
1621+add_usc_qmltest(Menus SectionMenu)
1622+add_usc_qmltest(Menus SimpleMessageMenu)
1623+add_usc_qmltest(Menus SliderMenu)
1624+add_usc_qmltest(Menus SnapDecisionMenu)
1625+add_usc_qmltest(Menus SwitchMenu)
1626+add_usc_qmltest(Menus UserSessionMenu)
1627+add_usc_qmltest(Menus TextMessageMenu)
1628+add_usc_qmltest(Menus TimeZoneMenu)
1629+add_usc_qmltest(Menus TransferMenu)
1630+
1631+add_usc_qmltest(Vpn VpnList)
1632+add_usc_qmltest(Vpn VpnEditor)
1633+add_usc_qmltest(Vpn VpnOpenvpnEditor)
1634+add_usc_qmltest(Vpn VpnPptpEditor)
1635+add_usc_qmltest(Vpn VpnPreviewDialogCertificateChecks)
1636+add_usc_qmltest(Vpn VpnPreviewDialog ENVIRONMENT NO_SSL_CERTIFICATE_CHECK=1)
1637
1638=== modified file 'tests/utils/modules/CMakeLists.txt'
1639--- tests/utils/modules/CMakeLists.txt 2013-10-04 10:10:47 +0000
1640+++ tests/utils/modules/CMakeLists.txt 2016-03-24 12:20:44 +0000
1641@@ -1,1 +1,3 @@
1642+include(QmlPlugins)
1643+
1644 add_subdirectory(Ubuntu)
1645
1646=== modified file 'tests/utils/modules/Ubuntu/Test/CMakeLists.txt'
1647--- tests/utils/modules/Ubuntu/Test/CMakeLists.txt 2013-10-04 10:52:27 +0000
1648+++ tests/utils/modules/Ubuntu/Test/CMakeLists.txt 2016-03-24 12:20:44 +0000
1649@@ -1,27 +1,21 @@
1650-add_definitions(-DQT_NO_KEYWORDS)
1651+include_directories(
1652+ ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
1653+)
1654
1655-set(UbuntuTestQML_SOURCES
1656+add_library(UbuntuTestQml MODULE
1657 testutil.cpp
1658 plugin.cpp
1659 TouchEventSequenceWrapper.cpp
1660 )
1661
1662-include_directories(
1663- ${CMAKE_CURRENT_SOURCE_DIR}
1664- ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
1665- )
1666-
1667-add_library(UbuntuTestQml MODULE ${UbuntuTestQML_SOURCES})
1668-
1669-qt5_use_modules(UbuntuTestQml Core Quick Test)
1670-
1671-# copy qml files into build directory for shadow builds
1672-file(GLOB QML_JS_FILES *.js *.qml qmldir)
1673-
1674-add_custom_target(UbuntuTestQmlJsFiles ALL
1675- COMMAND cp ${QML_JS_FILES} ${CMAKE_CURRENT_BINARY_DIR}
1676- DEPENDS ${QML_JS_FILES}
1677+target_link_libraries(UbuntuTestQml
1678+ Qt5::Core
1679+ Qt5::Quick
1680+ Qt5::Test
1681 )
1682
1683+export_qmlfiles(Ubuntu.Test Ubuntu/Test NO_INSTALL)
1684+export_qmlplugin(Ubuntu.Test 0.1 Ubuntu/Test TARGETS UbuntuTestQml NO_INSTALL)
1685+
1686 add_custom_target(UbuntuTest)
1687-add_dependencies(UbuntuTest UbuntuTestQml UbuntuTestQmlJsFiles)
1688+add_dependencies(UbuntuTest UbuntuTestQml Ubuntu.Test-qmlfiles)
1689
1690=== added file 'tests/utils/modules/Ubuntu/Test/Test.qmltypes'
1691--- tests/utils/modules/Ubuntu/Test/Test.qmltypes 1970-01-01 00:00:00 +0000
1692+++ tests/utils/modules/Ubuntu/Test/Test.qmltypes 2016-03-24 12:20:44 +0000
1693@@ -0,0 +1,124 @@
1694+import QtQuick.tooling 1.2
1695+
1696+// This file describes the plugin-supplied types contained in the library.
1697+// It is used for QML tooling purposes only.
1698+//
1699+// This file was auto-generated by:
1700+// 'qmlplugindump -notrelocatable Ubuntu.Test 0.1 tests/utils/modules'
1701+
1702+Module {
1703+ dependencies: [
1704+ "QtFeedback 5.0",
1705+ "QtGraphicalEffects 1.0",
1706+ "QtQml 2.0",
1707+ "QtQuick 2.4",
1708+ "QtQuick.Layouts 1.1",
1709+ "QtQuick.Window 2.2",
1710+ "QtTest 1.1",
1711+ "Ubuntu.Components 1.3",
1712+ "Ubuntu.Components.ListItems 1.3",
1713+ "Ubuntu.Components.Popups 1.3",
1714+ "Ubuntu.Components.Styles 1.3",
1715+ "Ubuntu.Components.Themes 1.3",
1716+ "Ubuntu.Components.Themes.Ambiance 1.3",
1717+ "Ubuntu.PerformanceMetrics 1.0",
1718+ "com.canonical.Oxide 1.9"
1719+ ]
1720+ Component {
1721+ name: "TestUtil"
1722+ prototype: "QObject"
1723+ exports: ["Ubuntu.Test/Util 0.1"]
1724+ isCreatable: false
1725+ isSingleton: true
1726+ exportMetaObjectRevisions: [0]
1727+ Method {
1728+ name: "isInstanceOf"
1729+ type: "bool"
1730+ Parameter { type: "QObject"; isPointer: true }
1731+ Parameter { type: "string" }
1732+ }
1733+ Method { name: "touchEvent"; type: "TouchEventSequenceWrapper*" }
1734+ }
1735+ Component {
1736+ name: "TouchEventSequenceWrapper"
1737+ prototype: "QObject"
1738+ exports: ["Ubuntu.Test/TouchEventSequence 0.1"]
1739+ isCreatable: false
1740+ exportMetaObjectRevisions: [0]
1741+ Method {
1742+ name: "commit"
1743+ Parameter { name: "processEvents"; type: "bool" }
1744+ }
1745+ Method { name: "commit" }
1746+ Method {
1747+ name: "move"
1748+ Parameter { name: "touchId"; type: "int" }
1749+ Parameter { name: "x"; type: "int" }
1750+ Parameter { name: "y"; type: "int" }
1751+ }
1752+ Method {
1753+ name: "press"
1754+ Parameter { name: "touchId"; type: "int" }
1755+ Parameter { name: "x"; type: "int" }
1756+ Parameter { name: "y"; type: "int" }
1757+ }
1758+ Method {
1759+ name: "release"
1760+ Parameter { name: "touchId"; type: "int" }
1761+ Parameter { name: "x"; type: "int" }
1762+ Parameter { name: "y"; type: "int" }
1763+ }
1764+ Method {
1765+ name: "stationary"
1766+ Parameter { name: "touchId"; type: "int" }
1767+ }
1768+ }
1769+ Component {
1770+ prototype: "Palette_QMLTYPE_2"
1771+ name: "Palette"
1772+ exports: ["Palette -1.-1"]
1773+ exportMetaObjectRevisions: [-1]
1774+ isComposite: true
1775+ }
1776+ Component {
1777+ prototype: "QObject"
1778+ name: "PaletteValues"
1779+ exports: ["PaletteValues -1.-1"]
1780+ exportMetaObjectRevisions: [-1]
1781+ isComposite: true
1782+ Property { name: "background"; type: "QColor" }
1783+ Property { name: "backgroundText"; type: "QColor" }
1784+ Property { name: "base"; type: "QColor" }
1785+ Property { name: "baseText"; type: "QColor" }
1786+ Property { name: "foreground"; type: "QColor" }
1787+ Property { name: "foregroundText"; type: "QColor" }
1788+ Property { name: "overlay"; type: "QColor" }
1789+ Property { name: "overlayText"; type: "QColor" }
1790+ Property { name: "field"; type: "QColor" }
1791+ Property { name: "fieldText"; type: "QColor" }
1792+ Property { name: "selection"; type: "QColor" }
1793+ }
1794+ Component {
1795+ prototype: "QObject"
1796+ name: "UbuntuColors"
1797+ exports: ["UbuntuColors -1.-1"]
1798+ exportMetaObjectRevisions: [-1]
1799+ isComposite: true
1800+ isCreatable: false
1801+ isSingleton: true
1802+ Property { name: "orange"; type: "QColor"; isReadonly: true }
1803+ Property { name: "lightAubergine"; type: "QColor"; isReadonly: true }
1804+ Property { name: "midAubergine"; type: "QColor"; isReadonly: true }
1805+ Property { name: "darkAubergine"; type: "QColor"; isReadonly: true }
1806+ Property { name: "warmGrey"; type: "QColor"; isReadonly: true }
1807+ Property { name: "coolGrey"; type: "QColor"; isReadonly: true }
1808+ Property { name: "orangeGradient"; type: "QQuickGradient"; isPointer: true }
1809+ Property { name: "greyGradient"; type: "QQuickGradient"; isPointer: true }
1810+ Property { name: "lightGrey"; type: "QColor"; isReadonly: true }
1811+ Property { name: "darkGrey"; type: "QColor"; isReadonly: true }
1812+ Property { name: "red"; type: "QColor"; isReadonly: true }
1813+ Property { name: "green"; type: "QColor"; isReadonly: true }
1814+ Property { name: "blue"; type: "QColor"; isReadonly: true }
1815+ Property { name: "purple"; type: "QColor"; isReadonly: true }
1816+ }
1817+}

Subscribers

People subscribed via source and target branches

to all changes: