diff options
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/meson.build b/meson.build deleted file mode 100644 index e53a2e8..0000000 --- a/meson.build +++ /dev/null @@ -1,141 +0,0 @@ -project('smolbote', ['cpp'], - version: '0.1.0', - default_options: ['cpp_std=c++2a', 'warning_level=3'], - license: 'GPL3', - meson_version: '>=0.55.0' -) - -summary({ - 'prefix': get_option('prefix'), - 'bindir': get_option('bindir'), - 'libdir': get_option('libdir'), - 'datadir': get_option('datadir') -}, section: 'Install locations') - -kconfig = import('unstable-keyval') -cdata = configuration_data(kconfig.load(host_machine.system() + '/.config')) - -version_h = vcs_tag( - command: [find_program('git').full_path(), 'describe', '--long', '--abbrev=40'], - #fallback: defaults to meson.project_version(), - input: 'src/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') -summary({ - 'id': cxx.get_id(), - 'version': cxx.version(), - 'linker': cxx.get_linker_id(), -}, section: 'Compiler') - -# 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 - '-Wmissing-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-branches', # 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') - -# Dependencies -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') -dep_catch = dependency('catch2', required: true, fallback: ['catch2', 'catch2_dep'] ) -dep_SingleApplication = dependency('singleapplication', fallback: [ 'singleapplication', 'SingleApplication_dep' ]) - -# Generate config header -poi_sourceset = sourceset.source_set() - -subdir('include') -smolbote_interfaces = include_directories('include') - -subdir('lib/bookmarks') -subdir('lib/configuration') -subdir('lib/downloads') -subdir('lib/pluginloader') -subdir('lib/session_formats') -subdir('lib/smolblok') - -subdir('src') -subdir('lang') -subdir('doc') - -subdir('plugins/ProfileEditor') -subdir('plugins/HostlistFilter') -subdir('plugins/AdblockFilter') - -subdir('test/firefox-bookmarks-json-parser') - -ssconfig = poi_sourceset.apply(cdata) - -poi_exe = executable(get_option('poi'), - cpp_args: ['-DQAPPLICATION_CLASS=QApplication'], - sources: [ssconfig.sources()], - include_directories: [ plugininterfaces_include, include_directories('src') ], - dependencies: [ dep_qt5, dep_spdlog, dep_SingleApplication, dep_bookmarks, dep_configuration, dep_downloads, dep_pluginloader, ssconfig.dependencies(), lib_session_formats ], - install: true, -) - -test('poi-bookmarks_xbel', poi_exe, args: [ 'bookmarks', '-x', files('test/bookmarks.xbel'), '--output=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 |