Commit Graph

59 Commits

Author SHA1 Message Date
Mads Kiilerich 6b61b03434 wscript: drop traces of shutdown() handling
autowaf has no real shutdown functionality anyway. The automatic
shutdown function that could have been called wouldn't work anyway, as
it takes an argument.

The only reason it doesn't fail is that the top level wscript has no
shutdown handling and doesn't recurse to other scripts, so it is all
dead code.
2023-10-15 10:47:16 -06:00
Mads Kiilerich 88cecdfaef wscript: drop repeated autowaf.set_options - it is enough to set at top level 2023-10-15 10:47:16 -06:00
Nils Philippsen c90dc9a647
Deal with kissfft >= 130
The kissfft library changed its SONAME and how the various libraries
were organized, e.g. the functions for complex and real numbers aren’t
in separate libraries anymore.

Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2023-10-13 22:01:32 +02:00
Mads Kiilerich d220f477ed wscript: drop unused "mandatory variables" 'top' and 'out' in libs
Variables by these names are only used from the local wscript and when
running "waf configure", which already for other reasons only can run at
the top-level.

These variables are thus not mandatory and not used.
2023-09-17 07:34:55 -06:00
Mads Kiilerich a0916ef368 wscript: drop unused APPNAME assignment in libs
https://waf.io/book/ says
  By default, the project name and version are set to noname and 1.0. To
  change them, it is necessary to provide two additional variables in
  the top-level project file

- and waf code inspection confirms that waf itself only will use the top
level APPNAME.

Also, the 'waf dist' comment doesn't seem relevant - especially after
this change - and is removed too.

(Note: libs/evoral/wscript and libs/temporal/wscript still use APPNAME
for other purposes.)
2023-09-17 07:34:55 -06:00
Mads Kiilerich 3b4cf9191c wscript: drop unused VERSION assignment in libs
https://waf.io/book/ says
  By default, the project name and version are set to noname and 1.0. To
  change them, it is necessary to provide two additional variables in the
  top-level project file

- and waf code inspection confirms that waf itself only will use the top
  level VERSION.

Some wscripts will use
  bld.env['VERSION']
but that will also just use the value set in the top wscript.
2023-09-17 07:34:55 -06:00
Mads Kiilerich 7737c17d52 wscript: drop unused imports, scripted
Done with ad hoc scripting hacks processing unused imports found by pyflakes:

for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Logs.* but unused' | cut -d: -f1 | while read f; do sed -i 's/^import waflib.Logs as Logs,/import/g' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Options.* but unused' | cut -d: -f1 | while read f; do sed -i 's/import waflib.Options as Options, /import /g' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Options.* but unused' | cut -d: -f1 | while read f; do sed -i 's/^from waflib import Options,/from waflib import/g' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep ' imported but unused$' | sed "s/^\([^:]*\):[0-9]*:[0-9]* '\(.*\)'.*/\1 \2/g" | while read f lib; do sed -i "/^import $lib$/d" $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Options.* but unused' | cut -d: -f1 | while read f; do sed -i '/from waflib import Options$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.TaskGen.* but unused' | cut -d: -f1 | while read f; do sed -i '/from waflib import TaskGen$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Task.Task.* but unused' | cut -d: -f1 | while read f; do sed -i '/^from waflib.Task import Task$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Tools.winres.* but unused' | cut -d: -f1 | while read f; do sed -i '/^from waflib.Tools import winres$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Utils.* but unused' | cut -d: -f1 | while read f; do sed -i '/^import waflib.Utils as Utils$/d' $f; done
2023-09-17 07:34:55 -06:00
Robin Gareus bc6a9609ff
Address some Wmissing-prototypes in qm-dsp 2022-11-26 16:23:52 +01:00
Mads Kiilerich 49855e52aa wscript: consistently have at most one empty separator line 2022-04-09 12:16:40 +02:00
Mads Kiilerich 6f04dfc774
wscript: detect if qm-dsp is self-contained or need linking with kiss
When building with --use-external-libs on Fedora, Ardour would fail at
runtime with messages like:
  symbol lookup error: .../vamp/libardourvampplugins.so: undefined symbol: kiss_fftr_alloc
