diff options
28 files changed, 150 insertions, 109 deletions
diff --git a/doc/c/doxy-style.css b/doc/c/doxy-style.css index b44675e..6f15ee4 100644 --- a/doc/c/doxy-style.css +++ b/doc/c/doxy-style.css @@ -208,6 +208,10 @@ dl.el { font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed; } +.ttc { + display: none; +} + pre.fragment { border: 1px solid #C4C4C4; background-color: #F9F9F9; diff --git a/doc/c/meson.build b/doc/c/meson.build index 7285c60..da88b86 100644 --- a/doc/c/meson.build +++ b/doc/c/meson.build @@ -11,7 +11,7 @@ if doxygen.found() 'LV2_SRCDIR': lv2_source_root, 'LV2_BUILDDIR': lv2_build_root, 'LV2_VERSION': meson.project_version(), - } + }, ) reference_doxygen = configure_file( diff --git a/doc/c/reference.doxygen.in b/doc/c/reference.doxygen.in index 58d82bd..333fe1c 100644 --- a/doc/c/reference.doxygen.in +++ b/doc/c/reference.doxygen.in @@ -805,6 +805,7 @@ INPUT = @LV2_SRCDIR@/doc/c/mainpage.md \ @LV2_SRCDIR@/include/lv2/atom/util.h \ @LV2_SRCDIR@/include/lv2/buf-size/buf-size.h \ @LV2_SRCDIR@/include/lv2/core/lv2.h \ + @LV2_SRCDIR@/include/lv2/core/lv2_util.h \ @LV2_SRCDIR@/include/lv2/data-access/data-access.h \ @LV2_SRCDIR@/include/lv2/dynmanifest/dynmanifest.h \ @LV2_SRCDIR@/include/lv2/event/event-helpers.h \ @@ -1206,15 +1207,6 @@ HTML_COLORSTYLE_SAT = 30 HTML_COLORSTYLE_GAMMA = 100 -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via JavaScript. If disabled, the navigation index will @@ -1811,14 +1803,6 @@ LATEX_HIDE_INDICES = NO LATEX_BIB_STYLE = plain -# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_TIMESTAMP = NO - #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- diff --git a/doc/ns/ext/meson.build b/doc/ns/ext/meson.build index c76f1a2..bf6431b 100644 --- a/doc/ns/ext/meson.build +++ b/doc/ns/ext/meson.build @@ -45,6 +45,7 @@ if build_docs command: lv2specgen_command_prefix + [ '--docdir=../../c/html', '--style-uri=../../style/style.css', + ] + [ '@INPUT@', '@OUTPUT@', ], diff --git a/doc/ns/extensions/meson.build b/doc/ns/extensions/meson.build index 599deb8..837f736 100644 --- a/doc/ns/extensions/meson.build +++ b/doc/ns/extensions/meson.build @@ -26,6 +26,7 @@ if build_docs command: lv2specgen_command_prefix + [ '--docdir=../../c/html', '--style-uri=../../style/style.css', + ] + [ '@INPUT@', '@OUTPUT@', ], diff --git a/doc/ns/meson.build b/doc/ns/meson.build index cda9ba0..126a100 100644 --- a/doc/ns/meson.build +++ b/doc/ns/meson.build @@ -24,6 +24,7 @@ if build_docs command: lv2specgen_command_prefix + [ '--docdir=../c/html', '--style-uri=../style/style.css', + ] + [ '@INPUT@', '@OUTPUT@', ], @@ -55,12 +56,14 @@ subdir('extensions') # Index # ######### -lv2_build_index = find_program(lv2_source_root / 'scripts' / 'lv2_build_index.py') +lv2_build_index = find_program( + lv2_source_root / 'scripts' / 'lv2_build_index.py', +) lv2_build_index_command = [ lv2_build_index, - '--lv2-version', meson.project_version(), - '--lv2-source-root', lv2_source_root, + ['--lv2-version', meson.project_version()], + ['--lv2-source-root', lv2_source_root], ] if get_option('online_docs') diff --git a/doc/style/meson.build b/doc/style/meson.build index 501c0fa..39e9242 100644 --- a/doc/style/meson.build +++ b/doc/style/meson.build @@ -1,10 +1,7 @@ # Copyright 2022 David Robillard <d@drobilla.net> # SPDX-License-Identifier: 0BSD OR ISC -style_files = files( - 'pygments.css', - 'style.css' -) +style_files = files('pygments.css', 'style.css') foreach file : style_files configure_file( diff --git a/include/lv2/atom/atom.h b/include/lv2/atom/atom.h index 44f597a..ca607d3 100644 --- a/include/lv2/atom/atom.h +++ b/include/lv2/atom/atom.h @@ -215,7 +215,7 @@ typedef struct { | Event 1 (size 6) | Event 2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - |FRAMES |TYPE |SIZE |DATADATADATAPAD|FRAMES |... + |FRAMES |SIZE |TYPE |DATADATADATAPAD|FRAMES |... </pre> */ typedef struct { diff --git a/include/lv2/atom/forge.h b/include/lv2/atom/forge.h index 5656079..f894a5a 100644 --- a/include/lv2/atom/forge.h +++ b/include/lv2/atom/forge.h @@ -147,6 +147,7 @@ lv2_atom_forge_init(LV2_Atom_Forge* forge, LV2_URID_Map* map) static inline LV2_Atom* lv2_atom_forge_deref(LV2_Atom_Forge* forge, LV2_Atom_Forge_Ref ref) { + // NOLINTNEXTLINE(performance-no-int-to-ptr) return forge->buf ? (LV2_Atom*)ref : forge->deref(forge->handle, ref); } @@ -305,7 +306,7 @@ lv2_atom_forge_pad(LV2_Atom_Forge* forge, uint32_t written) static inline LV2_Atom_Forge_Ref lv2_atom_forge_write(LV2_Atom_Forge* forge, const void* data, uint32_t size) { - LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, data, size); + const LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, data, size); if (out) { lv2_atom_forge_pad(forge, size); } @@ -494,7 +495,7 @@ lv2_atom_forge_vector(LV2_Atom_Forge* forge, {(uint32_t)sizeof(LV2_Atom_Vector_Body) + n_elems * child_size, forge->Vector}, {child_size, child_type}}; - LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a)); + const LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a)); if (out) { lv2_atom_forge_write(forge, elems, child_size * n_elems); } diff --git a/include/lv2/atom/util.h b/include/lv2/atom/util.h index 556fb58..a2369da 100644 --- a/include/lv2/atom/util.h +++ b/include/lv2/atom/util.h @@ -13,7 +13,7 @@ */ /** - @defgroup util Utilities + @defgroup atom_util Utilities @ingroup atom Utilities for working with atoms. @@ -373,7 +373,7 @@ lv2_atom_object_body_get(uint32_t size, const LV2_Atom_Object_Body* body, ...) LV2_ATOM_OBJECT_BODY_FOREACH (body, size, prop) { va_start(args, body); for (int i = 0; i < n_queries; ++i) { - uint32_t qkey = va_arg(args, uint32_t); + const uint32_t qkey = va_arg(args, uint32_t); const LV2_Atom** qval = va_arg(args, const LV2_Atom**); if (qkey == prop->key && !*qval) { *qval = &prop->value; @@ -428,7 +428,7 @@ lv2_atom_object_get(const LV2_Atom_Object* object, ...) LV2_ATOM_OBJECT_FOREACH (object, prop) { va_start(args, object); for (int i = 0; i < n_queries; ++i) { - uint32_t qkey = va_arg(args, uint32_t); + const uint32_t qkey = va_arg(args, uint32_t); const LV2_Atom** qval = va_arg(args, const LV2_Atom**); if (qkey == prop->key && !*qval) { *qval = &prop->value; diff --git a/include/lv2/core/lv2_util.h b/include/lv2/core/lv2_util.h index 69b92e5..2bac3c9 100644 --- a/include/lv2/core/lv2_util.h +++ b/include/lv2/core/lv2_util.h @@ -5,7 +5,7 @@ #define LV2_CORE_LV2_UTIL_H /** - @defgroup util Utilities + @defgroup lv2_util Utilities @ingroup lv2core @{ */ @@ -70,8 +70,8 @@ lv2_features_query(const LV2_Feature* const* features, ...) const char* uri = NULL; while ((uri = va_arg(args, const char*))) { - void** data = va_arg(args, void**); - bool required = (bool)va_arg(args, int); + void** data = va_arg(args, void**); + const bool required = (bool)va_arg(args, int); *data = lv2_features_data(features, uri); if (required && !*data) { diff --git a/include/lv2/dynmanifest/dynmanifest.h b/include/lv2/dynmanifest/dynmanifest.h index 740c0a4..b1a273c 100644 --- a/include/lv2/dynmanifest/dynmanifest.h +++ b/include/lv2/dynmanifest/dynmanifest.h @@ -56,6 +56,7 @@ typedef void* LV2_Dyn_Manifest_Handle; evaluate the result of the operation by examining the returned value and MUST NOT try to interpret the value of handle. */ +LV2_SYMBOL_EXPORT int lv2_dyn_manifest_open(LV2_Dyn_Manifest_Handle* handle, const LV2_Feature* const* features); @@ -83,6 +84,7 @@ lv2_dyn_manifest_open(LV2_Dyn_Manifest_Handle* handle, @return 0 on success, otherwise a non-zero error code. */ +LV2_SYMBOL_EXPORT int lv2_dyn_manifest_get_subjects(LV2_Dyn_Manifest_Handle handle, FILE* fp); @@ -116,6 +118,7 @@ lv2_dyn_manifest_get_subjects(LV2_Dyn_Manifest_Handle handle, FILE* fp); @return 0 on success, otherwise a non-zero error code. */ +LV2_SYMBOL_EXPORT int lv2_dyn_manifest_get_data(LV2_Dyn_Manifest_Handle handle, FILE* fp, @@ -132,6 +135,7 @@ lv2_dyn_manifest_get_data(LV2_Dyn_Manifest_Handle handle, @param handle Dynamic manifest generator handle. */ +LV2_SYMBOL_EXPORT void lv2_dyn_manifest_close(LV2_Dyn_Manifest_Handle handle); diff --git a/lv2specgen/lv2specgen.py b/lv2specgen/lv2specgen.py index aa166a7..d6e86f8 100755 --- a/lv2specgen/lv2specgen.py +++ b/lv2specgen/lv2specgen.py @@ -111,15 +111,15 @@ def getLiteralString(s): def isResource(n): - return type(n) == rdflib.URIRef + return isinstance(n, rdflib.URIRef) def isBlank(n): - return type(n) == rdflib.BNode + return isinstance(n, rdflib.BNode) def isLiteral(n): - return type(n) == rdflib.Literal + return isinstance(n, rdflib.Literal) def niceName(uri): diff --git a/lv2specgen/meson.build b/lv2specgen/meson.build index 5407d69..69b029b 100644 --- a/lv2specgen/meson.build +++ b/lv2specgen/meson.build @@ -11,12 +11,13 @@ lv2specgen_command_prefix = [ '--list-email=' + lv2_list_email, '--list-page=' + lv2_list_page, '--style-dir=' + lv2_source_root / 'doc' / 'style', - '--template', files('template.html'), + '--template', + files('template.html'), ] if is_variable('lv2_tags') lv2specgen_command_prefix += [ - '--tags', lv2_tags.full_path(), # TODO: Remove full_path() in meson 0.60.0 + ['--tags', lv2_tags.full_path()], # TODO: Remove full_path() in meson 0.60.0 ] endif diff --git a/meson.build b/meson.build index e56d08d..aa9963f 100644 --- a/meson.build +++ b/meson.build @@ -1,15 +1,18 @@ # Copyright 2021-2022 David Robillard <d@drobilla.net> # SPDX-License-Identifier: 0BSD OR ISC -project('lv2', ['c'], - version: '1.18.11', - license: 'ISC', - meson_version: '>= 0.56.0', - default_options: [ - 'b_ndebug=if-release', - 'buildtype=release', - 'c_std=c99', - ]) +project( + 'lv2', + ['c'], + default_options: [ + 'b_ndebug=if-release', + 'buildtype=release', + 'c_std=c99', + ], + license: 'ISC', + meson_version: '>= 0.56.0', + version: '1.18.11', +) lv2_docdir = get_option('datadir') / 'doc' / 'lv2' lv2_source_root = meson.current_source_dir() @@ -185,8 +188,10 @@ check_python = pymod.find_installation( required: get_option('tests'), ) -if (check_python.found() and - check_python.language_version().version_compare('<3.7')) +if ( + check_python.found() + and check_python.language_version().version_compare('<3.7') +) warning('Python 3.7 is required for tests') check_python = disabler() endif @@ -348,9 +353,21 @@ if not get_option('tests').disabled() endif if not meson.is_subproject() - summary('Tests', not get_option('tests').disabled(), bool_yn: true) - summary('Documentation', build_docs, bool_yn: true) - summary('Prefix', get_option('prefix'), section: 'Paths') - summary('LV2 bundles', lv2dir, section: 'Paths') - summary('Headers', get_option('prefix') / get_option('includedir'), section: 'Paths') + summary( + { + 'Tests': not get_option('tests').disabled(), + 'Documentation': build_docs, + }, + bool_yn: true, + section: 'Components', + ) + + summary( + { + 'Install prefix': get_option('prefix'), + 'Headers': get_option('prefix') / get_option('includedir'), + 'LV2 bundles': lv2dir, + }, + section: 'Directories', + ) endif diff --git a/meson/suppressions/meson.build b/meson/suppressions/meson.build index 0cacb4d..96ff2ab 100644 --- a/meson/suppressions/meson.build +++ b/meson/suppressions/meson.build @@ -17,6 +17,7 @@ if is_variable('cc') c_suppressions += [ '-Wno-bad-function-cast', '-Wno-cast-align', + '-Wno-cast-function-type-strict', '-Wno-cast-qual', '-Wno-declaration-after-statement', '-Wno-documentation-unknown-command', @@ -29,6 +30,7 @@ if is_variable('cc') '-Wno-shorten-64-to-32', '-Wno-sign-conversion', '-Wno-switch-enum', + '-Wno-unsafe-buffer-usage', ] if not meson.is_cross_build() @@ -117,6 +119,7 @@ if is_variable('cpp') '-Wno-nullability-extension', '-Wno-padded', '-Wno-reserved-id-macro', + '-Wno-unsafe-buffer-usage', ] if not meson.is_cross_build() diff --git a/meson_options.txt b/meson_options.txt index d6bd40b..0a8c145 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -13,7 +13,7 @@ option('lv2dir', type: 'string', value: '', yield: true, option('old_headers', type: 'boolean', value: true, yield: true, description: 'Install backwards compatible headers at URI-style paths') -option('online_docs', type: 'boolean', value: 'false', yield: true, +option('online_docs', type: 'boolean', value: false, yield: true, description: 'Build documentation for online hosting') option('plugins', type: 'feature', value: 'auto', yield: true, diff --git a/plugins/.clang-tidy b/plugins/.clang-tidy index 96d7f9f..5fc86ab 100644 --- a/plugins/.clang-tidy +++ b/plugins/.clang-tidy @@ -1,10 +1,11 @@ -# Copyright 2020-2022 David Robillard <d@drobilla.net> +# Copyright 2020-2023 David Robillard <d@drobilla.net> # SPDX-License-Identifier: 0BSD OR ISC Checks: > -*-narrowing-conversions, -bugprone-assignment-in-if-condition, -bugprone-easily-swappable-parameters, + -bugprone-suspicious-realloc-usage, -cert-err33-c, -hicpp-signed-bitwise, -llvm-header-guard, diff --git a/plugins/eg-amp.lv2/meson.build b/plugins/eg-amp.lv2/meson.build index bc222d2..726038e 100644 --- a/plugins/eg-amp.lv2/meson.build +++ b/plugins/eg-amp.lv2/meson.build @@ -19,7 +19,7 @@ module = shared_library( config = configuration_data( { 'LIB_EXT': '.' + module.full_path().split('.')[-1], - } + }, ) foreach filename : data_filenames diff --git a/plugins/eg-fifths.lv2/meson.build b/plugins/eg-fifths.lv2/meson.build index 0fa8525..bba21ce 100644 --- a/plugins/eg-fifths.lv2/meson.build +++ b/plugins/eg-fifths.lv2/meson.build @@ -19,7 +19,7 @@ module = shared_library( config = configuration_data( { 'LIB_EXT': '.' + module.full_path().split('.')[-1], - } + }, ) foreach filename : data_filenames diff --git a/plugins/eg-metro.lv2/meson.build b/plugins/eg-metro.lv2/meson.build index def9e0b..5d83c9e 100644 --- a/plugins/eg-metro.lv2/meson.build +++ b/plugins/eg-metro.lv2/meson.build @@ -19,7 +19,7 @@ module = shared_library( config = configuration_data( { 'LIB_EXT': '.' + module.full_path().split('.')[-1], - } + }, ) foreach filename : data_filenames diff --git a/plugins/eg-midigate.lv2/meson.build b/plugins/eg-midigate.lv2/meson.build index 609ee3a..9f0a5ac 100644 --- a/plugins/eg-midigate.lv2/meson.build +++ b/plugins/eg-midigate.lv2/meson.build @@ -19,7 +19,7 @@ module = shared_library( config = configuration_data( { 'LIB_EXT': '.' + module.full_path().split('.')[-1], - } + }, ) foreach filename : data_filenames diff --git a/plugins/eg-params.lv2/meson.build b/plugins/eg-params.lv2/meson.build index 5b06709..00602bc 100644 --- a/plugins/eg-params.lv2/meson.build +++ b/plugins/eg-params.lv2/meson.build @@ -19,7 +19,7 @@ module = shared_library( config = configuration_data( { 'LIB_EXT': '.' + module.full_path().split('.')[-1], - } + }, ) foreach filename : data_filenames diff --git a/plugins/eg-sampler.lv2/meson.build b/plugins/eg-sampler.lv2/meson.build index 0916ff6..9700df2 100644 --- a/plugins/eg-sampler.lv2/meson.build +++ b/plugins/eg-sampler.lv2/meson.build @@ -6,18 +6,24 @@ ui_sources = files('sampler_ui.c') bundle_name = 'eg-sampler.lv2' data_filenames = ['manifest.ttl.in', 'sampler.ttl', 'click.wav'] -samplerate_dep = dependency('samplerate', - version: '>= 0.1.0', - required: get_option('plugins')) +samplerate_dep = dependency( + 'samplerate', + required: get_option('plugins'), + version: '>= 0.1.0', +) -sndfile_dep = dependency('sndfile', - version: '>= 1.0.0', - required: get_option('plugins')) +sndfile_dep = dependency( + 'sndfile', + required: get_option('plugins'), + version: '>= 1.0.0', +) -gtk2_dep = dependency('gtk+-2.0', - include_type: 'system', - required: get_option('plugins'), - version: '>= 2.18.0') +gtk2_dep = dependency( + 'gtk+-2.0', + include_type: 'system', + required: get_option('plugins'), + version: '>= 2.18.0', +) if samplerate_dep.found() and sndfile_dep.found() module = shared_library( @@ -57,7 +63,7 @@ if samplerate_dep.found() and sndfile_dep.found() if cc.get_id() == 'gcc' ui_suppressions += ['-Wno-strict-overflow'] endif - + shared_library( 'sampler_ui', ui_sources, diff --git a/plugins/eg-scope.lv2/meson.build b/plugins/eg-scope.lv2/meson.build index 773a3d0..d776ee7 100644 --- a/plugins/eg-scope.lv2/meson.build +++ b/plugins/eg-scope.lv2/meson.build @@ -6,10 +6,12 @@ ui_sources = files('examploscope_ui.c') bundle_name = 'eg-scope.lv2' data_filenames = ['manifest.ttl.in', 'examploscope.ttl.in'] -gtk2_dep = dependency('gtk+-2.0', - include_type: 'system', - required: get_option('plugins'), - version: '>= 2.18.0') +gtk2_dep = dependency( + 'gtk+-2.0', + include_type: 'system', + required: get_option('plugins'), + version: '>= 2.18.0', +) module = shared_library( 'examploscope', @@ -25,7 +27,7 @@ module = shared_library( config = configuration_data( { 'LIB_EXT': '.' + module.full_path().split('.')[-1], - } + }, ) foreach filename : data_filenames diff --git a/plugins/meson.build b/plugins/meson.build index 098f585..ff70af1 100644 --- a/plugins/meson.build +++ b/plugins/meson.build @@ -18,8 +18,8 @@ if not get_option('docs').disabled() asciidoc = find_program('asciidoc', required: get_option('docs')) if asciidoc.found() - book_inputs = files( - 'README.txt', + book_inputs = files('README.txt') + book_inputs += files( 'eg-amp.lv2/README.txt', 'eg-amp.lv2/amp.c', 'eg-amp.lv2/amp.ttl', diff --git a/test/headers/meson.build b/test/headers/meson.build index 6e9ac7a..b1ec805 100644 --- a/test/headers/meson.build +++ b/test/headers/meson.build @@ -10,6 +10,7 @@ if get_option('warning_level') == 'everything' '-Wno-cast-qual', '-Wno-declaration-after-statement', '-Wno-padded', + '-Wno-unsafe-buffer-usage', ] if not meson.is_cross_build() @@ -53,6 +54,8 @@ if cc.get_id() == 'clang' ] endif +header_c_suppressions = cc.get_supported_arguments(header_c_suppressions) + test( 'headers', executable( diff --git a/test/meson.build b/test/meson.build index 2919735..4790a48 100644 --- a/test/meson.build +++ b/test/meson.build @@ -20,8 +20,8 @@ if get_option('lint') codespell, args: [ '-d', - '-q', '3', - '-S', ','.join(ignore), + ['-q', '3'], + ['-S', ','.join(ignore)], lv2_source_root / 'doc', lv2_source_root / 'lv2', lv2_source_root / 'lv2specgen', @@ -38,23 +38,27 @@ if get_option('lint') required: get_option('tests'), version: '>= 0.31.5', ) - native_build = not meson.is_cross_build() and host_machine.system() != 'windows' + native_build = ( + not meson.is_cross_build() + and host_machine.system() != 'windows' + ) if serdi.found() and native_build - lv2_check_syntax = files(lv2_source_root / 'scripts' / 'lv2_check_syntax.py') + lv2_check_syntax = files( + lv2_source_root / 'scripts' / 'lv2_check_syntax.py', + ) - test('syntax', - lv2_check_syntax, - args: ['--serdi', serdi.full_path()] + spec_files + schema_data, - suite: 'data') + test( + 'syntax', + lv2_check_syntax, + args: ['--serdi', serdi.full_path()] + spec_files + schema_data, + suite: 'data', + ) endif # Check that specification data validates sord_validate = find_program('sord_validate', required: get_option('tests')) if sord_validate.found() - test('valid', - sord_validate, - args: spec_files + schema_data, - suite: 'data') + test('valid', sord_validate, args: spec_files + schema_data, suite: 'data') endif endif @@ -63,25 +67,29 @@ endif ######## # Check that all the headers compile cleanly in C -test('c', - executable( - 'test_build_c', - files('test_build.c'), - c_args: c_suppressions, - dependencies: [lv2_dep], - ), - suite: 'build') +test( + 'c', + executable( + 'test_build_c', + files('test_build.c'), + c_args: c_suppressions, + dependencies: [lv2_dep], + ), + suite: 'build', +) # Check that all the headers compile cleanly in C++ if is_variable('cpp') - test('cpp', - executable( - 'test_build_cpp', - files('cpp/test_build.cpp'), - cpp_args: cpp_suppressions, - dependencies: [lv2_dep], - ), - suite: 'build') + test( + 'cpp', + executable( + 'test_build_cpp', + files('cpp/test_build.cpp'), + cpp_args: cpp_suppressions, + dependencies: [lv2_dep], + ), + suite: 'build', + ) endif ########## @@ -104,7 +112,12 @@ if get_option('lint') black = find_program('black', required: get_option('tests')) if black.found() black_opts = ['-l', '79', '-q', '--check'] - test('black', black, args: black_opts + all_python_scripts, suite: 'scripts') + test( + 'black', + black, + args: black_opts + all_python_scripts, + suite: 'scripts', + ) endif # Check scripts for errors with flake8 |