diff options
| author | allusive-dev <[email protected]> | 2023-09-19 17:47:33 +1000 |
|---|---|---|
| committer | allusive-dev <[email protected]> | 2023-09-19 17:47:33 +1000 |
| commit | a93aba600b1c5d019b680b9f4ff3fa85d5d43a60 (patch) | |
| tree | 77f8152222655657472a70e0bfa413a0495dd555 /meson.build | |
| parent | reset (diff) | |
| download | compfy-a93aba600b1c5d019b680b9f4ff3fa85d5d43a60.tar.xz compfy-a93aba600b1c5d019b680b9f4ff3fa85d5d43a60.zip | |
Fixed broken files/code and other errors
Diffstat (limited to 'meson.build')
| -rw-r--r-- | meson.build | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..08f55c2 --- /dev/null +++ b/meson.build @@ -0,0 +1,73 @@ +project('picom', 'c', version: '8', + default_options: ['c_std=c11']) + +cc = meson.get_compiler('c') + +# use project version by default +version = 'v'+meson.project_version() + +# use git describe if that's available +git = find_program('git', required: false) +if git.found() + gitv = run_command('git', 'rev-parse', '--short=5', 'HEAD') + if gitv.returncode() == 0 + version = 'vgit-'+gitv.stdout().strip() + endif +endif + +add_global_arguments('-DCOMPTON_VERSION="'+version+'"', language: 'c') + +if get_option('buildtype') == 'release' + add_global_arguments('-DNDEBUG', language: 'c') +endif + +if get_option('sanitize') + sanitizers = ['address', 'undefined'] + if cc.has_argument('-fsanitize=integer') + sanitizers += ['integer'] + endif + if cc.has_argument('-fsanitize=nullability') + sanitizers += ['nullability'] + endif + add_global_arguments('-fsanitize='+','.join(sanitizers), language: 'c') + add_global_link_arguments('-fsanitize='+','.join(sanitizers), language: 'c') + if cc.has_argument('-fno-sanitize=unsigned-integer-overflow') + add_global_arguments('-fno-sanitize=unsigned-integer-overflow', language: 'c') + endif +endif + +if get_option('modularize') + if not cc.has_argument('-fmodules') + error('option \'modularize\' requires clang') + endif + add_global_arguments(['-fmodules', + '-fmodule-map-file='+ + meson.current_source_dir()+ + '/src/picom.modulemap'], + language: 'c') +endif + +add_global_arguments('-D_GNU_SOURCE', language: 'c') + +if cc.has_header('stdc-predef.h') + add_global_arguments('-DHAS_STDC_PREDEF_H', language: 'c') +endif + +warns = [ 'all', 'cast-function-type', 'ignored-qualifiers', 'missing-parameter-type', + 'nonnull', 'shadow', 'no-type-limits', 'old-style-declaration', 'override-init', + 'sign-compare', 'type-limits', 'uninitialized', 'shift-negative-value', + 'unused-but-set-parameter', 'unused-parameter', 'implicit-fallthrough', + 'no-unknown-warning-option', 'no-missing-braces', 'conversion', 'empty-body' ] +foreach w : warns + if cc.has_argument('-W'+w) + add_global_arguments('-W'+w, language: 'c') + endif +endforeach + +test_h_dep = subproject('test.h').get_variable('test_h_dep') + +subdir('src') +subdir('man') + +install_data('bin/picom-trans', install_dir: get_option('bindir')) +install_data('picom.desktop', install_dir: 'share/applications') |