diff options
Diffstat (limited to 'homescreen/meson.build')
-rw-r--r-- | homescreen/meson.build | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/homescreen/meson.build b/homescreen/meson.build new file mode 100644 index 0000000..fc93d06 --- /dev/null +++ b/homescreen/meson.build @@ -0,0 +1,107 @@ +cpp = meson.get_compiler('cpp') +qt5_dep = dependency('qt5', modules: ['Qml', 'Quick', 'Gui']) +dep_wayland_client = dependency('wayland-client', version: '>= 1.20.0') +dep_qtappfw = [ + dependency('qtappfw-weather'), + dependency('qtappfw-network'), + dependency('qtappfw-bt'), + dependency('qtappfw-vehicle-signals'), + dependency('qtappfw-applauncher') +] + +qt_defines = [] +qpa_header_path = join_paths(qt5_dep.version(), 'QtGui') +qpa_header = join_paths(qpa_header_path, 'qpa/qplatformnativeinterface.h') +# we pass this QT_QPA_HEADER straight in the code as there's no easy +# way to pass the correct header +if cpp.has_header(qpa_header, dependencies : qt5_dep) + qt_defines += [ '-DQT_QPA_HEADER=<@0@>'.format(qpa_header) ] + message('Found QtGui QPA header in ' + qpa_header_path) +endif + +dep_scanner = dependency('wayland-scanner') +prog_scanner = find_program(dep_scanner.get_pkgconfig_variable('wayland_scanner')) +agl_compositor_dep = dependency('agl-compositor-0.0.20-protocols') +dir_agl_compositor_base = agl_compositor_dep.get_pkgconfig_variable('pkgdatadir') + +homescreen_dep = [ + qt5_dep, + dep_wayland_client, + dep_qtappfw, +] + +homescreen_resources = [ + 'qml/images/MediaPlayer/mediaplayer.qrc', + 'qml/images/MediaMusic/mediamusic.qrc', + 'qml/images/Weather/weather.qrc', + 'qml/images/Shortcut/shortcut.qrc', + 'qml/images/Status/status.qrc', + 'qml/images/images.qrc', + 'qml/qml.qrc' +] + +resource_files = qt5.compile_resources(sources: homescreen_resources) + +protocols = [ + [ 'agl-shell', 'agl-compositor' ], +] + +foreach proto: protocols + proto_name = proto[0] + if proto[1] == 'agl-compositor' + base_file = proto_name + xml_path = join_paths(dir_agl_compositor_base, '@0@.xml'.format(base_file)) + endif + + foreach output_type: [ 'client-header', 'server-header', 'private-code' ] + if output_type == 'client-header' + output_file = '@0@-client-protocol.h'.format(base_file) + elif output_type == 'server-header' + output_file = '@0@-server-protocol.h'.format(base_file) + else + output_file = '@0@-protocol.c'.format(base_file) + if dep_scanner.version().version_compare('< 1.14.91') + output_type = 'code' + endif + endif + + var_name = output_file.underscorify() + target = custom_target( + '@0@ @1@'.format(base_file, output_type), + command: [ prog_scanner, output_type, '@INPUT@', '@OUTPUT@' ], + input: xml_path, + output: output_file, + ) + message('protocol name is ' + var_name) + set_variable(var_name, target) + endforeach +endforeach + +homescreen_src_headers = [ + 'src/applicationlauncher.h', + 'src/mastervolume.h', + 'src/statusbarmodel.h', + 'src/statusbarserver.h', + 'src/homescreenhandler.h', + 'src/shell.h' +] + +moc_files = qt5.compile_moc(headers: homescreen_src_headers, + dependencies: qt5_dep) + +homescreen_src = [ + 'src/shell.cpp', + 'src/statusbarserver.cpp', + 'src/statusbarmodel.cpp', + 'src/applicationlauncher.cpp', + 'src/mastervolume.cpp', + 'src/homescreenhandler.cpp', + 'src/main.cpp', + agl_shell_client_protocol_h, + agl_shell_protocol_c +] + +executable('homescreen', homescreen_src, resource_files, moc_files, + cpp_args: qt_defines, + dependencies : homescreen_dep, + install: true) |