raven/meson.build

95 lines
2 KiB
Meson

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',
'./src/TextInput.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]
)