Try to automate handling of this error situation.

Fedora packaging worked around it with a custom patch that we rather
would avoid:
https://src.fedoraproject.org/rpms/ardour6/blob/rawhide/f/ardour6-missing-kissfft.patch .
2022-04-08 18:39:15 +02:00
Mads Kiilerich 6ff1d86cad wscript: improve configure messages slightly 2022-01-22 22:19:07 +01:00
Mads Kiilerich 8bb91099c5 wscript: drop configure statements already present in the top level wscript
Avoid repeated pointless configure messages like:
Checking for 'g++' (C++ compiler!)                   : /usr/lib64/ccache/g++
Checking for 'gcc' (C compiler)                      : /usr/lib64/ccache/gcc
2022-01-22 22:19:03 +01:00
Robin Gareus 95f3977f07
Do not install static libs
There is no need to deploy .a with ardour installations.
2020-01-22 02:00:25 +01:00
Robin Gareus 34c4f7b8ee
Fix Ardour VAMP plugins (FFT)
Bug was introduced in 8ed33f1bc7 symbol visibility setting
in CFLAGS, CXXFLAGS was overridden. This resulted in publicly exposed
and bound kiss_fft symbols in libqm-dsp.

At runtime those symbols were resolved using previously bound
symbols in libcodec  (see below) that uses a mismatching implementation
(ardour/qm-dsp uses -Dkiss_fft_scalar=double)

#0  0x00007fffea793d40 in kiss_fftr () at /usr/lib/x86_64-linux-gnu/libcodec2.so.0.8.1
#1  0x00007fffcf4516ab in FFTReal::D::forward(double const*, double*, double*) (this=0x5555571d73a0, ri=0x55555a734810, ro=0x55555a7262b0, io=0x55555a728590)
    at ../libs/qm-dsp/dsp/transforms/FFT.cpp:121
#2  0x00007fffcf4510fd in FFTReal::forward(double const*, double*, double*) (this=0x555559868190, ri=0x55555a734810, ro=0x55555a7262b0, io=0x55555a728590)
    at ../libs/qm-dsp/dsp/transforms/FFT.cpp:186
2020-01-14 00:52:24 +01:00
Paul Davis 8ed33f1bc7 remove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead 2018-10-14 22:06:11 -04:00
John Emmas 9506a294c7 Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 1 of 3 (more to follow)
2018-09-30 08:56:12 +01:00
John Emmas 79f01bc889 Initial changes needed for building Mixbus (with MSVC) as version 5
(Mixbus itself will probably need extra changes)
2018-09-10 07:14:59 +01:00
John Emmas b9c9777b9a When building with MSVC, allow for the fact that Mixbus and Ardour can be using different versions of the SESSION_FILE format 2018-02-15 09:03:32 +00:00
John Emmas 6f019faaa0 Accommodate the change from libtimecode to libtemporal 2018-02-14 10:02:11 +00:00
John Emmas 7e224236e6 Patch the QM source code to make it buildable with MSVC 2017-04-02 15:32:26 +02:00
Robin Gareus 0ed1a88af1 avoid C++11 - fixes OSX/PPC builds 2017-04-02 15:23:24 +02:00
Robin Gareus b6768b4616 Update qm-dsp library (v1.7.1-20-g4d15479) 2017-04-01 21:13:57 +02:00
Robin Gareus c0c24aff72 Hotfix crashes for [extreme] time-stretch -- #7305
e.g. stretch-shrink 3712 samples down to 1780.
The filter order defines nFact which can become larger than length - 2
leading to out-of-bounds array access.

