diff options
Diffstat (limited to 'meson.build')
| -rw-r--r-- | meson.build | 147 | 
1 files changed, 0 insertions, 147 deletions
| diff --git a/meson.build b/meson.build deleted file mode 100644 index bc72ff3..0000000 --- a/meson.build +++ /dev/null @@ -1,147 +0,0 @@ -project('smolbote', ['cpp'], -    version: '0.1.0', -    default_options: ['cpp_std=c++2a', 'warning_level=3'], -    license: 'GPL3', -    meson_version: '>=0.52.0' -) - -kconfig = import('unstable-kconfig') -kconf = kconfig.load(host_machine.system() + '/.config') - -cdata = configuration_data(kconf) - -version_h = vcs_tag( -    command: [find_program('git').path(), 'describe', '--long', '--abbrev=40'], -    #fallback: defaults to meson.project_version(), -    input: 'include/version.h.in', -    output: 'version.h' -) - -# add -DQT_NO_DEBUG to non-debug builds -if not get_option('debug') -    add_project_arguments('-DQT_NO_DEBUG', language: 'cpp') -endif - -sourceset = import('sourceset') - -cxx = meson.get_compiler('cpp') - -# add some specific flags -add_project_arguments(cxx.get_supported_arguments([ -  '-ffunction-sections',      # Place each function into its own section, better ASLR but larger executables -  '-fstack-protector-all',    # Emit code to check for buffer overflows on all functions -  '-fstack-clash-protection', # Emit code to check for stack clash attacks - -  # gcc specific -  '-fconcepts',     # gcc9 c++20 compat - -  # clang specific -  '-mspeculative-load-hardening',   # Spectre v1 mitigation -  '-Xclang -plugin-arg-clazy -Xclang level0,level1', # clazy default warning level - -  ## warnings -  # variables -  '-Wunused',               # warn on anything being unused -  '-Wshadow',               # if variable declaration shadows one from a parent context -  # functions -  '-Wnon-virtual-dtor',     # if class with virtual functions has non-virtual dtor -  '-Werror=missing-declarations', # missing function declarations in header files -  '-Werror=redundant-decls', -  '-Woverloaded-virtual',   # warn if you overload (not override) a virtual function -  '-Werror=return-type', -  # style -  '-Wformat=2',             # security issues around printf -  '-Wdate-time',            # __TIME__ and __DATE__ macros -  '-Werror=missing-field-initializers', -  # objects -  '-Wnull-dereference', -  '-Wconsumed',             # use-after-move warnings -  '-Wlifetime',             # object lifetime issues -  # logic -  '-Wlogical-op',           # logical operations being used where bitwise were probably wanted -  '-Wimplicit-fallthrough', -  '-Wduplicated-cond',      # if/else chain has duplicated conditions -  '-Wduplicated-brances',   # if/else branches have duplicated code -  # casts -  '-Wold-style-cast', -  '-Wcast-align',           # potential performance problem casts -  '-Wuseless-cast',         # cast to same type -  '-Wconversion',           # type conversions that may lose data -  '-Wsign-conversion',      # sign conversions -  '-Wdouble-promotion',     # float is promoted to double -  # others -  '-Werror=pedantic',       # if non-standard c++ is used -  #'-Weffc++', -]), language: 'cpp') - -if get_option('buildtype') == 'release' -  add_project_arguments(cxx.get_supported_arguments([ -    '-flto=4', -  ]), language: 'cpp') -endif - -mod_qt5 = import('qt5') -dep_qt5 = dependency('qt5', -  modules: [ 'Core', 'Network', 'Widgets', 'Svg', 'WebEngine', 'WebEngineWidgets', 'Concurrent' ], -  include_type: 'system' -) - -dep_spdlog = dependency('spdlog', fallback: ['spdlog', 'spdlog_dep'], version: '>=1.3.1') - -optional_deps = [] -poi_cpp_args = [] - -dep_breakpad = dependency('breakpad-client', include_type: 'system', required: get_option('crashhandler')) -dep_threads = dependency('threads', include_type: 'system', required: get_option('crashhandler')) -if dep_breakpad.found() -  poi_cpp_args += '-DHAVE_BREAKPAD' -endif - -dep_gtest = dependency('gtest', required: false, disabler: true) -dep_catch = dependency('catch2', required: true, fallback: ['catch2', 'catch2_dep'] ) -dep_SingleApplication = dependency('singleapplication', fallback: [ 'singleapplication', 'SingleApplication_dep' ]) -dep_args = dependency('args.hxx', fallback: [ 'args', 'args_dep' ]) - -# Generate config header - -poi_sourceset = sourceset.source_set() - -subdir('include')           # plugin interaces - -subdir('lib/bookmarks') -subdir('lib/configuration') -subdir('lib/downloads') -subdir('lib/pluginloader') -subdir('lib/urlfilter') -subdir('lib/session_formats') - -subdir('src') -subdir('lang') -subdir('doc') -subdir('tools') - -subdir('plugins/ProfileEditor') - -subdir('test/firefox-bookmarks-json-parser') - -ssconfig = poi_sourceset.apply(cdata) - -poi_exe = executable(get_option('poi'), -  cpp_args: ['-DQAPPLICATION_CLASS=QApplication', poi_cpp_args], -  sources: [ssconfig.sources()], -  include_directories: [ plugininterfaces_include, include_directories('src') ], -  dependencies: [ dep_qt5, dep_spdlog, dep_SingleApplication, dep_args, optional_deps, dep_bookmarks, dep_configuration, dep_downloads, dep_pluginloader, dep_urlfilter, ssconfig.dependencies(), lib_session_formats ], -  install: true, -) - -test('poi-bookmarks: xbel', poi_exe, args: [ 'bookmarks', '-x', files('test/bookmarks.xbel'), '--export=stdout' ]) - -subdir(host_machine.system()) - -# cppcheck target -cppcheck = find_program('cppcheck', required: false) -if cppcheck.found() -run_target('cppcheck', -  command: [cppcheck, '--enable=all', '--project=' + meson.build_root() / 'compile_commands.json'] -) -endif | 
