project('smolbote', 'cpp', version: 'master', default_options: ['cpp_std=c++17', 'strip=true', 'warning_level=3'], license: 'GPL3') # Qt 5 qt5 = import('qt5') dep_qt5 = dependency('qt5', modules: ['Core', 'Network', 'Widgets', 'WebEngineWidgets']) # Boost dep_boost = dependency('boost', modules: ['program_options']) # Breakpad dep_breakpad = declare_dependency( compile_args: '-DBreakpadEnabled', dependencies: [dependency('breakpad-client', required: get_option('Breakpad')), dependency('threads', required: get_option('Breakpad'))] ) # KDE dep_plasma = declare_dependency( compile_args: '-DPLASMA', dependencies: [meson.get_compiler('cpp').find_library('KF5WindowSystem', required: get_option('Plasma')), meson.get_compiler('cpp').find_library('KF5Wallet', required: get_option('Plasma'))], include_directories: [include_directories('/usr/include/KF5/KWindowSystem'), include_directories('/usr/include/KF5/KWallet')] ) # Generate config header include = include_directories('include') git = find_program('git').path() pymod = import('python') python3 = pymod.find_installation('python3') dep_genheaders = declare_dependency( include_directories: include_directories('.'), sources: [ vcs_tag( command: [git, 'describe', '--long', '--abbrev=40'], #fallback: defaults to meson.project_version(), input: 'include/version.h.in', output: 'version.h' ), custom_target('configheader', input: ['tools/config.py', 'src/Kconfig', host_machine.system() + '/.config'], output: 'config.h', command: [python3, '@INPUT0@', '--kconfig=@INPUT1@', '--dotconfig=@INPUT2@', '--generate=@OUTPUT@'], build_by_default: true )] ) interfaces_moc = qt5.preprocess( moc_headers: ['include/browserinterface.h', 'include/plugininterface.h', 'include/profileinterface.h'], dependencies: dep_qt5 ) subdir('lib/about') subdir('lib/addressbar') subdir('lib/bookmarks') subdir('lib/configuration') subdir('lib/downloads') subdir('lib/urlfilter') subdir('lib/web') subdir('3rd-party/SingleApplication') subdir('src') subdir('doc') subdir('plugins/ConfigurationEditor') subdir('plugins/ProfileEditor')