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') conf = configuration_data() conf.set_quoted('poi_Version', '1.0.0') conf.set_quoted('poi_Describe', '1.0.0-stable') conf.set_quoted('poi_Build', 'custom-1.0.0') configure_file(configuration: conf, input: 'include/version.h.in', output: 'version.h') genheader_inc = include_directories('.') pymod = import('python') python3 = pymod.find_installation('python3') kconfiggen = custom_target('configheader', input: ['tools/config.py', 'src/Kconfig', 'linux/.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')