Mir

Merge lp:~alan-griffiths/mir/fedora into lp:mir

Proposed by Alan Griffiths on 2017-10-19
Status: Merged
Merged at revision: 4298
Proposed branch: lp:~alan-griffiths/mir/fedora
Merge into: lp:mir
Prerequisite: lp:~alan-griffiths/mir/do-not-assume-ubuntu
Diff against target: 240 lines (+69/-18)
13 files modified
CMakeLists.txt (+3/-1)
examples/miral-shell/CMakeLists.txt (+10/-0)
examples/miral-shell/titlebar_config.cpp (+1/-1)
include/server/mir/shell/persistent_surface_store.h (+1/-1)
src/CMakeLists.txt (+2/-1)
src/capnproto/CMakeLists.txt (+6/-1)
src/miral/CMakeLists.txt (+11/-10)
src/protobuf/symbols.map (+24/-0)
src/server/CMakeLists.txt (+7/-0)
src/server/shell/default_persistent_surface_store.cpp (+1/-1)
tests/CMakeLists.txt (+1/-0)
tests/mir_test_framework/canonical_window_manager.cpp (+1/-1)
tests/miral/drag_and_drop.cpp (+1/-1)
To merge this branch: bzr merge lp:~alan-griffiths/mir/fedora
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Needs Fixing on 2017-10-23
Chris Halse Rogers Approve on 2017-10-23
Alberto Aguirre (community) 2017-10-19 Approve on 2017-10-19
Review via email: mp+332494@code.launchpad.net

Commit message

Initial round of fixes for building on Fedora

Description of the change

Initial round of fixes for building & running on Fedora

$ cmake -DMIR_ENABLE_TESTS=off ..
$ make

To post a comment you must log in.
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:4300
https://mir-jenkins.ubuntu.com/job/mir-ci/3743/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/5145
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/5383
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/5370
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/5370
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/5370
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5189
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5189/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5189
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5189/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5189
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5189/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5189
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5189/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5189
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5189/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5189
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5189/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5189
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5189/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5189
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5189/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/3743/rebuild

review: Approve (continuous-integration)
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:4301
https://mir-jenkins.ubuntu.com/job/mir-ci/3744/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/5147
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/5385
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/5372
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/5372
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/5372
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5191
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5191/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5191
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5191/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5191
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5191/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5191
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5191/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5191
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5191/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5191
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5191/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5191
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5191/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5191
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5191/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/3744/rebuild

review: Approve (continuous-integration)
Alberto Aguirre (albaguirre) wrote :

Yes, works on a fedora 26/4.13 install under kvm/virt-manager.

Should the build dependencies for fedora be mentioned somewhere:

I had to install:

dnf install cmake gcc-c++ boost-devel mesa-libEGL-devel mesa-ligGLES-devel glm-devel protobuf-lite-devel protobuf-compiler capnproto-devel capnproto glog-devel gflags-devel systemd-devel glib2-devel wayland-devel mesa-libgbm-devel libepoxy-devel nettle-devel libinput-devel libxml++-devel libuuid-devel libxkbcommon-devel freetype-devel lttng-ust-devel libatomic

Then dnf install qterminal qt5-qtwayland for running, miral-desktop.

review: Approve
Chris Halse Rogers (raof) wrote :

I think changing our behaviour based on os-release is a mistake. In particular, I'm pretty sure this won't build on anything but Fedora, or Debian-derived distros, but it would be possible to do feature-detection that *would* work everywhere instead.

It looks like:
*) miral-check-symbols should use and be dependent on find_program(DPKG_GENSYMBOLS dpkg-gensymbols)
*) The MIRAL_DEFAULT_FONT_FILE should be something like
find_file(
  MIRAL_DEFAULT_FONT_FILE
  NAMES Ubuntu-B.ttf FreeSansBold.ttf
  DOC "Font to be used in titlebars by miral-shell"
  PATHS /usr/share/fonts/truetype
  PATH_SUFFIXES ubuntu-font-family freefont)

