Mir

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

Proposed by Alan Griffiths
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
Chris Halse Rogers Approve
Alberto Aguirre (community) Approve
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.
Revision history for this message
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)
Revision history for this message
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)
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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.

Revision history for this message
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)
Revision history for this message
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)
Revision history for this message
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
Revision history for this message
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
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2017-10-19 16:26:00 +0000
+++ CMakeLists.txt 2017-10-20 15:08:07 +0000
@@ -300,7 +300,9 @@
300300
301add_subdirectory(benchmarks/)301add_subdirectory(benchmarks/)
302add_subdirectory(examples/)302add_subdirectory(examples/)
303add_subdirectory(playground/)303if (MIR_EGL_SUPPORTED)
304 add_subdirectory(playground/)
305endif()
304add_subdirectory(guides/)306add_subdirectory(guides/)
305add_subdirectory(cmake/)307add_subdirectory(cmake/)
306308
307309
=== modified file 'examples/miral-shell/CMakeLists.txt'
--- examples/miral-shell/CMakeLists.txt 2017-08-31 17:28:38 +0000
+++ examples/miral-shell/CMakeLists.txt 2017-10-20 15:08:07 +0000
@@ -53,6 +53,16 @@
53 titlebar_config.cpp titlebar_config.h53 titlebar_config.cpp titlebar_config.h
54)54)
5555
56find_file(MIRAL_DEFAULT_FONT_FILE
57 NAMES Ubuntu-B.ttf FreeSansBold.ttf
58 DOC "Font to be used in titlebars by miral-shell"
59 PATHS /usr/share/fonts/truetype/ubuntu-font-family # Ubuntu Ubuntu-B.ttf
60 /usr/share/fonts/truetype/freefont # Debian FreeSansBold.ttf
61 /usr/share/fonts/gnu-free) # Fedora FreeSansBold.ttf
62
63set_source_files_properties(titlebar_config.cpp PROPERTIES
64 COMPILE_DEFINITIONS MIRAL_DEFAULT_FONT_FILE="${MIRAL_DEFAULT_FONT_FILE}")
65
56pkg_check_modules(FREETYPE freetype2 REQUIRED)66pkg_check_modules(FREETYPE freetype2 REQUIRED)
57target_include_directories(miral-shell-lib PRIVATE ${FREETYPE_INCLUDE_DIRS})67target_include_directories(miral-shell-lib PRIVATE ${FREETYPE_INCLUDE_DIRS})
58target_compile_definitions(miral-shell-lib PRIVATE -DTYPO_SUPPORTS_FREETYPE)68target_compile_definitions(miral-shell-lib PRIVATE -DTYPO_SUPPORTS_FREETYPE)
5969
=== modified file 'examples/miral-shell/titlebar_config.cpp'
--- examples/miral-shell/titlebar_config.cpp 2017-08-21 15:58:34 +0000
+++ examples/miral-shell/titlebar_config.cpp 2017-10-20 15:08:07 +0000
@@ -22,7 +22,7 @@
22namespace22namespace
23{23{
24std::mutex mutex;24std::mutex mutex;
25std::string font_file{"/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf"};25std::string font_file{MIRAL_DEFAULT_FONT_FILE};
26}26}
2727
28void titlebar::font_file(std::string const& font_file)28void titlebar::font_file(std::string const& font_file)
2929
=== modified file 'include/server/mir/shell/persistent_surface_store.h'
--- include/server/mir/shell/persistent_surface_store.h 2017-07-28 17:00:43 +0000
+++ include/server/mir/shell/persistent_surface_store.h 2017-10-20 15:08:07 +0000
@@ -22,7 +22,7 @@
22#include <memory>22#include <memory>
23#include <vector>23#include <vector>
24#include <array>24#include <array>
25#include <uuid/uuid.h>25#include <uuid.h>
2626
2727
28namespace mir28namespace mir
2929
=== modified file 'src/CMakeLists.txt'
--- src/CMakeLists.txt 2017-09-08 13:26:03 +0000
+++ src/CMakeLists.txt 2017-10-20 15:08:07 +0000
@@ -18,7 +18,6 @@
18# Add the core and platform implementations before exposing any private APIs18# Add the core and platform implementations before exposing any private APIs
19add_subdirectory(core)19add_subdirectory(core)
20add_subdirectory(platforms/)20add_subdirectory(platforms/)
21add_subdirectory(miral/)
2221
23# the src/include/... directories should be private to the implementation22# the src/include/... directories should be private to the implementation
24include_directories(${PROJECT_SOURCE_DIR}/src/include/common)23include_directories(${PROJECT_SOURCE_DIR}/src/include/common)
@@ -31,6 +30,7 @@
3130
32add_subdirectory(platform/)31add_subdirectory(platform/)
33add_subdirectory(server/)32add_subdirectory(server/)
33add_subdirectory(miral/)
34add_subdirectory(client/)34add_subdirectory(client/)
35add_subdirectory(utils/)35add_subdirectory(utils/)
36add_subdirectory(renderer/)36add_subdirectory(renderer/)
@@ -54,6 +54,7 @@
54set(MIR_PLATFORM_REFERENCES ${MIR_PLATFORM_REFERENCES} PARENT_SCOPE)54set(MIR_PLATFORM_REFERENCES ${MIR_PLATFORM_REFERENCES} PARENT_SCOPE)
55set(MIR_CLIENT_PLATFORM_PATH ${MIR_CLIENT_PLATFORM_PATH} PARENT_SCOPE)55set(MIR_CLIENT_PLATFORM_PATH ${MIR_CLIENT_PLATFORM_PATH} PARENT_SCOPE)
56set(MIR_SERVER_PLATFORM_PATH ${MIR_SERVER_PLATFORM_PATH} PARENT_SCOPE)56set(MIR_SERVER_PLATFORM_PATH ${MIR_SERVER_PLATFORM_PATH} PARENT_SCOPE)
57set(MIRSERVER_INCLUDE_DIRS ${MIRSERVER_INCLUDE_DIRS} PARENT_SCOPE)
5758
58# We need the ABI versions in the tests59# We need the ABI versions in the tests
59set(MIR_SERVER_GRAPHICS_PLATFORM_ABI ${MIR_SERVER_GRAPHICS_PLATFORM_ABI} PARENT_SCOPE)60set(MIR_SERVER_GRAPHICS_PLATFORM_ABI ${MIR_SERVER_GRAPHICS_PLATFORM_ABI} PARENT_SCOPE)
6061
=== modified file 'src/capnproto/CMakeLists.txt'
--- src/capnproto/CMakeLists.txt 2017-07-28 17:00:43 +0000
+++ src/capnproto/CMakeLists.txt 2017-10-20 15:08:07 +0000
@@ -20,7 +20,12 @@
20capnp_generate_cpp(CAPNPROTO_INPUT_CONFIG_SRC CAPNPROTO_INPUT_CONFIG_HDRS mir_input_config.capnp)20capnp_generate_cpp(CAPNPROTO_INPUT_CONFIG_SRC CAPNPROTO_INPUT_CONFIG_HDRS mir_input_config.capnp)
2121
22add_library(mircapnproto STATIC ${CAPNPROTO_EVENT_SRC} ${CAPNPROTO_INPUT_CONFIG_SRC})22add_library(mircapnproto STATIC ${CAPNPROTO_EVENT_SRC} ${CAPNPROTO_INPUT_CONFIG_SRC})
23target_link_libraries(mircapnproto ${CAPNP_LIBRARIES_LITE})23
24if (DEFINED CAPNP_LIBRARIES_LITE)
25 target_link_libraries(mircapnproto ${CAPNP_LIBRARIES_LITE})
26else()
27 target_link_libraries(mircapnproto $<TARGET_FILE:CapnProto::capnp> $<TARGET_FILE:CapnProto::kj>)
28endif()
2429
25list(APPEND MIR_GENERATED_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR})30list(APPEND MIR_GENERATED_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR})
2631
2732
=== modified file 'src/miral/CMakeLists.txt'
--- src/miral/CMakeLists.txt 2017-10-17 10:48:56 +0000
+++ src/miral/CMakeLists.txt 2017-10-20 15:08:07 +0000
@@ -96,16 +96,17 @@
9696
97# clang generates slightly different symbols (but we don't care)97# clang generates slightly different symbols (but we don't care)
98if (CMAKE_COMPILER_IS_GNUCXX)98if (CMAKE_COMPILER_IS_GNUCXX)
99 execute_process(COMMAND which dpkg-gensymbols RESULT_VARIABLE MIR_HAS_DPKG_GENSYMBOLS)99 # Using dpkg-gensymbols only makes sense on Debian based distros
100100 if (EXISTS /etc/debian_version)
101 if (MIR_HAS_DPKG_GENSYMBOLS EQUAL 0)101 find_program(MIR_DPKG_GENSYMBOLS dpkg-gensymbols)
102 add_custom_target(check-miral-symbols ALL102 if (MIR_DPKG_GENSYMBOLS)
103 DEPENDS miral ${PROJECT_SOURCE_DIR}/debian/libmiral${MIRAL_ABI}.symbols103 add_custom_target(check-miral-symbols ALL
104 COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/libmiral${MIRAL_ABI}.symbols104 DEPENDS miral ${PROJECT_SOURCE_DIR}/debian/libmiral${MIRAL_ABI}.symbols
105 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}.symbols105 COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/libmiral${MIRAL_ABI}.symbols
106 WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"106 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
107 VERBATIM107 WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
108 )108 VERBATIM)
109 endif()
109 endif()110 endif()
110endif()111endif()
111112
112113
=== modified file 'src/protobuf/symbols.map'
--- src/protobuf/symbols.map 2017-05-25 08:58:03 +0000
+++ src/protobuf/symbols.map 2017-10-20 15:08:07 +0000
@@ -1158,3 +1158,27 @@
1158 vtable?for?mir::protobuf::RequestWithAuthority;1158 vtable?for?mir::protobuf::RequestWithAuthority;
1159 };1159 };
1160} MIR_PROTOBUF_0.26;1160} MIR_PROTOBUF_0.26;
1161
1162# When building with the Fedora 26 toolchain these are needed
1163MIR_PROTOBUF_FEDORA {
1164 global:
1165 extern "C++" {
1166 mir::protobuf::_Buffer_default_instance_;
1167 mir::protobuf::_BufferRequest_default_instance_;
1168 mir::protobuf::_BufferStream_default_instance_;
1169 mir::protobuf::_BufferStreamId_default_instance_;
1170 mir::protobuf::_Cookie_default_instance_;
1171 mir::protobuf::_DisplayConfiguration_default_instance_;
1172 mir::protobuf::_LifecycleEvent_default_instance_;
1173 mir::protobuf::_ModuleProperties_default_instance_;
1174 mir::protobuf::_PersistentSurfaceId_default_instance_;
1175 mir::protobuf::_PingEvent_default_instance_;
1176 mir::protobuf::_Platform_default_instance_;
1177 mir::protobuf::_ScreencastId_default_instance_;
1178 mir::protobuf::_StructuredError_default_instance_;
1179 mir::protobuf::_SurfaceAspectRatio_default_instance_;
1180 mir::protobuf::_SurfaceId_default_instance_;
1181 mir::protobuf::_SurfaceSpecification_default_instance_;
1182 mir::protobuf::_Rectangle_default_instance_;
1183 };
1184} MIR_PROTOBUF_0.27;
11611185
=== modified file 'src/server/CMakeLists.txt'
--- src/server/CMakeLists.txt 2017-09-25 22:34:08 +0000
+++ src/server/CMakeLists.txt 2017-10-20 15:08:07 +0000
@@ -125,6 +125,13 @@
125 atomic125 atomic
126)126)
127127
128target_include_directories(mirshell
129 PUBLIC
130 ${UUID_INCLUDE_DIRS}
131)
132
133set(MIRSERVER_INCLUDE_DIRS ${UUID_INCLUDE_DIRS} PARENT_SCOPE)
134
128install(TARGETS mirserver135install(TARGETS mirserver
129 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}136 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
130)137)
131138
=== modified file 'src/server/shell/default_persistent_surface_store.cpp'
--- src/server/shell/default_persistent_surface_store.cpp 2017-08-14 02:48:54 +0000
+++ src/server/shell/default_persistent_surface_store.cpp 2017-10-20 15:08:07 +0000
@@ -17,7 +17,7 @@
17 */17 */
1818
19#include "default_persistent_surface_store.h"19#include "default_persistent_surface_store.h"
20#include <uuid/uuid.h>20#include <uuid.h>
21#include <algorithm>21#include <algorithm>
22#include <unordered_map>22#include <unordered_map>
23#include <boost/throw_exception.hpp>23#include <boost/throw_exception.hpp>
2424
=== modified file 'tests/CMakeLists.txt'
--- tests/CMakeLists.txt 2017-10-13 19:01:00 +0000
+++ tests/CMakeLists.txt 2017-10-20 15:08:07 +0000
@@ -45,6 +45,7 @@
45 ${PROJECT_SOURCE_DIR}/include/platform45 ${PROJECT_SOURCE_DIR}/include/platform
46 ${PROJECT_SOURCE_DIR}/include/miral46 ${PROJECT_SOURCE_DIR}/include/miral
47 ${PROJECT_SOURCE_DIR}/include/server47 ${PROJECT_SOURCE_DIR}/include/server
48 ${MIRSERVER_INCLUDE_DIRS}
48 ${PROJECT_SOURCE_DIR}/include/client49 ${PROJECT_SOURCE_DIR}/include/client
49 ${PROJECT_SOURCE_DIR}/include/common50 ${PROJECT_SOURCE_DIR}/include/common
50 ${PROJECT_SOURCE_DIR}/include/test51 ${PROJECT_SOURCE_DIR}/include/test
5152
=== modified file 'tests/mir_test_framework/canonical_window_manager.cpp'
--- tests/mir_test_framework/canonical_window_manager.cpp 2017-08-30 11:59:08 +0000
+++ tests/mir_test_framework/canonical_window_manager.cpp 2017-10-20 15:08:07 +0000
@@ -24,7 +24,7 @@
24#include "mir/shell/surface_ready_observer.h"24#include "mir/shell/surface_ready_observer.h"
25#include "mir/shell/display_layout.h"25#include "mir/shell/display_layout.h"
2626
27#include <uuid/uuid.h>27#include <uuid.h>
28#include <linux/input.h>28#include <linux/input.h>
29#include <csignal>29#include <csignal>
3030
3131
=== modified file 'tests/miral/drag_and_drop.cpp'
--- tests/miral/drag_and_drop.cpp 2017-08-23 16:15:03 +0000
+++ tests/miral/drag_and_drop.cpp 2017-10-20 15:08:07 +0000
@@ -41,7 +41,7 @@
41#include <gtest/gtest.h>41#include <gtest/gtest.h>
4242
43#include <linux/input.h>43#include <linux/input.h>
44#include <uuid/uuid.h>44#include <uuid.h>
4545
46#include <boost/throw_exception.hpp>46#include <boost/throw_exception.hpp>
47#include <atomic>47#include <atomic>

Subscribers

People subscribed via source and target branches