Commit Graph

628 Commits

Author SHA1 Message Date
Robin Gareus 80ef73f48b Py3 compatible build-stack version parser 2022-09-14 00:05:43 +02:00
Robin Gareus a009307a3d
Detect rubberband 3.0.0 2022-09-13 06:44:20 +02:00
Robin Gareus 076ad9a9b6
NO-OP: simplify wscript 2022-08-02 00:22:44 +02:00
Paul Davis f18803e19f fix boost warnings when *not* using --cxx11
Ultimately we should probably move to std::bind and std::placeholders
2022-07-29 09:42:18 -06:00
Robin Gareus 60db5a827f
Use SYS_futex instead of __NR_futex
Use the C library definition for portability; also test
for support instead of unconditionally enabling it.
2022-05-30 21:56:49 +02:00
Paul Davis cfe2ca9bf2 add configure-time check for __int128 support in the compiler 2022-05-27 12:47:44 -06:00
Robin Gareus c7150e81b0
Fix waf dist (create stored version file, set global vars) 2022-05-19 02:45:28 +02:00
Robin Gareus 6f7adbda59
Do not invoke `git` when installing a build (amend f935324) 2022-05-17 17:49:03 +02:00
Robin Gareus f849f3ce2c
Use futex semaphores on Linux only 2022-05-12 00:56:33 +02:00
Robin Gareus f9353243c2
Do not unconditionally query git revision
Set version for configure, build and dist only.
This fixes an issue with `sudo ./waf install` where
`sudo git describe` can fail.


See also
 https://discourse.ardour.org/t/waf-error-when-buliding-on-linux-ubuntu/107201/11
 https://github.blog/2022-04-12-git-security-vulnerability-announced/
2022-05-10 16:43:29 +02:00
ardour edf1f55781 Add Monterey as a mac build target 2022-04-25 08:08:50 -05:00
Mads Kiilerich 705de9389b wscript: address some pyflake warnings
gtk2_ardour/wscript:15:1 redefinition of unused 'TaskGen' from line 3
wscript:102:9 dictionary key 'sse' repeated with different values
wscript:104:9 dictionary key 'sse' repeated with different values
2022-04-09 12:16:41 +02:00
Mads Kiilerich 5b7431f243 wscript: drop unnecessary trailing ";" 2022-04-09 12:16:41 +02:00
Mads Kiilerich 49855e52aa wscript: consistently have at most one empty separator line 2022-04-09 12:16:40 +02:00
Mads Kiilerich bac32a8c2d wscript: consistently use 4 spaces for indentation 2022-04-09 12:16:40 +02:00
luz paz 3d395585c1
Fix various typos
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sord,sur,te,trough,ue`  
Follow-up to 364f2f078
2022-04-08 19:51:02 +02:00
luz paz 59320b378f
wscript: fix 'testing equality is none' issue
ref: https://lgtm.com/rules/7900090/
2022-04-08 18:27:10 +02:00
a1batross f26257d6e4
wscript: fix Apple-specific flag being added on non-Apple platforms
Although GCC and Clang completely ignore this flag on non-Apple platforms, some "GCC-compatible" compilers may not, like EDG frontend based compilers.
2022-04-08 18:19:54 +02:00
Mads Kiilerich 6ff1d86cad wscript: improve configure messages slightly 2022-01-22 22:19:07 +01:00
Robin Gareus 97439d8777
Flip option, disable compile-database by default 2022-01-20 20:13:46 +01:00
Robin Gareus 9886d6c19e
Allow to disable clang_compilation_database
See also af69061644 and b8e1cd53c. This can be useful in
some cases where running a dry-run build will fail.
e.g. with --freedesktop files that are not generated before the
actual build.
2022-01-19 17:12:36 +01:00
Robin Gareus af69061644
Do not create clang-db when cross-compiling w/mingw
This breaks windows builds, since apparently build(bld) is
evaluated twice (once to write compile_commands.json and once
to compile), even though `obj` is reset.

eg. in libs/pbd/wscript

```
if bld.env['build_target'] == 'mingw':
  obj.source += [ 'windows_special_dirs.cc' ]
```

results in

[  65/1159] Compiling libs/pbd/windows_special_dirs.cc
[  69/1159] Compiling libs/pbd/windows_special_dirs.cc

which then produces an error when linking:
```
/usr/bin/x86_64-w64-mingw32-ld: libs/pbd/windows_special_dirs.cc.2.o:libs/pbd/windows_special_dirs.cc:28: multiple definition of `PBD::get_win_special_folder_path[abi:cxx11](int)'; libs/pbd/windows_special_dirs.cc.2.o:libs/pbd/windows_special_dirs.cc:28: first defined here
```
2022-01-10 17:10:49 +01:00
Remi Thebault b8e1cd53ce
Prepare waf update to 2.0.23 and enable 'clang_compilation_database'
This enables the generation of build/compile_commands.json
which is a compilation database recognized by some IDE/editors
to provide compiler quality linting.
To name a few:
 - Visual Studio Code
 - VIM (with ALE plugin)
