diff options
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | .gitlab-ci.yml | 173 | ||||
-rw-r--r-- | .gitmodules | 45 | ||||
-rw-r--r-- | .includes.imp | 10 | ||||
m--------- | ingen | 0 | ||||
m--------- | jalv | 0 | ||||
m--------- | machina | 0 | ||||
-rw-r--r-- | meson.build | 77 | ||||
-rw-r--r-- | meson/warnings/meson.build | 256 | ||||
-rw-r--r-- | meson_options.txt | 38 | ||||
m--------- | patchage | 0 | ||||
m--------- | plugins/blop.lv2 | 0 | ||||
m--------- | plugins/fomp.lv2 | 0 | ||||
m--------- | plugins/mda.lv2 | 0 | ||||
m--------- | subprojects/blop.lv2 | 0 | ||||
m--------- | subprojects/fomp.lv2 | 0 | ||||
m--------- | subprojects/ganv | 0 | ||||
m--------- | subprojects/ingen | 0 | ||||
m--------- | subprojects/jalv | 0 | ||||
m--------- | subprojects/lv2kit | 0 | ||||
m--------- | subprojects/machina | 0 | ||||
m--------- | subprojects/mda.lv2 | 0 | ||||
m--------- | subprojects/patchage | 0 | ||||
m--------- | subprojects/raul | 0 | ||||
-rwxr-xr-x | waf | 16 | ||||
m--------- | waflib | 0 | ||||
-rw-r--r-- | wscript | 75 |
27 files changed, 465 insertions, 232 deletions
@@ -1,3 +1,4 @@ -build/** -.waf-* -.lock-waf* +# Copyright 2020-2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +build/* diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d6fcc7d..c1fba90 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,164 +1,119 @@ -stages: [build, test] +stages: + - build variables: GIT_SUBMODULE_STRATEGY: recursive .build_template: &build_definition stage: build - artifacts: - paths: ["build/", ".lock-waf*"] - -.test_template: &test_definition - stage: test - artifacts: - paths: [build/coverage] - arm32_dbg: <<: *build_definition image: lv2plugin/debian-arm32 - script: python ./waf configure build -dsT --wrapper=qemu-arm --no-bindings - variables: - CC: "arm-linux-gnueabihf-gcc" - CXX: "arm-linux-gnueabihf-g++" - -test:arm32_dbg: - <<: *test_definition - image: lv2plugin/debian-arm32 - script: python ./waf test --wrapper=qemu-arm - needs: ["arm32_dbg"] - + script: + - meson setup build --wrap-mode=forcefallback --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test arm32_rel: <<: *build_definition image: lv2plugin/debian-arm32 - script: python ./waf configure build -sT --wrapper=qemu-arm --no-bindings - variables: - CC: "arm-linux-gnueabihf-gcc" - CXX: "arm-linux-gnueabihf-g++" - -test:arm32_rel: - <<: *test_definition - image: lv2plugin/debian-arm32 - script: python ./waf test --wrapper=qemu-arm - needs: ["arm32_rel"] + script: + - meson setup build --wrap-mode=forcefallback --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test arm64_dbg: <<: *build_definition image: lv2plugin/debian-arm64 - script: python ./waf configure build -dsT --wrapper=qemu-aarch64 --no-bindings - variables: - CC: "aarch64-linux-gnu-gcc" - CXX: "aarch64-linux-gnu-g++" - -test:arm64_dbg: - <<: *test_definition - image: lv2plugin/debian-arm64 - script: python ./waf test --wrapper=qemu-aarch64 - needs: ["arm64_dbg"] - + script: + - meson setup build --wrap-mode=forcefallback --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test arm64_rel: <<: *build_definition image: lv2plugin/debian-arm64 - script: python ./waf configure build -sT --wrapper=qemu-aarch64 --no-bindings - variables: - CC: "aarch64-linux-gnu-gcc" - CXX: "aarch64-linux-gnu-g++" - -test:arm64_rel: - <<: *test_definition - image: lv2plugin/debian-arm64 - script: python ./waf test --wrapper=qemu-aarch64 - needs: ["arm64_rel"] + script: + - meson setup build --wrap-mode=forcefallback --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test x64_dbg: <<: *build_definition - image: lv2plugin/debian-x64 - script: python ./waf configure build -dsT - -test:x64_dbg: - <<: *test_definition - image: lv2plugin/debian-x64 - script: python ./waf test - needs: ["x64_dbg"] - + image: lv2plugin/debian-x64-big + script: + - meson setup build --wrap-mode=forcefallback -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test x64_rel: <<: *build_definition - image: lv2plugin/debian-x64 - script: python ./waf configure build -sT + image: lv2plugin/debian-x64-big + script: + - meson setup build --wrap-mode=forcefallback -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test + -test:x64_rel: - <<: *test_definition - image: lv2plugin/debian-x64 - script: python ./waf test - needs: ["x64_rel"] +x64_static: + <<: *build_definition + image: lv2plugin/debian-x64-big + script: + - meson setup build --wrap-mode=forcefallback -Ddefault_library=static -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test x64_sanitize: <<: *build_definition - image: lv2plugin/debian-x64-big - script: python ./waf configure build -sT --no-coverage --no-bindings + image: lv2plugin/debian-x64-clang + script: + - meson setup build --wrap-mode=forcefallback -Db_lundef=false -Dbuildtype=plain -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test variables: CC: "clang" - CFLAGS: "-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" CXX: "clang++" - CXXFLAGS: "-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" - LINKFLAGS: "-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" - -test:x64_sanitize: - <<: *test_definition - image: lv2plugin/debian-x64-big - script: python ./waf test - needs: ["x64_sanitize"] + CFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" + CXXFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" + LDFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" -mac_dbg: +freebsd_dbg: <<: *build_definition - script: python ./waf configure build -dsT --no-coverage - tags: [macos] + tags: [freebsd,meson] + script: + - meson setup build --wrap-mode=forcefallback -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled + - ninja -C build test -test:mac_dbg: - <<: *test_definition - script: python ./waf test - needs: ["mac_dbg"] - tags: [macos] +freebsd_rel: + <<: *build_definition + tags: [freebsd,meson] + script: + - meson setup build --wrap-mode=forcefallback -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled + - ninja -C build test -mac_rel: +mac_dbg: <<: *build_definition - script: python ./waf configure build -sT --no-coverage tags: [macos] + script: + - meson setup build --wrap-mode=forcefallback -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test -test:mac_rel: - <<: *test_definition - script: python ./waf test - needs: ["mac_rel"] +mac_rel: + <<: *build_definition tags: [macos] + script: + - meson setup build --wrap-mode=forcefallback -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test win_dbg: <<: *build_definition - script: python ./waf configure build -sT --no-coverage - tags: [windows,msvc,python] - -test:win_dbg: - <<: *test_definition - script: python ./waf test - needs: ["win_dbg"] - tags: [windows,msvc,python] - + tags: [windows,meson] + script: + - meson setup build --wrap-mode=forcefallback -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test win_rel: <<: *build_definition - script: python ./waf configure build -sT --no-coverage - tags: [windows,msvc,python] - -test:win_rel: - <<: *test_definition - script: python ./waf test - needs: ["win_rel"] - tags: [windows,msvc,python] + tags: [windows,meson] + script: + - meson setup build --wrap-mode=forcefallback -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true + - ninja -C build test diff --git a/.gitmodules b/.gitmodules index 1708533..805f867 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,33 +1,30 @@ [submodule "libs/lv2kit"] path = subprojects/lv2kit - url = ../../lv2/lv2kit -[submodule "waflib"] - path = waflib - url = ../autowaf.git -[submodule "libs/raul"] + url = ../../lv2/lv2kit.git +[submodule "raul"] path = subprojects/raul - url = ../raul + url = ../raul.git [submodule "jalv"] - path = jalv - url = ../jalv + path = subprojects/jalv + url = ../jalv.git [submodule "ingen"] - path = ingen - url = ../ingen + path = subprojects/ingen + url = ../ingen.git [submodule "patchage"] - path = patchage - url = ../patchage -[submodule "libs/ganv"] + path = subprojects/patchage + url = ../patchage.git +[submodule "ganv"] path = subprojects/ganv - url = ../ganv -[submodule "plugins/mda.lv2"] - path = plugins/mda.lv2 - url = ../mda.lv2.git + url = ../ganv.git +[submodule "mda.lv2"] + path = subprojects/mda.lv2 + url = ../mda-lv2.git [submodule "machina"] - path = machina + path = subprojects/machina url = ../machina.git -[submodule "plugins/fomp.lv2"] - path = plugins/fomp.lv2 - url = ../fomp.lv2.git -[submodule "plugins/blop.lv2"] - path = plugins/blop.lv2 - url = ../blop.lv2.git +[submodule "fomp.lv2"] + path = subprojects/fomp.lv2 + url = ../fomp-lv2.git +[submodule "blop.lv2"] + path = subprojects/blop.lv2 + url = ../blop-lv2.git diff --git a/.includes.imp b/.includes.imp index e61db75..f3ea4eb 100644 --- a/.includes.imp +++ b/.includes.imp @@ -1,7 +1,7 @@ [ - { "ref": "ingen/.includes.imp" }, - { "ref": "libs/lv2kit/.includes.imp" }, - { "ref": "libs/lv2kit/libs/sord/.includes.imp" }, - { "ref": "libs/raul/.includes.imp" }, - { "ref": "patchage/.includes.imp" } + { "ref": "subprojects/ingen/.includes.imp" }, + { "ref": "subprojects/lv2kit/.includes.imp" }, + { "ref": "subprojects/lv2kit/subprojects/sord/.includes.imp" }, + { "ref": "subprojects/patchage/.includes.imp" }, + { "ref": "subprojects/raul/.includes.imp" } ] diff --git a/ingen b/ingen deleted file mode 160000 -Subproject b760e11d5f9f4d25919a566ef727164da437606 diff --git a/jalv b/jalv deleted file mode 160000 -Subproject 08ca5ba8003ba421566412675be4d9bebd85b82 diff --git a/machina b/machina deleted file mode 160000 -Subproject 20bc7a79f54943c111161a905eb5fc1a491563a diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..d895639 --- /dev/null +++ b/meson.build @@ -0,0 +1,77 @@ +project('drobillad', ['c', 'cpp'], + version: '0.0.0', + license: 'GPLv3+', + meson_version: '>= 0.56.0', + default_options: [ + 'b_ndebug=if-release', + 'buildtype=release', + 'c_std=c99', + 'cpp_std=c++14', + ]) + +####################### +# Compilers and Flags # +####################### + +# Required tools +pkg = import('pkgconfig') +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') + +# Set global warning flags +if get_option('strict') and not meson.is_subproject() + subdir('meson/warnings') +endif + +########################## +# LV2 Path Configuration # +########################## + +lv2dir = get_option('lv2dir') +if lv2dir == '' + prefix = get_option('prefix') + if target_machine.system() == 'darwin' and prefix == '/' + lv2dir = '/Library/Audio/Plug-Ins/LV2' + elif target_machine.system() == 'haiku' and prefix == '/' + lv2dir = '/boot/common/add-ons/lv2' + elif target_machine.system() == 'windows' and prefix == 'C:/' + lv2dir = 'C:/Program Files/Common/LV2' + else + lv2dir = prefix / get_option('libdir') / 'lv2' + endif +endif + +############### +# Subprojects # +############### + +lv2kit = subproject('lv2kit', required: get_option('lv2kit')) + +lilv_dep = lv2kit.get_variable('lilv_dep') +lv2_dep = lv2kit.get_variable('lv2_dep') +serd_dep = lv2kit.get_variable('serd_dep') +sord_dep = lv2kit.get_variable('sord_dep') +sratom_dep = lv2kit.get_variable('sratom_dep') +suil_dep = lv2kit.get_variable('suil_dep') + +lv2dir = lv2_dep.get_variable( + default_value: lv2dir, + internal: 'lv2dir', + pkgconfig: 'lv2dir', + pkgconfig_define: ['prefix', '/prefix'], +) + +# LV2 plugins +blop_lv2 = subproject('blop.lv2', required: get_option('plugins')) +fomp_lv2 = subproject('fomp.lv2', required: get_option('plugins')) +mda_lv2 = subproject('mda.lv2', required: get_option('plugins')) + +# Libraries +ganv = subproject('ganv', required: get_option('ganv')) +raul = subproject('raul', required: get_option('raul')) + +# Applications +ingen = subproject('ingen', required: get_option('ingen')) +jalv = subproject('jalv', required: get_option('jalv')) +# machina = subproject('machina', required: get_option('machina'))) +patchage = subproject('patchage', required: get_option('patchage')) diff --git a/meson/warnings/meson.build b/meson/warnings/meson.build new file mode 100644 index 0000000..708d730 --- /dev/null +++ b/meson/warnings/meson.build @@ -0,0 +1,256 @@ +# Copyright 2020-2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +# General code to enable approximately all warnings in GCC 12, clang, and MSVC. +# +# This is trivial for clang and MSVC, but GCC doesn't have an "everything" +# option, so we need to enable everything we want explicitly. Wall is assumed, +# but Wextra is not, for stability. +# +# These are collected from common.opt and c.opt in the GCC source, and manually +# curated with the help of the GCC documentation. Warnings that are +# application-specific, historical, or about compatibility between specific +# language revisions are omitted. The intent here is to have roughly the same +# meaning as clang's Weverything: extremely strict, but general. Specifically +# omitted are: +# +# General: +# +# Wabi= +# Waggregate-return +# Walloc-size-larger-than=BYTES +# Walloca-larger-than=BYTES +# Wframe-larger-than=BYTES +# Wlarger-than=BYTES +# Wstack-usage=BYTES +# Wsystem-headers +# Wtraditional +# Wtraditional-conversion +# Wtrampolines +# Wvla-larger-than=BYTES +# +# Build specific: +# +# Wpoison-system-directories +# +# C Specific: +# +# Wc11-c2x-compat +# Wc90-c99-compat +# Wc99-c11-compat +# Wdeclaration-after-statement +# Wtraditional +# Wtraditional-conversion +# +# C++ Specific: +# +# Wc++0x-compat +# Wc++1z-compat +# Wc++2a-compat +# Wctad-maybe-unsupported +# Wnamespaces +# Wtemplates + +# GCC warnings that apply to all C-family languages +gcc_common_warnings = [ + '-Walloc-zero', + '-Walloca', + '-Wanalyzer-too-complex', + '-Warith-conversion', + '-Warray-bounds=2', + '-Wattribute-alias=2', + '-Wbidi-chars=ucn', + '-Wcast-align=strict', + '-Wcast-function-type', + '-Wcast-qual', + '-Wclobbered', + '-Wconversion', + '-Wdate-time', + '-Wdisabled-optimization', + '-Wdouble-promotion', + '-Wduplicated-branches', + '-Wduplicated-cond', + '-Wempty-body', + '-Wendif-labels', + '-Wfloat-equal', + '-Wformat-overflow=2', + '-Wformat-signedness', + '-Wformat-truncation=2', + '-Wformat=2', + '-Wignored-qualifiers', + '-Wimplicit-fallthrough=3', + '-Winit-self', + '-Winline', + '-Winvalid-pch', + '-Wlogical-op', + '-Wmissing-declarations', + '-Wmissing-field-initializers', + '-Wmissing-include-dirs', + '-Wmultichar', + '-Wnormalized=nfc', + '-Wnull-dereference', + '-Wopenacc-parallelism', + '-Woverlength-strings', + '-Wpacked', + '-Wpacked-bitfield-compat', + '-Wpadded', + '-Wpointer-arith', + '-Wredundant-decls', + '-Wshadow', + '-Wshift-negative-value', + '-Wshift-overflow=2', + '-Wstack-protector', + '-Wstrict-aliasing=3', + '-Wstrict-overflow=5', + '-Wstring-compare', + '-Wstringop-overflow=3', + '-Wsuggest-attribute=cold', + '-Wsuggest-attribute=const', + '-Wsuggest-attribute=format', + '-Wsuggest-attribute=malloc', + '-Wsuggest-attribute=noreturn', + '-Wsuggest-attribute=pure', + '-Wswitch-default', + '-Wswitch-enum', + '-Wtrampolines', + '-Wtrivial-auto-var-init', + '-Wtype-limits', + '-Wundef', + '-Wuninitialized', + '-Wunsafe-loop-optimizations', + '-Wunused', + '-Wunused-const-variable=2', + '-Wunused-macros', + '-Wvector-operation-performance', + '-Wvla', + '-Wwrite-strings', +] + +##### +# C # +##### + +if is_variable('cc') + # Set all_c_warnings for the current C compiler + all_c_warnings = [] + + if get_option('strict') + if cc.get_id() == 'clang' + all_c_warnings += ['-Weverything'] + + if not meson.is_cross_build() + all_c_warnings += [ + '-Wno-poison-system-directories', + ] + endif + + elif cc.get_id() == 'gcc' + all_c_warnings += gcc_common_warnings + [ + '-Wabsolute-value', + '-Wbad-function-cast', + '-Wc++-compat', + '-Wenum-conversion', + '-Wjump-misses-init', + '-Wmissing-parameter-type', + '-Wmissing-prototypes', + '-Wnested-externs', + '-Wold-style-declaration', + '-Wold-style-definition', + '-Woverride-init', + '-Wsign-compare', + '-Wstrict-prototypes', + '-Wunsuffixed-float-constants', + ] + + elif cc.get_id() == 'msvc' + all_c_warnings += [ + '/Wall', + '/experimental:external', + '/external:W0', + '/external:anglebrackets', + ] + endif + endif + + all_c_warnings = cc.get_supported_arguments(all_c_warnings) + add_global_arguments(all_c_warnings, language: ['c']) +endif + +####### +# C++ # +####### + +if is_variable('cpp') + # Set all_cpp_warnings for the current C++ compiler + all_cpp_warnings = [] + + if get_option('strict') + if cpp.get_id() == 'clang' + all_cpp_warnings += [ + '-Weverything', + '-Wno-c++98-compat', + '-Wno-c++98-compat-pedantic', + ] + + if not meson.is_cross_build() + all_cpp_warnings += [ + '-Wno-poison-system-directories', + ] + endif + + elif cpp.get_id() == 'gcc' + all_cpp_warnings += gcc_common_warnings + [ + '-Wabi-tag', + '-Waligned-new=all', + '-Wcatch-value=3', + '-Wcomma-subscript', + '-Wconditionally-supported', + '-Wctor-dtor-privacy', + '-Wdelete-non-virtual-dtor', + '-Wdeprecated', + '-Wdeprecated-copy', + '-Wdeprecated-copy-dtor', + '-Wdeprecated-enum-enum-conversion', + '-Wdeprecated-enum-float-conversion', + '-Weffc++', + '-Wexpansion-to-defined', + '-Wextra-semi', + '-Wimport', + '-Winvalid-imported-macros', + '-Wmismatched-tags', + '-Wmultiple-inheritance', + '-Wnoexcept', + '-Wnoexcept-type', + '-Wnon-virtual-dtor', + '-Wold-style-cast', + '-Woverloaded-virtual', + '-Wplacement-new=2', + '-Wredundant-move', + '-Wredundant-tags', + '-Wregister', + '-Wsign-compare', + '-Wsign-promo', + '-Wsized-deallocation', + '-Wstrict-null-sentinel', + '-Wsuggest-final-methods', + '-Wsuggest-final-types', + '-Wsuggest-override', + '-Wuseless-cast', + '-Wvirtual-inheritance', + '-Wvolatile', + '-Wzero-as-null-pointer-constant', + ] + + elif cpp.get_id() == 'msvc' + all_cpp_warnings += [ + '/Wall', + '/experimental:external', + '/external:W0', + '/external:anglebrackets', + ] + endif + endif + + all_cpp_warnings = cpp.get_supported_arguments(all_cpp_warnings) + add_global_arguments(all_cpp_warnings, language: ['cpp']) +endif diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..ee2a3fe --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,38 @@ +# Copyright 2021-2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +option('checks', type: 'boolean', value: true, yield: true, + description: 'Check for features with the build system') + +option('docs', type: 'feature', value: 'auto', + description: 'Build documentation') + +option('ganv', type: 'feature', value: 'auto', + description: 'Build ganv') + +option('ingen', type: 'feature', value: 'auto', + description: 'Build ingen') + +option('jalv', type: 'feature', value: 'auto', + description: 'Build jalv') + +option('lv2dir', type: 'string', value: '', yield: true, + description: 'LV2 bundle installation directory') + +option('lv2kit', type: 'feature', value: 'auto', + description: 'Build lv2kit') + +option('patchage', type: 'feature', value: 'auto', + description: 'Build patchage') + +option('plugins', type: 'feature', value: 'auto', + description: 'Build LV2 plugins') + +option('raul', type: 'feature', value: 'auto', + description: 'Build raul') + +option('strict', type: 'boolean', value: false, yield: true, + description: 'Enable ultra-strict warnings') + +option('tests', type: 'feature', value: 'auto', yield: true, + description: 'Build tests') diff --git a/patchage b/patchage deleted file mode 160000 -Subproject 6d53e23c76dc9093fea8958d0ae2328f9f5bced diff --git a/plugins/blop.lv2 b/plugins/blop.lv2 deleted file mode 160000 -Subproject e60dd7472389691b5f2a310fff7ad743146867b diff --git a/plugins/fomp.lv2 b/plugins/fomp.lv2 deleted file mode 160000 -Subproject c6516877974c700224861bd6347ab1313bb5fab diff --git a/plugins/mda.lv2 b/plugins/mda.lv2 deleted file mode 160000 -Subproject 19752af61234581e0f73db539d5609ab14b3d92 diff --git a/subprojects/blop.lv2 b/subprojects/blop.lv2 new file mode 160000 +Subproject 153cf14cf825aeb7abae4e2c5224c65955da717 diff --git a/subprojects/fomp.lv2 b/subprojects/fomp.lv2 new file mode 160000 +Subproject 01e0564679f5831ed3b43f8547a2ed6d868c3c5 diff --git a/subprojects/ganv b/subprojects/ganv -Subproject 17f58b94abf5e7b1ad7ea3c40d0cd1107298d41 +Subproject e1c2053ff1814d5f0f2fc30e7e9f150f7032f50 diff --git a/subprojects/ingen b/subprojects/ingen new file mode 160000 +Subproject 79693e0ed6fc5c221ee15ab4523d4cf03f9454f diff --git a/subprojects/jalv b/subprojects/jalv new file mode 160000 +Subproject 37d87e9d55749b1d73f8c617d9365d482f9a7db diff --git a/subprojects/lv2kit b/subprojects/lv2kit -Subproject 96c0394fb5784812775290ad56768fc5c4a836e +Subproject 7852888ce291b21f9723c52bdd018443fc50dc6 diff --git a/subprojects/machina b/subprojects/machina new file mode 160000 +Subproject 2c1c56b8ab43c3081949c07103f10a8a7947608 diff --git a/subprojects/mda.lv2 b/subprojects/mda.lv2 new file mode 160000 +Subproject ac0590c5a8f84f9edcd6817e44976ad75fccb25 diff --git a/subprojects/patchage b/subprojects/patchage new file mode 160000 +Subproject d8e1c0a515d4bb5818c7e6185d75a96f285d253 diff --git a/subprojects/raul b/subprojects/raul -Subproject c56e72595ac6478639f6a0b074d24946d652dc4 +Subproject 5d32959f829725e0e059d55329bce69764618c2 @@ -1,16 +0,0 @@ -#!/usr/bin/env python - -# Minimal waf script for projects that include waflib directly - -from waflib import Context, Scripting - -import inspect -import os - -def main(): - script_path = os.path.abspath(inspect.getfile(inspect.getmodule(main))) - project_path = os.path.dirname(script_path) - Scripting.waf_entry_point(os.getcwd(), Context.WAFVERSION, project_path) - -if __name__ == '__main__': - main() diff --git a/waflib b/waflib deleted file mode 160000 -Subproject b600c928b221a001faeab7bd92786d0b25714bc diff --git a/wscript b/wscript deleted file mode 100644 index 2670694..0000000 --- a/wscript +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env python - -import os - -from waflib import Logs -from waflib.extras import autowaf - -# Mandatory waf variables -APPNAME = 'drobillad' # Package name for waf dist -VERSION = '0.0.0' # Package version for waf dist -top = '.' # Source directory -out = 'build' # Build directory - -line_just = 45 -libs = ['subprojects/lv2kit', 'subprojects/raul', 'subprojects/ganv'] -apps = ['jalv', 'patchage', 'ingen']#, 'machina'] -plugins = ['plugins/blop.lv2', 'plugins/fomp.lv2', 'plugins/mda.lv2'] -projects = libs + apps + plugins - - -def options(opt): - opt.load('compiler_c') - opt.load('compiler_cxx') - opt.load('lv2') - run_opts = opt.add_option_group('Run options') - run_opts.add_option('--cmd', type='string', dest='cmd', - help='command to run from build directory') - for p in projects: - opt.recurse(p) - - -def configure(conf): - conf.load('compiler_c', cache=True) - conf.load('compiler_cxx', cache=True) - conf.load('lv2', cache=True) - conf.load('autowaf', cache=True) - - if not autowaf.set_c_lang(conf, 'c11', mandatory=False): - autowaf.set_c_lang(conf, 'c99') - - conf.env.DROBILLAD_BUILD = [] - for p in projects: - try: - name = os.path.basename(p) - Logs.pprint('BOLD', '') - conf.recurse(p) - autowaf.set_local_lib(conf, name, name != 'lv2') - conf.env.DROBILLAD_BUILD += [p] - except Exception as e: - Logs.warn('Configuration failed, not building %s (%s)' % (p, e)) - - autowaf.g_is_child = False - - Logs.info('') - autowaf.display_summary(conf) - Logs.info('\nBuilding: %s\n' % ' '.join(conf.env.DROBILLAD_BUILD)) - - not_building = [] - for i in projects: - if i not in conf.env.DROBILLAD_BUILD: - not_building += [i] - - if not_building != []: - Logs.warn('Not building:\n\t%s\n' % '\n\t'.join(not_building)) - - -def build(bld): - for i in bld.env.DROBILLAD_BUILD: - bld.add_group() - bld.recurse(i) - - -def test(ctx): - for i in ctx.env.DROBILLAD_BUILD: - ctx.recurse(i, mandatory=False) |