e.g. m_ord = 2 -> nFilt = 2, nFact = 6;  process < 7 samples (here 6)
2017-04-01 19:16:12 +02:00
John Emmas 4b7d902cc0 Modify our MSVC project to build the newer qm-dsp plugins 2017-02-06 09:49:22 +00:00
John Emmas 715b9a959a Remove a JE addition to one of the qm-dsp source files (no longer needed) 2017-02-06 09:47:10 +00:00
John Emmas 17b6f45819 Allow 'qm-dsp' to build again with MSVC 2016-10-07 17:58:28 +01:00
Robin Gareus 485e31f082 Build qm-dsp & kissfft as static lib w/hidden symbols
...as precaution for plugins which may potentially use a different
version of the library.
2016-10-07 14:28:36 +02:00
Robin Gareus a7d724d980 avoid more C++11 - fixes OSX/PPC & MSVC builds 2016-10-07 13:52:25 +02:00
Robin Gareus 9f342ceef7 remove cruft 2016-10-07 13:51:58 +02:00
Robin Gareus 2ac7c5d3e2 Document version of bundled qm-dsp library 2016-10-07 03:59:38 +02:00
Robin Gareus 9c2d0cb8f7 avoid C++11 - fixes OSX/PPC builds 2016-10-07 00:42:36 +02:00
Robin Gareus 344728551d remove more unused qm-dsp code (fixes windows compile no LAPACK) 2016-10-06 01:54:21 +02:00
Robin Gareus a543ae329c Thin out qm-dsp code: no threading 2016-10-06 00:58:20 +02:00
Robin Gareus f68d2e06bc update qm-dsp library 2016-10-06 00:57:53 +02:00
Nils Philippsen 0aaded5318 allow linking unbundled version of qm-dsp
In the course, rename the bundled, built version libqm-dsp so it matches
packaged versions.
2016-10-04 22:03:28 +02:00
John Emmas 0ff233d234 Update our MSVC project files to generate the most recent Ardour session file format (ver 5) rather than the older v3 format 2016-08-30 07:15:00 +01:00
Robin Gareus 81542d20aa No discrimination against systems which don't have a PI define 2016-08-27 17:20:27 +02:00
Robin Gareus ef169ce2ff fix Vamp Onset Detector. 2015-10-08 16:18:39 +02:00
Robin Gareus 22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis 4178db5f63 globally remove all trailing whitespace from .cpp and .hpp files missed by previous commit 2015-10-04 15:11:15 -04:00
Paul Davis 4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Paul Davis 03dbf7857e remove compilation warning (-Wunused-but-set-variable) 2015-06-29 14:18:15 -04:00
John Emmas 801af5df9e Add the new (UINTSDEFINED) preprocessor directive to all out MSVC projects (just to be on the safe side) 2015-06-09 13:18:42 +01:00
John Emmas 973d40e3ac Add support for USE_CAIRO_IMAGE_SURFACE when building with MSVC
(new preprocessor directive - greatly improves CPU loading)
2014-10-29 17:36:30 +00:00
John Emmas 65715dd298 Make sure all our VC projects agree that the product is called 'Mixbus3' (as opposed to just 'Mixbus')
It'd be nice if we could use 'ARDOUR::config_dir_name' for this purpose (or perhaps 'PROGRAM_VERSION'). However, neither is implemented widely enough at present to make this practical. Keep an eye on them though, as possible future strategies.
2014-08-28 07:57:20 +01:00
David Robillard 928881b24a Update vcproj files for changed LILV config define. 2014-07-15 15:50:12 -04:00
Paul Davis 1b989a93c2 remove redundant os.path.join() calls when specifying install path as bld.env['LIBDIR'] 2014-04-28 21:18:02 -04:00
Paul Davis 058986f77b finish unfinished work at basing all install paths on the program name 2014-04-28 21:11:08 -04:00
John Emmas 077a194430 Add the main VC project files for building Ardour3 with Microsoft Visual Studio
Note that there's no 'VS Solution' file at present and some targets haven't been built yet (e.g. 'fst')
2014-04-08 09:49:35 +01:00
Paul Davis 31b68d1db8 use "portable" approach to forcing visible symbols in third party libs (qm-dsp, vamp-plugins, appleutility, clearlooks) 2014-01-17 13:19:42 -05:00