project('smolbote', 'cpp', version: 'master', default_options: ['cpp_std=c++17', 'strip=true', 'warning_level=3'], license: 'GPL3', meson_version: '>=0.49.0' ) # autogenerate qtcreator project files # add_postconf_script(script_name, arg1, arg2, ...) # will run the executable given as an argument after all project files have been generated. # This script will have the environment variables MESON_SOURCE_ROOT and MESON_BUILD_ROOT set. #meson.add_postconf_script('tools/gen-qtcreator-config.py', '--prefix=../smolbote', '.') # add -DQT_NO_DEBUG to non-debug builds if not get_option('debug') add_project_arguments('-DQT_NO_DEBUG', language: 'cpp') endif mod_qt5 = import('qt5') dep_qt5 = dependency('qt5', modules: ['Core', 'Network', 'Widgets', 'WebEngineWidgets', 'Concurrent']) mod_python = import('python') python3 = mod_python.find_installation('python3') dep_boost = dependency('boost', modules: ['program_options']) dep_spdlog = dependency('spdlog', fallback: ['spdlog', 'spdlog_dep'], version: '>=1.3.1') optional_deps = [] if get_option('Breakpad').enabled() optional_deps += declare_dependency(compile_args: '-DBREAKPAD', dependencies: [dependency('breakpad-client'), dependency('threads')] ) endif if get_option('Plasma').enabled() optional_deps += declare_dependency(compile_args: '-DPLASMA', dependencies: [ dependency('KF5WindowSystem', method: 'cmake'), dependency('KF5Wallet', method: 'cmake')] ) endif if get_option('Python').enabled() optional_deps += declare_dependency(compile_args: '-DPYTHON', dependencies: [ meson.get_compiler('cpp').find_library('linenoise'), python3.dependency('python', version: '>=3.0.0')]) subdir('src/cli') endif dep_gtest = dependency('gtest', required: get_option('testing')) # Generate config header include = include_directories('include') git = find_program('git').path() 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', 'Kconfig', host_machine.system() + '/.config'], output: 'config.h', command: [python3, '@INPUT0@', '--kconfig=@INPUT1@', '--dotconfig=@INPUT2@', '--generate=@OUTPUT@'], build_by_default: true )] ) interfaces_moc = mod_qt5.preprocess( moc_headers: '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/webprofile') subdir('3rd-party/SingleApplication') subdir('src') subdir('lang') subdir('doc') subdir('plugins/ConfigurationEditor') subdir('plugins/ProfileEditor')