Mir

Merge lp:~alan-griffiths/mir/fix-1415321 into lp:mir

Proposed by Alan Griffiths
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
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)

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote : Posted in a previous version of this proposal

"dpkg: error processing archive /home/phablet/archive/./libmirclient-dev_0.13.0bzr2404pkg0vivid1587+autopilot0_armhf.deb (--unpack):
 trying to overwrite '/usr/include/mirclient/mir_toolkit/debug/surface.h', which is also in package libmirclient-debug-extension-dev:armhf 0.13.0bzr2404pkg0vivid1587+autopilot0"

Rats! Those debian/* files are out to get me!

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Approve (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote : Posted in a previous version of this proposal

lgtm, explicitly naming the functions in the mirclient map seems better.

review: Approve
Revision history for this message
Chris Halse Rogers (raof) wrote : Posted in a previous version of this proposal

You don't need to bump the SONAME of mirclient-debug-extension.

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-checker will complain, but will be wrong in this case.

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?

review: Needs Information
Revision history for this message
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/CMakeLists.txt:
   # FIXME: Bug not fixed yet.
   if (MIR_ENABLE_TESTS AND MIR_TEST_CLIENT_ABI)
     # Regression tests for LP: #1415321
[Needs Fixing]

review: Needs Resubmitting
Revision history for this message
Alan Griffiths (alan-griffiths) wrote : Posted in a previous version of this proposal

> (2) The regression test needs to be enabled in examples/CMakeLists.txt:
> # FIXME: Bug not fixed yet.
> if (MIR_ENABLE_TESTS AND MIR_TEST_CLIENT_ABI)
> # Regression tests for LP: #1415321
> [Needs Fixing]

Oddly this fails with clang. E.g.

$ objdump -p bin/.mir_demo_client_basic-uninstalled | grep NEEDED | grep libmir | grep -v libmirclient
  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-dump=.dynstr bin/.mir_demo_client_basic-uninstalled

String dump of section '.dynstr':
  [ 1] libmirclient.so.9
  [ 13] mir_buffer_stream_swap_buffers_sync
  [ 37] mir_surface_create
  [ 4a] mir_surface_get_buffer_stream
  [ 68] mir_surface_get_error_message
  [ 86] mir_connection_get_error_message
  [ a7] mir_connection_release
  [ be] mir_surface_spec_release
  [ d7] _Jv_RegisterClasses
  [ eb] mir_connection_is_valid
  [ 103] mir_connect
  [ 10f] mir_wait_for
  [ 11c] mir_surface_release
  [ 130] mir_surface_spec_set_name
  [ 14a] mir_connection_get_available_surface_formats
  [ 177] mir_buffer_stream_get_current_buffer
  [ 19c] mir_connection_get_platform
  [ 1b8] _ITM_deregisterTMCloneTable
  [ 1d4] mir_surface_is_valid
  [ 1e9] __gmon_start__
  [ 1f8] mir_buffer_stream_get_platform_type
  [ 21c] mir_connection_create_spec_for_normal_surface
  [ 24a] _ITM_registerTMCloneTable
  [ 264] libboost_date_time.so.1.55.0
  [ 281] libboost_system.so.1.55.0
  [ 29b] libboost_program_options.so.1.55.0
  [ 2be] libboost_filesystem.so.1.55.0
  [ 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

Revision history for this message
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/event/event.h header obviously belongs in client and is a dependency of the builders so splitting those out into libmircommon would involve some rework.

Revision history for this message
Alan Griffiths (alan-griffiths) wrote : Posted in a previous version of this proposal

> You don't need to bump the SONAME of mirclient-debug-extension.
...
> 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-checker will complain, but will be wrong in this
> 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?

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Chris Halse Rogers (raof) wrote : Posted in a previous version of this proposal

>> You don't need to bump the SONAME of mirclient-debug-extension.
...
>> 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-checker will complain, but will be wrong in this
>> 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.

review: Needs Fixing
Revision history for this message
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_cursor_name;
449 + mir_disabled_cursor_name;
450 + mir_arrow_cursor_name;
451 + mir_busy_cursor_name;
452 + mir_caret_cursor_name;
453 + mir_pointing_hand_cursor_name;
454 + mir_open_hand_cursor_name;
455 + mir_closed_hand_cursor_name;
456 + mir_horizontal_resize_cursor_name;
457 + mir_vertical_resize_cursor_name;
458 + mir_diagonal_resize_bottom_to_top_cursor_name;
459 + mir_diagonal_resize_top_to_bottom_cursor_name;
460 + mir_omnidirectional_resize_cursor_name;
461 + mir_vsplit_resize_cursor_name;
462 + mir_hsplit_resize_cursor_name;
463 +} MIR_CLIENT_8.3;
464 +
465 +MIR_CLIENT_8.5 {
466 + global:
467 + mir_event_get_close_surface_event*;
468 + mir_event_get_input_event*;
469 + mir_event_get_keymap_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.

review: Needs Resubmitting
Revision history for this message
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.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
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.

review: Abstain
Revision history for this message
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 :).

review: Abstain
Revision history for this message
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_set_preferred_orientation;
450 - mir_surface_get_preferred_orientation;
451 - mir_surface_spec_set_preferred_orientation;
452 } MIR_CLIENT_8.1;
453
454 MIR_CLIENT_8.3 {
455 - global:
456 - mir_connection_create_spec_for_menu;
457 - mir_connection_create_spec_for_tooltip;
458 - mir_connection_create_spec_for_dialog;
459 + global:
460 mir_connection_platform_operation;
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.

review: Needs Resubmitting
Revision history for this message
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://unity.ubuntu.com/mir/dso_versioning_guide.html

FWIW That's the surprise I had in -r 2407 (which did cause an ABI break that stopped the CI makos booting).

Revision history for this message
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.

Revision history for this message
Alberto Aguirre (albaguirre) wrote :

So it looks like we missed versioning some symbols correctly in trunk/devel (like mir_connection_create_spec_for_input_method, mir_connection_create_spec_for_modal_dialog) for example

http://pastebin.ubuntu.com/10621901/

However it does look like the functions mentioned in the versioned stanzas are indeed versioned correctly:
http://pastebin.ubuntu.com/10622070/
http://pastebin.ubuntu.com/10622077/
http://pastebin.ubuntu.com/10622081/

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.

review: Needs Fixing
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

> So it looks like we missed versioning some symbols correctly in trunk/devel
> (like mir_connection_create_spec_for_input_method,
> mir_connection_create_spec_for_modal_dialog) for example
>
> http://pastebin.ubuntu.com/10621901/
>
> However it does look like the functions mentioned in the versioned stanzas are
> indeed versioned correctly:
> http://pastebin.ubuntu.com/10622070/
> http://pastebin.ubuntu.com/10622077/
> http://pastebin.ubuntu.com/10622081/

OK I'll copy the stanzas from the released libs

Revision history for this message
Alberto Aguirre (albaguirre) wrote :

LGTM.

review: Approve
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
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... :)

review: Abstain
Revision history for this message
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-orig-source to retrieve needed tarball.
> dh get-packaged-orig-source --parallel --fail-missing
> sh: 1: arm-linux-gnueabihf-gcc-4.9: not found
> dpkg-architecture: warning: couldn't determine gcc system type, falling back to default (native compilation)
> sh: 1: arm-linux-gnueabihf-gcc-4.9: not found

I don't this change could cause this

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
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

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Alberto Aguirre (albaguirre) wrote :

make abi-check-mirclient reports no compatibility issues with mir/ubuntu

Revision history for this message
PS Jenkins bot (ps-jenkins) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/changelog'
--- debian/changelog 2015-03-06 03:52:41 +0000
+++ debian/changelog 2015-03-19 10:32:29 +0000
@@ -8,7 +8,7 @@
8 . TODO: mention more enhancements8 . TODO: mention more enhancements
9 - ABI summary: Servers need rebuilding, but clients do not;9 - ABI summary: Servers need rebuilding, but clients do not;
10 . Mirclient ABI unchanged at 810 . Mirclient ABI unchanged at 8
11 . Mircommon ABI unchanged at 311 . Mircommon ABI bumped to 4
12 . Mirplatform ABI bumped to 712 . Mirplatform ABI bumped to 7
13 . Mirserver ABI bumped to 31 (TODO 30 is in series 0.12)13 . Mirserver ABI bumped to 31 (TODO 30 is in series 0.12)
14 - Bug fixes:14 - Bug fixes:
1515
=== modified file 'debian/control'
--- debian/control 2015-03-12 03:19:52 +0000
+++ debian/control 2015-03-19 10:32:29 +0000
@@ -95,7 +95,7 @@
95Architecture: i386 amd64 armhf arm6495Architecture: i386 amd64 armhf arm64
96Multi-Arch: same96Multi-Arch: same
97Pre-Depends: ${misc:Pre-Depends}97Pre-Depends: ${misc:Pre-Depends}
98Depends: libmircommon3 (= ${binary:Version}), 98Depends: libmircommon4 (= ${binary:Version}),
99 libprotobuf-dev (>= 2.4.1),99 libprotobuf-dev (>= 2.4.1),
100 libxkbcommon-dev,100 libxkbcommon-dev,
101 ${misc:Depends},101 ${misc:Depends},
@@ -255,7 +255,7 @@
255 .255 .
256 Contains a tool for stress testing the Mir display server256 Contains a tool for stress testing the Mir display server
257257
258Package: libmircommon3258Package: libmircommon4
259Section: libs259Section: libs
260Architecture: i386 amd64 armhf arm64260Architecture: i386 amd64 armhf arm64
261Multi-Arch: same261Multi-Arch: same
262262
=== modified file 'debian/libmirclient-dev.install'
--- debian/libmirclient-dev.install 2014-10-23 13:29:28 +0000
+++ debian/libmirclient-dev.install 2015-03-19 10:32:29 +0000
@@ -1,3 +1,4 @@
1usr/include/mirclient/mir_toolkit/*.h1usr/include/mirclient/mir_toolkit/*.h
2usr/include/mirclient/mir_toolkit/events
2usr/lib/*/pkgconfig/mirclient.pc3usr/lib/*/pkgconfig/mirclient.pc
3usr/lib/*/libmirclient.so4usr/lib/*/libmirclient.so
45
=== renamed file 'debian/libmircommon3.install' => 'debian/libmircommon4.install'
--- debian/libmircommon3.install 2015-01-21 07:34:50 +0000
+++ debian/libmircommon4.install 2015-03-19 10:32:29 +0000
@@ -1,1 +1,1 @@
1usr/lib/*/libmircommon.so.31usr/lib/*/libmircommon.so.4
22
=== modified file 'examples/CMakeLists.txt'
--- examples/CMakeLists.txt 2015-03-18 21:26:34 +0000
+++ examples/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -183,8 +183,7 @@
183 mircommon183 mircommon
184)184)
185185
186# FIXME: Bug not fixed yet.186if (MIR_ENABLE_TESTS)
187if (MIR_ENABLE_TESTS AND MIR_TEST_CLIENT_ABI)
188 # Regression tests for LP: #1415321187 # Regression tests for LP: #1415321
189188
190 # To see reasons for failure: ctest -V -R Clients-only-use-client-symbols189 # To see reasons for failure: ctest -V -R Clients-only-use-client-symbols
@@ -193,9 +192,18 @@
193 COMMAND /bin/sh -c "!(nm -u .mir_demo_client_* mir_demo_client* | grep -v @@MIR_CLIENT | grep 'U mir_')"192 COMMAND /bin/sh -c "!(nm -u .mir_demo_client_* mir_demo_client* | grep -v @@MIR_CLIENT | grep 'U mir_')"
194 )193 )
195194
195# We use a slightly weaker version of the test with clang as that generates spurious NEEDED
196if (NOT "${CMAKE_CXX_COMPILER}" MATCHES "clang")
196 # To see reasons for failure: ctest -V -R Clients-only-use-client-ABI197 # To see reasons for failure: ctest -V -R Clients-only-use-client-ABI
197 add_test(NAME Clients-only-use-client-ABI198 add_test(NAME Clients-only-use-client-ABI
198 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin199 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
199 COMMAND /bin/sh -c "!(objdump -p .mir_demo_client_* mir_demo_client* | grep NEEDED | grep libmir | grep -v libmirclient)"200 COMMAND /bin/sh -c "!(objdump -p .mir_demo_client_* mir_demo_client* | grep NEEDED | grep libmir | grep -v libmirclient)"
200 )201 )
202else()
203 # To see reasons for failure: ctest -V -R Clients-only-use-client-ABI
204 add_test(NAME Clients-only-use-client-ABI
205 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
206 COMMAND /bin/sh -c "!(nm -u .mir_demo_client_* mir_demo_client* | grep -v @@MIR_CLIENT | grep @@MIR_)"
207 )
208endif ()
201endif ()209endif ()
202210
=== added directory 'include/client/mir'
=== renamed file 'include/common/mir_toolkit/client_types.h' => 'include/client/mir_toolkit/client_types.h'
=== renamed file 'include/common/mir_toolkit/cursors.h' => 'include/client/mir_toolkit/cursors.h'
--- include/common/mir_toolkit/cursors.h 2014-07-01 16:53:35 +0000
+++ include/client/mir_toolkit/cursors.h 2015-03-19 10:32:29 +0000
@@ -27,6 +27,9 @@
27 */27 */
2828
29/* This is C code. Not C++. */29/* This is C code. Not C++. */
30#ifdef __cplusplus
31extern "C" {
32#endif
3033
31/**34/**
32 * A special cursor name for use with mir_cursor_configuration_from_name35 * A special cursor name for use with mir_cursor_configuration_from_name
@@ -110,6 +113,9 @@
110 */113 */
111extern char const* const mir_hsplit_resize_cursor_name;114extern char const* const mir_hsplit_resize_cursor_name;
112115
116#ifdef __cplusplus
117}
118#endif
113/**@}*/119/**@}*/
114120
115#endif121#endif
116122
=== renamed file 'include/common/mir_toolkit/event.h' => 'include/client/mir_toolkit/event.h'
=== renamed directory 'include/common/mir_toolkit/events' => 'include/client/mir_toolkit/events'
=== modified file 'include/client/mir_toolkit/mir_client_library.h'
--- include/client/mir_toolkit/mir_client_library.h 2015-03-06 03:52:41 +0000
+++ include/client/mir_toolkit/mir_client_library.h 2015-03-19 10:32:29 +0000
@@ -24,5 +24,6 @@
24#include <mir_toolkit/mir_buffer_stream.h>24#include <mir_toolkit/mir_buffer_stream.h>
25#include <mir_toolkit/version.h>25#include <mir_toolkit/version.h>
26#include <mir_toolkit/mir_platform_message.h>26#include <mir_toolkit/mir_platform_message.h>
27#include <mir_toolkit/cursors.h>
2728
28#endif /* MIR_CLIENT_LIBRARY_H */29#endif /* MIR_CLIENT_LIBRARY_H */
2930
=== removed directory 'include/common/mir/input'
=== modified file 'include/common/mir_toolkit/common.h'
--- include/common/mir_toolkit/common.h 2015-01-21 07:34:50 +0000
+++ include/common/mir_toolkit/common.h 2015-03-19 10:32:29 +0000
@@ -21,8 +21,6 @@
21#ifndef MIR_COMMON_H_21#ifndef MIR_COMMON_H_
22#define MIR_COMMON_H_22#define MIR_COMMON_H_
2323
24#include <mir_toolkit/cursors.h>
25
26/**24/**
27 * \addtogroup mir_toolkit25 * \addtogroup mir_toolkit
28 * @{26 * @{
2927
=== modified file 'src/client/CMakeLists.txt'
--- src/client/CMakeLists.txt 2015-03-12 03:19:52 +0000
+++ src/client/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -30,14 +30,20 @@
30add_definitions(-DCLIENT_PLATFORM_VERSION="${MIR_CLIENT_PLATFORM_VERSION}")30add_definitions(-DCLIENT_PLATFORM_VERSION="${MIR_CLIENT_PLATFORM_VERSION}")
31add_definitions(-DMIR_LOGGING_COMPONENT_FALLBACK="mirclient")31add_definitions(-DMIR_LOGGING_COMPONENT_FALLBACK="mirclient")
3232
33set(MIR_CLIENT_SOURCES)
34set(MIR_CLIENT_REFERENCES mircommon)
35
33add_subdirectory(rpc/)36add_subdirectory(rpc/)
34add_subdirectory(lttng/)37add_subdirectory(lttng/)
38add_subdirectory(events)
39add_subdirectory(input)
3540
36add_library(mirclientobjects OBJECT41add_library(mirclientobjects OBJECT
3742
38 client_buffer_depository.cpp43 client_buffer_depository.cpp
39 display_configuration.cpp44 display_configuration.cpp
40 error_connections.cpp45 error_connections.cpp
46 event.cpp
41 mir_connection.cpp47 mir_connection.cpp
42 mir_connection_api.cpp48 mir_connection_api.cpp
43 mir_wait_handle.cpp49 mir_wait_handle.cpp
@@ -63,14 +69,19 @@
63 buffer_stream.cpp69 buffer_stream.cpp
64 mir_buffer_stream_api.cpp70 mir_buffer_stream_api.cpp
65 default_client_buffer_stream_factory.cpp71 default_client_buffer_stream_factory.cpp
72 ${MIR_CLIENT_SOURCES}
66)73)
6774
68# Ensure protobuf C++ headers have been produced before75# Ensure protobuf C++ headers have been produced before
69# trying to compile mirclientobjects76# trying to compile mirclientobjects
70add_dependencies(mirclientobjects mirprotobuf)77add_dependencies(mirclientobjects mirprotobuf)
7178
72add_library(mirclient SHARED $<TARGET_OBJECTS:mirclientobjects>)79add_library(mirclient SHARED $<TARGET_OBJECTS:mirclientobjects> $<TARGET_OBJECTS:mirsharedinput>)
73add_library(mirclient-static STATIC $<TARGET_OBJECTS:mirclientobjects>)80add_library(mirclient-static STATIC $<TARGET_OBJECTS:mirclientobjects> $<TARGET_OBJECTS:mirsharedinput>)
81
82target_link_libraries(mirclient
83 ${MIR_CLIENT_REFERENCES}
84)
7485
75set_target_properties(mirclient86set_target_properties(mirclient
7687
7788
=== renamed file 'src/common/event.cpp' => 'src/client/event.cpp'
=== renamed directory 'src/common/events' => 'src/client/events'
=== modified file 'src/client/events/CMakeLists.txt'
--- src/common/events/CMakeLists.txt 2015-01-22 22:56:47 +0000
+++ src/client/events/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -14,8 +14,8 @@
14#14#
15# Authored by: Robert Carr <robert.carr@canonical.com>15# Authored by: Robert Carr <robert.carr@canonical.com>
1616
17list(APPEND MIR_COMMON_SOURCES17list(APPEND MIR_CLIENT_SOURCES
18 ${CMAKE_CURRENT_SOURCE_DIR}/event_builders.cpp18 ${CMAKE_CURRENT_SOURCE_DIR}/event_builders.cpp
19)19)
2020
21set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE)21set(MIR_CLIENT_SOURCES ${MIR_CLIENT_SOURCES} PARENT_SCOPE)
2222
=== renamed directory 'src/common/input' => 'src/client/input'
=== modified file 'src/client/input/CMakeLists.txt'
--- src/common/input/CMakeLists.txt 2015-03-06 03:52:41 +0000
+++ src/client/input/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -25,22 +25,16 @@
2525
26add_library(mirsharedinput OBJECT26add_library(mirsharedinput OBJECT
27 ${ANDROID_SHARED_INPUT_SOURCES}27 ${ANDROID_SHARED_INPUT_SOURCES}
28 udev_wrapper.cpp
29 input_event.cpp28 input_event.cpp
30 ${CMAKE_CURRENT_SOURCE_DIR}/xkb_mapper.cpp29 ${CMAKE_CURRENT_SOURCE_DIR}/xkb_mapper.cpp
31)30)
3231
33list(APPEND MIR_COMMON_SOURCES32# As we put android-input in MIR_CLIENT_REFERENCES it ends up linked into
34 $<TARGET_OBJECTS:mirsharedinput>
35)
36
37# As we put android-input in MIR_COMMON_REFERENCES it ends up linked into
38# libmirserver. But linking into libmircommon fails as it in turn needs33# libmirserver. But linking into libmircommon fails as it in turn needs
39# mir::mir::terminate_with_current_exception() from mirserver34# mir::mir::terminate_with_current_exception() from mirserver
40list(APPEND MIR_COMMON_REFERENCES android-input)35list(APPEND MIR_CLIENT_REFERENCES android-input)
4136
42list(APPEND MIR_COMMON_REFERENCES ${XKBCOMMON_LIBRARIES})37list(APPEND MIR_CLIENT_REFERENCES ${XKBCOMMON_LIBRARIES})
43list(APPEND MIR_COMMON_REFERENCES ${UDEV_LDFLAGS} ${UDEV_LIBRARIES})38
4439set(MIR_CLIENT_SOURCES ${MIR_CLIENT_SOURCES} PARENT_SCOPE)
45set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE)40set(MIR_CLIENT_REFERENCES ${MIR_CLIENT_REFERENCES} PARENT_SCOPE)
46set(MIR_COMMON_REFERENCES ${MIR_COMMON_REFERENCES} PARENT_SCOPE)
4741
=== modified file 'src/client/input/input_event.cpp'
--- src/common/input/input_event.cpp 2015-03-06 03:52:41 +0000
+++ src/client/input/input_event.cpp 2015-03-19 10:32:29 +0000
@@ -18,7 +18,7 @@
1818
19#define MIR_INCLUDE_DEPRECATED_EVENT_HEADER19#define MIR_INCLUDE_DEPRECATED_EVENT_HEADER
2020
21#define MIR_LOGGING_COMPONENT "input-event-access"21#define MIR_LOG_COMPONENT "input-event-access"
2222
23#include "mir/event_type_to_string.h"23#include "mir/event_type_to_string.h"
24#include "mir/log.h"24#include "mir/log.h"
2525
=== modified file 'src/client/mir_cursor_api.cpp'
--- src/client/mir_cursor_api.cpp 2015-03-06 03:52:41 +0000
+++ src/client/mir_cursor_api.cpp 2015-03-19 10:32:29 +0000
@@ -25,21 +25,23 @@
2525
26#include <memory>26#include <memory>
2727
28char const *const mir_default_cursor_name = "default";28
29char const *const mir_disabled_cursor_name = "disabled";29extern "C" char const *const mir_default_cursor_name = "default";
30char const* const mir_arrow_cursor_name = "arrow";30extern "C" char const *const mir_disabled_cursor_name = "disabled";
31char const* const mir_busy_cursor_name = "busy";31extern "C" char const* const mir_arrow_cursor_name = "arrow";
32char const* const mir_caret_cursor_name = "caret";32extern "C" char const* const mir_busy_cursor_name = "busy";
33char const* const mir_pointing_hand_cursor_name = "pointing-hand";33extern "C" char const* const mir_caret_cursor_name = "caret";
34char const* const mir_open_hand_cursor_name = "open-hand";34extern "C" char const* const mir_pointing_hand_cursor_name = "pointing-hand";
35char const* const mir_closed_hand_cursor_name = "closed-hand";35extern "C" char const* const mir_open_hand_cursor_name = "open-hand";
36char const* const mir_horizontal_resize_cursor_name = "horizontal-resize";36extern "C" char const* const mir_closed_hand_cursor_name = "closed-hand";
37char const* const mir_vertical_resize_cursor_name = "vertical-resize";37extern "C" char const* const mir_horizontal_resize_cursor_name = "horizontal-resize";
38char const* const mir_diagonal_resize_bottom_to_top_cursor_name = "diagonal-resize-bottom-to-top";38extern "C" char const* const mir_vertical_resize_cursor_name = "vertical-resize";
39char const* const mir_diagonal_resize_top_to_bottom_cursor_name = "diagonal-resize-top_to_bottom";39extern "C" char const* const mir_diagonal_resize_bottom_to_top_cursor_name = "diagonal-resize-bottom-to-top";
40char const* const mir_omnidirectional_resize_cursor_name = "omnidirectional-resize";40extern "C" char const* const mir_diagonal_resize_top_to_bottom_cursor_name = "diagonal-resize-top_to_bottom";
41char const* const mir_vsplit_resize_cursor_name = "vsplit-resize";41extern "C" char const* const mir_omnidirectional_resize_cursor_name = "omnidirectional-resize";
42char const* const mir_hsplit_resize_cursor_name = "hsplit-resize";42extern "C" char const* const mir_vsplit_resize_cursor_name = "vsplit-resize";
43extern "C" char const* const mir_hsplit_resize_cursor_name = "hsplit-resize";
44
4345
44MirCursorConfiguration::MirCursorConfiguration(char const* name) :46MirCursorConfiguration::MirCursorConfiguration(char const* name) :
45 name{name ? name : std::string()}47 name{name ? name : std::string()}
4648
=== modified file 'src/client/symbols-debug.map'
--- src/client/symbols-debug.map 2015-03-06 03:52:41 +0000
+++ src/client/symbols-debug.map 2015-03-19 10:32:29 +0000
@@ -3,11 +3,3 @@
3 mir_debug_*;3 mir_debug_*;
4 local: *;4 local: *;
5};5};
6
7MIR_CLIENT_8 {
8 local: mir_connection_platform_operation;
9};
10
11MIR_CLIENT_8.3 {
12 local: mir_connection_platform_operation;
13};
146
=== modified file 'src/client/symbols.map'
--- src/client/symbols.map 2015-03-06 03:52:41 +0000
+++ src/client/symbols.map 2015-03-19 10:32:29 +0000
@@ -1,46 +1,186 @@
1MIR_CLIENT_8 {1MIR_CLIENT_8 {
2 global:2 global:
3 mir_connection_platform_operation;3 mir_arrow_cursor_name;
4 mir_*;4 mir_busy_cursor_name;
5 extern "C++" { 5 mir_caret_cursor_name;
6 # used by PrivateProtobuf6 mir_closed_hand_cursor_name;
7 mir::client::the_rpc_channel*;7 mir_connect;
8 8 mir_connection_api_impl;
9 # used by test framework - see lp:13497889 mir_connection_apply_display_config;
10 MirConnection::MirConnection*;10 mir_connection_create_display_config;
11 MirConnection::connect*;11 mir_connection_create_prompt_session_sync;
12 MirConnection::disconnect*;12 mir_connection_create_screencast_sync;
13 mir::client::DefaultConnectionConfiguration::*;13 mir_connection_create_spec_for_input_method;
14 vtable?for?mir::client::DefaultConnectionConfiguration;14 mir_connection_create_spec_for_modal_dialog;
15 typeinfo?for?mir::client::DefaultConnectionConfiguration;15 mir_connection_create_surface;
16 }; 16 mir_connection_create_surface_sync;
17 mir_connection_drm_auth_magic;
18 mir_connection_drm_set_gbm_device;
19 mir_connection_get_available_surface_formats;
20 mir_connection_get_display_info;
21 mir_connection_get_egl_native_display;
22 mir_connection_get_error_message;
23 mir_connection_get_platform;
24 mir_connection_is_valid;
25 mir_connection_platform_operation;
26 mir_connection_release;
27 mir_connection_set_display_config_change_callback;
28 mir_connection_set_lifecycle_event_callback;
29 mir_connect_sync;
30 mir_cursor_configuration_destroy;
31 mir_cursor_configuration_from_name;
32 mir_default_cursor_name;
33 mir_diagonal_resize_bottom_to_top_cursor_name;
34 mir_diagonal_resize_top_to_bottom_cursor_name;
35 mir_disabled_cursor_name;
36 mir_display_config_destroy;
37 mir_horizontal_resize_cursor_name;
38 mir_hsplit_resize_cursor_name;
39 mir_omnidirectional_resize_cursor_name;
40 mir_open_hand_cursor_name;
41 mir_platform_message_create;
42 mir_platform_message_get_data;
43 mir_platform_message_get_fds;
44 mir_platform_message_get_opcode;
45 mir_platform_message_release;
46 mir_platform_message_set_data;
47 mir_platform_message_set_fds;
48 mir_pointing_hand_cursor_name;
49 mir_prompt_session_error_message;
50 mir_prompt_session_is_valid;
51 mir_prompt_session_new_fds_for_prompt_providers;
52 mir_prompt_session_release_sync;
53 mir_screencast_egl_native_window;
54 mir_screencast_release_sync;
55 mir_surface_configure_cursor;
56 mir_surface_get_current_buffer;
57 mir_surface_get_dpi;
58 mir_surface_get_egl_native_window;
59 mir_surface_get_error_message;
60 mir_surface_get_focus;
61 mir_surface_get_graphics_region;
62 mir_surface_get_id;
63 mir_surface_get_orientation;
64 mir_surface_get_parameters;
65 mir_surface_get_platform_type;
66 mir_surface_get_state;
67 mir_surface_get_swapinterval;
68 mir_surface_get_type;
69 mir_surface_get_visibility;
70 mir_surface_is_valid;
71 mir_surface_release;
72 mir_surface_release_sync;
73 mir_surface_set_event_handler;
74 mir_surface_set_state;
75 mir_surface_set_swapinterval;
76 mir_surface_set_type;
77 mir_surface_spec_release;
78 mir_surface_swap_buffers;
79 mir_surface_swap_buffers_sync;
80 mir_vertical_resize_cursor_name;
81 mir_vsplit_resize_cursor_name;
82 mir_wait_for;
83 mir_wait_for_one;
17 local: *;84 local: *;
18};85};
19
20MIR_CLIENT_8.1 {86MIR_CLIENT_8.1 {
21 global:87 global:
22 mir_connection_create_spec_for_normal_surface;88 mir_connection_create_spec_for_normal_surface;
23 mir_surface_create;89 mir_surface_create;
24 mir_surface_create_sync;90 mir_surface_create_sync;
91 mir_surface_spec_set_buffer_usage;
92 mir_surface_spec_set_fullscreen_on_output;
93 mir_surface_spec_set_height;
25 mir_surface_spec_set_name;94 mir_surface_spec_set_name;
95 mir_surface_spec_set_pixel_format;
26 mir_surface_spec_set_width;96 mir_surface_spec_set_width;
27 mir_surface_spec_set_height;
28 mir_surface_spec_set_pixel_format;
29 mir_surface_spec_set_buffer_usage;
30 mir_surface_spec_set_fullscreen_on_output;
31} MIR_CLIENT_8;97} MIR_CLIENT_8;
3298
33MIR_CLIENT_8.2 {99MIR_CLIENT_8.2 {
34 global:100 global:
101 mir_surface_get_preferred_orientation;
35 mir_surface_set_preferred_orientation;102 mir_surface_set_preferred_orientation;
36 mir_surface_get_preferred_orientation;
37 mir_surface_spec_set_preferred_orientation;103 mir_surface_spec_set_preferred_orientation;
38} MIR_CLIENT_8.1;104} MIR_CLIENT_8.1;
39105
40MIR_CLIENT_8.3 {106MIR_CLIENT_8.3 {
41 global:107 global:
108 mir_connection_create_spec_for_dialog;
42 mir_connection_create_spec_for_menu;109 mir_connection_create_spec_for_menu;
43 mir_connection_create_spec_for_tooltip;110 mir_connection_create_spec_for_tooltip;
44 mir_connection_create_spec_for_dialog;
45 mir_connection_platform_operation;111 mir_connection_platform_operation;
46} MIR_CLIENT_8.2;112} MIR_CLIENT_8.2;
113
114MIR_CLIENT_8.4 {
115 global:
116 mir_default_cursor_name;
117 mir_disabled_cursor_name;
118 mir_arrow_cursor_name;
119 mir_busy_cursor_name;
120 mir_caret_cursor_name;
121 mir_pointing_hand_cursor_name;
122 mir_open_hand_cursor_name;
123 mir_closed_hand_cursor_name;
124 mir_horizontal_resize_cursor_name;
125 mir_vertical_resize_cursor_name;
126 mir_diagonal_resize_bottom_to_top_cursor_name;
127 mir_diagonal_resize_top_to_bottom_cursor_name;
128 mir_omnidirectional_resize_cursor_name;
129 mir_vsplit_resize_cursor_name;
130 mir_hsplit_resize_cursor_name;
131 mir_event_get_close_surface_event;
132 mir_event_get_input_event;
133 mir_event_get_keymap_event;
134 mir_event_get_orientation_event;
135 mir_event_get_prompt_session_event;
136 mir_event_get_resize_event;
137 mir_event_get_surface_event;
138 mir_event_get_type;
139 mir_event_ref;
140 mir_event_unref;
141 mir_input_event_get_device_id;
142 mir_input_event_get_event_time;
143 mir_input_event_get_key_input_event;
144 mir_input_event_get_pointer_input_event;
145 mir_input_event_get_touch_input_event;
146 mir_input_event_get_type;
147 mir_key_input_event_get_action;
148 mir_key_input_event_get_key_code;
149 mir_key_input_event_get_modifiers;
150 mir_key_input_event_get_scan_code;
151 mir_keymap_event_get_rules;
152 mir_orientation_event_get_direction;
153 mir_pointer_input_event_get_action;
154 mir_pointer_input_event_get_axis_value;
155 mir_pointer_input_event_get_button_state;
156 mir_pointer_input_event_get_modifiers;
157 mir_prompt_session_event_get_state;
158 mir_resize_event_get_height;
159 mir_resize_event_get_width;
160 mir_surface_event_get_attribute;
161 mir_surface_event_get_attribute_value;
162 mir_surface_set_swapinterval;
163 mir_surface_swap_buffers;
164 mir_surface_swap_buffers_sync;
165 mir_touch_input_event_get_modifiers;
166 mir_touch_input_event_get_touch_action;
167 mir_touch_input_event_get_touch_axis_value;
168 mir_touch_input_event_get_touch_count;
169 mir_touch_input_event_get_touch_id;
170 mir_touch_input_event_get_touch_tooltype;
171 mir_surface_get_buffer_stream;
172 mir_buffer_stream_get_current_buffer;
173 mir_buffer_stream_get_platform_type;
174 mir_buffer_stream_swap_buffers_sync;
175 mir_screencast_get_buffer_stream;
176 mir_buffer_stream_get_egl_native_window;
177 mir_buffer_stream_get_graphics_region;
178} MIR_CLIENT_8.3;
179
180MIR_CLIENT_DETAIL_8 {
181 global:
182 extern "C++" {
183 mir::events::make_event*;
184 mir::input::android::Lexicon::translate*;
185 };
186};
47187
=== modified file 'src/common/CMakeLists.txt'
--- src/common/CMakeLists.txt 2015-03-16 03:39:55 +0000
+++ src/common/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -10,7 +10,6 @@
1010
11add_subdirectory(fd)11add_subdirectory(fd)
12add_subdirectory(geometry)12add_subdirectory(geometry)
13add_subdirectory(input)
14add_subdirectory(logging)13add_subdirectory(logging)
15add_subdirectory(report/lttng)14add_subdirectory(report/lttng)
16add_subdirectory(env)15add_subdirectory(env)
@@ -18,12 +17,12 @@
18add_subdirectory(thread)17add_subdirectory(thread)
19add_subdirectory(time)18add_subdirectory(time)
20add_subdirectory(dispatch)19add_subdirectory(dispatch)
20add_subdirectory(udev)
2121
22list(APPEND MIR_COMMON_SOURCES22list(APPEND MIR_COMMON_SOURCES
23 $<TARGET_OBJECTS:mirtime>23 $<TARGET_OBJECTS:mirtime>
24 ${CMAKE_CURRENT_SOURCE_DIR}/log.cpp24 ${CMAKE_CURRENT_SOURCE_DIR}/log.cpp
25 )25 )
26add_subdirectory(events)
2726
28set(PREFIX "${CMAKE_INSTALL_PREFIX}")27set(PREFIX "${CMAKE_INSTALL_PREFIX}")
29set(EXEC_PREFIX "${CMAKE_INSTALL_PREFIX}")28set(EXEC_PREFIX "${CMAKE_INSTALL_PREFIX}")
@@ -35,10 +34,6 @@
35 ${MIR_GENERATED_INCLUDE_DIRECTORIES}34 ${MIR_GENERATED_INCLUDE_DIRECTORIES}
36 PARENT_SCOPE)35 PARENT_SCOPE)
3736
38list(APPEND MIR_COMMON_SOURCES
39 ${CMAKE_CURRENT_SOURCE_DIR}/event.cpp
40)
41
42add_library(mircommon37add_library(mircommon
43 SHARED38 SHARED
44 ${MIR_COMMON_SOURCES}39 ${MIR_COMMON_SOURCES}
@@ -49,7 +44,7 @@
49)44)
5045
51# TODO we need a place to manage ABI and related versioning but use this as placeholder46# TODO we need a place to manage ABI and related versioning but use this as placeholder
52set(MIRCOMMON_ABI 3)47set(MIRCOMMON_ABI 4)
53set(symbol_map ${CMAKE_CURRENT_SOURCE_DIR}/symbols.map)48set(symbol_map ${CMAKE_CURRENT_SOURCE_DIR}/symbols.map)
5449
55set_target_properties(mircommon50set_target_properties(mircommon
5651
=== modified file 'src/common/sharedlibrary/CMakeLists.txt'
--- src/common/sharedlibrary/CMakeLists.txt 2015-03-06 03:52:41 +0000
+++ src/common/sharedlibrary/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -24,7 +24,10 @@
24 $<TARGET_OBJECTS:mirsharedsharedlibrary>24 $<TARGET_OBJECTS:mirsharedsharedlibrary>
25)25)
2626
27list(APPEND MIR_COMMON_REFERENCES dl)27list(APPEND MIR_COMMON_REFERENCES
28 dl
29 ${Boost_LIBRARIES}
30)
2831
29set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE)32set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE)
30set(MIR_COMMON_REFERENCES ${MIR_COMMON_REFERENCES} PARENT_SCOPE)33set(MIR_COMMON_REFERENCES ${MIR_COMMON_REFERENCES} PARENT_SCOPE)
3134
=== modified file 'src/common/symbols.map'
--- src/common/symbols.map 2015-03-16 03:39:55 +0000
+++ src/common/symbols.map 2015-03-19 10:32:29 +0000
@@ -1,20 +1,32 @@
11
2MIR_COMMON_3 {2MIR_COMMON_4 {
3 global: mir_*;3 global: mir_*;
4 extern "C++" {4 extern "C++" {
5# The following symbols come from running a script over the generated docs. Vis:5# The following symbols come from running a script over the generated docs. Vis:
6# ../tools/process_doxygen_xml.py doc/xml/*.xml | grep "^mircommon public" | sed "s/mircommon public: / /" | sort 6# ../tools/process_doxygen_xml.py doc/xml/*.xml | grep "^mircommon public" | sed "s/mircommon public: / /" | sort
7 mir_arrow_cursor_name*;7 mir::detail::RefCountedLibrary::operator*;
8 mir_busy_cursor_name*;8 mir::detail::RefCountedLibrary::?RefCountedLibrary*;
9 mir_caret_cursor_name*;9 mir::detail::RefCountedLibrary::RefCountedLibrary*;
10 mir_closed_hand_cursor_name*;10 mir::dispatch::Dispatchable::?Dispatchable*;
11 mir_default_cursor_name*;11 mir::dispatch::Dispatchable::Dispatchable*;
12 mir_diagonal_resize_bottom_to_top_cursor_name*;12 mir::dispatch::Dispatchable::operator*;
13 mir_diagonal_resize_top_to_bottom_cursor_name*;13 mir::dispatch::MultiplexingDispatchable::add_watch*;
14 mir_disabled_cursor_name*;14 mir::dispatch::MultiplexingDispatchable::dispatch*;
15 mir::dispatch::MultiplexingDispatchable::?MultiplexingDispatchable*;
16 mir::dispatch::MultiplexingDispatchable::MultiplexingDispatchable*;
17 mir::dispatch::MultiplexingDispatchable::operator*;
18 mir::dispatch::MultiplexingDispatchable::relevant_events*;
19 mir::dispatch::MultiplexingDispatchable::remove_watch*;
20 mir::dispatch::MultiplexingDispatchable::watch_fd*;
21 mir::dispatch::SimpleDispatchThread::?SimpleDispatchThread*;
22 mir::dispatch::SimpleDispatchThread::SimpleDispatchThread*;
15 mir::Fd::Fd*;23 mir::Fd::Fd*;
16 mir::Fd::invalid*;24 mir::Fd::invalid*;
17 mir::Fd::operator*;25 mir::Fd::operator*;
26 mir::geometry::Displacement::Displacement*;
27 mir::geometry::Displacement::operator*;
28 mir::geometry::Length::Length*;
29 mir::geometry::Length::operator*;
18 mir::geometry::operator*;30 mir::geometry::operator*;
19 mir::geometry::Point::operator*;31 mir::geometry::Point::operator*;
20 mir::geometry::Point::Point*;32 mir::geometry::Point::Point*;
@@ -37,120 +49,53 @@
37 mir::geometry::Rectangle::top_right*;49 mir::geometry::Rectangle::top_right*;
38 mir::geometry::Size::operator*;50 mir::geometry::Size::operator*;
39 mir::geometry::Size::Size*;51 mir::geometry::Size::Size*;
40 mir_horizontal_resize_cursor_name*;52 mir::log*;
41 mir_hsplit_resize_cursor_name*;53 mir::logging::log*;
42 mir::input::receiver::android::AndroidInputPlatform::?AndroidInputPlatform*;54 mir::logging::Logger::?Logger*;
43 mir::input::receiver::android::AndroidInputPlatform::AndroidInputPlatform*;55 mir::logging::Logger::Logger*;
44 mir::input::receiver::android::AndroidInputPlatform::create_input_thread*;56 mir::logging::Logger::operator*;
45 mir::input::receiver::android::AndroidInputPlatform::operator*;57 mir::logging::set_logger*;
46 mir::input::receiver::android::InputReceiver::fd*;58 non-virtual?thunk?to?mir::dispatch::Dispatchable::?Dispatchable*;
47 mir::input::receiver::android::InputReceiver::?InputReceiver*;59 non-virtual?thunk?to?mir::dispatch::MultiplexingDispatchable::dispatch*;
48 mir::input::receiver::android::InputReceiver::InputReceiver*;60 non-virtual?thunk?to?mir::dispatch::MultiplexingDispatchable::?MultiplexingDispatchable*;
49 mir::input::receiver::android::InputReceiver::next_event*;61 non-virtual?thunk?to?mir::dispatch::MultiplexingDispatchable::relevant_events*;
50 mir::input::receiver::android::InputReceiver::operator*;62 non-virtual?thunk?to?mir::dispatch::MultiplexingDispatchable::watch_fd*;
51 mir::input::receiver::android::InputReceiverThread::?InputReceiverThread*;63 non-virtual?thunk?to?mir::logging::Logger::?Logger*;
52 mir::input::receiver::android::InputReceiverThread::InputReceiverThread*;
53 mir::input::receiver::android::InputReceiverThread::join*;
54 mir::input::receiver::android::InputReceiverThread::operator*;
55 mir::input::receiver::android::InputReceiverThread::start*;
56 mir::input::receiver::android::InputReceiverThread::stop*;
57 mir::input::receiver::android::InputReceiver::wake*;
58 mir::input::receiver::InputPlatform::create*;
59 mir::input::receiver::InputPlatform::create_input_thread*;
60 mir::input::receiver::InputPlatform::InputPlatform*;
61 mir::input::receiver::InputPlatform::operator*;
62 mir::input::receiver::InputReceiverThread::InputReceiverThread*;
63 mir::input::receiver::InputReceiverThread::join*;
64 mir::input::receiver::InputReceiverThread::operator*;
65 mir::input::receiver::InputReceiverThread::start*;
66 mir::input::receiver::InputReceiverThread::stop*;
67 mir_omnidirectional_resize_cursor_name*;
68 mir_open_hand_cursor_name*;
69 mir_pointing_hand_cursor_name*;
70 mir::time::Clock::?Clock*;
71 mir::time::Clock::Clock*;
72 mir::time::Clock::sample*;
73 mir_vertical_resize_cursor_name*;
74 mir_vsplit_resize_cursor_name*;
75 non-virtual?thunk?to?mir::input::receiver::android::AndroidInputPlatform::?AndroidInputPlatform*;
76 non-virtual?thunk?to?mir::input::receiver::android::AndroidInputPlatform::create_input_thread*;
77 non-virtual?thunk?to?mir::input::receiver::android::InputReceiver::?InputReceiver*;
78 non-virtual?thunk?to?mir::input::receiver::android::InputReceiver::next_event*;
79 non-virtual?thunk?to?mir::input::receiver::android::InputReceiverThread::?InputReceiverThread*;
80 non-virtual?thunk?to?mir::input::receiver::android::InputReceiverThread::join*;
81 non-virtual?thunk?to?mir::input::receiver::android::InputReceiverThread::start*;
82 non-virtual?thunk?to?mir::input::receiver::android::InputReceiverThread::stop*;
83 non-virtual?thunk?to?mir::input::receiver::android::InputReceiver::wake*;
84 non-virtual?thunk?to?mir::time::Clock::?Clock*;
85 typeinfo?for?MirBufferPackage;64 typeinfo?for?MirBufferPackage;
86 typeinfo?for?MirDisplayCard;65 typeinfo?for?mir::detail::RefCountedLibrary;
87 typeinfo?for?MirDisplayConfiguration;66 typeinfo?for?mir::dispatch::Dispatchable;
88 typeinfo?for?MirDisplayInfo;67 typeinfo?for?mir::dispatch::MultiplexingDispatchable;
89 typeinfo?for?MirDisplayMode;68 typeinfo?for?mir::dispatch::SimpleDispatchThread;
90 typeinfo?for?MirDisplayOutput;
91 typeinfo?for?MirEventDelegate;
92 typeinfo?for?mir::Fd;69 typeinfo?for?mir::Fd;
70 typeinfo?for?mir::geometry::Displacement;
71 typeinfo?for?mir::geometry::Length;
93 typeinfo?for?mir::geometry::Point;72 typeinfo?for?mir::geometry::Point;
94 typeinfo?for?mir::geometry::Rectangle;73 typeinfo?for?mir::geometry::Rectangle;
95 typeinfo?for?mir::geometry::Rectangles;74 typeinfo?for?mir::geometry::Rectangles;
96 typeinfo?for?mir::geometry::Size;75 typeinfo?for?mir::geometry::Size;
97 typeinfo?for?MirGraphicsRegion;
98 typeinfo?for?mir::input::receiver::android::AndroidInputPlatform;
99 typeinfo?for?mir::input::receiver::android::InputReceiver;
100 typeinfo?for?mir::input::receiver::android::InputReceiverThread;
101 typeinfo?for?mir::input::receiver::InputPlatform;
102 typeinfo?for?mir::input::receiver::InputReceiverThread;
103 typeinfo?for?mir::IntOwnedFd;76 typeinfo?for?mir::IntOwnedFd;
104 typeinfo?for?MirKeyEvent;77 typeinfo?for?mir::logging::Logger;
105 typeinfo?for?MirMotionEvent;
106 typeinfo?for?MirMotionPointer;
107 typeinfo?for?MirOrientationEvent;
108 typeinfo?for?MirPlatformPackage;
109 typeinfo?for?MirPromptSessionEvent;
110 typeinfo?for?MirRectangle;
111 typeinfo?for?MirResizeEvent;
112 typeinfo?for?MirScreencastParameters;
113 typeinfo?for?MirSurfaceEvent;
114 typeinfo?for?MirSurfaceParameters;
115 typeinfo?for?mir::time::Clock;
116 vtable?for?MirBufferPackage;78 vtable?for?MirBufferPackage;
117 vtable?for?MirDisplayCard;79 vtable?for?mir::detail::RefCountedLibrary;
118 vtable?for?MirDisplayConfiguration;80 vtable?for?mir::dispatch::Dispatchable;
119 vtable?for?MirDisplayInfo;81 vtable?for?mir::dispatch::MultiplexingDispatchable;
120 vtable?for?MirDisplayMode;82 vtable?for?mir::dispatch::SimpleDispatchThread;
121 vtable?for?MirDisplayOutput;
122 vtable?for?MirEventDelegate;
123 vtable?for?mir::Fd;83 vtable?for?mir::Fd;
84 vtable?for?mir::geometry::Displacement;
85 vtable?for?mir::geometry::Length;
124 vtable?for?mir::geometry::Point;86 vtable?for?mir::geometry::Point;
125 vtable?for?mir::geometry::Rectangle;87 vtable?for?mir::geometry::Rectangle;
126 vtable?for?mir::geometry::Rectangles;88 vtable?for?mir::geometry::Rectangles;
127 vtable?for?mir::geometry::Size;89 vtable?for?mir::geometry::Size;
128 vtable?for?MirGraphicsRegion;
129 vtable?for?mir::input::receiver::android::AndroidInputPlatform;
130 vtable?for?mir::input::receiver::android::InputReceiver;
131 vtable?for?mir::input::receiver::android::InputReceiverThread;
132 vtable?for?mir::input::receiver::InputPlatform;
133 vtable?for?mir::input::receiver::InputReceiverThread;
134 vtable?for?mir::IntOwnedFd;90 vtable?for?mir::IntOwnedFd;
135 vtable?for?MirKeyEvent;91 vtable?for?mir::logging::Logger;
136 vtable?for?MirMotionEvent;
137 vtable?for?MirMotionPointer;
138 vtable?for?MirOrientationEvent;
139 vtable?for?MirPlatformPackage;
140 vtable?for?MirPromptSessionEvent;
141 vtable?for?MirRectangle;
142 vtable?for?MirResizeEvent;
143 vtable?for?MirScreencastParameters;
144 vtable?for?MirSurfaceEvent;
145 vtable?for?MirSurfaceParameters;
146 92
147 # These symbols are supposed to be "private" (they're under src/include)93 # These symbols are supposed to be "private" (they're under src/include)
148 # but they are used by libmirplatform, libmirclient or libmirserver94 # but they are used by libmirplatform, libmirclient or libmirserver
149 mir::default_server_socket;95 mir::default_server_socket;
150 mir::input::android::Lexicon::translate*;96 mir::libraries_for_path*;
151 mir::logging::input_timestamp*;97 mir::logging::input_timestamp*;
152 mir::logging::log*;98 mir::logging::log*;
153 mir::logging::set_logger*;
154 mir::logging::SharedLibraryProberReport::SharedLibraryProberReport*;99 mir::logging::SharedLibraryProberReport::SharedLibraryProberReport*;
155 mir::RecursiveReadLock::?RecursiveReadLock*;100 mir::RecursiveReadLock::?RecursiveReadLock*;
156 mir::RecursiveReadLock::RecursiveReadLock*;101 mir::RecursiveReadLock::RecursiveReadLock*;
@@ -199,63 +144,3 @@
199 };144 };
200 local: *;145 local: *;
201};146};
202
203MIR_COMMON_3.1 {
204 global:
205 extern "C++" {
206 mir_event_get*;
207 mir_event_get*;
208 mir_input_event_get*;
209 mir_key_input_event_get*;
210 mir_touch_input_event_get*;
211 mir::log*char*;
212 mir::logv*;
213 mir::libraries_for_path*;
214 };
215} MIR_COMMON_3;
216
217MIR_COMMON_3.2 {
218 global:
219 extern "C++" {
220 mir::dispatch::SimpleDispatchThread::SimpleDispatchThread*;
221 mir::dispatch::SimpleDispatchThread::?SimpleDispatchThread*;
222 typeinfo?for?mir::dispatch::SimpleDispatchThread;
223 vtable?for?mir::dispatch::SimpleDispatchThread;
224
225 mir::events::*;
226 mir::input::receiver::XKBMapper::XKBMapper*;
227 mir::input::receiver::XKBMapper::XKBMapper*;
228 mir::input::receiver::XKBMapper::set_rules*;
229 typeinfo?for?mir::input::receiver::XKBMapper;
230 vtable?for?mir::input::receiver::XKBMapper;
231
232 mir::dispatch::MultiplexingDispatchable::MultiplexingDispatchable*;
233 mir::dispatch::MultiplexingDispatchable::?MultiplexingDispatchable*;
234 mir::dispatch::MultiplexingDispatchable::watch_fd*;
235 mir::dispatch::MultiplexingDispatchable::dispatch*;
236 mir::dispatch::MultiplexingDispatchable::relevant_events*;
237 mir::dispatch::MultiplexingDispatchable::add_watch*;
238 mir::dispatch::MultiplexingDispatchable::remove_watch*;
239
240 typeinfo?for?mir::dispatch::MultiplexingDispatchable;
241 vtable?for?mir::dispatch::MultiplexingDispatchable;
242
243 mir::dispatch::ActionQueue::ActionQueue*;
244 mir::dispatch::ActionQueue::?ActionQueue*;
245 mir::dispatch::ActionQueue::watch_fd*;
246 mir::dispatch::ActionQueue::dispatch*;
247 mir::dispatch::ActionQueue::relevant_events*;
248 mir::dispatch::ActionQueue::enqueue*;
249
250 typeinfo?for?mir::dispatch::ActionQueue;
251 vtable?for?mir::dispatch::ActionQueue;
252
253 mir::detail::RefCountedLibrary::operator*;
254 mir::detail::RefCountedLibrary::?RefCountedLibrary*;
255 mir::detail::RefCountedLibrary::RefCountedLibrary*;
256 vtable?for?mir::detail::RefCountedLibrary;
257 typeinfo?for?mir::detail::RefCountedLibrary;
258
259 mir::events::*
260 };
261} MIR_COMMON_3.1;
262147
=== added directory 'src/common/udev'
=== added file 'src/common/udev/CMakeLists.txt'
--- src/common/udev/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ src/common/udev/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -0,0 +1,8 @@
1list(APPEND MIR_COMMON_SOURCES
2 ${CMAKE_CURRENT_SOURCE_DIR}/udev_wrapper.cpp
3)
4
5list(APPEND MIR_COMMON_REFERENCES ${UDEV_LDFLAGS} ${UDEV_LIBRARIES})
6
7set(MIR_COMMON_SOURCES ${MIR_COMMON_SOURCES} PARENT_SCOPE)
8set(MIR_COMMON_REFERENCES ${MIR_COMMON_REFERENCES} PARENT_SCOPE)
0\ No newline at end of file9\ No newline at end of file
110
=== renamed file 'src/common/input/udev_wrapper.cpp' => 'src/common/udev/udev_wrapper.cpp'
=== renamed directory 'include/common/mir/events' => 'src/include/client/mir/events'
=== added directory 'src/include/client/mir/input'
=== renamed file 'include/common/mir/input/input_platform.h' => 'src/include/client/mir/input/input_platform.h'
=== modified file 'src/include/common/mir/logging/input_timestamp.h'
--- src/include/common/mir/logging/input_timestamp.h 2015-03-06 03:52:41 +0000
+++ src/include/common/mir/logging/input_timestamp.h 2015-03-19 10:32:29 +0000
@@ -1,5 +1,5 @@
1/*1/*
2 * Copyright © 2013 Canonical Ltd.2 * Copyright © 2013-2015 Canonical Ltd.
3 *3 *
4 * This program is free software: you can redistribute it and/or modify it4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,5 * under the terms of the GNU Lesser General Public License version 3,
@@ -19,10 +19,6 @@
19#ifndef MIR_LOGGING_INPUT_TIMESTAMP_H_19#ifndef MIR_LOGGING_INPUT_TIMESTAMP_H_
20#define MIR_LOGGING_INPUT_TIMESTAMP_H_20#define MIR_LOGGING_INPUT_TIMESTAMP_H_
2121
22#define MIR_INCLUDE_DEPRECATED_EVENT_HEADER
23
24#include "mir_toolkit/event.h"
25
26#include <string>22#include <string>
27#include <chrono>23#include <chrono>
2824
2925
=== modified file 'src/server/CMakeLists.txt'
--- src/server/CMakeLists.txt 2015-03-06 03:52:41 +0000
+++ src/server/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -5,8 +5,10 @@
55
6include_directories(6include_directories(
7 ${PROJECT_SOURCE_DIR}/include/platform7 ${PROJECT_SOURCE_DIR}/include/platform
8 ${PROJECT_SOURCE_DIR}/include/client
9 ${PROJECT_SOURCE_DIR}/include/server
8 ${PROJECT_SOURCE_DIR}/src/include/platform10 ${PROJECT_SOURCE_DIR}/src/include/platform
9 ${PROJECT_SOURCE_DIR}/include/server11 ${PROJECT_SOURCE_DIR}/src/include/client
10 ${PROJECT_SOURCE_DIR}/src/include/server12 ${PROJECT_SOURCE_DIR}/src/include/server
11 ${GLIB_INCLUDE_DIRS}13 ${GLIB_INCLUDE_DIRS}
12)14)
1315
=== modified file 'src/server/graphics/nested/CMakeLists.txt'
--- src/server/graphics/nested/CMakeLists.txt 2015-01-21 07:34:50 +0000
+++ src/server/graphics/nested/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -1,7 +1,3 @@
1include_directories(
2 ${PROJECT_SOURCE_DIR}/include/client
3)
4
5add_library(1add_library(
6 mirnestedgraphics OBJECT2 mirnestedgraphics OBJECT
73
84
=== modified file 'src/server/input/default_configuration.cpp'
--- src/server/input/default_configuration.cpp 2015-03-18 18:48:02 +0000
+++ src/server/input/default_configuration.cpp 2015-03-19 10:32:29 +0000
@@ -51,6 +51,8 @@
51#include "mir/report/legacy_input_report.h"51#include "mir/report/legacy_input_report.h"
52#include "mir/main_loop.h"52#include "mir/main_loop.h"
5353
54#include "mir_toolkit/cursors.h"
55
54#include <InputDispatcher.h>56#include <InputDispatcher.h>
55#include <EventHub.h>57#include <EventHub.h>
56#include <InputReader.h>58#include <InputReader.h>
5759
=== modified file 'tests/integration-tests/CMakeLists.txt'
--- tests/integration-tests/CMakeLists.txt 2015-03-16 03:39:55 +0000
+++ tests/integration-tests/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -69,7 +69,6 @@
69 mir_integration_tests69 mir_integration_tests
70 ${INTEGRATION_TESTS_SRCS}70 ${INTEGRATION_TESTS_SRCS}
71 ${MIR_SERVER_OBJECTS}71 ${MIR_SERVER_OBJECTS}
72 $<TARGET_OBJECTS:mirclientobjects>
73 ${MIR_PLATFORM_OBJECTS}72 ${MIR_PLATFORM_OBJECTS}
74 ${MIR_COMMON_OBJECTS}73 ${MIR_COMMON_OBJECTS}
75)74)
@@ -87,7 +86,7 @@
87 mir-test-framework86 mir-test-framework
88 mir-test-doubles87 mir-test-doubles
89 mirclient-debug-extension88 mirclient-debug-extension
9089 mirclient-static
91 mirdraw90 mirdraw
92 mirclientrpc91 mirclientrpc
93 mirclientlttngstatic92 mirclientlttngstatic
9493
=== modified file 'tests/unit-tests/CMakeLists.txt'
--- tests/unit-tests/CMakeLists.txt 2015-03-06 03:52:41 +0000
+++ tests/unit-tests/CMakeLists.txt 2015-03-19 10:32:29 +0000
@@ -82,7 +82,6 @@
82mir_add_wrapped_executable(mir_unit_tests82mir_add_wrapped_executable(mir_unit_tests
83 ${UNIT_TEST_SOURCES}83 ${UNIT_TEST_SOURCES}
84 ${MIR_SERVER_OBJECTS}84 ${MIR_SERVER_OBJECTS}
85 $<TARGET_OBJECTS:mirclientobjects>
86 ${MIR_PLATFORM_OBJECTS}85 ${MIR_PLATFORM_OBJECTS}
87 ${MIR_COMMON_OBJECTS}86 ${MIR_COMMON_OBJECTS}
88)87)
@@ -100,6 +99,7 @@
100 mirclientrpc99 mirclientrpc
101 mirclientlttngstatic100 mirclientlttngstatic
102 demo-shell101 demo-shell
102 mirclient-static
103 mircommon103 mircommon
104104
105 mir-test105 mir-test
@@ -130,6 +130,7 @@
130 ${MIR_PLATFORM_REFERENCES}130 ${MIR_PLATFORM_REFERENCES}
131 ${MIR_COMMON_REFERENCES}131 ${MIR_COMMON_REFERENCES}
132 ${MIR_SERVER_REFERENCES}132 ${MIR_SERVER_REFERENCES}
133 ${XKBCOMMON_LIBRARIES}
133)134)
134135
135if (MIR_BUILD_PLATFORM_ANDROID)136if (MIR_BUILD_PLATFORM_ANDROID)
136137
=== modified file 'tests/unit-tests/client/input/test_android_input_receiver.cpp'
--- tests/unit-tests/client/input/test_android_input_receiver.cpp 2015-03-06 03:52:41 +0000
+++ tests/unit-tests/client/input/test_android_input_receiver.cpp 2015-03-19 10:32:29 +0000
@@ -18,7 +18,7 @@
1818
19#define MIR_INCLUDE_DEPRECATED_EVENT_HEADER19#define MIR_INCLUDE_DEPRECATED_EVENT_HEADER
2020
21#include "src/common/input/android/android_input_receiver.h"21#include "src/client/input/android/android_input_receiver.h"
22#include "mir/input/null_input_receiver_report.h"22#include "mir/input/null_input_receiver_report.h"
23#include "mir/input/xkb_mapper.h"23#include "mir/input/xkb_mapper.h"
24#include "mir_toolkit/event.h"24#include "mir_toolkit/event.h"
2525
=== modified file 'tests/unit-tests/input/test_cursor_controller.cpp'
--- tests/unit-tests/input/test_cursor_controller.cpp 2015-03-12 03:19:52 +0000
+++ tests/unit-tests/input/test_cursor_controller.cpp 2015-03-19 10:32:29 +0000
@@ -27,6 +27,7 @@
27#include "mir/graphics/cursor.h"27#include "mir/graphics/cursor.h"
2828
29#include "mir_toolkit/common.h"29#include "mir_toolkit/common.h"
30#include "mir_toolkit/cursors.h"
3031
31#include "mir_test/fake_shared.h"32#include "mir_test/fake_shared.h"
32#include "mir_test_doubles/stub_scene_surface.h"33#include "mir_test_doubles/stub_scene_surface.h"
3334
=== modified file 'tests/unit-tests/input/test_xcursor_loader.cpp'
--- tests/unit-tests/input/test_xcursor_loader.cpp 2015-01-21 07:34:50 +0000
+++ tests/unit-tests/input/test_xcursor_loader.cpp 2015-03-19 10:32:29 +0000
@@ -22,6 +22,7 @@
22#include "mir_test_framework/executable_path.h"22#include "mir_test_framework/executable_path.h"
2323
24#include <mir_toolkit/common.h>24#include <mir_toolkit/common.h>
25#include <mir_toolkit/cursors.h>
2526
26#include <gtest/gtest.h>27#include <gtest/gtest.h>
27#include <gmock/gmock.h>28#include <gmock/gmock.h>

Subscribers

People subscribed via source and target branches