...and the capnproto differences are due to the Debian packages shipping a homebrew CMake integration. Urgh. I'll fix the Ubuntu package, and submit a patch to Debian, and try and work out how to detect the b0rkage.

From the documentation I think the target_link_libraries should be
target_link_libraries(mircapnproto CapnProto::capnp-rpc)

review: Needs Fixing
Alan Griffiths (alan-griffiths) wrote :

> I think changing our behaviour based on os-release is a mistake. In
> particular, I'm pretty sure this won't build on anything but Fedora, or
> Debian-derived distros, but it would be possible to do feature-detection that
> *would* work everywhere instead.
>
> It looks like:
> *) miral-check-symbols should use and be dependent on
> find_program(DPKG_GENSYMBOLS dpkg-gensymbols)

The problem with that is that /usr/bin/dpkg-gensymbols exists (at least after my installing random stuff to get the build working) but doesn't actually work.

> *) The MIRAL_DEFAULT_FONT_FILE should be something like
> find_file(
> MIRAL_DEFAULT_FONT_FILE
> NAMES Ubuntu-B.ttf FreeSansBold.ttf
> DOC "Font to be used in titlebars by miral-shell"
> PATHS /usr/share/fonts/truetype
> PATH_SUFFIXES ubuntu-font-family freefont)

That makes sense.

> ...and the capnproto differences are due to the Debian packages shipping a
> homebrew CMake integration. Urgh. I'll fix the Ubuntu package, and submit a
> patch to Debian, and try and work out how to detect the b0rkage.
>
> From the documentation I think the target_link_libraries should be
> target_link_libraries(mircapnproto CapnProto::capnp-rpc)

I *think* the documentation suffers from failing to escape angle brackets.

Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:4302
https://mir-jenkins.ubuntu.com/job/mir-ci/3746/
Executed test runs:

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/3746/rebuild

review: Needs Fixing (continuous-integration)
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:4304
https://mir-jenkins.ubuntu.com/job/mir-ci/3749/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/5154
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/5391
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/5378
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/5378
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/5378
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5197
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5197/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5197
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5197/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5197
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5197/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5197
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5197/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5197
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5197/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5197
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5197/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5197
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5197/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5197
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5197/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/3749/rebuild

review: Approve (continuous-integration)
Chris Halse Rogers (raof) wrote :

I'm ok with this. I think it'd be nice to know why dpkg-gensymbols doesn't work on Fedora, but this is fine.

review: Approve
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/1477/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/5158
    FAILURE: https://mir-jenkins.ubuntu.com/job/generic-land-mp/1615/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/1616/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/5395
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/5382
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/5382
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/5382
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5201
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5201/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5201
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5201/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5201
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5201/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5201
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5201/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5201
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5201/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5201
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5201/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5201
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5201/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5201
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5201/artifact/output/*zip*/output.zip

