project( 'raven', 'cpp', default_options : ['cpp_std=c++17'] ) project_description = 'The Raven user interface library' add_project_arguments('-O3', language : 'cpp') cairomm_dep = dependency('cairomm-1.0') pangocairo_dep = dependency('pangocairo') xlib_dep = dependency('x11') librsvg_dep = dependency('librsvg-2.0') raven_dependencies = [ cairomm_dep, xlib_dep, pangocairo_dep, librsvg_dep ] headers = include_directories('src') raven_source_files = [ './src/SvgUtil.cpp', './src/Box.cpp', './src/Styles.cpp', './src/Painter.cpp', './src/Window.cpp', './src/Widget.cpp', './src/SvgWidget.cpp', './src/ScrollContainer.cpp', './src/Button.cpp', './src/DocumentLayout.cpp', './src/RowLayout.cpp', './src/ColumnLayout.cpp', './src/BoxLayout.cpp', './src/Label.cpp', './src/ListView.cpp', ] raven_header_files = [ './src/SvgUtil.hpp', './src/Logging.hpp', './src/Box.hpp', './src/BoxLayout.hpp', './src/Button.hpp', './src/ColumnLayout.hpp', './src/DocumentLayout.hpp', './src/Events.hpp', './src/Forward.hpp', './src/GenericStyle.hpp', './src/Label.hpp', './src/Layout.hpp', './src/Painter.hpp', './src/Point.hpp', './src/RGB.hpp', './src/RowLayout.hpp', './src/ScrollContainer.hpp', './src/Styles.hpp', './src/Widget.hpp', './src/SvgWidget.hpp', './src/Window.hpp' ] raven_lib = library( meson.project_name(), raven_source_files, dependencies : raven_dependencies, install : true ) raven_dep = declare_dependency( include_directories : headers, link_with : raven_lib ) set_variable('raven_dep', raven_dep) install_headers(raven_header_files, subdir : meson.project_name()) pkg_mod = import('pkgconfig') pkg_mod.generate( name : meson.project_name(), filebase : meson.project_name(), description : project_description, subdirs : meson.project_name(), libraries : [raven_dependencies, raven_lib] ) executable( 'ravenapp', './src/main.cpp', dependencies : [raven_dependencies, raven_dep] )