Merge lp:~alan-griffiths/mir/fix-1415321 into lp:mir
- fix-1415321
- Merge into development-branch
Status: | Merged |
---|---|
Approved by: | Alberto Aguirre |
Approved revision: | no longer in the source branch. |
Merged at revision: | 2408 |
Proposed branch: | lp:~alan-griffiths/mir/fix-1415321 |
Merge into: | lp:mir |
Diff against target: |
1010 lines (+300/-258) 28 files modified
debian/changelog (+1/-1) debian/control (+2/-2) debian/libmirclient-dev.install (+1/-0) debian/libmircommon4.install (+1/-1) examples/CMakeLists.txt (+10/-2) include/client/mir_toolkit/cursors.h (+6/-0) include/client/mir_toolkit/mir_client_library.h (+1/-0) include/common/mir_toolkit/common.h (+0/-2) src/client/CMakeLists.txt (+13/-2) src/client/events/CMakeLists.txt (+2/-2) src/client/input/CMakeLists.txt (+7/-13) src/client/input/input_event.cpp (+1/-1) src/client/mir_cursor_api.cpp (+17/-15) src/client/symbols-debug.map (+0/-8) src/client/symbols.map (+164/-24) src/common/CMakeLists.txt (+2/-7) src/common/sharedlibrary/CMakeLists.txt (+4/-1) src/common/symbols.map (+48/-163) src/common/udev/CMakeLists.txt (+8/-0) src/include/common/mir/logging/input_timestamp.h (+1/-5) src/server/CMakeLists.txt (+3/-1) src/server/graphics/nested/CMakeLists.txt (+0/-4) src/server/input/default_configuration.cpp (+2/-0) tests/integration-tests/CMakeLists.txt (+1/-2) tests/unit-tests/CMakeLists.txt (+2/-1) tests/unit-tests/client/input/test_android_input_receiver.cpp (+1/-1) tests/unit-tests/input/test_cursor_controller.cpp (+1/-0) tests/unit-tests/input/test_xcursor_loader.cpp (+1/-0) |
To merge this branch: | bzr merge lp:~alan-griffiths/mir/fix-1415321 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Approve | |
Kevin DuBois (community) | Approve | ||
Daniel van Vugt | Abstain | ||
Alberto Aguirre (community) | Approve | ||
Chris Halse Rogers | Abstain | ||
Review via email: mp+253186@code.launchpad.net |
This proposal supersedes a proposal from 2015-03-16.
Commit message
common, client: move client library code into libmirclient
Description of the change
common, client: move client library code into libmirclient
This version has reflects a preexisting problem that the MIR_CLIENT_8 stanza contained wildcards leading to previous releases incorrectly publishing new entry points as @MIR_CLIENT_8. (Which is likely what leads to lp:1432998)
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2403
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Alan Griffiths (alan-griffiths) wrote : Posted in a previous version of this proposal | # |
"dpkg: error processing archive /home/phablet/
trying to overwrite '/usr/include/
Rats! Those debian/* files are out to get me!
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2405
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Kevin DuBois (kdub) wrote : Posted in a previous version of this proposal | # |
lgtm, explicitly naming the functions in the mirclient map seems better.
Chris Halse Rogers (raof) wrote : Posted in a previous version of this proposal | # |
You don't need to bump the SONAME of mirclient-
Like kdub, I like explicitly listing the symbols for mircilent.
I don't think you need to bump mirclient SONAME? The only loss I can see is the symbols exposed purely for the tests and PrivateProtobuf, neither of which are public. abi-compliance-
I'm not wild about symbols shared between the server and the client being in mirclient - the event builders and the cursor names are used in both. Why shouldn't they be in mircommon?
Daniel van Vugt (vanvugt) wrote : Posted in a previous version of this proposal | # |
(1) This is a big deal:
34 -Package: libmirclient8
35 +Package: libmirclient9
We need to discuss this a bit (mir-devel?), as it will require a bunch of packages in vivid to be rebuilt that have never needed rebuilding before. Not your fault. This is probably unavoidable since the bug got released with 0.11.0.
Given we haven't broken the COMMON ABI in a long time, we can afford to wait and not fix the bug until we're ready for a client ABI bump. Maybe resubmit first thing after vivid?...
[Resubmit]
(2) The regression test needs to be enabled in examples/
# FIXME: Bug not fixed yet.
if (MIR_ENABLE_TESTS AND MIR_TEST_
# Regression tests for LP: #1415321
[Needs Fixing]
Alan Griffiths (alan-griffiths) wrote : Posted in a previous version of this proposal | # |
> (2) The regression test needs to be enabled in examples/
> # FIXME: Bug not fixed yet.
> if (MIR_ENABLE_TESTS AND MIR_TEST_
> # Regression tests for LP: #1415321
> [Needs Fixing]
Oddly this fails with clang. E.g.
$ objdump -p bin/.mir_
NEEDED libmircommon.so.4
NEEDED libmirprotobuf.so.0
It looks as though the clang linker creates empty entries for these in the .dynstr section:
$ readelf --string-
String dump of section '.dynstr':
[ 1] libmirclient.so.9
[ 13] mir_buffer_
[ 37] mir_surface_create
[ 4a] mir_surface_
[ 68] mir_surface_
[ 86] mir_connection_
[ a7] mir_connection_
[ be] mir_surface_
[ d7] _Jv_RegisterClasses
[ eb] mir_connection_
[ 103] mir_connect
[ 10f] mir_wait_for
[ 11c] mir_surface_release
[ 130] mir_surface_
[ 14a] mir_connection_
[ 177] mir_buffer_
[ 19c] mir_connection_
[ 1b8] _ITM_deregister
[ 1d4] mir_surface_
[ 1e9] __gmon_start__
[ 1f8] mir_buffer_
[ 21c] mir_connection_
[ 24a] _ITM_registerTM
[ 264] libboost_
[ 281] libboost_
[ 29b] libboost_
[ 2be] libboost_
[ 2dc] libprotobuf.so.9
[ 2ed] libxkbcommon.so.0
[ 2ff] libdl.so.2
[ 30a] libmircommon.so.4
[ 31c] libudev.so.1
[ 329] libmirprotobuf.so.0
[ 33d] libstdc++.so.6
[ 34c] libm.so.6
[ 356] libgcc_s.so.1
[ 364] libpthread.so.0
[ 374] libc.so.6
[ 37e] puts
[ 383] __assert_fail
[ 391] getopt
[ 398] optarg
[ 39f] stderr
[ 3a6] atoi
[ 3ab] fprintf
[ 3b3] opterr
[ 3ba] strcmp
[ 3c1] __libc_start_main
[ 3d3] _edata
[ 3da] __bss_start
[ 3e6] _end
[ 3eb] _IO_stdin_used
[ 3fa] __data_start
[ 407] __libc_csu_init
[ 417] __libc_csu_fini
[ 427] demo_client
[ 433] GLIBC_2.2.5
[ 43f] MIR_CLIENT_9
Alan Griffiths (alan-griffiths) wrote : Posted in a previous version of this proposal | # |
> I'm not wild about symbols shared between the server and the client being in
> mirclient - the event builders and the cursor names are used in both. Why
> shouldn't they be in mircommon?
libmircommon is "common" between by libmirplatform, libmirclient and libmirserver - it should contain symbols that are used by all three. (There's a follow-up MP that removes some symbols used only by libmirplatform and libmirserver.)
libmirclient is used by libmirserver so why shouldn't it contain symbols shared with the latter?
Practically, the mir_toolkit/
Alan Griffiths (alan-griffiths) wrote : Posted in a previous version of this proposal | # |
> You don't need to bump the SONAME of mirclient-
...
> I don't think you need to bump mirclient SONAME? The only loss I can see is
> the symbols exposed purely for the tests and PrivateProtobuf, neither of which
> are public. abi-compliance-
> case.
I thought that rewriting the symbol maps as I have would require the SONAME bump? As xxx@MIR_CLIENT_8 etc won't resolve?
Am I just wrong or is there an alternative incantation?
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2407
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2407
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https:/
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Chris Halse Rogers (raof) wrote : Posted in a previous version of this proposal | # |
>> You don't need to bump the SONAME of mirclient-
...
>> I don't think you need to bump mirclient SONAME? The only loss I can see is
>> the symbols exposed purely for the tests and PrivateProtobuf, neither of which
>> are public. abi-compliance-
>> case.
> I thought that rewriting the symbol maps as I have would require the SONAME bump? As xxx@MIR_CLIENT_8 etc won't resolve?
Rewriting the symbol maps as you had done *would* require the SONAME bump, but as you've now listed all the xxx@MIR_CLIENT_8 symbols in the MIR_CLIENT_8 block they'll all resolve correctly (other than the ones we've always said are private).
Needs fixing: You don't need to postfix all the C symbols with “*”; we do that for the C++ symbols because the parameter signature is a part of the function name in C++. That's obviously not relevant for C symbols, and is potentially dangerous if one of our functions ends up being named a prefix of another one.
Needs fixing: The changelog should no longer document a mirclient ABI bump :)
> libmircommon is "common" between by libmirplatform, libmirclient and libmirserver - it should contain symbols that > are used by all three. (There's a follow-up MP that removes some symbols used only by libmirplatform and
> libmirserver.)
I'm not sure why that is the definition of mircommon; I don't see why symbols shared by mirclient and mirserver shouldn't be in there.
> libmirclient is used by libmirserver so why shouldn't it contain symbols shared with the latter?
Two reasons:
1) I'd ideally like libmirclient to export only a C ABI,
2) I expect in the not too distant future that libmirserver will *not* depend on libmirclient; that it currently does is a strange arrangement forced on us by the nested platform not being loadable.
While I agree it makes sense for symbols shared only between mirserver and mirplatform to be in mirplatform, this is because mirplatform exists only to provide infrastructure for mirserver components. mirclient and mirserver should both be top-level objects.
I won't block on the somewhat philosophial issue of mirserver → mirclient dependency.
Daniel van Vugt (vanvugt) wrote : Posted in a previous version of this proposal | # |
(3) Changing the versions of old-ish symbols from MIR_CLIENT_8 to MIR_CLIENT_8.x I think is an ABI break that will break some existing downstreams. :(
446 +MIR_CLIENT_8.4 {
447 + global:
448 + mir_default_
449 + mir_disabled_
450 + mir_arrow_
451 + mir_busy_
452 + mir_caret_
453 + mir_pointing_
454 + mir_open_
455 + mir_closed_
456 + mir_horizontal_
457 + mir_vertical_
458 + mir_diagonal_
459 + mir_diagonal_
460 + mir_omnidirecti
461 + mir_vsplit_
462 + mir_hsplit_
463 +} MIR_CLIENT_8.3;
464 +
465 +MIR_CLIENT_8.5 {
466 + global:
467 + mir_event_
468 + mir_event_
469 + mir_event_
(4) Yeah those new wildcards just add a little bit of risk, but no value.
Looks like too much risk of breaking the client ABI still. I vote just resubmit in a simpler form (client ABI 9) after vivid is finalized.
Alan Griffiths (alan-griffiths) wrote : Posted in a previous version of this proposal | # |
> (3) Changing the versions of old-ish symbols from MIR_CLIENT_8 to
> MIR_CLIENT_8.x I think is an ABI break that will break some existing
> downstreams. :(
Yeah, looks like that stopped the CI mako booting.
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2410
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https:/
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2410
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Kevin DuBois (kdub) wrote : | # |
I worked a bit on clarifying some of the nested/offscreen interfaces internally, but stopped short of splitting out a new .so (mostly so we don't have the maintenence burden of a new .so, and a new public distinction between "host" (android/mesa) and "guest" (nested/offscreen) "platforms", that only provide a display.). I think it is cleaner if mirclient only exports a c abi too, but I don't think this solution makes the dependency chain any more or less safe than the current status quo. I guess abstain for some more discussion on the MP.
Chris Halse Rogers (raof) wrote : | # |
Still not wild on deliberately exporting C++ symobls from mirclient, and not wild about exporting implementation details from mirclient.
I don't think this is the right way to fix the bug, but I don't particularly feel like fixing it the right way myself at the moment, and this isn't going to make it any harder should I later choose to :).
Daniel van Vugt (vanvugt) wrote : | # |
ABI break: A bunch of symbols have changed version stanzas:
447 MIR_CLIENT_8.2 {
448 - global:
449 - mir_surface_
450 - mir_surface_
451 - mir_surface_
452 } MIR_CLIENT_8.1;
453
454 MIR_CLIENT_8.3 {
455 - global:
456 - mir_connection_
457 - mir_connection_
458 - mir_connection_
459 + global:
460 mir_connection_
461 } MIR_CLIENT_8.2;
(and beyond in the new stanzas 8.4, 8.5)
As it seems we have to break the client ABI regardless, I think the most sensible solution is wait till post-vivid and lump everything into MIR_CLIENT_9.
Alan Griffiths (alan-griffiths) wrote : | # |
> ABI break: A bunch of symbols have changed version stanzas:
Nope.
"Note that the script is read top to bottom; wildcards are greedily bound when first encountered, so to avoid surprises you should only have a wildcard in the final stanza."
- http://
FWIW That's the surprise I had in -r 2407 (which did cause an ABI break that stopped the CI makos booting).
Alan Griffiths (alan-griffiths) wrote : | # |
OK. I accept that it would be a reasonable goal to make the symbols from libmirclient C only.
But the existing script also mentioned some internal C++ symbols so I don't feel that blocks this MP which is an improvement on the status quo.
Alberto Aguirre (albaguirre) wrote : | # |
So it looks like we missed versioning some symbols correctly in trunk/devel (like mir_connection_
http://
However it does look like the functions mentioned in the versioned stanzas are indeed versioned correctly:
http://
http://
http://
So we should at least keep those in their respective stanzas.
Regarding exposing C++ symbols and implementation details - that is a pre-existing issue so I would consider that outside the scope of this MP.
@Chris:
>I don't think this is the right way to fix the bug, but I don't particularly feel like fixing >it the right way myself at the moment
Why not? The alternative I see is replicating symbols by wrapping them in the client and versioning them under a MIR_CLIENT_8.x stanza. I guess the advantage there is server code or other places that need them can just link to libmircommon instead of libmirclient.
Alan Griffiths (alan-griffiths) wrote : | # |
> So it looks like we missed versioning some symbols correctly in trunk/devel
> (like mir_connection_
> mir_connection_
>
> http://
>
> However it does look like the functions mentioned in the versioned stanzas are
> indeed versioned correctly:
> http://
> http://
> http://
OK I'll copy the stanzas from the released libs
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2412
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2413
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
Daniel van Vugt (vanvugt) wrote : | # |
Looks like we might be getting closer to something ABI safe. Haven't re-examined in detail.
We really need automation to take the guesswork out... :)
Alan Griffiths (alan-griffiths) wrote : | # |
> Looking for a way to retrieve the upstream tarball
> Using apt to look for the upstream tarball.
> apt could not find the needed tarball.
> Trying to use get-packaged-
> dh get-packaged-
> sh: 1: arm-linux-
> dpkg-architecture: warning: couldn't determine gcc system type, falling back to default (native compilation)
> sh: 1: arm-linux-
I don't this change could cause this
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2414
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Kevin DuBois (kdub) wrote : | # |
I keep flip-flopping in my head over this MP between abstain (for mirclient having c++ abi, and the current status quo) and approve... It seems like a step toward better abi control though, so I guess approve wins out
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2415
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Alberto Aguirre (albaguirre) wrote : | # |
make abi-check-mirclient reports no compatibility issues with mir/ubuntu
PS Jenkins bot (ps-jenkins) : | # |
Preview Diff
1 | === modified file 'debian/changelog' |
2 | --- debian/changelog 2015-03-06 03:52:41 +0000 |
3 | +++ debian/changelog 2015-03-19 10:32:29 +0000 |
4 | @@ -8,7 +8,7 @@ |
5 | . TODO: mention more enhancements |
6 | - ABI summary: Servers need rebuilding, but clients do not; |
7 | . Mirclient ABI unchanged at 8 |
8 | - . Mircommon ABI unchanged at 3 |
9 | + . Mircommon ABI bumped to 4 |
10 | . Mirplatform ABI bumped to 7 |
11 | . Mirserver ABI bumped to 31 (TODO 30 is in series 0.12) |
12 | - Bug fixes: |
13 | |
14 | === modified file 'debian/control' |
15 | --- debian/control 2015-03-12 03:19:52 +0000 |
16 | +++ debian/control 2015-03-19 10:32:29 +0000 |
17 | @@ -95,7 +95,7 @@ |
18 | Architecture: i386 amd64 armhf arm64 |
19 | Multi-Arch: same |
20 | Pre-Depends: ${misc:Pre-Depends} |
21 | -Depends: libmircommon3 (= ${binary:Version}), |
22 | +Depends: libmircommon4 (= ${binary:Version}), |
23 | libprotobuf-dev (>= 2.4.1), |
24 | libxkbcommon-dev, |
25 | ${misc:Depends}, |
26 | @@ -255,7 +255,7 @@ |
27 | . |
28 | Contains a tool for stress testing the Mir display server |
29 | |
30 | -Package: libmircommon3 |
31 | +Package: libmircommon4 |
32 | Section: libs |
33 | Architecture: i386 amd64 armhf arm64 |
34 | Multi-Arch: same |
35 | |
36 | === modified file 'debian/libmirclient-dev.install' |
37 | --- debian/libmirclient-dev.install 2014-10-23 13:29:28 +0000 |
38 | +++ debian/libmirclient-dev.install 2015-03-19 10:32:29 +0000 |
39 | @@ -1,3 +1,4 @@ |
40 | usr/include/mirclient/mir_toolkit/*.h |
41 | +usr/include/mirclient/mir_toolkit/events |
42 | usr/lib/*/pkgconfig/mirclient.pc |
43 | usr/lib/*/libmirclient.so |
44 | |
45 | === renamed file 'debian/libmircommon3.install' => 'debian/libmircommon4.install' |
46 | --- debian/libmircommon3.install 2015-01-21 07:34:50 +0000 |
47 | +++ debian/libmircommon4.install 2015-03-19 10:32:29 +0000 |
48 | @@ -1,1 +1,1 @@ |
49 | -usr/lib/*/libmircommon.so.3 |
50 | +usr/lib/*/libmircommon.so.4 |
51 | |
52 | === modified file 'examples/CMakeLists.txt' |
53 | --- examples/CMakeLists.txt 2015-03-18 21:26:34 +0000 |
54 | +++ examples/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
55 | @@ -183,8 +183,7 @@ |
56 | mircommon |
57 | ) |
58 | |
59 | -# FIXME: Bug not fixed yet. |
60 | -if (MIR_ENABLE_TESTS AND MIR_TEST_CLIENT_ABI) |
61 | +if (MIR_ENABLE_TESTS) |
62 | # Regression tests for LP: #1415321 |
63 | |
64 | # To see reasons for failure: ctest -V -R Clients-only-use-client-symbols |
65 | @@ -193,9 +192,18 @@ |
66 | COMMAND /bin/sh -c "!(nm -u .mir_demo_client_* mir_demo_client* | grep -v @@MIR_CLIENT | grep 'U mir_')" |
67 | ) |
68 | |
69 | +# We use a slightly weaker version of the test with clang as that generates spurious NEEDED |
70 | +if (NOT "${CMAKE_CXX_COMPILER}" MATCHES "clang") |
71 | # To see reasons for failure: ctest -V -R Clients-only-use-client-ABI |
72 | add_test(NAME Clients-only-use-client-ABI |
73 | WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin |
74 | COMMAND /bin/sh -c "!(objdump -p .mir_demo_client_* mir_demo_client* | grep NEEDED | grep libmir | grep -v libmirclient)" |
75 | ) |
76 | +else() |
77 | + # To see reasons for failure: ctest -V -R Clients-only-use-client-ABI |
78 | + add_test(NAME Clients-only-use-client-ABI |
79 | + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin |
80 | + COMMAND /bin/sh -c "!(nm -u .mir_demo_client_* mir_demo_client* | grep -v @@MIR_CLIENT | grep @@MIR_)" |
81 | + ) |
82 | +endif () |
83 | endif () |
84 | |
85 | === added directory 'include/client/mir' |
86 | === renamed file 'include/common/mir_toolkit/client_types.h' => 'include/client/mir_toolkit/client_types.h' |
87 | === renamed file 'include/common/mir_toolkit/cursors.h' => 'include/client/mir_toolkit/cursors.h' |
88 | --- include/common/mir_toolkit/cursors.h 2014-07-01 16:53:35 +0000 |
89 | +++ include/client/mir_toolkit/cursors.h 2015-03-19 10:32:29 +0000 |
90 | @@ -27,6 +27,9 @@ |
91 | */ |
92 | |
93 | /* This is C code. Not C++. */ |
94 | +#ifdef __cplusplus |
95 | +extern "C" { |
96 | +#endif |
97 | |
98 | /** |
99 | * A special cursor name for use with mir_cursor_configuration_from_name |
100 | @@ -110,6 +113,9 @@ |
101 | */ |
102 | extern char const* const mir_hsplit_resize_cursor_name; |
103 | |
104 | +#ifdef __cplusplus |
105 | +} |
106 | +#endif |
107 | /**@}*/ |
108 | |
109 | #endif |
110 | |
111 | === renamed file 'include/common/mir_toolkit/event.h' => 'include/client/mir_toolkit/event.h' |
112 | === renamed directory 'include/common/mir_toolkit/events' => 'include/client/mir_toolkit/events' |
113 | === modified file 'include/client/mir_toolkit/mir_client_library.h' |
114 | --- include/client/mir_toolkit/mir_client_library.h 2015-03-06 03:52:41 +0000 |
115 | +++ include/client/mir_toolkit/mir_client_library.h 2015-03-19 10:32:29 +0000 |
116 | @@ -24,5 +24,6 @@ |
117 | #include <mir_toolkit/mir_buffer_stream.h> |
118 | #include <mir_toolkit/version.h> |
119 | #include <mir_toolkit/mir_platform_message.h> |
120 | +#include <mir_toolkit/cursors.h> |
121 | |
122 | #endif /* MIR_CLIENT_LIBRARY_H */ |
123 | |
124 | === removed directory 'include/common/mir/input' |
125 | === modified file 'include/common/mir_toolkit/common.h' |
126 | --- include/common/mir_toolkit/common.h 2015-01-21 07:34:50 +0000 |
127 | +++ include/common/mir_toolkit/common.h 2015-03-19 10:32:29 +0000 |
128 | @@ -21,8 +21,6 @@ |
129 | #ifndef MIR_COMMON_H_ |
130 | #define MIR_COMMON_H_ |
131 | |
132 | -#include <mir_toolkit/cursors.h> |
133 | - |
134 | /** |
135 | * \addtogroup mir_toolkit |
136 | * @{ |
137 | |
138 | === modified file 'src/client/CMakeLists.txt' |
139 | --- src/client/CMakeLists.txt 2015-03-12 03:19:52 +0000 |
140 | +++ src/client/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
141 | @@ -30,14 +30,20 @@ |
142 | add_definitions(-DCLIENT_PLATFORM_VERSION="${MIR_CLIENT_PLATFORM_VERSION}") |
143 | add_definitions(-DMIR_LOGGING_COMPONENT_FALLBACK="mirclient") |
144 | |
145 | +set(MIR_CLIENT_SOURCES) |
146 | +set(MIR_CLIENT_REFERENCES mircommon) |
147 | + |
148 | add_subdirectory(rpc/) |
149 | add_subdirectory(lttng/) |
150 | +add_subdirectory(events) |
151 | +add_subdirectory(input) |
152 | |
153 | add_library(mirclientobjects OBJECT |
154 | |
155 | client_buffer_depository.cpp |
156 | display_configuration.cpp |
157 | error_connections.cpp |
158 | + event.cpp |
159 | mir_connection.cpp |
160 | mir_connection_api.cpp |
161 | mir_wait_handle.cpp |
162 | @@ -63,14 +69,19 @@ |
163 | buffer_stream.cpp |
164 | mir_buffer_stream_api.cpp |
165 | default_client_buffer_stream_factory.cpp |
166 | + ${MIR_CLIENT_SOURCES} |
167 | ) |
168 | |
169 | # Ensure protobuf C++ headers have been produced before |
170 | # trying to compile mirclientobjects |
171 | add_dependencies(mirclientobjects mirprotobuf) |
172 | |
173 | -add_library(mirclient SHARED $<TARGET_OBJECTS:mirclientobjects>) |
174 | -add_library(mirclient-static STATIC $<TARGET_OBJECTS:mirclientobjects>) |
175 | +add_library(mirclient SHARED $<TARGET_OBJECTS:mirclientobjects> $<TARGET_OBJECTS:mirsharedinput>) |
176 | +add_library(mirclient-static STATIC $<TARGET_OBJECTS:mirclientobjects> $<TARGET_OBJECTS:mirsharedinput>) |
177 | + |
178 | +target_link_libraries(mirclient |
179 | + ${MIR_CLIENT_REFERENCES} |
180 | +) |
181 | |
182 | set_target_properties(mirclient |
183 | |
184 | |
185 | === renamed file 'src/common/event.cpp' => 'src/client/event.cpp' |
186 | === renamed directory 'src/common/events' => 'src/client/events' |
187 | === modified file 'src/client/events/CMakeLists.txt' |
188 | --- src/common/events/CMakeLists.txt 2015-01-22 22:56:47 +0000 |
189 | +++ src/client/events/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
190 | @@ -14,8 +14,8 @@ |
191 | # |
192 | # Authored by: Robert Carr <robert.carr@canonical.com> |
193 | |
194 | -list(APPEND MIR_COMMON_SOURCES |
195 | +list(APPEND MIR_CLIENT_SOURCES |
196 | ${CMAKE_CURRENT_SOURCE_DIR}/event_builders.cpp |
197 | ) |
198 | |
199 | -set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE) |
200 | +set(MIR_CLIENT_SOURCES ${MIR_CLIENT_SOURCES} PARENT_SCOPE) |
201 | |
202 | === renamed directory 'src/common/input' => 'src/client/input' |
203 | === modified file 'src/client/input/CMakeLists.txt' |
204 | --- src/common/input/CMakeLists.txt 2015-03-06 03:52:41 +0000 |
205 | +++ src/client/input/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
206 | @@ -25,22 +25,16 @@ |
207 | |
208 | add_library(mirsharedinput OBJECT |
209 | ${ANDROID_SHARED_INPUT_SOURCES} |
210 | - udev_wrapper.cpp |
211 | input_event.cpp |
212 | ${CMAKE_CURRENT_SOURCE_DIR}/xkb_mapper.cpp |
213 | ) |
214 | |
215 | -list(APPEND MIR_COMMON_SOURCES |
216 | - $<TARGET_OBJECTS:mirsharedinput> |
217 | -) |
218 | - |
219 | -# As we put android-input in MIR_COMMON_REFERENCES it ends up linked into |
220 | +# As we put android-input in MIR_CLIENT_REFERENCES it ends up linked into |
221 | # libmirserver. But linking into libmircommon fails as it in turn needs |
222 | # mir::mir::terminate_with_current_exception() from mirserver |
223 | -list(APPEND MIR_COMMON_REFERENCES android-input) |
224 | - |
225 | -list(APPEND MIR_COMMON_REFERENCES ${XKBCOMMON_LIBRARIES}) |
226 | -list(APPEND MIR_COMMON_REFERENCES ${UDEV_LDFLAGS} ${UDEV_LIBRARIES}) |
227 | - |
228 | -set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE) |
229 | -set(MIR_COMMON_REFERENCES ${MIR_COMMON_REFERENCES} PARENT_SCOPE) |
230 | +list(APPEND MIR_CLIENT_REFERENCES android-input) |
231 | + |
232 | +list(APPEND MIR_CLIENT_REFERENCES ${XKBCOMMON_LIBRARIES}) |
233 | + |
234 | +set(MIR_CLIENT_SOURCES ${MIR_CLIENT_SOURCES} PARENT_SCOPE) |
235 | +set(MIR_CLIENT_REFERENCES ${MIR_CLIENT_REFERENCES} PARENT_SCOPE) |
236 | |
237 | === modified file 'src/client/input/input_event.cpp' |
238 | --- src/common/input/input_event.cpp 2015-03-06 03:52:41 +0000 |
239 | +++ src/client/input/input_event.cpp 2015-03-19 10:32:29 +0000 |
240 | @@ -18,7 +18,7 @@ |
241 | |
242 | #define MIR_INCLUDE_DEPRECATED_EVENT_HEADER |
243 | |
244 | -#define MIR_LOGGING_COMPONENT "input-event-access" |
245 | +#define MIR_LOG_COMPONENT "input-event-access" |
246 | |
247 | #include "mir/event_type_to_string.h" |
248 | #include "mir/log.h" |
249 | |
250 | === modified file 'src/client/mir_cursor_api.cpp' |
251 | --- src/client/mir_cursor_api.cpp 2015-03-06 03:52:41 +0000 |
252 | +++ src/client/mir_cursor_api.cpp 2015-03-19 10:32:29 +0000 |
253 | @@ -25,21 +25,23 @@ |
254 | |
255 | #include <memory> |
256 | |
257 | -char const *const mir_default_cursor_name = "default"; |
258 | -char const *const mir_disabled_cursor_name = "disabled"; |
259 | -char const* const mir_arrow_cursor_name = "arrow"; |
260 | -char const* const mir_busy_cursor_name = "busy"; |
261 | -char const* const mir_caret_cursor_name = "caret"; |
262 | -char const* const mir_pointing_hand_cursor_name = "pointing-hand"; |
263 | -char const* const mir_open_hand_cursor_name = "open-hand"; |
264 | -char const* const mir_closed_hand_cursor_name = "closed-hand"; |
265 | -char const* const mir_horizontal_resize_cursor_name = "horizontal-resize"; |
266 | -char const* const mir_vertical_resize_cursor_name = "vertical-resize"; |
267 | -char const* const mir_diagonal_resize_bottom_to_top_cursor_name = "diagonal-resize-bottom-to-top"; |
268 | -char const* const mir_diagonal_resize_top_to_bottom_cursor_name = "diagonal-resize-top_to_bottom"; |
269 | -char const* const mir_omnidirectional_resize_cursor_name = "omnidirectional-resize"; |
270 | -char const* const mir_vsplit_resize_cursor_name = "vsplit-resize"; |
271 | -char const* const mir_hsplit_resize_cursor_name = "hsplit-resize"; |
272 | + |
273 | +extern "C" char const *const mir_default_cursor_name = "default"; |
274 | +extern "C" char const *const mir_disabled_cursor_name = "disabled"; |
275 | +extern "C" char const* const mir_arrow_cursor_name = "arrow"; |
276 | +extern "C" char const* const mir_busy_cursor_name = "busy"; |
277 | +extern "C" char const* const mir_caret_cursor_name = "caret"; |
278 | +extern "C" char const* const mir_pointing_hand_cursor_name = "pointing-hand"; |
279 | +extern "C" char const* const mir_open_hand_cursor_name = "open-hand"; |
280 | +extern "C" char const* const mir_closed_hand_cursor_name = "closed-hand"; |
281 | +extern "C" char const* const mir_horizontal_resize_cursor_name = "horizontal-resize"; |
282 | +extern "C" char const* const mir_vertical_resize_cursor_name = "vertical-resize"; |
283 | +extern "C" char const* const mir_diagonal_resize_bottom_to_top_cursor_name = "diagonal-resize-bottom-to-top"; |
284 | +extern "C" char const* const mir_diagonal_resize_top_to_bottom_cursor_name = "diagonal-resize-top_to_bottom"; |
285 | +extern "C" char const* const mir_omnidirectional_resize_cursor_name = "omnidirectional-resize"; |
286 | +extern "C" char const* const mir_vsplit_resize_cursor_name = "vsplit-resize"; |
287 | +extern "C" char const* const mir_hsplit_resize_cursor_name = "hsplit-resize"; |
288 | + |
289 | |
290 | MirCursorConfiguration::MirCursorConfiguration(char const* name) : |
291 | name{name ? name : std::string()} |
292 | |
293 | === modified file 'src/client/symbols-debug.map' |
294 | --- src/client/symbols-debug.map 2015-03-06 03:52:41 +0000 |
295 | +++ src/client/symbols-debug.map 2015-03-19 10:32:29 +0000 |
296 | @@ -3,11 +3,3 @@ |
297 | mir_debug_*; |
298 | local: *; |
299 | }; |
300 | - |
301 | -MIR_CLIENT_8 { |
302 | - local: mir_connection_platform_operation; |
303 | -}; |
304 | - |
305 | -MIR_CLIENT_8.3 { |
306 | - local: mir_connection_platform_operation; |
307 | -}; |
308 | |
309 | === modified file 'src/client/symbols.map' |
310 | --- src/client/symbols.map 2015-03-06 03:52:41 +0000 |
311 | +++ src/client/symbols.map 2015-03-19 10:32:29 +0000 |
312 | @@ -1,46 +1,186 @@ |
313 | MIR_CLIENT_8 { |
314 | global: |
315 | - mir_connection_platform_operation; |
316 | - mir_*; |
317 | - extern "C++" { |
318 | - # used by PrivateProtobuf |
319 | - mir::client::the_rpc_channel*; |
320 | - |
321 | - # used by test framework - see lp:1349788 |
322 | - MirConnection::MirConnection*; |
323 | - MirConnection::connect*; |
324 | - MirConnection::disconnect*; |
325 | - mir::client::DefaultConnectionConfiguration::*; |
326 | - vtable?for?mir::client::DefaultConnectionConfiguration; |
327 | - typeinfo?for?mir::client::DefaultConnectionConfiguration; |
328 | - }; |
329 | + mir_arrow_cursor_name; |
330 | + mir_busy_cursor_name; |
331 | + mir_caret_cursor_name; |
332 | + mir_closed_hand_cursor_name; |
333 | + mir_connect; |
334 | + mir_connection_api_impl; |
335 | + mir_connection_apply_display_config; |
336 | + mir_connection_create_display_config; |
337 | + mir_connection_create_prompt_session_sync; |
338 | + mir_connection_create_screencast_sync; |
339 | + mir_connection_create_spec_for_input_method; |
340 | + mir_connection_create_spec_for_modal_dialog; |
341 | + mir_connection_create_surface; |
342 | + mir_connection_create_surface_sync; |
343 | + mir_connection_drm_auth_magic; |
344 | + mir_connection_drm_set_gbm_device; |
345 | + mir_connection_get_available_surface_formats; |
346 | + mir_connection_get_display_info; |
347 | + mir_connection_get_egl_native_display; |
348 | + mir_connection_get_error_message; |
349 | + mir_connection_get_platform; |
350 | + mir_connection_is_valid; |
351 | + mir_connection_platform_operation; |
352 | + mir_connection_release; |
353 | + mir_connection_set_display_config_change_callback; |
354 | + mir_connection_set_lifecycle_event_callback; |
355 | + mir_connect_sync; |
356 | + mir_cursor_configuration_destroy; |
357 | + mir_cursor_configuration_from_name; |
358 | + mir_default_cursor_name; |
359 | + mir_diagonal_resize_bottom_to_top_cursor_name; |
360 | + mir_diagonal_resize_top_to_bottom_cursor_name; |
361 | + mir_disabled_cursor_name; |
362 | + mir_display_config_destroy; |
363 | + mir_horizontal_resize_cursor_name; |
364 | + mir_hsplit_resize_cursor_name; |
365 | + mir_omnidirectional_resize_cursor_name; |
366 | + mir_open_hand_cursor_name; |
367 | + mir_platform_message_create; |
368 | + mir_platform_message_get_data; |
369 | + mir_platform_message_get_fds; |
370 | + mir_platform_message_get_opcode; |
371 | + mir_platform_message_release; |
372 | + mir_platform_message_set_data; |
373 | + mir_platform_message_set_fds; |
374 | + mir_pointing_hand_cursor_name; |
375 | + mir_prompt_session_error_message; |
376 | + mir_prompt_session_is_valid; |
377 | + mir_prompt_session_new_fds_for_prompt_providers; |
378 | + mir_prompt_session_release_sync; |
379 | + mir_screencast_egl_native_window; |
380 | + mir_screencast_release_sync; |
381 | + mir_surface_configure_cursor; |
382 | + mir_surface_get_current_buffer; |
383 | + mir_surface_get_dpi; |
384 | + mir_surface_get_egl_native_window; |
385 | + mir_surface_get_error_message; |
386 | + mir_surface_get_focus; |
387 | + mir_surface_get_graphics_region; |
388 | + mir_surface_get_id; |
389 | + mir_surface_get_orientation; |
390 | + mir_surface_get_parameters; |
391 | + mir_surface_get_platform_type; |
392 | + mir_surface_get_state; |
393 | + mir_surface_get_swapinterval; |
394 | + mir_surface_get_type; |
395 | + mir_surface_get_visibility; |
396 | + mir_surface_is_valid; |
397 | + mir_surface_release; |
398 | + mir_surface_release_sync; |
399 | + mir_surface_set_event_handler; |
400 | + mir_surface_set_state; |
401 | + mir_surface_set_swapinterval; |
402 | + mir_surface_set_type; |
403 | + mir_surface_spec_release; |
404 | + mir_surface_swap_buffers; |
405 | + mir_surface_swap_buffers_sync; |
406 | + mir_vertical_resize_cursor_name; |
407 | + mir_vsplit_resize_cursor_name; |
408 | + mir_wait_for; |
409 | + mir_wait_for_one; |
410 | local: *; |
411 | }; |
412 | - |
413 | MIR_CLIENT_8.1 { |
414 | - global: |
415 | + global: |
416 | mir_connection_create_spec_for_normal_surface; |
417 | mir_surface_create; |
418 | mir_surface_create_sync; |
419 | + mir_surface_spec_set_buffer_usage; |
420 | + mir_surface_spec_set_fullscreen_on_output; |
421 | + mir_surface_spec_set_height; |
422 | mir_surface_spec_set_name; |
423 | + mir_surface_spec_set_pixel_format; |
424 | mir_surface_spec_set_width; |
425 | - mir_surface_spec_set_height; |
426 | - mir_surface_spec_set_pixel_format; |
427 | - mir_surface_spec_set_buffer_usage; |
428 | - mir_surface_spec_set_fullscreen_on_output; |
429 | } MIR_CLIENT_8; |
430 | |
431 | MIR_CLIENT_8.2 { |
432 | - global: |
433 | + global: |
434 | + mir_surface_get_preferred_orientation; |
435 | mir_surface_set_preferred_orientation; |
436 | - mir_surface_get_preferred_orientation; |
437 | mir_surface_spec_set_preferred_orientation; |
438 | } MIR_CLIENT_8.1; |
439 | |
440 | MIR_CLIENT_8.3 { |
441 | - global: |
442 | + global: |
443 | + mir_connection_create_spec_for_dialog; |
444 | mir_connection_create_spec_for_menu; |
445 | mir_connection_create_spec_for_tooltip; |
446 | - mir_connection_create_spec_for_dialog; |
447 | mir_connection_platform_operation; |
448 | } MIR_CLIENT_8.2; |
449 | + |
450 | +MIR_CLIENT_8.4 { |
451 | + global: |
452 | + mir_default_cursor_name; |
453 | + mir_disabled_cursor_name; |
454 | + mir_arrow_cursor_name; |
455 | + mir_busy_cursor_name; |
456 | + mir_caret_cursor_name; |
457 | + mir_pointing_hand_cursor_name; |
458 | + mir_open_hand_cursor_name; |
459 | + mir_closed_hand_cursor_name; |
460 | + mir_horizontal_resize_cursor_name; |
461 | + mir_vertical_resize_cursor_name; |
462 | + mir_diagonal_resize_bottom_to_top_cursor_name; |
463 | + mir_diagonal_resize_top_to_bottom_cursor_name; |
464 | + mir_omnidirectional_resize_cursor_name; |
465 | + mir_vsplit_resize_cursor_name; |
466 | + mir_hsplit_resize_cursor_name; |
467 | + mir_event_get_close_surface_event; |
468 | + mir_event_get_input_event; |
469 | + mir_event_get_keymap_event; |
470 | + mir_event_get_orientation_event; |
471 | + mir_event_get_prompt_session_event; |
472 | + mir_event_get_resize_event; |
473 | + mir_event_get_surface_event; |
474 | + mir_event_get_type; |
475 | + mir_event_ref; |
476 | + mir_event_unref; |
477 | + mir_input_event_get_device_id; |
478 | + mir_input_event_get_event_time; |
479 | + mir_input_event_get_key_input_event; |
480 | + mir_input_event_get_pointer_input_event; |
481 | + mir_input_event_get_touch_input_event; |
482 | + mir_input_event_get_type; |
483 | + mir_key_input_event_get_action; |
484 | + mir_key_input_event_get_key_code; |
485 | + mir_key_input_event_get_modifiers; |
486 | + mir_key_input_event_get_scan_code; |
487 | + mir_keymap_event_get_rules; |
488 | + mir_orientation_event_get_direction; |
489 | + mir_pointer_input_event_get_action; |
490 | + mir_pointer_input_event_get_axis_value; |
491 | + mir_pointer_input_event_get_button_state; |
492 | + mir_pointer_input_event_get_modifiers; |
493 | + mir_prompt_session_event_get_state; |
494 | + mir_resize_event_get_height; |
495 | + mir_resize_event_get_width; |
496 | + mir_surface_event_get_attribute; |
497 | + mir_surface_event_get_attribute_value; |
498 | + mir_surface_set_swapinterval; |
499 | + mir_surface_swap_buffers; |
500 | + mir_surface_swap_buffers_sync; |
501 | + mir_touch_input_event_get_modifiers; |
502 | + mir_touch_input_event_get_touch_action; |
503 | + mir_touch_input_event_get_touch_axis_value; |
504 | + mir_touch_input_event_get_touch_count; |
505 | + mir_touch_input_event_get_touch_id; |
506 | + mir_touch_input_event_get_touch_tooltype; |
507 | + mir_surface_get_buffer_stream; |
508 | + mir_buffer_stream_get_current_buffer; |
509 | + mir_buffer_stream_get_platform_type; |
510 | + mir_buffer_stream_swap_buffers_sync; |
511 | + mir_screencast_get_buffer_stream; |
512 | + mir_buffer_stream_get_egl_native_window; |
513 | + mir_buffer_stream_get_graphics_region; |
514 | +} MIR_CLIENT_8.3; |
515 | + |
516 | +MIR_CLIENT_DETAIL_8 { |
517 | + global: |
518 | + extern "C++" { |
519 | + mir::events::make_event*; |
520 | + mir::input::android::Lexicon::translate*; |
521 | + }; |
522 | +}; |
523 | |
524 | === modified file 'src/common/CMakeLists.txt' |
525 | --- src/common/CMakeLists.txt 2015-03-16 03:39:55 +0000 |
526 | +++ src/common/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
527 | @@ -10,7 +10,6 @@ |
528 | |
529 | add_subdirectory(fd) |
530 | add_subdirectory(geometry) |
531 | -add_subdirectory(input) |
532 | add_subdirectory(logging) |
533 | add_subdirectory(report/lttng) |
534 | add_subdirectory(env) |
535 | @@ -18,12 +17,12 @@ |
536 | add_subdirectory(thread) |
537 | add_subdirectory(time) |
538 | add_subdirectory(dispatch) |
539 | +add_subdirectory(udev) |
540 | |
541 | list(APPEND MIR_COMMON_SOURCES |
542 | $<TARGET_OBJECTS:mirtime> |
543 | ${CMAKE_CURRENT_SOURCE_DIR}/log.cpp |
544 | ) |
545 | -add_subdirectory(events) |
546 | |
547 | set(PREFIX "${CMAKE_INSTALL_PREFIX}") |
548 | set(EXEC_PREFIX "${CMAKE_INSTALL_PREFIX}") |
549 | @@ -35,10 +34,6 @@ |
550 | ${MIR_GENERATED_INCLUDE_DIRECTORIES} |
551 | PARENT_SCOPE) |
552 | |
553 | -list(APPEND MIR_COMMON_SOURCES |
554 | - ${CMAKE_CURRENT_SOURCE_DIR}/event.cpp |
555 | -) |
556 | - |
557 | add_library(mircommon |
558 | SHARED |
559 | ${MIR_COMMON_SOURCES} |
560 | @@ -49,7 +44,7 @@ |
561 | ) |
562 | |
563 | # TODO we need a place to manage ABI and related versioning but use this as placeholder |
564 | -set(MIRCOMMON_ABI 3) |
565 | +set(MIRCOMMON_ABI 4) |
566 | set(symbol_map ${CMAKE_CURRENT_SOURCE_DIR}/symbols.map) |
567 | |
568 | set_target_properties(mircommon |
569 | |
570 | === modified file 'src/common/sharedlibrary/CMakeLists.txt' |
571 | --- src/common/sharedlibrary/CMakeLists.txt 2015-03-06 03:52:41 +0000 |
572 | +++ src/common/sharedlibrary/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
573 | @@ -24,7 +24,10 @@ |
574 | $<TARGET_OBJECTS:mirsharedsharedlibrary> |
575 | ) |
576 | |
577 | -list(APPEND MIR_COMMON_REFERENCES dl) |
578 | +list(APPEND MIR_COMMON_REFERENCES |
579 | + dl |
580 | + ${Boost_LIBRARIES} |
581 | +) |
582 | |
583 | set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE) |
584 | set(MIR_COMMON_REFERENCES ${MIR_COMMON_REFERENCES} PARENT_SCOPE) |
585 | |
586 | === modified file 'src/common/symbols.map' |
587 | --- src/common/symbols.map 2015-03-16 03:39:55 +0000 |
588 | +++ src/common/symbols.map 2015-03-19 10:32:29 +0000 |
589 | @@ -1,20 +1,32 @@ |
590 | |
591 | -MIR_COMMON_3 { |
592 | +MIR_COMMON_4 { |
593 | global: mir_*; |
594 | extern "C++" { |
595 | # The following symbols come from running a script over the generated docs. Vis: |
596 | # ../tools/process_doxygen_xml.py doc/xml/*.xml | grep "^mircommon public" | sed "s/mircommon public: / /" | sort |
597 | - mir_arrow_cursor_name*; |
598 | - mir_busy_cursor_name*; |
599 | - mir_caret_cursor_name*; |
600 | - mir_closed_hand_cursor_name*; |
601 | - mir_default_cursor_name*; |
602 | - mir_diagonal_resize_bottom_to_top_cursor_name*; |
603 | - mir_diagonal_resize_top_to_bottom_cursor_name*; |
604 | - mir_disabled_cursor_name*; |
605 | + mir::detail::RefCountedLibrary::operator*; |
606 | + mir::detail::RefCountedLibrary::?RefCountedLibrary*; |
607 | + mir::detail::RefCountedLibrary::RefCountedLibrary*; |
608 | + mir::dispatch::Dispatchable::?Dispatchable*; |
609 | + mir::dispatch::Dispatchable::Dispatchable*; |
610 | + mir::dispatch::Dispatchable::operator*; |
611 | + mir::dispatch::MultiplexingDispatchable::add_watch*; |
612 | + mir::dispatch::MultiplexingDispatchable::dispatch*; |
613 | + mir::dispatch::MultiplexingDispatchable::?MultiplexingDispatchable*; |
614 | + mir::dispatch::MultiplexingDispatchable::MultiplexingDispatchable*; |
615 | + mir::dispatch::MultiplexingDispatchable::operator*; |
616 | + mir::dispatch::MultiplexingDispatchable::relevant_events*; |
617 | + mir::dispatch::MultiplexingDispatchable::remove_watch*; |
618 | + mir::dispatch::MultiplexingDispatchable::watch_fd*; |
619 | + mir::dispatch::SimpleDispatchThread::?SimpleDispatchThread*; |
620 | + mir::dispatch::SimpleDispatchThread::SimpleDispatchThread*; |
621 | mir::Fd::Fd*; |
622 | mir::Fd::invalid*; |
623 | mir::Fd::operator*; |
624 | + mir::geometry::Displacement::Displacement*; |
625 | + mir::geometry::Displacement::operator*; |
626 | + mir::geometry::Length::Length*; |
627 | + mir::geometry::Length::operator*; |
628 | mir::geometry::operator*; |
629 | mir::geometry::Point::operator*; |
630 | mir::geometry::Point::Point*; |
631 | @@ -37,120 +49,53 @@ |
632 | mir::geometry::Rectangle::top_right*; |
633 | mir::geometry::Size::operator*; |
634 | mir::geometry::Size::Size*; |
635 | - mir_horizontal_resize_cursor_name*; |
636 | - mir_hsplit_resize_cursor_name*; |
637 | - mir::input::receiver::android::AndroidInputPlatform::?AndroidInputPlatform*; |
638 | - mir::input::receiver::android::AndroidInputPlatform::AndroidInputPlatform*; |
639 | - mir::input::receiver::android::AndroidInputPlatform::create_input_thread*; |
640 | - mir::input::receiver::android::AndroidInputPlatform::operator*; |
641 | - mir::input::receiver::android::InputReceiver::fd*; |
642 | - mir::input::receiver::android::InputReceiver::?InputReceiver*; |
643 | - mir::input::receiver::android::InputReceiver::InputReceiver*; |
644 | - mir::input::receiver::android::InputReceiver::next_event*; |
645 | - mir::input::receiver::android::InputReceiver::operator*; |
646 | - mir::input::receiver::android::InputReceiverThread::?InputReceiverThread*; |
647 | - mir::input::receiver::android::InputReceiverThread::InputReceiverThread*; |
648 | - mir::input::receiver::android::InputReceiverThread::join*; |
649 | - mir::input::receiver::android::InputReceiverThread::operator*; |
650 | - mir::input::receiver::android::InputReceiverThread::start*; |
651 | - mir::input::receiver::android::InputReceiverThread::stop*; |
652 | - mir::input::receiver::android::InputReceiver::wake*; |
653 | - mir::input::receiver::InputPlatform::create*; |
654 | - mir::input::receiver::InputPlatform::create_input_thread*; |
655 | - mir::input::receiver::InputPlatform::InputPlatform*; |
656 | - mir::input::receiver::InputPlatform::operator*; |
657 | - mir::input::receiver::InputReceiverThread::InputReceiverThread*; |
658 | - mir::input::receiver::InputReceiverThread::join*; |
659 | - mir::input::receiver::InputReceiverThread::operator*; |
660 | - mir::input::receiver::InputReceiverThread::start*; |
661 | - mir::input::receiver::InputReceiverThread::stop*; |
662 | - mir_omnidirectional_resize_cursor_name*; |
663 | - mir_open_hand_cursor_name*; |
664 | - mir_pointing_hand_cursor_name*; |
665 | - mir::time::Clock::?Clock*; |
666 | - mir::time::Clock::Clock*; |
667 | - mir::time::Clock::sample*; |
668 | - mir_vertical_resize_cursor_name*; |
669 | - mir_vsplit_resize_cursor_name*; |
670 | - non-virtual?thunk?to?mir::input::receiver::android::AndroidInputPlatform::?AndroidInputPlatform*; |
671 | - non-virtual?thunk?to?mir::input::receiver::android::AndroidInputPlatform::create_input_thread*; |
672 | - non-virtual?thunk?to?mir::input::receiver::android::InputReceiver::?InputReceiver*; |
673 | - non-virtual?thunk?to?mir::input::receiver::android::InputReceiver::next_event*; |
674 | - non-virtual?thunk?to?mir::input::receiver::android::InputReceiverThread::?InputReceiverThread*; |
675 | - non-virtual?thunk?to?mir::input::receiver::android::InputReceiverThread::join*; |
676 | - non-virtual?thunk?to?mir::input::receiver::android::InputReceiverThread::start*; |
677 | - non-virtual?thunk?to?mir::input::receiver::android::InputReceiverThread::stop*; |
678 | - non-virtual?thunk?to?mir::input::receiver::android::InputReceiver::wake*; |
679 | - non-virtual?thunk?to?mir::time::Clock::?Clock*; |
680 | + mir::log*; |
681 | + mir::logging::log*; |
682 | + mir::logging::Logger::?Logger*; |
683 | + mir::logging::Logger::Logger*; |
684 | + mir::logging::Logger::operator*; |
685 | + mir::logging::set_logger*; |
686 | + non-virtual?thunk?to?mir::dispatch::Dispatchable::?Dispatchable*; |
687 | + non-virtual?thunk?to?mir::dispatch::MultiplexingDispatchable::dispatch*; |
688 | + non-virtual?thunk?to?mir::dispatch::MultiplexingDispatchable::?MultiplexingDispatchable*; |
689 | + non-virtual?thunk?to?mir::dispatch::MultiplexingDispatchable::relevant_events*; |
690 | + non-virtual?thunk?to?mir::dispatch::MultiplexingDispatchable::watch_fd*; |
691 | + non-virtual?thunk?to?mir::logging::Logger::?Logger*; |
692 | typeinfo?for?MirBufferPackage; |
693 | - typeinfo?for?MirDisplayCard; |
694 | - typeinfo?for?MirDisplayConfiguration; |
695 | - typeinfo?for?MirDisplayInfo; |
696 | - typeinfo?for?MirDisplayMode; |
697 | - typeinfo?for?MirDisplayOutput; |
698 | - typeinfo?for?MirEventDelegate; |
699 | + typeinfo?for?mir::detail::RefCountedLibrary; |
700 | + typeinfo?for?mir::dispatch::Dispatchable; |
701 | + typeinfo?for?mir::dispatch::MultiplexingDispatchable; |
702 | + typeinfo?for?mir::dispatch::SimpleDispatchThread; |
703 | typeinfo?for?mir::Fd; |
704 | + typeinfo?for?mir::geometry::Displacement; |
705 | + typeinfo?for?mir::geometry::Length; |
706 | typeinfo?for?mir::geometry::Point; |
707 | typeinfo?for?mir::geometry::Rectangle; |
708 | typeinfo?for?mir::geometry::Rectangles; |
709 | typeinfo?for?mir::geometry::Size; |
710 | - typeinfo?for?MirGraphicsRegion; |
711 | - typeinfo?for?mir::input::receiver::android::AndroidInputPlatform; |
712 | - typeinfo?for?mir::input::receiver::android::InputReceiver; |
713 | - typeinfo?for?mir::input::receiver::android::InputReceiverThread; |
714 | - typeinfo?for?mir::input::receiver::InputPlatform; |
715 | - typeinfo?for?mir::input::receiver::InputReceiverThread; |
716 | typeinfo?for?mir::IntOwnedFd; |
717 | - typeinfo?for?MirKeyEvent; |
718 | - typeinfo?for?MirMotionEvent; |
719 | - typeinfo?for?MirMotionPointer; |
720 | - typeinfo?for?MirOrientationEvent; |
721 | - typeinfo?for?MirPlatformPackage; |
722 | - typeinfo?for?MirPromptSessionEvent; |
723 | - typeinfo?for?MirRectangle; |
724 | - typeinfo?for?MirResizeEvent; |
725 | - typeinfo?for?MirScreencastParameters; |
726 | - typeinfo?for?MirSurfaceEvent; |
727 | - typeinfo?for?MirSurfaceParameters; |
728 | - typeinfo?for?mir::time::Clock; |
729 | + typeinfo?for?mir::logging::Logger; |
730 | vtable?for?MirBufferPackage; |
731 | - vtable?for?MirDisplayCard; |
732 | - vtable?for?MirDisplayConfiguration; |
733 | - vtable?for?MirDisplayInfo; |
734 | - vtable?for?MirDisplayMode; |
735 | - vtable?for?MirDisplayOutput; |
736 | - vtable?for?MirEventDelegate; |
737 | + vtable?for?mir::detail::RefCountedLibrary; |
738 | + vtable?for?mir::dispatch::Dispatchable; |
739 | + vtable?for?mir::dispatch::MultiplexingDispatchable; |
740 | + vtable?for?mir::dispatch::SimpleDispatchThread; |
741 | vtable?for?mir::Fd; |
742 | + vtable?for?mir::geometry::Displacement; |
743 | + vtable?for?mir::geometry::Length; |
744 | vtable?for?mir::geometry::Point; |
745 | vtable?for?mir::geometry::Rectangle; |
746 | vtable?for?mir::geometry::Rectangles; |
747 | vtable?for?mir::geometry::Size; |
748 | - vtable?for?MirGraphicsRegion; |
749 | - vtable?for?mir::input::receiver::android::AndroidInputPlatform; |
750 | - vtable?for?mir::input::receiver::android::InputReceiver; |
751 | - vtable?for?mir::input::receiver::android::InputReceiverThread; |
752 | - vtable?for?mir::input::receiver::InputPlatform; |
753 | - vtable?for?mir::input::receiver::InputReceiverThread; |
754 | vtable?for?mir::IntOwnedFd; |
755 | - vtable?for?MirKeyEvent; |
756 | - vtable?for?MirMotionEvent; |
757 | - vtable?for?MirMotionPointer; |
758 | - vtable?for?MirOrientationEvent; |
759 | - vtable?for?MirPlatformPackage; |
760 | - vtable?for?MirPromptSessionEvent; |
761 | - vtable?for?MirRectangle; |
762 | - vtable?for?MirResizeEvent; |
763 | - vtable?for?MirScreencastParameters; |
764 | - vtable?for?MirSurfaceEvent; |
765 | - vtable?for?MirSurfaceParameters; |
766 | + vtable?for?mir::logging::Logger; |
767 | |
768 | # These symbols are supposed to be "private" (they're under src/include) |
769 | # but they are used by libmirplatform, libmirclient or libmirserver |
770 | mir::default_server_socket; |
771 | - mir::input::android::Lexicon::translate*; |
772 | + mir::libraries_for_path*; |
773 | mir::logging::input_timestamp*; |
774 | mir::logging::log*; |
775 | - mir::logging::set_logger*; |
776 | mir::logging::SharedLibraryProberReport::SharedLibraryProberReport*; |
777 | mir::RecursiveReadLock::?RecursiveReadLock*; |
778 | mir::RecursiveReadLock::RecursiveReadLock*; |
779 | @@ -199,63 +144,3 @@ |
780 | }; |
781 | local: *; |
782 | }; |
783 | - |
784 | -MIR_COMMON_3.1 { |
785 | - global: |
786 | - extern "C++" { |
787 | - mir_event_get*; |
788 | - mir_event_get*; |
789 | - mir_input_event_get*; |
790 | - mir_key_input_event_get*; |
791 | - mir_touch_input_event_get*; |
792 | - mir::log*char*; |
793 | - mir::logv*; |
794 | - mir::libraries_for_path*; |
795 | - }; |
796 | -} MIR_COMMON_3; |
797 | - |
798 | -MIR_COMMON_3.2 { |
799 | - global: |
800 | - extern "C++" { |
801 | - mir::dispatch::SimpleDispatchThread::SimpleDispatchThread*; |
802 | - mir::dispatch::SimpleDispatchThread::?SimpleDispatchThread*; |
803 | - typeinfo?for?mir::dispatch::SimpleDispatchThread; |
804 | - vtable?for?mir::dispatch::SimpleDispatchThread; |
805 | - |
806 | - mir::events::*; |
807 | - mir::input::receiver::XKBMapper::XKBMapper*; |
808 | - mir::input::receiver::XKBMapper::XKBMapper*; |
809 | - mir::input::receiver::XKBMapper::set_rules*; |
810 | - typeinfo?for?mir::input::receiver::XKBMapper; |
811 | - vtable?for?mir::input::receiver::XKBMapper; |
812 | - |
813 | - mir::dispatch::MultiplexingDispatchable::MultiplexingDispatchable*; |
814 | - mir::dispatch::MultiplexingDispatchable::?MultiplexingDispatchable*; |
815 | - mir::dispatch::MultiplexingDispatchable::watch_fd*; |
816 | - mir::dispatch::MultiplexingDispatchable::dispatch*; |
817 | - mir::dispatch::MultiplexingDispatchable::relevant_events*; |
818 | - mir::dispatch::MultiplexingDispatchable::add_watch*; |
819 | - mir::dispatch::MultiplexingDispatchable::remove_watch*; |
820 | - |
821 | - typeinfo?for?mir::dispatch::MultiplexingDispatchable; |
822 | - vtable?for?mir::dispatch::MultiplexingDispatchable; |
823 | - |
824 | - mir::dispatch::ActionQueue::ActionQueue*; |
825 | - mir::dispatch::ActionQueue::?ActionQueue*; |
826 | - mir::dispatch::ActionQueue::watch_fd*; |
827 | - mir::dispatch::ActionQueue::dispatch*; |
828 | - mir::dispatch::ActionQueue::relevant_events*; |
829 | - mir::dispatch::ActionQueue::enqueue*; |
830 | - |
831 | - typeinfo?for?mir::dispatch::ActionQueue; |
832 | - vtable?for?mir::dispatch::ActionQueue; |
833 | - |
834 | - mir::detail::RefCountedLibrary::operator*; |
835 | - mir::detail::RefCountedLibrary::?RefCountedLibrary*; |
836 | - mir::detail::RefCountedLibrary::RefCountedLibrary*; |
837 | - vtable?for?mir::detail::RefCountedLibrary; |
838 | - typeinfo?for?mir::detail::RefCountedLibrary; |
839 | - |
840 | - mir::events::* |
841 | - }; |
842 | -} MIR_COMMON_3.1; |
843 | |
844 | === added directory 'src/common/udev' |
845 | === added file 'src/common/udev/CMakeLists.txt' |
846 | --- src/common/udev/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
847 | +++ src/common/udev/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
848 | @@ -0,0 +1,8 @@ |
849 | +list(APPEND MIR_COMMON_SOURCES |
850 | + ${CMAKE_CURRENT_SOURCE_DIR}/udev_wrapper.cpp |
851 | +) |
852 | + |
853 | +list(APPEND MIR_COMMON_REFERENCES ${UDEV_LDFLAGS} ${UDEV_LIBRARIES}) |
854 | + |
855 | +set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE) |
856 | +set(MIR_COMMON_REFERENCES ${MIR_COMMON_REFERENCES} PARENT_SCOPE) |
857 | \ No newline at end of file |
858 | |
859 | === renamed file 'src/common/input/udev_wrapper.cpp' => 'src/common/udev/udev_wrapper.cpp' |
860 | === renamed directory 'include/common/mir/events' => 'src/include/client/mir/events' |
861 | === added directory 'src/include/client/mir/input' |
862 | === renamed file 'include/common/mir/input/input_platform.h' => 'src/include/client/mir/input/input_platform.h' |
863 | === modified file 'src/include/common/mir/logging/input_timestamp.h' |
864 | --- src/include/common/mir/logging/input_timestamp.h 2015-03-06 03:52:41 +0000 |
865 | +++ src/include/common/mir/logging/input_timestamp.h 2015-03-19 10:32:29 +0000 |
866 | @@ -1,5 +1,5 @@ |
867 | /* |
868 | - * Copyright © 2013 Canonical Ltd. |
869 | + * Copyright © 2013-2015 Canonical Ltd. |
870 | * |
871 | * This program is free software: you can redistribute it and/or modify it |
872 | * under the terms of the GNU Lesser General Public License version 3, |
873 | @@ -19,10 +19,6 @@ |
874 | #ifndef MIR_LOGGING_INPUT_TIMESTAMP_H_ |
875 | #define MIR_LOGGING_INPUT_TIMESTAMP_H_ |
876 | |
877 | -#define MIR_INCLUDE_DEPRECATED_EVENT_HEADER |
878 | - |
879 | -#include "mir_toolkit/event.h" |
880 | - |
881 | #include <string> |
882 | #include <chrono> |
883 | |
884 | |
885 | === modified file 'src/server/CMakeLists.txt' |
886 | --- src/server/CMakeLists.txt 2015-03-06 03:52:41 +0000 |
887 | +++ src/server/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
888 | @@ -5,8 +5,10 @@ |
889 | |
890 | include_directories( |
891 | ${PROJECT_SOURCE_DIR}/include/platform |
892 | + ${PROJECT_SOURCE_DIR}/include/client |
893 | + ${PROJECT_SOURCE_DIR}/include/server |
894 | ${PROJECT_SOURCE_DIR}/src/include/platform |
895 | - ${PROJECT_SOURCE_DIR}/include/server |
896 | + ${PROJECT_SOURCE_DIR}/src/include/client |
897 | ${PROJECT_SOURCE_DIR}/src/include/server |
898 | ${GLIB_INCLUDE_DIRS} |
899 | ) |
900 | |
901 | === modified file 'src/server/graphics/nested/CMakeLists.txt' |
902 | --- src/server/graphics/nested/CMakeLists.txt 2015-01-21 07:34:50 +0000 |
903 | +++ src/server/graphics/nested/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
904 | @@ -1,7 +1,3 @@ |
905 | -include_directories( |
906 | - ${PROJECT_SOURCE_DIR}/include/client |
907 | -) |
908 | - |
909 | add_library( |
910 | mirnestedgraphics OBJECT |
911 | |
912 | |
913 | === modified file 'src/server/input/default_configuration.cpp' |
914 | --- src/server/input/default_configuration.cpp 2015-03-18 18:48:02 +0000 |
915 | +++ src/server/input/default_configuration.cpp 2015-03-19 10:32:29 +0000 |
916 | @@ -51,6 +51,8 @@ |
917 | #include "mir/report/legacy_input_report.h" |
918 | #include "mir/main_loop.h" |
919 | |
920 | +#include "mir_toolkit/cursors.h" |
921 | + |
922 | #include <InputDispatcher.h> |
923 | #include <EventHub.h> |
924 | #include <InputReader.h> |
925 | |
926 | === modified file 'tests/integration-tests/CMakeLists.txt' |
927 | --- tests/integration-tests/CMakeLists.txt 2015-03-16 03:39:55 +0000 |
928 | +++ tests/integration-tests/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
929 | @@ -69,7 +69,6 @@ |
930 | mir_integration_tests |
931 | ${INTEGRATION_TESTS_SRCS} |
932 | ${MIR_SERVER_OBJECTS} |
933 | - $<TARGET_OBJECTS:mirclientobjects> |
934 | ${MIR_PLATFORM_OBJECTS} |
935 | ${MIR_COMMON_OBJECTS} |
936 | ) |
937 | @@ -87,7 +86,7 @@ |
938 | mir-test-framework |
939 | mir-test-doubles |
940 | mirclient-debug-extension |
941 | - |
942 | + mirclient-static |
943 | mirdraw |
944 | mirclientrpc |
945 | mirclientlttngstatic |
946 | |
947 | === modified file 'tests/unit-tests/CMakeLists.txt' |
948 | --- tests/unit-tests/CMakeLists.txt 2015-03-06 03:52:41 +0000 |
949 | +++ tests/unit-tests/CMakeLists.txt 2015-03-19 10:32:29 +0000 |
950 | @@ -82,7 +82,6 @@ |
951 | mir_add_wrapped_executable(mir_unit_tests |
952 | ${UNIT_TEST_SOURCES} |
953 | ${MIR_SERVER_OBJECTS} |
954 | - $<TARGET_OBJECTS:mirclientobjects> |
955 | ${MIR_PLATFORM_OBJECTS} |
956 | ${MIR_COMMON_OBJECTS} |
957 | ) |
958 | @@ -100,6 +99,7 @@ |
959 | mirclientrpc |
960 | mirclientlttngstatic |
961 | demo-shell |
962 | + mirclient-static |
963 | mircommon |
964 | |
965 | mir-test |
966 | @@ -130,6 +130,7 @@ |
967 | ${MIR_PLATFORM_REFERENCES} |
968 | ${MIR_COMMON_REFERENCES} |
969 | ${MIR_SERVER_REFERENCES} |
970 | + ${XKBCOMMON_LIBRARIES} |
971 | ) |
972 | |
973 | if (MIR_BUILD_PLATFORM_ANDROID) |
974 | |
975 | === modified file 'tests/unit-tests/client/input/test_android_input_receiver.cpp' |
976 | --- tests/unit-tests/client/input/test_android_input_receiver.cpp 2015-03-06 03:52:41 +0000 |
977 | +++ tests/unit-tests/client/input/test_android_input_receiver.cpp 2015-03-19 10:32:29 +0000 |
978 | @@ -18,7 +18,7 @@ |
979 | |
980 | #define MIR_INCLUDE_DEPRECATED_EVENT_HEADER |
981 | |
982 | -#include "src/common/input/android/android_input_receiver.h" |
983 | +#include "src/client/input/android/android_input_receiver.h" |
984 | #include "mir/input/null_input_receiver_report.h" |
985 | #include "mir/input/xkb_mapper.h" |
986 | #include "mir_toolkit/event.h" |
987 | |
988 | === modified file 'tests/unit-tests/input/test_cursor_controller.cpp' |
989 | --- tests/unit-tests/input/test_cursor_controller.cpp 2015-03-12 03:19:52 +0000 |
990 | +++ tests/unit-tests/input/test_cursor_controller.cpp 2015-03-19 10:32:29 +0000 |
991 | @@ -27,6 +27,7 @@ |
992 | #include "mir/graphics/cursor.h" |
993 | |
994 | #include "mir_toolkit/common.h" |
995 | +#include "mir_toolkit/cursors.h" |
996 | |
997 | #include "mir_test/fake_shared.h" |
998 | #include "mir_test_doubles/stub_scene_surface.h" |
999 | |
1000 | === modified file 'tests/unit-tests/input/test_xcursor_loader.cpp' |
1001 | --- tests/unit-tests/input/test_xcursor_loader.cpp 2015-01-21 07:34:50 +0000 |
1002 | +++ tests/unit-tests/input/test_xcursor_loader.cpp 2015-03-19 10:32:29 +0000 |
1003 | @@ -22,6 +22,7 @@ |
1004 | #include "mir_test_framework/executable_path.h" |
1005 | |
1006 | #include <mir_toolkit/common.h> |
1007 | +#include <mir_toolkit/cursors.h> |
1008 | |
1009 | #include <gtest/gtest.h> |
1010 | #include <gmock/gmock.h> |
FAILED: Continuous integration, rev:2402 jenkins. qa.ubuntu. com/job/ mir-ci/ 3208/ jenkins. qa.ubuntu. com/job/ mir-android- vivid-i386- build/1629/ console jenkins. qa.ubuntu. com/job/ mir-clang- vivid-amd64- build/1628/ console jenkins. qa.ubuntu. com/job/ mir-mediumtests -vivid- touch/1583/ console jenkins. qa.ubuntu. com/job/ mir-vivid- amd64-ci/ 1205/console jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 1583/console
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/mir- ci/3208/ rebuild
http://