review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2017-10-19 16:26:00 +0000
3+++ CMakeLists.txt 2017-10-20 15:08:07 +0000
4@@ -300,7 +300,9 @@
5
6 add_subdirectory(benchmarks/)
7 add_subdirectory(examples/)
8-add_subdirectory(playground/)
9+if (MIR_EGL_SUPPORTED)
10+ add_subdirectory(playground/)
11+endif()
12 add_subdirectory(guides/)
13 add_subdirectory(cmake/)
14
15
16=== modified file 'examples/miral-shell/CMakeLists.txt'
17--- examples/miral-shell/CMakeLists.txt 2017-08-31 17:28:38 +0000
18+++ examples/miral-shell/CMakeLists.txt 2017-10-20 15:08:07 +0000
19@@ -53,6 +53,16 @@
20 titlebar_config.cpp titlebar_config.h
21 )
22
23+find_file(MIRAL_DEFAULT_FONT_FILE
24+ NAMES Ubuntu-B.ttf FreeSansBold.ttf
25+ DOC "Font to be used in titlebars by miral-shell"
26+ PATHS /usr/share/fonts/truetype/ubuntu-font-family # Ubuntu Ubuntu-B.ttf
27+ /usr/share/fonts/truetype/freefont # Debian FreeSansBold.ttf
28+ /usr/share/fonts/gnu-free) # Fedora FreeSansBold.ttf
29+
30+set_source_files_properties(titlebar_config.cpp PROPERTIES
31+ COMPILE_DEFINITIONS MIRAL_DEFAULT_FONT_FILE="${MIRAL_DEFAULT_FONT_FILE}")
32+
33 pkg_check_modules(FREETYPE freetype2 REQUIRED)
34 target_include_directories(miral-shell-lib PRIVATE ${FREETYPE_INCLUDE_DIRS})
35 target_compile_definitions(miral-shell-lib PRIVATE -DTYPO_SUPPORTS_FREETYPE)
36
37=== modified file 'examples/miral-shell/titlebar_config.cpp'
38--- examples/miral-shell/titlebar_config.cpp 2017-08-21 15:58:34 +0000
39+++ examples/miral-shell/titlebar_config.cpp 2017-10-20 15:08:07 +0000
40@@ -22,7 +22,7 @@
41 namespace
42 {
43 std::mutex mutex;
44-std::string font_file{"/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf"};
45+std::string font_file{MIRAL_DEFAULT_FONT_FILE};
46 }
47
48 void titlebar::font_file(std::string const& font_file)
49
50=== modified file 'include/server/mir/shell/persistent_surface_store.h'
51--- include/server/mir/shell/persistent_surface_store.h 2017-07-28 17:00:43 +0000
52+++ include/server/mir/shell/persistent_surface_store.h 2017-10-20 15:08:07 +0000
53@@ -22,7 +22,7 @@
54 #include <memory>
55 #include <vector>
56 #include <array>
57-#include <uuid/uuid.h>
58+#include <uuid.h>
59
60
61 namespace mir
62
63=== modified file 'src/CMakeLists.txt'
64--- src/CMakeLists.txt 2017-09-08 13:26:03 +0000
65+++ src/CMakeLists.txt 2017-10-20 15:08:07 +0000
66@@ -18,7 +18,6 @@
67 # Add the core and platform implementations before exposing any private APIs
68 add_subdirectory(core)
69 add_subdirectory(platforms/)
70-add_subdirectory(miral/)
71
72 # the src/include/... directories should be private to the implementation
73 include_directories(${PROJECT_SOURCE_DIR}/src/include/common)
74@@ -31,6 +30,7 @@
75
76 add_subdirectory(platform/)
77 add_subdirectory(server/)
78+add_subdirectory(miral/)
79 add_subdirectory(client/)
80 add_subdirectory(utils/)
81 add_subdirectory(renderer/)
82@@ -54,6 +54,7 @@
83 set(MIR_PLATFORM_REFERENCES ${MIR_PLATFORM_REFERENCES} PARENT_SCOPE)
84 set(MIR_CLIENT_PLATFORM_PATH ${MIR_CLIENT_PLATFORM_PATH} PARENT_SCOPE)
85 set(MIR_SERVER_PLATFORM_PATH ${MIR_SERVER_PLATFORM_PATH} PARENT_SCOPE)
86+set(MIRSERVER_INCLUDE_DIRS ${MIRSERVER_INCLUDE_DIRS} PARENT_SCOPE)
87
88 # We need the ABI versions in the tests
89 set(MIR_SERVER_GRAPHICS_PLATFORM_ABI ${MIR_SERVER_GRAPHICS_PLATFORM_ABI} PARENT_SCOPE)
90
91=== modified file 'src/capnproto/CMakeLists.txt'
92--- src/capnproto/CMakeLists.txt 2017-07-28 17:00:43 +0000
93+++ src/capnproto/CMakeLists.txt 2017-10-20 15:08:07 +0000
94@@ -20,7 +20,12 @@
95 capnp_generate_cpp(CAPNPROTO_INPUT_CONFIG_SRC CAPNPROTO_INPUT_CONFIG_HDRS mir_input_config.capnp)
96
97 add_library(mircapnproto STATIC ${CAPNPROTO_EVENT_SRC} ${CAPNPROTO_INPUT_CONFIG_SRC})
98-target_link_libraries(mircapnproto ${CAPNP_LIBRARIES_LITE})
99+
100+if (DEFINED CAPNP_LIBRARIES_LITE)
101+ target_link_libraries(mircapnproto ${CAPNP_LIBRARIES_LITE})
102+else()
103+ target_link_libraries(mircapnproto $<TARGET_FILE:CapnProto::capnp> $<TARGET_FILE:CapnProto::kj>)
104+endif()
105
106 list(APPEND MIR_GENERATED_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR})
107
108
109=== modified file 'src/miral/CMakeLists.txt'
110--- src/miral/CMakeLists.txt 2017-10-17 10:48:56 +0000
111+++ src/miral/CMakeLists.txt 2017-10-20 15:08:07 +0000
112@@ -96,16 +96,17 @@
113
114 # clang generates slightly different symbols (but we don't care)
115 if (CMAKE_COMPILER_IS_GNUCXX)
116- execute_process(COMMAND which dpkg-gensymbols RESULT_VARIABLE MIR_HAS_DPKG_GENSYMBOLS)
117-
118- if (MIR_HAS_DPKG_GENSYMBOLS EQUAL 0)
119- add_custom_target(check-miral-symbols ALL
120- DEPENDS miral ${PROJECT_SOURCE_DIR}/debian/libmiral${MIRAL_ABI}.symbols
121- COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/libmiral${MIRAL_ABI}.symbols
122- COMMAND dpkg-gensymbols -e${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libmiral.so.${MIRAL_ABI} -plibmiral${MIRAL_ABI} -v${MIRAL_VERSION} -O${CMAKE_CURRENT_BINARY_DIR}/libmiral${MIRAL_ABI}.symbols
123- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
124- VERBATIM
125- )
126+ # Using dpkg-gensymbols only makes sense on Debian based distros
127+ if (EXISTS /etc/debian_version)
128+ find_program(MIR_DPKG_GENSYMBOLS dpkg-gensymbols)
129+ if (MIR_DPKG_GENSYMBOLS)
130+ add_custom_target(check-miral-symbols ALL
131+ DEPENDS miral ${PROJECT_SOURCE_DIR}/debian/libmiral${MIRAL_ABI}.symbols
132+ COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/libmiral${MIRAL_ABI}.symbols
133+ COMMAND dpkg-gensymbols -e${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libmiral.so.${MIRAL_ABI} -plibmiral${MIRAL_ABI} -v${MIRAL_VERSION} -O${CMAKE_CURRENT_BINARY_DIR}/libmiral${MIRAL_ABI}.symbols
134+ WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
135+ VERBATIM)
136+ endif()
137 endif()
138 endif()
139
140
141=== modified file 'src/protobuf/symbols.map'
142--- src/protobuf/symbols.map 2017-05-25 08:58:03 +0000
143+++ src/protobuf/symbols.map 2017-10-20 15:08:07 +0000
144@@ -1158,3 +1158,27 @@
145 vtable?for?mir::protobuf::RequestWithAuthority;
146 };
147 } MIR_PROTOBUF_0.26;
148+
149+# When building with the Fedora 26 toolchain these are needed
150+MIR_PROTOBUF_FEDORA {
151+ global:
152+ extern "C++" {
153+ mir::protobuf::_Buffer_default_instance_;
154+ mir::protobuf::_BufferRequest_default_instance_;
155+ mir::protobuf::_BufferStream_default_instance_;
156+ mir::protobuf::_BufferStreamId_default_instance_;
157+ mir::protobuf::_Cookie_default_instance_;
158+ mir::protobuf::_DisplayConfiguration_default_instance_;
159+ mir::protobuf::_LifecycleEvent_default_instance_;
160+ mir::protobuf::_ModuleProperties_default_instance_;
161+ mir::protobuf::_PersistentSurfaceId_default_instance_;
162+ mir::protobuf::_PingEvent_default_instance_;
163+ mir::protobuf::_Platform_default_instance_;
164+ mir::protobuf::_ScreencastId_default_instance_;
165+ mir::protobuf::_StructuredError_default_instance_;
166+ mir::protobuf::_SurfaceAspectRatio_default_instance_;
167+ mir::protobuf::_SurfaceId_default_instance_;
168+ mir::protobuf::_SurfaceSpecification_default_instance_;
169+ mir::protobuf::_Rectangle_default_instance_;
170+ };
171+} MIR_PROTOBUF_0.27;
172
173=== modified file 'src/server/CMakeLists.txt'
174--- src/server/CMakeLists.txt 2017-09-25 22:34:08 +0000
175+++ src/server/CMakeLists.txt 2017-10-20 15:08:07 +0000
176@@ -125,6 +125,13 @@
177 atomic
178 )
179
180+target_include_directories(mirshell
181+ PUBLIC
182+ ${UUID_INCLUDE_DIRS}
183+)
184+
185+set(MIRSERVER_INCLUDE_DIRS ${UUID_INCLUDE_DIRS} PARENT_SCOPE)
186+
187 install(TARGETS mirserver
188 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
189 )
190
191=== modified file 'src/server/shell/default_persistent_surface_store.cpp'
192--- src/server/shell/default_persistent_surface_store.cpp 2017-08-14 02:48:54 +0000
193+++ src/server/shell/default_persistent_surface_store.cpp 2017-10-20 15:08:07 +0000
194@@ -17,7 +17,7 @@
195 */
196
197 #include "default_persistent_surface_store.h"
198-#include <uuid/uuid.h>
199+#include <uuid.h>
200 #include <algorithm>
201 #include <unordered_map>
202 #include <boost/throw_exception.hpp>
203
204=== modified file 'tests/CMakeLists.txt'
205--- tests/CMakeLists.txt 2017-10-13 19:01:00 +0000
206+++ tests/CMakeLists.txt 2017-10-20 15:08:07 +0000
207@@ -45,6 +45,7 @@
208 ${PROJECT_SOURCE_DIR}/include/platform
209 ${PROJECT_SOURCE_DIR}/include/miral
210 ${PROJECT_SOURCE_DIR}/include/server
211+ ${MIRSERVER_INCLUDE_DIRS}
212 ${PROJECT_SOURCE_DIR}/include/client
213 ${PROJECT_SOURCE_DIR}/include/common
214 ${PROJECT_SOURCE_DIR}/include/test
215
216=== modified file 'tests/mir_test_framework/canonical_window_manager.cpp'
217--- tests/mir_test_framework/canonical_window_manager.cpp 2017-08-30 11:59:08 +0000
218+++ tests/mir_test_framework/canonical_window_manager.cpp 2017-10-20 15:08:07 +0000
219@@ -24,7 +24,7 @@
220 #include "mir/shell/surface_ready_observer.h"
221 #include "mir/shell/display_layout.h"
222
223-#include <uuid/uuid.h>
224+#include <uuid.h>
225 #include <linux/input.h>
226 #include <csignal>
227
228
229=== modified file 'tests/miral/drag_and_drop.cpp'
230--- tests/miral/drag_and_drop.cpp 2017-08-23 16:15:03 +0000
231+++ tests/miral/drag_and_drop.cpp 2017-10-20 15:08:07 +0000
232@@ -41,7 +41,7 @@
233 #include <gtest/gtest.h>
234
235 #include <linux/input.h>
236-#include <uuid/uuid.h>
237+#include <uuid.h>
238
239 #include <boost/throw_exception.hpp>
240 #include <atomic>

Subscribers

People subscribed via source and target branches