aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build147
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