2022-01-09 18:45:50 +01:00
Robin Gareus ddc03bbc5e
Bundle some media-files 2021-12-16 19:08:03 +01:00
Robin Gareus baf5a13f17
Update atomic/volatile compat
With glib 2.64, volatile gint produce annoying Wcast-qual
compiler warnings with mingw/gcc-8.

Even though the the build succeeds, and only glib 2.68+
requires non-volatile atomics this results in a much
cleaner build-log.
2021-08-16 04:26:55 +02:00
Paul Davis 322bca7fb3 remove -ansi from c++ flag used when configuring with --strict (forces C++98) 2021-08-13 12:51:34 -06:00
Paul Davis 10473ab3a6 build gtk2_ardour again 2021-08-13 12:51:27 -06:00
Paul Davis f0323c2f1b temporarily do not build gtk2_ardour while working on canvas layout support 2021-08-13 12:51:26 -06:00
Robin Gareus ed959c2708
Remove outdated configuration warning 2021-07-03 20:17:19 +02:00
Robin Gareus d4212da693
AU: standalone scanner tool 2021-07-03 19:07:26 +02:00
Robin Gareus a74b4e8ef0
No more wine 2021-07-03 19:07:25 +02:00
Robin Gareus 44c0535b10
Fix gprof builds
`-pg` needs is both a compiler and linker flag.
2021-05-23 01:05:22 +02:00
Robin Gareus ea01ec5988
Correctly detect glib volatile atomic
see also https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1919
2021-03-30 15:29:53 +02:00
Robin Gareus 046d7d01f5
Fix boost 1.74 + gcc 10.2 warnings
bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the
Bind placeholders (_1, _2, ...) in the global namespace is deprecated.
Please use <boost/bind/bind.hpp> + using namespace boost::placeholders,
or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.
2021-01-26 01:54:37 +01:00
Robin Gareus cbd2cc7b2e
Enable FMA support for windows 64bit 2021-01-20 14:23:53 +01:00
Robin Gareus 344d163875 Use libc++/clang on OSX 10.10.x 2021-01-10 14:05:09 +01:00
Robin Gareus caf55e105e
Dynamically load Dr.Mingw
This improves compatibility with older systems, notably 32bit WinXP.
2021-01-02 23:19:40 +01:00
Robin Gareus cd72bbb2d4
Make AVX/FMA support optional
Older compilers do not yet have fmaintrin.h. This fixes compile errors:
```
x86_functions_fma.cc:51:39: error: '_mm_fmadd_ss' was not declared in this scope
x86_functions_fma.cc:85:35: error: '_mm256_fmadd_ps' was not declared in this scope
x86_functions_fma.cc:106:35: error: '_mm256_fmadd_ps' was not declared in this scope
x86_functions_fma.cc:129:39: error: '_mm_fmadd_ss' was not declared in this scope
```
2021-01-02 16:41:43 +01:00
Ayan Shafqat 407882d23d
Add support for Intel/AMD's FMA extension
By supporting FMA extension, the number of instruction needed
for multiply accumulate to mix channels are reduced. Since,
this extension has been around since middle of 2012, more
computers have this instruction set available.
2021-01-01 21:05:16 +01:00
Robin Gareus 4f62726193
Set BigSur version compatibility 2020-12-18 14:51:07 +01:00
Robin Gareus 35c9b08154
Prepare for Apple/ARM cross-compile on Intel macOS 2020-12-12 04:47:21 +01:00
Robin Gareus 9cb9e58b31
Fix min OSX deplyoment target
mmacosx-version-min also needs to be set during linking, otherwise
the Finder will not allow to launch the application on older systems
  "The application requires os X 10.XX or later"
(with XX being the build-host's OS version), even though
Ardour can be started from a terminal on target due to correct
c/cxxflags.
2020-12-02 01:04:25 +01:00
Robin Gareus ee1434f47d
Fix macOS High Sierra build-target naming 2020-12-02 00:59:55 +01:00
Robin Gareus 3c25281203
Increase taglib version requirement
taglib-1.9 (Oct 2013) added support for INFO tags in WAV files.
2020-11-15 15:04:44 +01:00
Robin Gareus 921caac00f
Apple Big Sur build support 2020-11-10 23:28:54 +01:00
Robin Gareus 5ebb016544
Add support for Dr.Mingw 2020-09-29 06:06:11 +02:00
Robin Gareus 0ca0b4f335
VST3 skeleton 2020-09-16 22:49:19 +02:00
Robin Gareus 773a1a0725
Fix optimized armhf builds
Apparently gcc-6.2 with -O3 and -mfpu=neon can use ARM instructions
that requires 64bit alignment (here vst1.64) with data that
is not 64bit aligned (g->strcache) https://i.imgur.com/vYktsUn.png

So we need to be able to build "arm_neon_functions.cc" with
-mfpu=neon, while not automatically using NEON for the rest
of the codebase, unless explicitly asked for.
2020-08-22 02:35:19 +02:00
Robin Gareus 422d65ad17
Override FPU auto-detection for ARM builds 2020-08-21 06:21:09 +02:00
Robin Gareus cfae218b8a
Amend prev. commit (ARM FPU optimization configuration) 2020-08-21 03:48:03 +02:00