Commit graph

702 commits

Author SHA1 Message Date
Robin Gareus
99aab0179d
Revert "We still need libregex for libardour (for now)"
This reverts commit e7d407d6e3.
2025-11-11 19:04:35 +01:00
Robin Gareus
e7d407d6e3
We still need libregex for libardour (for now)
see b3e4deb32f.
2025-11-10 20:21:00 +01:00
Robin Gareus
b3e4deb32f
Prefer std::regex over C regex_t 2025-11-09 21:27:26 +01:00
Robin Gareus
83d44860e0
Set some more waf MSVC flags 2025-11-09 16:36:28 +01:00
Robin Gareus
289f7b10d2
Remove cycle based storing timer, prefer TimerRAII
..besides with dummy backend one can measure performance
on instruction level granularity with valgrind.
2025-11-09 16:32:24 +01:00
EZ4Stephen
40ba396278
Changes to --also-include and --also-libdir
--also-libdir wasn't working as intended for MSVC, so I changed that. Also changed --also-include to look similar.
2025-11-06 17:03:33 +01:00
Robin Gareus
544222400c
Some more fixes for MSVC/waf
https://discourse.ardour.org/t/building-with-msvc-powershell-errors/112468
2025-10-23 16:13:15 +02:00
Colin Fletcher
3098c70fcf
Allow adding multiple include and lib-dirs as documted in --help. 2025-10-21 01:55:54 +02:00
Robin Gareus
6507bcd93b
Add StaffPad library, thanks to Audacity 2025-10-09 00:01:26 +02:00
Robin Gareus
109c3edb42
Bump JACK dependency (#9958) 2025-07-27 22:13:39 +02:00
Robin Gareus
ee8a2fc970
Fix librubberband API detection #9948 2025-06-13 21:51:49 +02:00
Robin Gareus
877f603d92
Make execstack optional, and check clang's variant with space
see also ec5b06e63d
and https://discourse.ardour.org/t/fyi-ardour-9-doesnt-build-on-linux-using-clang/111896
2025-06-10 16:13:44 +02:00
Robin Gareus
1e28ee9cc9
YTK is no longer optional
Since the addition of the touch-API, Ardour is no longer compatible
with upstream gtk2.
2025-02-01 11:57:35 +01:00
luzpaz
f4562a9b4c
fix various typos throughout codebase
Found via `codespell -q 3 -S "*.pdf,*.po,./.git,*.tosc,./waf,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch" -L acount,addin,ane,ba,buss,busses,caf,capela,devine,disconnectin,discreet,doubleclick,envolution,filetest,fo,ghandi,homs,hsi,layed,maschine,mis,nd,ontop,pass-thru,removeable,retrn,ro,scrollin,sectionin,seh,siz,sord,sur,te,trough,ue,wth`
2025-01-12 21:08:42 +01:00
Robin Gareus
e0e6d5fe5f Revert "Always use image surface on macOS"
This reverts commit cb3f8170ad.
2024-12-06 23:49:23 +01:00
Alejandro Domínguez
4687a5a886
Use std::placeholders by default 2024-11-18 19:05:14 +01:00
Robin Gareus
6f331be7ca
Remove deprecated 32C define 2024-11-15 03:54:17 +01:00
Mads Kiilerich
3228a61e62 wscript: the i18n worker functions do not define the i18n waf commands
Rename the worker functions to make it clear that their name in this
case isn't magic. These functions "are not" the waf commands. It is the
custom build context class definitions that define the i18n commands ...
which will invoke these top level worker functions which in turn invoke
the others recursively.

The bare printing of the build environment in the top level i18n command
seems to be old debug code that safely can be removed.
2024-10-20 19:52:14 -06:00
Mads Kiilerich
27acda4ccd wscript: the i18n class names do not define the i18n waf command names
Try to make it a bit more clear what is going on with class and def for
i18n commands.

It was confusing that we first defined i18n classes in the beginning of
the wscript file, and then replaced them with "plain" functions with the
same name at the end. pyflakes also didn't like it.

It seemed magic. The i18n functionality easily broke if trying to touch
that. It deserves an explanation to make it maintainable ... and some
cleanup.

Simple functions in the top level wscript file are generally exposed as
custom waf commands. The command will have the same name as the function
and will get a plain Context. But that simple method doesn't work for
these i18n commands. They have to be declared in a different way with a
custom BuildContext, as seen and described in the comment.

The name of the BuildContext classes doesn't matter, so we change the
name to avoid the name collision and to give a hint how they actually
just are contexts for the commands - they are not the command itself. We
also place the classes next to the corresponding functions so it is more
obvious that they are related.
2024-10-20 19:52:14 -06:00
Mads Kiilerich
c78b3289d5 wscript: set PROGRAM_NAME in env early, not as set_compiler_flags side effect 2024-10-20 19:52:14 -06:00
Mads Kiilerich
38db12c9ea Drop Frontier Tranzport surface - it has been dead for a decade 2024-10-20 03:08:03 +02:00
Robin Gareus
2c503eab09
Remove old Coreaudio OSX 10.5 support 2024-10-18 22:52:34 +02:00
Robin Gareus
99906a2215
Drop build-system support for macOS < 10.13 (require C++17) 2024-10-18 22:52:29 +02:00
Robin Gareus
2d0f472af5 Consolidate macOS version parser 2024-10-15 00:57:10 +02:00
Robin Gareus
3171eb5aa1
C++17 requires macOS 10.13 or later 2024-10-15 00:35:50 +02:00
Robin Gareus
0357c12fcc Really fix compiler warnings for clang < v15
see also 57a6773833
2024-09-26 01:31:25 +02:00
Robin Gareus
57a6773833
Check compiler version to set compiler warning options
This cleans up nightly build log (clang 13) and allows
clean compiler output on dev systems (clang 16).
2024-09-18 15:27:37 +02:00
Robin Gareus
09e9d7781b
Add build support for macOS/Sonoma
At some point in the not-too-distant-future we need
to simplify this and simply require Mojave/XCode 10 or later.
2024-09-17 00:01:51 +02:00
Robin Gareus
9f438aa773
Add workaround to compile w/c++17 and old boost on macOS
This can be removed once the buildstack has been updated to
use recent boost.
2024-09-15 00:19:26 +02:00
Robin Gareus
e299635511
Allow to explicitly request C++11/17 2024-09-15 00:14:51 +02:00
Robin Gareus
0ed82d2f50
Add C++17 option to force compiles to use std=cxx17 2024-09-14 16:08:58 +02:00
Robin Gareus
961cf955d2
Hide warnings caused by glibmm/helperlist.h declutter build log 2024-08-19 00:22:38 +02:00
Robin Gareus
afb519cd84
Bump required boost version to 1.68 (for optional::has_value) 2024-05-15 18:50:17 +02:00
Robin Gareus
2af2df3516
Raise the butler's I/O priority
This likely won't make much difference on modern systems,
since it requires a kernel based I/O scheduler. which is
disabled (set to "none" for NVMe and SSDs).
2024-04-29 21:46:06 +02:00
GianfrancoCostamagna
338cd09a4a
Work around itstools bug #9648
Forwarded from debian.
Having stderr output inside the returned command tricks the system
to fail in detecting the version.
Ignoring stderr output looks fine to make it build properly:

```
itstool --version
/usr/bin/itstool:239: SyntaxWarning: invalid escape sequence '\s'
  if re.sub('\s+', ' ', text).strip() != '':
/usr/bin/itstool:337: SyntaxWarning: invalid escape sequence '\s'
  message = re.sub('\s+', ' ', message).strip()
/usr/bin/itstool:475: SyntaxWarning: invalid escape sequence '\s'
  return re.sub('\s+', ' ', self.locnote).strip()
/usr/bin/itstool:477: SyntaxWarning: invalid escape sequence '\s'
  return '(itstool) link: ' + re.sub('\s+', ' ', self.locnoteref).strip()
/usr/bin/itstool:891: SyntaxWarning: invalid escape sequence '\<'
  regex = re.compile('(.*) \<(.*)\>, (.*)')
/usr/bin/itstool:926: SyntaxWarning: invalid escape sequence '\s'
  if re.sub('\s+', '', prevtext) == '':
/usr/bin/itstool:1452: SyntaxWarning: invalid escape sequence '\.'
  _locale_pattern = re.compile('([a-zA-Z0-9-]+)(_[A-Za-z0-9]+)?(@[A-Za-z0-9]+)?(\.[A-Za-z0-9]+)?')
itstool 2.0.6
```
2024-03-04 14:27:23 +01:00
Robin Gareus
572a8b9cf8
Use G_ENABLE_DEBUG with default debug builds 2024-02-24 04:17:47 +01:00
Robin Gareus
85e361044b
Add option to enable G/YTK debug 2024-02-22 23:54:28 +01:00
Robin Gareus
1117f8d6cc
Always built at least the dummy backend
It is required by AAF import, various session-utils, unit-tests,
and it is generally useful for testing.
2024-02-18 16:43:10 +01:00
Robin Gareus
ad51c7c2ba
Localize stripped down gtk2
This is intended mainly for GNU/Linux distros who will remove
GTK2 support in the near future.
2024-01-06 21:52:48 +01:00
Robin Gareus
c7772c220e
Vapor: Bootstrap Atmosphere plugin 2024-01-06 20:21:13 +01:00
Robin Gareus
49256a37e8
NO-OP: clarify source-tree structure 2024-01-06 14:23:47 +01:00
Robin Gareus
e3128e932c
Compile and install libAAF 2023-11-27 23:25:04 +01:00
Robin Gareus
282be3d459
Nobody cares about GLIB_2_64 anymore 2023-11-25 13:08:12 +01:00
Nils Philippsen
a33514e270 Make option to disable VST3 support consistent
Previously, the option was called "--vst3", yet disabled building
support for VST3 plugins (as described in the help string).

Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2023-11-17 22:23:58 +01:00
Robin Gareus
c7eb410d0b Make Xcode output readable again 2023-10-27 15:12:49 +02:00
Robin Gareus
3ce2cf937e
Revert "wscript: drop unnecessary str() on configure variables"
This reverts commit 615326be9b because it
breaks windows builds.

```
File "/home/ardour/ardour-w64/wscript", line 1462, in configure
  set_compiler_flags (conf, Options.options)
File "/home/ardour/ardour-w64/wscript", line 522, in set_compiler_flags
  if re.search ('x86_64-w64', conf.env['CC']) is not None:
File "/usr/lib/python2.7/re.py", line 146, in search
  return _compile(pattern, flags).search(string)
TypeError: expected string or buffer
```
2023-10-16 21:15:25 +02:00
Mads Kiilerich
2973e82a90 wscript: sanitize strings from fetch_*_revision_date early instead of applying str() all over
This can perhaps be simplified further when Python2 support is dropped.
2023-10-15 10:47:16 -06:00
Mads Kiilerich
615326be9b wscript: drop unnecessary str() on configure variables
CC is already set to a string. (And if it ever should be None, we want
to handle that explicitly.)

(And #autowaf.display_msg handle Booleans just fine.)
2023-10-15 10:47:16 -06:00
Mads Kiilerich
2bb311f99b wscript: don't add pointless -DHAVE_X for each mandatory subdir
The sub_config_and_use function recursed, but it also invoked
autowaf.set_local_lib , which however didn't do anything useful. The
HAVE_ defines are not used anywhere, and the AUTOWAF_LOCAL defines are
only used in autowaf.use_lib, which however isn't used anywhere.

Dropping these defines simplify the build environment and makes the
compiler command line half as long and thus makes debugging much more
manageable.
2023-10-15 10:47:16 -06:00
Mads Kiilerich
e1b9c8c4d9 wscript: handle libs/clearlooks-newer like all other children
Put it in the "children" list instead of recursing explicitly.

The only difference is that the (empty) options function in
libs/clearlooks-newer/wscript now will be invoked - before it wasn't.
2023-10-15 10:47:16 -06:00