Give up ardour5 - it ids broken and not maintainable
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
@@ -1,74 +0,0 @@
|
||||
From 24b6038dc7c235780038d3fce2d9c83fada6ac8b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
|
||||
Date: Mon, 6 Feb 2017 23:33:45 +0100
|
||||
Subject: [PATCH] remove all build flags that cause trouble for cross
|
||||
configure/build
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Inappropriate [cross specific]
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
|
||||
|
||||
---
|
||||
tools/autowaf.py | 1 +
|
||||
wscript | 26 --------------------------
|
||||
2 files changed, 1 insertion(+), 26 deletions(-)
|
||||
|
||||
diff --git a/tools/autowaf.py b/tools/autowaf.py
|
||||
index 375dc5909..bb7714335 100644
|
||||
--- a/tools/autowaf.py
|
||||
+++ b/tools/autowaf.py
|
||||
@@ -93,6 +93,7 @@ def copyfile (task):
|
||||
|
||||
def check_header(conf, lang, name, define='', mandatory=True):
|
||||
"Check for a header"
|
||||
+ return True
|
||||
includes = '' # search default system include paths
|
||||
if sys.platform == "darwin":
|
||||
includes = '/opt/local/include'
|
||||
diff --git a/wscript b/wscript
|
||||
index 9fd84bb2c..d4178cb36 100644
|
||||
--- a/wscript
|
||||
+++ b/wscript
|
||||
@@ -476,31 +476,6 @@ int main() { return 0; }''',
|
||||
|
||||
compiler_flags.append ("-DARCH_X86")
|
||||
|
||||
- if platform == 'linux' :
|
||||
-
|
||||
- #
|
||||
- # determine processor flags via /proc/cpuinfo
|
||||
- #
|
||||
-
|
||||
- if conf.env['build_target'] != 'i386':
|
||||
-
|
||||
- flag_line = os.popen ("cat /proc/cpuinfo | grep '^flags'").read()[:-1]
|
||||
- x86_flags = flag_line.split (": ")[1:][0].split ()
|
||||
-
|
||||
- if "mmx" in x86_flags:
|
||||
- compiler_flags.append ("-mmmx")
|
||||
- if "sse" in x86_flags:
|
||||
- build_host_supports_sse = True
|
||||
- if "3dnow" in x86_flags:
|
||||
- compiler_flags.append ("-m3dnow")
|
||||
-
|
||||
- if cpu == "i586":
|
||||
- compiler_flags.append ("-march=i586")
|
||||
- elif cpu == "i686":
|
||||
- compiler_flags.append ("-march=i686")
|
||||
-
|
||||
- if not is_clang and ((conf.env['build_target'] == 'i686') or (conf.env['build_target'] == 'x86_64')) and build_host_supports_sse:
|
||||
- compiler_flags.extend ([ flags_dict['sse'], flags_dict['fpmath-sse'], flags_dict['xmmintrinsics'] ])
|
||||
|
||||
if (conf.env['build_target'] == 'mingw'):
|
||||
if (re.search ("(x86_64|AMD64)", cpu) != None):
|
||||
@@ -1034,7 +1009,6 @@ def configure(conf):
|
||||
fragment = "#include <dlfcn.h>\n int main(void) { dlopen (\"\", 0); return 0;}\n",
|
||||
linkflags='-ldl', uselib_store='DL', execute = False)
|
||||
conf.check_cxx(fragment = "#include <boost/version.hpp>\nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n",
|
||||
- execute = "1",
|
||||
mandatory = True,
|
||||
msg = 'Checking for boost library >= 1.39',
|
||||
okmsg = 'ok',
|
||||
@@ -1,229 +0,0 @@
|
||||
From 610ce4e19b0b39d0e8391057b22163d4fdc7bdb4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
|
||||
Date: Mon, 3 Jul 2017 23:24:55 +0200
|
||||
Subject: [PATCH 2/2] Use ARM NEON intrinsics if available for mixing functions
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
|
||||
---
|
||||
libs/ardour/ardour/mix.h | 10 +++
|
||||
libs/ardour/globals.cc | 13 ++++
|
||||
libs/ardour/mix.cc | 157 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 180 insertions(+)
|
||||
|
||||
diff --git a/libs/ardour/ardour/mix.h b/libs/ardour/ardour/mix.h
|
||||
index 4676c01..55919f0 100644
|
||||
--- a/libs/ardour/ardour/mix.h
|
||||
+++ b/libs/ardour/ardour/mix.h
|
||||
@@ -65,6 +65,16 @@ LIBARDOUR_API void veclib_mix_buffers_no_gain (ARDOUR::Sample * dst, cons
|
||||
|
||||
#endif
|
||||
|
||||
+#if defined (__ARM_NEON__)
|
||||
+
|
||||
+LIBARDOUR_API float neon_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current);
|
||||
+LIBARDOUR_API void neon_find_peaks (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float *min, float *max);
|
||||
+LIBARDOUR_API void neon_apply_gain_to_buffer (ARDOUR::Sample * buf, ARDOUR::pframes_t nframes, float gain);
|
||||
+LIBARDOUR_API void neon_mix_buffers_with_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes, float gain);
|
||||
+LIBARDOUR_API void neon_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes);
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
/* non-optimized functions */
|
||||
|
||||
LIBARDOUR_API float default_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current);
|
||||
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
|
||||
index 28eb818..d562b35 100644
|
||||
--- a/libs/ardour/globals.cc
|
||||
+++ b/libs/ardour/globals.cc
|
||||
@@ -222,6 +222,19 @@ setup_hardware_optimization (bool try_optimization)
|
||||
|
||||
info << "Apple VecLib H/W specific optimizations in use" << endmsg;
|
||||
}
|
||||
+#elif defined (__ARM_NEON__)
|
||||
+ // No runtime detection
|
||||
+ compute_peak = neon_compute_peak;
|
||||
+ find_peaks = neon_find_peaks;
|
||||
+ apply_gain_to_buffer = neon_apply_gain_to_buffer;
|
||||
+ mix_buffers_with_gain = neon_mix_buffers_with_gain;
|
||||
+ mix_buffers_no_gain = neon_mix_buffers_no_gain;
|
||||
+ copy_vector = default_copy_vector;
|
||||
+
|
||||
+ generic_mix_functions = false;
|
||||
+
|
||||
+ info << "ARM NEON optimizations in use" << endmsg;
|
||||
+
|
||||
#endif
|
||||
|
||||
/* consider FPU denormal handling to be "h/w optimization" */
|
||||
diff --git a/libs/ardour/mix.cc b/libs/ardour/mix.cc
|
||||
index 96ae624..d1a46a2 100644
|
||||
--- a/libs/ardour/mix.cc
|
||||
+++ b/libs/ardour/mix.cc
|
||||
@@ -182,4 +182,161 @@ veclib_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, pf
|
||||
|
||||
#endif
|
||||
|
||||
+#if defined (__ARM_NEON__)
|
||||
+#include <arm_neon.h>
|
||||
+
|
||||
+float
|
||||
+neon_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current)
|
||||
+{
|
||||
+ float32x4_t v4current = vdupq_n_f32(current);
|
||||
+ float32x4_t v4work;
|
||||
+ float32x2_t v2current;
|
||||
+
|
||||
+ // unaligned lead (spread single float to vector)
|
||||
+ while (((intptr_t)buf) % 16 != 0 && nsamples > 0) {
|
||||
+ v4work = vdupq_n_f32(*buf);
|
||||
+ v4current = vmaxq_f32(v4current, vabsq_f32(v4work));
|
||||
+
|
||||
+ buf++;
|
||||
+ nsamples--;
|
||||
+ }
|
||||
+ // aligned
|
||||
+ while (nsamples >= 4) {
|
||||
+ v4work = vld1q_f32(buf);
|
||||
+ v4current = vmaxq_f32(v4current, vabsq_f32(v4work));
|
||||
+
|
||||
+ buf+=4;
|
||||
+ nsamples-=4;
|
||||
+ }
|
||||
+ // rest < 4 (spread single float to vector)
|
||||
+ while (nsamples > 0) {
|
||||
+ v4work = vdupq_n_f32(*buf);
|
||||
+ v4current = vmaxq_f32(v4current, vabsq_f32(v4work));
|
||||
+
|
||||
+ buf++;
|
||||
+ nsamples--;
|
||||
+ }
|
||||
+
|
||||
+ // calc max in vector by pairwise max done twice
|
||||
+ v2current = vpmax_f32(vget_low_f32(v4current), vget_high_f32(v4current));
|
||||
+ v2current = vpmax_f32(v2current, v2current);
|
||||
+ return vget_lane_f32(v2current, 0);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+neon_find_peaks (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float *min, float *max)
|
||||
+{
|
||||
+ float32x4_t v4min = vdupq_n_f32(*min);
|
||||
+ float32x4_t v4max = vdupq_n_f32(*max);
|
||||
+ float32x4_t v4work;
|
||||
+ float32x2_t v2min, v2max;
|
||||
+
|
||||
+ // vector
|
||||
+ while (nsamples >= 4) {
|
||||
+ v4work = vld1q_f32(buf);
|
||||
+ v4min = vminq_f32(v4min, v4work);
|
||||
+ v4max = vmaxq_f32(v4max, v4work);
|
||||
+
|
||||
+ buf+=4;
|
||||
+ nsamples-=4;
|
||||
+ }
|
||||
+ // rest < 4 (spread single float to vector)
|
||||
+ while (nsamples > 0) {
|
||||
+ v4work = vdupq_n_f32(*buf);
|
||||
+ v4min = vminq_f32(v4min, v4work);
|
||||
+ v4max = vmaxq_f32(v4max, v4work);
|
||||
+
|
||||
+ buf++;
|
||||
+ nsamples--;
|
||||
+ }
|
||||
+
|
||||
+ // calc min in vector by pairwise max done twice
|
||||
+ v2min = vpmin_f32(vget_low_f32(v4min), vget_high_f32(v4min));
|
||||
+ v2min = vpmax_f32(v2min, v2min);
|
||||
+ *min = vget_lane_f32(v2min, 0);
|
||||
+ // calc max in vector by pairwise max done twice
|
||||
+ v2max = vpmax_f32(vget_low_f32(v4max), vget_high_f32(v4max));
|
||||
+ v2max = vpmax_f32(v2max, v2max);
|
||||
+ *max = vget_lane_f32(v2max, 0);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+neon_apply_gain_to_buffer (ARDOUR::Sample * buf, ARDOUR::pframes_t nframes, float gain)
|
||||
+{
|
||||
+ float32x4_t v4gain = vdupq_n_f32(gain);
|
||||
+ float32x4_t v4work;
|
||||
+
|
||||
+ // vector
|
||||
+ while (nframes >= 4) {
|
||||
+ v4work = vld1q_f32(buf);
|
||||
+ v4work = vmulq_f32(v4work, v4gain);
|
||||
+ vst1q_f32(buf, v4work);
|
||||
+
|
||||
+ buf+=4;
|
||||
+ nframes-=4;
|
||||
+ }
|
||||
+ // rest < 4
|
||||
+ while (nframes > 0) {
|
||||
+ *buf *= gain;
|
||||
+
|
||||
+ buf++;
|
||||
+ nframes--;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+neon_mix_buffers_with_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes, float gain)
|
||||
+{
|
||||
+ float32x4_t v4gain = vdupq_n_f32(gain);
|
||||
+ float32x4_t v4src, v4dst;
|
||||
+
|
||||
+ // vector
|
||||
+ while (nframes >= 4) {
|
||||
+ v4src = vld1q_f32(src);
|
||||
+ v4dst = vld1q_f32(dst);
|
||||
+ // v4dst = v4dst + v4src * v4gain
|
||||
+ v4dst = vmlaq_f32(v4dst, v4src, v4gain);
|
||||
+ vst1q_f32(dst, v4dst);
|
||||
+
|
||||
+ src+=4;
|
||||
+ dst+=4;
|
||||
+ nframes-=4;
|
||||
+ }
|
||||
+ // rest < 4
|
||||
+ while (nframes > 0) {
|
||||
+ *dst += *src * gain;
|
||||
+
|
||||
+ src++;
|
||||
+ dst++;
|
||||
+ nframes--;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+neon_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes)
|
||||
+{
|
||||
+ float32x4_t v4src, v4dst;
|
||||
+
|
||||
+ // vector
|
||||
+ while (nframes >= 4) {
|
||||
+ v4src = vld1q_f32(src);
|
||||
+ v4dst = vld1q_f32(dst);
|
||||
+ v4dst = vaddq_f32(v4dst, v4src);
|
||||
+ vst1q_f32(dst, v4dst);
|
||||
+
|
||||
+ src+=4;
|
||||
+ dst+=4;
|
||||
+ nframes-=4;
|
||||
+ }
|
||||
+ // rest < 4
|
||||
+ while (nframes > 0) {
|
||||
+ *dst += *src;
|
||||
+
|
||||
+ src++;
|
||||
+ dst++;
|
||||
+ nframes--;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
|
||||
--
|
||||
2.9.4
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
From be826f363522dbca96c8263d404c57c4fe9ff0e2 Mon Sep 17 00:00:00 2001
|
||||
From: Robin Gareus <robin@gareus.org>
|
||||
Date: Wed, 3 Oct 2018 20:54:14 +0200
|
||||
Subject: [PATCH] Prevent excessive meter redraws for inactive meters at zero
|
||||
|
||||
Upstream-Status: Backport [1]
|
||||
|
||||
[1] https://github.com/Ardour/ardour/commit/be826f363522dbca96c8263d404c57c4fe9ff0e2
|
||||
|
||||
---
|
||||
libs/widgets/fastmeter.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libs/widgets/fastmeter.cc b/libs/widgets/fastmeter.cc
|
||||
index cf1d9dd07..a9ecf5dad 100644
|
||||
--- a/libs/widgets/fastmeter.cc
|
||||
+++ b/libs/widgets/fastmeter.cc
|
||||
@@ -703,7 +703,7 @@ FastMeter::set (float lvl, float peak)
|
||||
if (pixwidth <= 0 || pixheight <=0) return;
|
||||
|
||||
if (peak == -1) {
|
||||
- if (lvl >= current_peak) {
|
||||
+ if (lvl >= current_peak && lvl > 0) {
|
||||
current_peak = lvl;
|
||||
hold_state = hold_cnt;
|
||||
}
|
||||
--
|
||||
2.14.4
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
From 8d5e7e9f4e4372debb9ce285336ccc1ecc0383f6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
|
||||
Date: Wed, 17 Oct 2018 22:10:41 +0200
|
||||
Subject: [PATCH] Prevent excessive meter redraws for inactive meters at zero
|
||||
II
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Same as be826f363522dbca96c8263d404c57c4fe9ff0e2
|
||||
|
||||
Upstream-Status: Applied
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
---
|
||||
libs/canvas/meter.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libs/canvas/meter.cc b/libs/canvas/meter.cc
|
||||
index b539a1b4a..76e31bf58 100644
|
||||
--- a/libs/canvas/meter.cc
|
||||
+++ b/libs/canvas/meter.cc
|
||||
@@ -702,7 +702,7 @@ Meter::set (float lvl, float peak)
|
||||
if (pixwidth <= 0 || pixheight <=0) return;
|
||||
|
||||
if (peak == -1) {
|
||||
- if (lvl >= current_peak) {
|
||||
+ if (lvl >= current_peak && lvl > 0) {
|
||||
current_peak = lvl;
|
||||
hold_state = hold_cnt;
|
||||
}
|
||||
--
|
||||
2.14.4
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
From ae281f2135607e55675d7cc18a9fe1a5b88464ec Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
|
||||
Date: Fri, 12 Oct 2018 00:56:59 +0200
|
||||
Subject: [PATCH] Follow fluidsynth's API changes introduced with 2.0.0
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Submitted [1]
|
||||
|
||||
[1] https://github.com/Ardour/ardour/pull/431
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
---
|
||||
libs/ardour/fluid_synth.cc | 14 ++++++++++++++
|
||||
libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc | 27 ++++++++++++++++++++++++++-
|
||||
2 files changed, 40 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libs/ardour/fluid_synth.cc b/libs/ardour/fluid_synth.cc
|
||||
index 45653a9e7..c9b7b526e 100644
|
||||
--- a/libs/ardour/fluid_synth.cc
|
||||
+++ b/libs/ardour/fluid_synth.cc
|
||||
@@ -71,6 +71,7 @@ FluidSynth::load_sf2 (const std::string& fn)
|
||||
}
|
||||
|
||||
size_t count;
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
fluid_preset_t preset;
|
||||
|
||||
sfont->iteration_start (sfont);
|
||||
@@ -83,7 +84,20 @@ FluidSynth::load_sf2 (const std::string& fn)
|
||||
preset.get_banknum (&preset),
|
||||
preset.get_num (&preset)));
|
||||
}
|
||||
+#else
|
||||
+ fluid_preset_t* preset;
|
||||
|
||||
+ fluid_sfont_iteration_start (sfont);
|
||||
+ for (count = 0; (preset = fluid_sfont_iteration_next (sfont)) != 0; ++count) {
|
||||
+ if (count < 16) {
|
||||
+ fluid_synth_program_select (_synth, count, _synth_id, fluid_preset_get_banknum (preset), fluid_preset_get_num (preset));
|
||||
+ }
|
||||
+ _presets.push_back (BankProgram (
|
||||
+ fluid_preset_get_name (preset),
|
||||
+ fluid_preset_get_banknum (preset),
|
||||
+ fluid_preset_get_num (preset)));
|
||||
+ }
|
||||
+#endif
|
||||
if (count == 0) {
|
||||
return false;
|
||||
}
|
||||
diff --git a/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc b/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
|
||||
index e6cf1e29d..6d168d5fe 100644
|
||||
--- a/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
|
||||
+++ b/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
|
||||
@@ -184,6 +184,7 @@ load_sf2 (AFluidSynth* self, const char* fn)
|
||||
}
|
||||
|
||||
int chn;
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
fluid_preset_t preset;
|
||||
sfont->iteration_start (sfont);
|
||||
pthread_mutex_lock (&self->bp_lock);
|
||||
@@ -192,15 +193,33 @@ load_sf2 (AFluidSynth* self, const char* fn)
|
||||
fluid_synth_program_select (self->synth, chn, synth_id,
|
||||
preset.get_banknum (&preset), preset.get_num (&preset));
|
||||
}
|
||||
+#else
|
||||
+ fluid_preset_t *preset;
|
||||
+ fluid_sfont_iteration_start (sfont);
|
||||
+ pthread_mutex_lock (&self->bp_lock);
|
||||
+ for (chn = 0; (preset = fluid_sfont_iteration_next (sfont)); ++chn) {
|
||||
+ if (chn < 16) {
|
||||
+ fluid_synth_program_select (self->synth, chn, synth_id,
|
||||
+ fluid_preset_get_banknum (preset), fluid_preset_get_num (preset));
|
||||
+ }
|
||||
+#endif // FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
#ifndef LV2_EXTENDED
|
||||
else { break ; }
|
||||
#else
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
self->presets[preset.get_banknum (&preset)].push_back (
|
||||
BankProgram (
|
||||
preset.get_name (&preset),
|
||||
preset.get_banknum (&preset),
|
||||
preset.get_num (&preset)));
|
||||
-#endif
|
||||
+#else
|
||||
+ self->presets[fluid_preset_get_banknum (preset)].push_back (
|
||||
+ BankProgram (
|
||||
+ fluid_preset_get_name (preset),
|
||||
+ fluid_preset_get_banknum (preset),
|
||||
+ fluid_preset_get_num (preset)));
|
||||
+#endif // FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
+#endif // LV2_EXTENDED
|
||||
}
|
||||
pthread_mutex_unlock (&self->bp_lock);
|
||||
|
||||
@@ -681,9 +700,15 @@ work_response (LV2_Handle instance,
|
||||
}
|
||||
|
||||
for (int chn = 0; chn < 16; ++chn) {
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
unsigned int sfid = 0;
|
||||
unsigned int bank = 0;
|
||||
unsigned int program = -1;
|
||||
+#else
|
||||
+ int sfid = 0;
|
||||
+ int bank = 0;
|
||||
+ int program = -1;
|
||||
+#endif
|
||||
if (FLUID_OK == fluid_synth_get_program (self->synth, chn, &sfid, &bank, &program)) {
|
||||
self->program_state[chn].bank = bank;
|
||||
self->program_state[chn].program = program;
|
||||
--
|
||||
2.14.4
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
From de5b65e6e5c558237fbdcfb4c6a284bc17a6054e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
|
||||
Date: Sat, 25 Jan 2020 22:11:56 +0100
|
||||
Subject: [PATCH] Find fmt-binding in out-of-tree building
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Submitted [1]
|
||||
|
||||
[1] https://github.com/Ardour/ardour/pull/465
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
---
|
||||
gtk2_ardour/wscript | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript
|
||||
index beb5b196b8..ed1d5631dd 100644
|
||||
--- a/gtk2_ardour/wscript
|
||||
+++ b/gtk2_ardour/wscript
|
||||
@@ -852,7 +852,7 @@ def build(bld):
|
||||
# NATIVE ARDOUR BINDING FILES
|
||||
# explicitly state the use of perl here so that it works on windows too
|
||||
#
|
||||
- a_rule = 'perl ../tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap ${SRC[0].abspath()} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] )
|
||||
+ a_rule = 'perl %s/tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap ${SRC[0].abspath()} >${TGT}' % (bld.top_dir, sys.platform, bld.env['WINDOWS_KEY'] )
|
||||
for b in [ 'ardour' ] :
|
||||
obj = bld(
|
||||
target = b + '.keys',
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Ardour 5
|
||||
Comment=Record, mix and master audio
|
||||
Exec=ardour5
|
||||
Icon=ardour5
|
||||
Terminal=false
|
||||
MimeType=application/x-ardour;
|
||||
Type=Application
|
||||
Categories=AudioVideo;Audio;X-Recorders;X-Multitrack;X-Jack;X-AudioEditing;
|
||||
GenericName=Digital Audio Workstation
|
||||
@@ -1,859 +0,0 @@
|
||||
From 2e9ac80e998bc79d5ef9029415008198b22168dc Mon Sep 17 00:00:00 2001
|
||||
From: David Runge <dave@sleepmap.de>
|
||||
Date: Mon, 20 Jan 2020 23:08:11 +0100
|
||||
Subject: [PATCH 1/8] Towards waf python 2+3 support
|
||||
|
||||
Upstream-Status: Backport [1]
|
||||
|
||||
[1] https://github.com/Ardour/ardour/commit/2e9ac80e998bc79d5ef9029415008198b22168dc
|
||||
|
||||
---
|
||||
gtk2_ardour/wscript | 32 +-
|
||||
libs/ardour/wscript | 2 +-
|
||||
libs/pbd/wscript | 17 +-
|
||||
libs/plugins/a-comp.lv2/wscript | 13 +-
|
||||
libs/plugins/a-delay.lv2/wscript | 14 +-
|
||||
libs/plugins/a-eq.lv2/wscript | 14 +-
|
||||
libs/plugins/a-fluidsynth.lv2/wscript | 16 +-
|
||||
libs/plugins/a-reverb.lv2/wscript | 14 +-
|
||||
libs/plugins/reasonablesynth.lv2/wscript | 14 +-
|
||||
libs/ptformat/wscript | 1 +
|
||||
libs/surfaces/osc/wscript | 2 +-
|
||||
libs/surfaces/push2/wscript | 24 +-
|
||||
libs/surfaces/wiimote/wscript | 2 +-
|
||||
libs/widgets/wscript | 2 +-
|
||||
session_utils/wscript | 2 +-
|
||||
tools/bb/wscript | 15 +-
|
||||
tools/luadevel/wscript | 2 +-
|
||||
tools/misc.py | 355 +++++++++++++++++++++++
|
||||
wscript | 10 +-
|
||||
19 files changed, 457 insertions(+), 94 deletions(-)
|
||||
create mode 100644 tools/misc.py
|
||||
|
||||
diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript
|
||||
index d3824a0a63..beb5b196b8 100644
|
||||
--- a/gtk2_ardour/wscript
|
||||
+++ b/gtk2_ardour/wscript
|
||||
@@ -369,20 +369,15 @@ def configure(conf):
|
||||
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
- retval = conf.run_c_code (code='#include <AppKit/NSWindow.h>\n\
|
||||
- int main(void) { (void) NSWindowWillStartLiveResizeNotification; return 0; }\n',
|
||||
- env = conf.env.derive (),
|
||||
- features = [ 'c' ],
|
||||
- compiler = 'cc',
|
||||
- compile_filename='test.m',
|
||||
- mandatory = False,
|
||||
- )
|
||||
-
|
||||
- if retval == 0:
|
||||
- autowaf.display_msg (conf, 'Checking for Cocoa live resizing constants', 'ok')
|
||||
- conf.define ('HAVE_COCOA_LIVE_RESIZING', 1)
|
||||
- else:
|
||||
- autowaf.display_msg (conf, 'Checking for Cocoa live resizing constants', 'too old - AU plugin windows will be fixed size')
|
||||
+ conf.check(
|
||||
+ msg ='Checking for Cocoa live resizing constants',
|
||||
+ fragment = '#include <AppKit/NSWindow.h>\n int main(void) { (void) NSWindowWillStartLiveResizeNotification; return 0; }\n',
|
||||
+ define_name = 'HAVE_COCOA_LIVE_RESIZING',
|
||||
+ uselib_store = 'COCOA_LIVE_RESIZING',
|
||||
+ compiler = 'cc',
|
||||
+ compile_filename = 'test.m',
|
||||
+ execute = True,
|
||||
+ mandatory = False)
|
||||
|
||||
conf.write_config_header('gtk2ardour-config.h', remove=False)
|
||||
|
||||
@@ -475,7 +470,6 @@ def build(bld):
|
||||
obj.source = list(gtk2_ardour_sources)
|
||||
obj.target = 'luadoc'
|
||||
obj.includes = ['.', '../libs']
|
||||
- obj.ldflags = ['-no-undefined']
|
||||
obj.use = [
|
||||
'libpbd',
|
||||
'libardour',
|
||||
@@ -515,7 +509,6 @@ def build(bld):
|
||||
# obj.source = [ 'ardour_button.cc', 'ui_config.cc', 'tooltips.cc' ]
|
||||
# obj.target = 'canvas_test'
|
||||
# obj.includes = ['.', '../libs']
|
||||
-# obj.ldflags = ['-no-undefined']
|
||||
# obj.use = [
|
||||
# 'libpbd',
|
||||
# 'libardour',
|
||||
@@ -586,9 +579,8 @@ def build(bld):
|
||||
obj = bld (features = 'cxx c cxxprogram')
|
||||
# operate on copy to avoid adding sources twice
|
||||
obj.source = list(gtk2_ardour_sources)
|
||||
- obj.target = 'ardour-' + str (bld.env['VERSION'])
|
||||
- obj.includes = ['.']
|
||||
- obj.ldflags = ['-no-undefined']
|
||||
+ obj.target = 'ardour-' + str (bld.env['VERSION'])
|
||||
+ obj.includes = ['.']
|
||||
|
||||
if bld.is_defined('WINDOWS_VST_SUPPORT'):
|
||||
# Windows VST support mingw
|
||||
@@ -617,7 +609,7 @@ def build(bld):
|
||||
]
|
||||
obj.install_path = bld.env['DLLDIR']
|
||||
obj.linkflags = ''
|
||||
- obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL GTKMM CANVAS FFTW3F LO TAGLIB XML '
|
||||
+ obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL GTKMM CANVAS FFTW3F LO TAGLIB XML LILV'
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
obj.uselib += ' AUDIOUNITS OSX '
|
||||
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
|
||||
index 7148a26042..8a65daaaf0 100644
|
||||
--- a/libs/ardour/wscript
|
||||
+++ b/libs/ardour/wscript
|
||||
@@ -474,7 +474,7 @@ def build(bld):
|
||||
avx_cxxflags = list(bld.env['CXXFLAGS'])
|
||||
avx_cxxflags.append (bld.env['compiler_flags_dict']['avx'])
|
||||
avx_cxxflags.append (bld.env['compiler_flags_dict']['pic'])
|
||||
- bld(features = 'cxx',
|
||||
+ bld(features = 'cxx cxxstlib asm',
|
||||
source = avx_sources,
|
||||
cxxflags = avx_cxxflags,
|
||||
includes = [ '.' ],
|
||||
diff --git a/libs/pbd/wscript b/libs/pbd/wscript
|
||||
index 29d82edcb4..8dffb71dd7 100644
|
||||
--- a/libs/pbd/wscript
|
||||
+++ b/libs/pbd/wscript
|
||||
@@ -108,12 +108,21 @@ def configure(conf):
|
||||
autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.32.0', mandatory=True)
|
||||
autowaf.check_pkg(conf, 'giomm-2.4', uselib_store='GIOMM', atleast_version='2.2', mandatory=True)
|
||||
|
||||
- conf.check(function_name='getmntent', header_name='mntent.h', define_name='HAVE_GETMNTENT',mandatory=False)
|
||||
conf.check(header_name='execinfo.h', define_name='HAVE_EXECINFO',mandatory=False)
|
||||
conf.check(header_name='unistd.h', define_name='HAVE_UNISTD',mandatory=False)
|
||||
if not Options.options.ppc:
|
||||
- conf.check_cc(function_name='posix_memalign', header_name='stdlib.h', cflags='-D_XOPEN_SOURCE=600', define_name='HAVE_POSIX_MEMALIGN', mandatory=False)
|
||||
- conf.check(function_name='localtime_r', header_name='time.h', define_name='HAVE_LOCALTIME_R',mandatory=False)
|
||||
+ conf.check_cc(
|
||||
+ msg="Checking for function 'posix_memalign' in stdlib.h",
|
||||
+ fragment = "#define _XOPEN_SOURCE 600\n #include <stdlib.h>\n int main(void) { return posix_memalign (0, 64, 1); }\n",
|
||||
+ define_name='HAVE_POSIX_MEMALIGN', execute = False, mandatory=False)
|
||||
+ conf.check_cc(
|
||||
+ msg="Checking for function 'getmntent' in mntent.h",
|
||||
+ fragment = "#include <mntent.h>\n int main(void) { return (int)getmntent(0); }\n",
|
||||
+ define_name='HAVE_GETMNTENT', execute = False, mandatory=False)
|
||||
+ conf.check_cc(
|
||||
+ msg="Checking for function 'localtime_r' in time.h",
|
||||
+ fragment = "#include <time.h>\n int main(void) { return localtime_r(NULL, NULL); }\n",
|
||||
+ define_name='HAVE_LOCALTIME_R', execute = False, mandatory=False)
|
||||
|
||||
# Boost headers
|
||||
autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp')
|
||||
@@ -161,7 +170,7 @@ def build(bld):
|
||||
obj.includes = ['.']
|
||||
obj.name = 'libpbd'
|
||||
obj.target = 'pbd'
|
||||
- obj.uselib = 'GLIBMM SIGCPP XML UUID SNDFILE GIOMM ARCHIVE CURL'
|
||||
+ obj.uselib = 'GLIBMM SIGCPP XML UUID SNDFILE GIOMM ARCHIVE CURL XML'
|
||||
if sys.platform == 'darwin':
|
||||
TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc']
|
||||
if 'cocoa_open_uri.mm' not in obj.source:
|
||||
diff --git a/libs/plugins/a-comp.lv2/wscript b/libs/plugins/a-comp.lv2/wscript
|
||||
index f0ebb1d33d..99d7bb03f1 100644
|
||||
--- a/libs/plugins/a-comp.lv2/wscript
|
||||
+++ b/libs/plugins/a-comp.lv2/wscript
|
||||
@@ -25,15 +25,16 @@ def build(bld):
|
||||
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
|
||||
module_ext = module_pat[module_pat.rfind('.'):]
|
||||
|
||||
- if bld.is_defined ('HAVE_LV2'):
|
||||
+ if bld.is_defined('HAVE_LV2'):
|
||||
# Build RDF files
|
||||
for i in ['manifest.ttl', 'a-comp.ttl', 'a-comp#stereo.ttl', 'presets.ttl']:
|
||||
bld(features = 'subst',
|
||||
- source = i + '.in',
|
||||
- target = '../../LV2/%s/%s' % (bundle, i),
|
||||
- install_path = '${LV2DIR}/%s' % bundle,
|
||||
- chmod = Utils.O644,
|
||||
- LIB_EXT = module_ext)
|
||||
+ obj = bld(features='subst')
|
||||
+ obj.source = i + '.in'
|
||||
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
+ obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
+ obj.chmod = Utils.O644
|
||||
+ obj.dict = {'LIB_EXT': module_ext}
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
diff --git a/libs/plugins/a-delay.lv2/wscript b/libs/plugins/a-delay.lv2/wscript
|
||||
index 666ef0d5ab..2af05ff137 100644
|
||||
--- a/libs/plugins/a-delay.lv2/wscript
|
||||
+++ b/libs/plugins/a-delay.lv2/wscript
|
||||
@@ -25,15 +25,15 @@ def build(bld):
|
||||
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
|
||||
module_ext = module_pat[module_pat.rfind('.'):]
|
||||
|
||||
- if bld.is_defined ('HAVE_LV2'):
|
||||
+ if bld.is_defined('HAVE_LV2'):
|
||||
# Build RDF files
|
||||
for i in ['manifest.ttl', 'a-delay.ttl', 'presets.ttl']:
|
||||
- bld(features = 'subst',
|
||||
- source = i + '.in',
|
||||
- target = '../../LV2/%s/%s' % (bundle, i),
|
||||
- install_path = '${LV2DIR}/%s' % bundle,
|
||||
- chmod = Utils.O644,
|
||||
- LIB_EXT = module_ext)
|
||||
+ obj = bld(features='subst')
|
||||
+ obj.source = i + '.in'
|
||||
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
+ obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
+ obj.chmod = Utils.O644
|
||||
+ obj.dict = {'LIB_EXT': module_ext}
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
diff --git a/libs/plugins/a-eq.lv2/wscript b/libs/plugins/a-eq.lv2/wscript
|
||||
index 0610ba2eea..e36a804f7f 100644
|
||||
--- a/libs/plugins/a-eq.lv2/wscript
|
||||
+++ b/libs/plugins/a-eq.lv2/wscript
|
||||
@@ -25,15 +25,15 @@ def build(bld):
|
||||
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
|
||||
module_ext = module_pat[module_pat.rfind('.'):]
|
||||
|
||||
- if bld.is_defined ('HAVE_LV2'):
|
||||
+ if bld.is_defined('HAVE_LV2'):
|
||||
# Build RDF files
|
||||
for i in ['manifest.ttl', 'a-eq.ttl']:
|
||||
- bld(features = 'subst',
|
||||
- source = i + '.in',
|
||||
- target = '../../LV2/%s/%s' % (bundle, i),
|
||||
- install_path = '${LV2DIR}/%s' % bundle,
|
||||
- chmod = Utils.O644,
|
||||
- LIB_EXT = module_ext)
|
||||
+ obj = bld(features='subst')
|
||||
+ obj.source = i + '.in'
|
||||
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
+ obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
+ obj.chmod = Utils.O644
|
||||
+ obj.dict = {'LIB_EXT': module_ext}
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
diff --git a/libs/plugins/a-fluidsynth.lv2/wscript b/libs/plugins/a-fluidsynth.lv2/wscript
|
||||
index af6fcf08a8..3a093259d6 100644
|
||||
--- a/libs/plugins/a-fluidsynth.lv2/wscript
|
||||
+++ b/libs/plugins/a-fluidsynth.lv2/wscript
|
||||
@@ -24,15 +24,15 @@ def build(bld):
|
||||
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
|
||||
module_ext = module_pat[module_pat.rfind('.'):]
|
||||
|
||||
- if bld.is_defined ('HAVE_LV2'):
|
||||
+ if bld.is_defined('HAVE_LV2'):
|
||||
# Build RDF files
|
||||
for i in ['manifest.ttl', 'a-fluidsynth.ttl']:
|
||||
- bld(features = 'subst',
|
||||
- source = i + '.in',
|
||||
- target = '../../LV2/%s/%s' % (bundle, i),
|
||||
- install_path = '${LV2DIR}/%s' % bundle,
|
||||
- chmod = Utils.O644,
|
||||
- LIB_EXT = module_ext)
|
||||
+ obj = bld(features='subst')
|
||||
+ obj.source = i + '.in'
|
||||
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
+ obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
+ obj.chmod = Utils.O644
|
||||
+ obj.dict = {'LIB_EXT': module_ext}
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'cxx cshlib',
|
||||
@@ -42,7 +42,7 @@ def build(bld):
|
||||
includes = [ '../../ardour' ],
|
||||
target = '../../LV2/%s/a-fluidsynth' % bundle,
|
||||
install_path = '${LV2DIR}/%s' % bundle,
|
||||
- uselib = ['LIBFLUIDSYNTH'],
|
||||
+ uselib = ['LIBFLUIDSYNTH', 'GLIB'],
|
||||
use = ['LV2_1_0_0']
|
||||
)
|
||||
|
||||
diff --git a/libs/plugins/a-reverb.lv2/wscript b/libs/plugins/a-reverb.lv2/wscript
|
||||
index 35601f2179..3eb5ce10bc 100644
|
||||
--- a/libs/plugins/a-reverb.lv2/wscript
|
||||
+++ b/libs/plugins/a-reverb.lv2/wscript
|
||||
@@ -24,15 +24,15 @@ def build(bld):
|
||||
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
|
||||
module_ext = module_pat[module_pat.rfind('.'):]
|
||||
|
||||
- if bld.is_defined ('HAVE_LV2'):
|
||||
+ if bld.is_defined('HAVE_LV2'):
|
||||
# Build RDF files
|
||||
for i in ['manifest.ttl', 'a-reverb.ttl']:
|
||||
- bld(features = 'subst',
|
||||
- source = i + '.in',
|
||||
- target = '../../LV2/%s/%s' % (bundle, i),
|
||||
- install_path = '${LV2DIR}/%s' % bundle,
|
||||
- chmod = Utils.O644,
|
||||
- LIB_EXT = module_ext)
|
||||
+ obj = bld(features='subst')
|
||||
+ obj.source = i + '.in'
|
||||
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
+ obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
+ obj.chmod = Utils.O644
|
||||
+ obj.dict = {'LIB_EXT': module_ext}
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
diff --git a/libs/plugins/reasonablesynth.lv2/wscript b/libs/plugins/reasonablesynth.lv2/wscript
|
||||
index cedda4c308..0eb5c55a04 100644
|
||||
--- a/libs/plugins/reasonablesynth.lv2/wscript
|
||||
+++ b/libs/plugins/reasonablesynth.lv2/wscript
|
||||
@@ -24,15 +24,15 @@ def build(bld):
|
||||
module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN)
|
||||
module_ext = module_pat[module_pat.rfind('.'):]
|
||||
|
||||
- if bld.is_defined ('HAVE_LV2'):
|
||||
+ if bld.is_defined('HAVE_LV2'):
|
||||
# Build RDF files
|
||||
for i in ['manifest.ttl', 'reasonablesynth.ttl']:
|
||||
- bld(features = 'subst',
|
||||
- source = i + '.in',
|
||||
- target = '../../LV2/%s/%s' % (bundle, i),
|
||||
- install_path = '${LV2DIR}/%s' % bundle,
|
||||
- chmod = Utils.O644,
|
||||
- LIB_EXT = module_ext)
|
||||
+ obj = bld(features='subst')
|
||||
+ obj.source = i + '.in'
|
||||
+ obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
+ obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
+ obj.chmod = Utils.O644
|
||||
+ obj.dict = {'LIB_EXT': module_ext}
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
diff --git a/libs/ptformat/wscript b/libs/ptformat/wscript
|
||||
index 4d381234fe..8dc9ff7430 100644
|
||||
--- a/libs/ptformat/wscript
|
||||
+++ b/libs/ptformat/wscript
|
||||
@@ -35,6 +35,7 @@ def build(bld):
|
||||
obj.name = 'libptformat'
|
||||
obj.target = 'ptformat'
|
||||
obj.use = 'libardour'
|
||||
+ obj.uselib = 'GLIBMM'
|
||||
autowaf.ensure_visible_symbols (obj, True)
|
||||
obj.vnum = LIBPTFORMAT_LIB_VERSION
|
||||
obj.install_path = bld.env['LIBDIR']
|
||||
diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript
|
||||
index 4d0dba6750..5bbe7d3946 100644
|
||||
--- a/libs/surfaces/osc/wscript
|
||||
+++ b/libs/surfaces/osc/wscript
|
||||
@@ -30,7 +30,7 @@ def build(bld):
|
||||
obj.includes = ['.', './osc']
|
||||
obj.name = 'libardour_osc'
|
||||
obj.target = 'ardour_osc'
|
||||
- obj.uselib = 'LO GTKMM GTK GDK'
|
||||
+ obj.uselib = 'LO GTKMM GTK GDK XML'
|
||||
obj.use = 'libardour libardour_cp libgtkmm2ext libpbd'
|
||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'surfaces')
|
||||
|
||||
diff --git a/libs/surfaces/push2/wscript b/libs/surfaces/push2/wscript
|
||||
index 9c75f9d69f..f7a5134153 100644
|
||||
--- a/libs/surfaces/push2/wscript
|
||||
+++ b/libs/surfaces/push2/wscript
|
||||
@@ -21,28 +21,28 @@ def build(bld):
|
||||
push2.cc
|
||||
buttons.cc
|
||||
canvas.cc
|
||||
- interface.cc
|
||||
+ interface.cc
|
||||
midi_byte_array.cc
|
||||
leds.cc
|
||||
level_meter.cc
|
||||
- gui.cc
|
||||
- knob.cc
|
||||
- layout.cc
|
||||
- menu.cc
|
||||
- mix.cc
|
||||
- scale.cc
|
||||
- splash.cc
|
||||
- track_mix.cc
|
||||
- utils.cc
|
||||
+ gui.cc
|
||||
+ knob.cc
|
||||
+ layout.cc
|
||||
+ menu.cc
|
||||
+ mix.cc
|
||||
+ scale.cc
|
||||
+ splash.cc
|
||||
+ track_mix.cc
|
||||
+ utils.cc
|
||||
'''
|
||||
obj.export_includes = ['.']
|
||||
obj.defines = [ 'PACKAGE="ardour_push2"' ]
|
||||
obj.defines += [ 'ARDOURSURFACE_DLL_EXPORTS' ]
|
||||
obj.defines += [ 'VERSIONSTRING="' + bld.env['VERSION'] + '"' ]
|
||||
- obj.includes = [ '.', './push2']
|
||||
+ obj.includes = ['.', './push2']
|
||||
obj.name = 'libardour_push2'
|
||||
obj.target = 'ardour_push2'
|
||||
- obj.uselib = 'CAIROMM PANGOMM USB GTKMM SIGCPP'
|
||||
+ obj.uselib = 'CAIROMM PANGOMM USB GTKMM SIGCPP XML'
|
||||
obj.use = 'libardour libardour_cp libgtkmm2ext libpbd libevoral libcanvas libtimecode'
|
||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'surfaces')
|
||||
|
||||
diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript
|
||||
index 03d01635a1..d38296f37f 100644
|
||||
--- a/libs/surfaces/wiimote/wscript
|
||||
+++ b/libs/surfaces/wiimote/wscript
|
||||
@@ -24,7 +24,7 @@ def build(bld):
|
||||
obj.includes = ['.', '../libs']
|
||||
obj.name = 'libardour_wiimote'
|
||||
obj.target = 'ardour_wiimote'
|
||||
- obj.uselib = 'GTKMM CWIID'
|
||||
+ obj.uselib = 'GTKMM CWIID XML'
|
||||
obj.use = 'libardour libardour_cp libgtkmm2ext'
|
||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'surfaces')
|
||||
|
||||
diff --git a/libs/widgets/wscript b/libs/widgets/wscript
|
||||
index 0559abe4dc..2216c38348 100644
|
||||
--- a/libs/widgets/wscript
|
||||
+++ b/libs/widgets/wscript
|
||||
@@ -76,7 +76,7 @@ def build(bld):
|
||||
obj.defines = [ ]
|
||||
|
||||
obj.export_includes = ['.']
|
||||
- obj.includes = ['.']
|
||||
+ obj.includes = ['.'] + bld.env['INCLUDES_GLIB']
|
||||
obj.uselib = 'SIGCPP CAIROMM GTKMM BOOST XML'
|
||||
obj.use = [ 'libpbd', 'libgtkmm2ext' ]
|
||||
obj.name = 'libwidgets'
|
||||
diff --git a/session_utils/wscript b/session_utils/wscript
|
||||
index 5fe9445426..a98694f3d6 100644
|
||||
--- a/session_utils/wscript
|
||||
+++ b/session_utils/wscript
|
||||
@@ -86,7 +86,7 @@ def build(bld):
|
||||
utils = bld.path.ant_glob('*.cc', excl=['example.cc', 'common.cc'])
|
||||
|
||||
for util in utils:
|
||||
- fn = str(util)[:-3]
|
||||
+ fn = os.path.splitext(os.path.basename(str(util)))[0]
|
||||
build_ardour_util(bld, fn)
|
||||
if bld.env['build_target'] != 'mingw':
|
||||
bld.symlink_as(bld.env['BINDIR'] + '/' + pgmprefix + "-" + fn, bld.env['LIBDIR'] + '/utils/ardour-util.sh')
|
||||
diff --git a/tools/bb/wscript b/tools/bb/wscript
|
||||
index e419fa2465..3e9fd8d2d7 100644
|
||||
--- a/tools/bb/wscript
|
||||
+++ b/tools/bb/wscript
|
||||
@@ -12,14 +12,13 @@ def configure(ctx):
|
||||
pass
|
||||
|
||||
def build(bld):
|
||||
- obj = bld (features = 'cxx c cxxprogram')
|
||||
- obj.install_path = None
|
||||
- obj.source = [ 'bb.cc', 'gui.cc', 'misc.cc' ]
|
||||
- obj.target = 'bb'
|
||||
- obj.includes = ['.', '../libs']
|
||||
- obj.ldflags = ['-no-undefined']
|
||||
- obj.use = [ 'libardour', 'libevoral', ]
|
||||
- obj.uselib = ' JACK GTKMM '
|
||||
+ obj = bld (features = 'cxx c cxxprogram')
|
||||
+ obj.install_path = None
|
||||
+ obj.source = [ 'bb.cc', 'gui.cc', 'misc.cc' ]
|
||||
+ obj.target = 'bb'
|
||||
+ obj.includes = ['.', '../libs']
|
||||
+ obj.use = [ 'libardour', 'libevoral', ]
|
||||
+ obj.uselib = 'JACK GTKMM XML'
|
||||
|
||||
wrapper_subst_dict = {
|
||||
'INSTALL_PREFIX' : bld.env['PREFIX'],
|
||||
diff --git a/tools/luadevel/wscript b/tools/luadevel/wscript
|
||||
index 3190380091..03889c72d7 100755
|
||||
--- a/tools/luadevel/wscript
|
||||
+++ b/tools/luadevel/wscript
|
||||
@@ -18,7 +18,7 @@ def options(opt):
|
||||
def configure(conf):
|
||||
conf.load('misc')
|
||||
conf.load('compiler_cxx')
|
||||
- conf.check_cc(function_name='readline',
|
||||
+ conf.check_cc(
|
||||
header_name='stdio.h readline/readline.h',
|
||||
lib='readline',
|
||||
uselib_store='READLINE',
|
||||
diff --git a/tools/misc.py b/tools/misc.py
|
||||
new file mode 100644
|
||||
index 0000000000..b82cdb63ba
|
||||
--- /dev/null
|
||||
+++ b/tools/misc.py
|
||||
@@ -0,0 +1,355 @@
|
||||
+#!/usr/bin/env python
|
||||
+# encoding: utf-8
|
||||
+# Thomas Nagy, 2006-2010 (ita)
|
||||
+
|
||||
+"""
|
||||
+This tool is totally deprecated
|
||||
+
|
||||
+Try using:
|
||||
+ .pc.in files for .pc files
|
||||
+ the feature intltool_in - see demos/intltool
|
||||
+ make-like rules
|
||||
+"""
|
||||
+
|
||||
+import shutil, re, os
|
||||
+from waflib import TaskGen, Node, Task, Utils, Build, Errors
|
||||
+from waflib.TaskGen import feature, after_method, before_method
|
||||
+from waflib.Logs import debug
|
||||
+
|
||||
+def copy_attrs(orig, dest, names, only_if_set=False):
|
||||
+ """
|
||||
+ copy class attributes from an object to another
|
||||
+ """
|
||||
+ for a in Utils.to_list(names):
|
||||
+ u = getattr(orig, a, ())
|
||||
+ if u or not only_if_set:
|
||||
+ setattr(dest, a, u)
|
||||
+
|
||||
+def copy_func(tsk):
|
||||
+ "Make a file copy. This might be used to make other kinds of file processing (even calling a compiler is possible)"
|
||||
+ env = tsk.env
|
||||
+ infile = tsk.inputs[0].abspath()
|
||||
+ outfile = tsk.outputs[0].abspath()
|
||||
+ try:
|
||||
+ shutil.copy2(infile, outfile)
|
||||
+ except (OSError, IOError):
|
||||
+ return 1
|
||||
+ else:
|
||||
+ if tsk.chmod: os.chmod(outfile, tsk.chmod)
|
||||
+ return 0
|
||||
+
|
||||
+def action_process_file_func(tsk):
|
||||
+ "Ask the function attached to the task to process it"
|
||||
+ if not tsk.fun: raise Errors.WafError('task must have a function attached to it for copy_func to work!')
|
||||
+ return tsk.fun(tsk)
|
||||
+
|
||||
+@feature('cmd')
|
||||
+def apply_cmd(self):
|
||||
+ "call a command everytime"
|
||||
+ if not self.fun: raise Errors.WafError('cmdobj needs a function!')
|
||||
+ tsk = Task.TaskBase()
|
||||
+ tsk.fun = self.fun
|
||||
+ tsk.env = self.env
|
||||
+ self.tasks.append(tsk)
|
||||
+ tsk.install_path = self.install_path
|
||||
+
|
||||
+@feature('copy')
|
||||
+@before_method('process_source')
|
||||
+def apply_copy(self):
|
||||
+ Utils.def_attrs(self, fun=copy_func)
|
||||
+ self.default_install_path = 0
|
||||
+
|
||||
+ lst = self.to_list(self.source)
|
||||
+ self.meths.remove('process_source')
|
||||
+
|
||||
+ for filename in lst:
|
||||
+ node = self.path.find_resource(filename)
|
||||
+ if not node: raise Errors.WafError('cannot find input file %s for processing' % filename)
|
||||
+
|
||||
+ target = self.target
|
||||
+ if not target or len(lst)>1: target = node.name
|
||||
+
|
||||
+ # TODO the file path may be incorrect
|
||||
+ newnode = self.path.find_or_declare(target)
|
||||
+
|
||||
+ tsk = self.create_task('copy', node, newnode)
|
||||
+ tsk.fun = self.fun
|
||||
+ tsk.chmod = getattr(self, 'chmod', Utils.O644)
|
||||
+
|
||||
+ if not tsk.env:
|
||||
+ tsk.debug()
|
||||
+ raise Errors.WafError('task without an environment')
|
||||
+
|
||||
+####################
|
||||
+## command-output ####
|
||||
+####################
|
||||
+
|
||||
+class cmd_arg(object):
|
||||
+ """command-output arguments for representing files or folders"""
|
||||
+ def __init__(self, name, template='%s'):
|
||||
+ self.name = name
|
||||
+ self.template = template
|
||||
+ self.node = None
|
||||
+
|
||||
+class input_file(cmd_arg):
|
||||
+ def find_node(self, base_path):
|
||||
+ assert isinstance(base_path, Node.Node)
|
||||
+ self.node = base_path.find_resource(self.name)
|
||||
+ if self.node is None:
|
||||
+ raise Errors.WafError("Input file %s not found in " % (self.name, base_path))
|
||||
+
|
||||
+ def get_path(self, env, absolute):
|
||||
+ if absolute:
|
||||
+ return self.template % self.node.abspath()
|
||||
+ else:
|
||||
+ return self.template % self.node.srcpath()
|
||||
+
|
||||
+class output_file(cmd_arg):
|
||||
+ def find_node(self, base_path):
|
||||
+ assert isinstance(base_path, Node.Node)
|
||||
+ self.node = base_path.find_or_declare(self.name)
|
||||
+ if self.node is None:
|
||||
+ raise Errors.WafError("Output file %s not found in " % (self.name, base_path))
|
||||
+
|
||||
+ def get_path(self, env, absolute):
|
||||
+ if absolute:
|
||||
+ return self.template % self.node.abspath()
|
||||
+ else:
|
||||
+ return self.template % self.node.bldpath()
|
||||
+
|
||||
+class cmd_dir_arg(cmd_arg):
|
||||
+ def find_node(self, base_path):
|
||||
+ assert isinstance(base_path, Node.Node)
|
||||
+ self.node = base_path.find_dir(self.name)
|
||||
+ if self.node is None:
|
||||
+ raise Errors.WafError("Directory %s not found in " % (self.name, base_path))
|
||||
+
|
||||
+class input_dir(cmd_dir_arg):
|
||||
+ def get_path(self, dummy_env, dummy_absolute):
|
||||
+ return self.template % self.node.abspath()
|
||||
+
|
||||
+class output_dir(cmd_dir_arg):
|
||||
+ def get_path(self, env, dummy_absolute):
|
||||
+ return self.template % self.node.abspath()
|
||||
+
|
||||
+
|
||||
+class command_output(Task.Task):
|
||||
+ color = "BLUE"
|
||||
+ def __init__(self, env, command, command_node, command_args, stdin, stdout, cwd, os_env, stderr):
|
||||
+ Task.Task.__init__(self, env=env)
|
||||
+ assert isinstance(command, (str, Node.Node))
|
||||
+ self.command = command
|
||||
+ self.command_args = command_args
|
||||
+ self.stdin = stdin
|
||||
+ self.stdout = stdout
|
||||
+ self.cwd = cwd
|
||||
+ self.os_env = os_env
|
||||
+ self.stderr = stderr
|
||||
+
|
||||
+ if command_node is not None: self.dep_nodes = [command_node]
|
||||
+ self.dep_vars = [] # additional environment variables to look
|
||||
+
|
||||
+ def run(self):
|
||||
+ task = self
|
||||
+ #assert len(task.inputs) > 0
|
||||
+
|
||||
+ def input_path(node, template):
|
||||
+ if task.cwd is None:
|
||||
+ return template % node.bldpath()
|
||||
+ else:
|
||||
+ return template % node.abspath()
|
||||
+ def output_path(node, template):
|
||||
+ fun = node.abspath
|
||||
+ if task.cwd is None: fun = node.bldpath
|
||||
+ return template % fun()
|
||||
+
|
||||
+ if isinstance(task.command, Node.Node):
|
||||
+ argv = [input_path(task.command, '%s')]
|
||||
+ else:
|
||||
+ argv = [task.command]
|
||||
+
|
||||
+ for arg in task.command_args:
|
||||
+ if isinstance(arg, str):
|
||||
+ argv.append(arg)
|
||||
+ else:
|
||||
+ assert isinstance(arg, cmd_arg)
|
||||
+ argv.append(arg.get_path(task.env, (task.cwd is not None)))
|
||||
+
|
||||
+ if task.stdin:
|
||||
+ stdin = open(input_path(task.stdin, '%s'))
|
||||
+ else:
|
||||
+ stdin = None
|
||||
+
|
||||
+ if task.stdout:
|
||||
+ stdout = open(output_path(task.stdout, '%s'), "w")
|
||||
+ else:
|
||||
+ stdout = None
|
||||
+
|
||||
+ if task.stderr:
|
||||
+ stderr = open(output_path(task.stderr, '%s'), "w")
|
||||
+ else:
|
||||
+ stderr = None
|
||||
+
|
||||
+ if task.cwd is None:
|
||||
+ cwd = ('None (actually %r)' % os.getcwd())
|
||||
+ else:
|
||||
+ cwd = repr(task.cwd)
|
||||
+ debug("command-output: cwd=%s, stdin=%r, stdout=%r, argv=%r" %
|
||||
+ (cwd, stdin, stdout, argv))
|
||||
+
|
||||
+ if task.os_env is None:
|
||||
+ os_env = os.environ
|
||||
+ else:
|
||||
+ os_env = task.os_env
|
||||
+ command = Utils.subprocess.Popen(argv, stdin=stdin, stdout=stdout, stderr=stderr, cwd=task.cwd, env=os_env)
|
||||
+ return command.wait()
|
||||
+
|
||||
+@feature('command-output')
|
||||
+def init_cmd_output(self):
|
||||
+ Utils.def_attrs(self,
|
||||
+ stdin = None,
|
||||
+ stdout = None,
|
||||
+ stderr = None,
|
||||
+ # the command to execute
|
||||
+ command = None,
|
||||
+
|
||||
+ # whether it is an external command; otherwise it is assumed
|
||||
+ # to be an executable binary or script that lives in the
|
||||
+ # source or build tree.
|
||||
+ command_is_external = False,
|
||||
+
|
||||
+ # extra parameters (argv) to pass to the command (excluding
|
||||
+ # the command itself)
|
||||
+ argv = [],
|
||||
+
|
||||
+ # dependencies to other objects -> this is probably not what you want (ita)
|
||||
+ # values must be 'task_gen' instances (not names!)
|
||||
+ dependencies = [],
|
||||
+
|
||||
+ # dependencies on env variable contents
|
||||
+ dep_vars = [],
|
||||
+
|
||||
+ # input files that are implicit, i.e. they are not
|
||||
+ # stdin, nor are they mentioned explicitly in argv
|
||||
+ hidden_inputs = [],
|
||||
+
|
||||
+ # output files that are implicit, i.e. they are not
|
||||
+ # stdout, nor are they mentioned explicitly in argv
|
||||
+ hidden_outputs = [],
|
||||
+
|
||||
+ # change the subprocess to this cwd (must use obj.input_dir() or output_dir() here)
|
||||
+ cwd = None,
|
||||
+
|
||||
+ # OS environment variables to pass to the subprocess
|
||||
+ # if None, use the default environment variables unchanged
|
||||
+ os_env = None)
|
||||
+
|
||||
+@feature('command-output')
|
||||
+@after_method('init_cmd_output')
|
||||
+def apply_cmd_output(self):
|
||||
+ if self.command is None:
|
||||
+ raise Errors.WafError("command-output missing command")
|
||||
+ if self.command_is_external:
|
||||
+ cmd = self.command
|
||||
+ cmd_node = None
|
||||
+ else:
|
||||
+ cmd_node = self.path.find_resource(self.command)
|
||||
+ assert cmd_node is not None, ('''Could not find command '%s' in source tree.
|
||||
+Hint: if this is an external command,
|
||||
+use command_is_external=True''') % (self.command,)
|
||||
+ cmd = cmd_node
|
||||
+
|
||||
+ if self.cwd is None:
|
||||
+ cwd = None
|
||||
+ else:
|
||||
+ assert isinstance(cwd, CmdDirArg)
|
||||
+ self.cwd.find_node(self.path)
|
||||
+
|
||||
+ args = []
|
||||
+ inputs = []
|
||||
+ outputs = []
|
||||
+
|
||||
+ for arg in self.argv:
|
||||
+ if isinstance(arg, cmd_arg):
|
||||
+ arg.find_node(self.path)
|
||||
+ if isinstance(arg, input_file):
|
||||
+ inputs.append(arg.node)
|
||||
+ if isinstance(arg, output_file):
|
||||
+ outputs.append(arg.node)
|
||||
+
|
||||
+ if self.stdout is None:
|
||||
+ stdout = None
|
||||
+ else:
|
||||
+ assert isinstance(self.stdout, str)
|
||||
+ stdout = self.path.find_or_declare(self.stdout)
|
||||
+ if stdout is None:
|
||||
+ raise Errors.WafError("File %s not found" % (self.stdout,))
|
||||
+ outputs.append(stdout)
|
||||
+
|
||||
+ if self.stderr is None:
|
||||
+ stderr = None
|
||||
+ else:
|
||||
+ assert isinstance(self.stderr, str)
|
||||
+ stderr = self.path.find_or_declare(self.stderr)
|
||||
+ if stderr is None:
|
||||
+ raise Errors.WafError("File %s not found" % (self.stderr,))
|
||||
+ outputs.append(stderr)
|
||||
+
|
||||
+ if self.stdin is None:
|
||||
+ stdin = None
|
||||
+ else:
|
||||
+ assert isinstance(self.stdin, str)
|
||||
+ stdin = self.path.find_resource(self.stdin)
|
||||
+ if stdin is None:
|
||||
+ raise Errors.WafError("File %s not found" % (self.stdin,))
|
||||
+ inputs.append(stdin)
|
||||
+
|
||||
+ for hidden_input in self.to_list(self.hidden_inputs):
|
||||
+ node = self.path.find_resource(hidden_input)
|
||||
+ if node is None:
|
||||
+ raise Errors.WafError("File %s not found in dir %s" % (hidden_input, self.path))
|
||||
+ inputs.append(node)
|
||||
+
|
||||
+ for hidden_output in self.to_list(self.hidden_outputs):
|
||||
+ node = self.path.find_or_declare(hidden_output)
|
||||
+ if node is None:
|
||||
+ raise Errors.WafError("File %s not found in dir %s" % (hidden_output, self.path))
|
||||
+ outputs.append(node)
|
||||
+
|
||||
+ if not (inputs or getattr(self, 'no_inputs', None)):
|
||||
+ raise Errors.WafError('command-output objects must have at least one input file or give self.no_inputs')
|
||||
+ if not (outputs or getattr(self, 'no_outputs', None)):
|
||||
+ raise Errors.WafError('command-output objects must have at least one output file or give self.no_outputs')
|
||||
+
|
||||
+ cwd = self.bld.variant_dir
|
||||
+ task = command_output(self.env, cmd, cmd_node, self.argv, stdin, stdout, cwd, self.os_env, stderr)
|
||||
+ task.generator = self
|
||||
+ copy_attrs(self, task, 'before after ext_in ext_out', only_if_set=True)
|
||||
+ self.tasks.append(task)
|
||||
+
|
||||
+ task.inputs = inputs
|
||||
+ task.outputs = outputs
|
||||
+ task.dep_vars = self.to_list(self.dep_vars)
|
||||
+
|
||||
+ for dep in self.dependencies:
|
||||
+ assert dep is not self
|
||||
+ dep.post()
|
||||
+ for dep_task in dep.tasks:
|
||||
+ task.set_run_after(dep_task)
|
||||
+
|
||||
+ if not task.inputs:
|
||||
+ # the case for svnversion, always run, and update the output nodes
|
||||
+ task.runnable_status = type(Task.TaskBase.run)(runnable_status, task, task.__class__) # always run
|
||||
+ task.post_run = type(Task.TaskBase.run)(post_run, task, task.__class__)
|
||||
+
|
||||
+ # TODO the case with no outputs?
|
||||
+
|
||||
+def post_run(self):
|
||||
+ for x in self.outputs:
|
||||
+ x.sig = Utils.h_file(x.abspath())
|
||||
+
|
||||
+def runnable_status(self):
|
||||
+ return self.RUN_ME
|
||||
+
|
||||
+Task.task_factory('copy', vars=[], func=action_process_file_func)
|
||||
+
|
||||
diff --git a/wscript b/wscript
|
||||
index 4b5acb0ad7..f5d1b28e56 100644
|
||||
--- a/wscript
|
||||
+++ b/wscript
|
||||
@@ -1011,9 +1011,15 @@ def configure(conf):
|
||||
if Options.options.dist_target != 'mingw':
|
||||
if Options.options.dist_target != 'msvc' and re.search ("openbsd", sys.platform) == None:
|
||||
if re.search ("freebsd", sys.platform) != None:
|
||||
- conf.check_cc(function_name='dlopen', header_name='dlfcn.h', uselib_store='DL')
|
||||
+ conf.check_cc(
|
||||
+ msg="Checking for function 'dlopen' in dlfcn.h",
|
||||
+ fragment = "#include <dlfcn.h>\n int main(void) { dlopen (\"\", 0); return 0;}\n",
|
||||
+ uselib_store='DL', execute = False)
|
||||
else:
|
||||
- conf.check_cc(function_name='dlopen', header_name='dlfcn.h', lib='dl', uselib_store='DL')
|
||||
+ conf.check_cc(
|
||||
+ msg="Checking for function 'dlopen' in dlfcn.h",
|
||||
+ fragment = "#include <dlfcn.h>\n int main(void) { dlopen (\"\", 0); return 0;}\n",
|
||||
+ linkflags='-ldl', uselib_store='DL', execute = False)
|
||||
conf.check_cxx(fragment = "#include <boost/version.hpp>\nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n",
|
||||
execute = "1",
|
||||
mandatory = True,
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
From 19603d075f7013453c79711a646301df694c7b03 Mon Sep 17 00:00:00 2001
|
||||
From: Robin Gareus <robin@gareus.org>
|
||||
Date: Mon, 20 Jan 2020 23:08:55 +0100
|
||||
Subject: [PATCH 2/8] Update waf to v2.0.19
|
||||
|
||||
For oe:
|
||||
* Removed waf: we cannot patch binary files. Recipe ships waf
|
||||
* tools/misc.py was added from master in previous patch so no adjustment here
|
||||
|
||||
Upstream-Status: Backport [1]
|
||||
|
||||
[1] https://github.com/Ardour/ardour/commit/19603d075f7013453c79711a646301df694c7b03
|
||||
---
|
||||
doc/updating_waf.txt | 25 +++++++++++-------
|
||||
tools/autowaf.py | 11 ++++----
|
||||
tools/waf-str.patch | 11 ++++++++
|
||||
4 files changed, 31 insertions(+), 77 deletions(-)
|
||||
create mode 100644 tools/waf-str.patch
|
||||
|
||||
diff --git a/doc/updating_waf.txt b/doc/updating_waf.txt
|
||||
index 69c1225d63..0c192d4489 100644
|
||||
--- a/doc/updating_waf.txt
|
||||
+++ b/doc/updating_waf.txt
|
||||
@@ -1,15 +1,20 @@
|
||||
-Download waf (https://waf.io/)
|
||||
-
|
||||
-autowaf.py is present in the tools directory of the Ardour source code.
|
||||
-a patch for C++11/clang can be found in tools/waflib.patch (needed for waf 1.8.19)
|
||||
-
|
||||
-Current waf is build as follows;
|
||||
+# Download waf (https://waf.io/)
|
||||
+#
|
||||
+# autowaf.py and misc.py are present in the tools directory of the Ardour source code.
|
||||
+# - waf-str.patch is needed for py2/py3 compatible install_dir:
|
||||
+# * in py2 paths are byte-arrays and would need to be converted using .encode("utf-8")
|
||||
+# (otherwise waf expands them /t/o/p/a/t/h/s/l/i/k/e/t/h/i/s)
|
||||
+# * however py3 cannot handled encoded arrays:
|
||||
+# (TypeError: cannot use a string pattern on a bytes-like object)
|
||||
+#
|
||||
+# Current waf is build as follows:
|
||||
|
||||
ARDOURSRC=`pwd`
|
||||
cd /tmp
|
||||
-curl https://waf.io/waf-1.6.11.tar.bz2 | tar xj
|
||||
-cd waf-1.6.11
|
||||
+curl https://waf.io/waf-2.0.19.tar.bz2 | tar xj
|
||||
+cd waf-2.0.19
|
||||
+
|
||||
+patch -p1 < $ARDOURSRC/tools/waf-str.patch
|
||||
|
||||
-patch -p1 < $ARDOURSRC/tools/waflib.patch
|
||||
-./waf-light -v --make-waf --tools=misc,doxygen,$ARDOURSRC/tools/autowaf.py --prelude=''
|
||||
+./waf-light -v --make-waf --tools=misc,doxygen,$ARDOURSRC/tools/autowaf.py,$ARDOURSRC/tools/misc.py --prelude=''
|
||||
cp ./waf $ARDOURSRC/waf
|
||||
diff --git a/tools/autowaf.py b/tools/autowaf.py
|
||||
index f82b80a83f..375dc5909a 100644
|
||||
--- a/tools/autowaf.py
|
||||
+++ b/tools/autowaf.py
|
||||
@@ -140,14 +140,13 @@ def check_pkg(conf, name, **args):
|
||||
found = None
|
||||
pkg_var_name = 'PKG_' + name.replace('-', '_')
|
||||
pkg_name = name
|
||||
- if conf.env.PARDEBUG:
|
||||
- args['mandatory'] = False # Smash mandatory arg
|
||||
- found = conf.check_cfg(package=pkg_name + 'D', args="--cflags --libs", **args)
|
||||
- if found:
|
||||
- pkg_name += 'D'
|
||||
if mandatory:
|
||||
args['mandatory'] = True # Unsmash mandatory arg
|
||||
- if not found:
|
||||
+ if 'atleast_version' in args:
|
||||
+ if not 'msg' in args:
|
||||
+ args['msg'] = 'Checking for %r >= %s' %(pkg_name, args['atleast_version'])
|
||||
+ found = conf.check_cfg(package=pkg_name, args=[pkg_name + " >= " + args['atleast_version'], '--cflags', '--libs'], **args)
|
||||
+ else:
|
||||
found = conf.check_cfg(package=pkg_name, args="--cflags --libs", **args)
|
||||
if found:
|
||||
conf.env[pkg_var_name] = pkg_name
|
||||
|
||||
diff --git a/tools/waf-str.patch b/tools/waf-str.patch
|
||||
new file mode 100644
|
||||
index 0000000000..8d37f68d32
|
||||
--- /dev/null
|
||||
+++ b/tools/waf-str.patch
|
||||
@@ -0,0 +1,11 @@
|
||||
+--- a/waflib/Build.py 2020-01-21 15:01:13.864899388 +0100
|
||||
++++ b/waflib/Build.py 2020-01-21 15:01:59.573030630 +0100
|
||||
+@@ -953,7 +953,7 @@
|
||||
+ tsk.link = kw.get('link', '') or kw.get('install_from', '')
|
||||
+ tsk.relative_trick = kw.get('relative_trick', False)
|
||||
+ tsk.type = kw['type']
|
||||
+- tsk.install_to = tsk.dest = kw['install_to']
|
||||
++ tsk.install_to = tsk.dest = str(kw['install_to'])
|
||||
+ tsk.install_from = kw['install_from']
|
||||
+ tsk.relative_base = kw.get('cwd') or kw.get('relative_base', self.path)
|
||||
+ tsk.install_user = kw.get('install_user')
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
From 1d2cfd6f2d736144b8c81179126b5850a718f769 Mon Sep 17 00:00:00 2001
|
||||
From: Robin Gareus <robin@gareus.org>
|
||||
Date: Tue, 21 Jan 2020 02:23:51 +0100
|
||||
Subject: [PATCH 3/8] Change waf/darwin default compiler to prefer gcc (if
|
||||
available)
|
||||
|
||||
---
|
||||
wscript | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/wscript b/wscript
|
||||
index cb3980ed41..e1beb6a86d 100644
|
||||
--- a/wscript
|
||||
+++ b/wscript
|
||||
@@ -11,6 +11,13 @@ from waflib.Tools import winres
|
||||
from waflib.Build import Context
|
||||
from waflib.Build import BuildContext
|
||||
|
||||
+# Fixup OSX 10.5/10.6 builds
|
||||
+# prefer gcc, g++ 4.x over ancient clang-1.5
|
||||
+from waflib.Tools.compiler_c import c_compiler
|
||||
+from waflib.Tools.compiler_cxx import cxx_compiler
|
||||
+c_compiler['darwin'] = ['gcc', 'clang' ]
|
||||
+cxx_compiler['darwin'] = ['g++', 'clang++' ]
|
||||
+
|
||||
class i18n(BuildContext):
|
||||
cmd = 'i18n'
|
||||
fun = 'i18n'
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,128 +0,0 @@
|
||||
From 5a841ef4624ef4b776e578af80d2397241754b00 Mon Sep 17 00:00:00 2001
|
||||
From: Robin Gareus <robin@gareus.org>
|
||||
Date: Wed, 22 Jan 2020 00:47:33 +0100
|
||||
Subject: [PATCH 5/8] Tweaks to build/package scripts for new waf
|
||||
|
||||
* Windows: delete waf installed .dll.a files
|
||||
* Windows: override waf's conf.env.LIBDIR = conf.env.BINDIR
|
||||
with explicit --libdir
|
||||
* Windows: fix asm (`x86_64-w64-mingw32-as` -D flag is for
|
||||
debug messages, -D defines are not available)
|
||||
* Mac: override waf adding -install_name (and
|
||||
-Wl,-compatibility_version -Wl,-current_version)
|
||||
by moving -dynamiclib from linkflags to ldflags
|
||||
* Mac: Allow libs with compat version number suffix
|
||||
(not needed anymore, but may help in the future)
|
||||
|
||||
Upstream-Status: Backport [1]
|
||||
|
||||
[1] https://github.com/Ardour/ardour/commit/5a841ef4624ef4b776e578af80d2397241754b00
|
||||
---
|
||||
libs/ardour/wscript | 7 ++++++-
|
||||
tools/osx_packaging/osx_build | 2 +-
|
||||
tools/x-win/compile.sh | 3 ++-
|
||||
tools/x-win/package.sh | 1 +
|
||||
wscript | 17 +++++++++++++++++
|
||||
5 files changed, 27 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
|
||||
index 8a65daaaf0..a27826953a 100644
|
||||
--- a/libs/ardour/wscript
|
||||
+++ b/libs/ardour/wscript
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python
|
||||
from waflib.extras import autowaf as autowaf
|
||||
-from waflib import Options
|
||||
+from waflib import Options, Task, Tools
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
@@ -369,6 +369,11 @@ def build(bld):
|
||||
# micro increment <=> no interface changes
|
||||
LIBARDOUR_LIB_VERSION = "3.0.0"
|
||||
|
||||
+ # remove '${DEFINES_ST:DEFINES}' from run_str.
|
||||
+ # x86_64-w64-mingw32-as (mingw) -D flag is for debug messages
|
||||
+ if bld.env['build_target'] == 'mingw':
|
||||
+ class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
|
||||
+
|
||||
# operate on copy to avoid adding sources twice
|
||||
sources = list(libardour_sources)
|
||||
if bld.is_tracks_build():
|
||||
diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build
|
||||
index 2b417b86af..cb681bafd1 100755
|
||||
--- a/tools/osx_packaging/osx_build
|
||||
+++ b/tools/osx_packaging/osx_build
|
||||
@@ -449,7 +449,7 @@ while [ true ] ; do
|
||||
strip -u -r -arch all $file &>/dev/null
|
||||
fi
|
||||
|
||||
- deps=`otool -L $file | awk '{print $1}' | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | grep -v 'libjack\.' | grep -v "$(basename $file)"`
|
||||
+ deps=`otool -L $file | awk '{print $1}' | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | grep -v 'libjack\.' | egrep -v "$(basename $file .dylib).*.dylib"`
|
||||
# echo -n "."
|
||||
for dep in $deps ; do
|
||||
base=`basename $dep`
|
||||
diff --git a/tools/x-win/compile.sh b/tools/x-win/compile.sh
|
||||
index d778e921b5..4f54f6623d 100755
|
||||
--- a/tools/x-win/compile.sh
|
||||
+++ b/tools/x-win/compile.sh
|
||||
@@ -79,7 +79,8 @@ LDFLAGS="-L${PREFIX}/lib" ./waf configure \
|
||||
--dist-target=mingw \
|
||||
--also-include=${PREFIX}/include \
|
||||
$ARDOURCFG \
|
||||
- --prefix=${PREFIX}
|
||||
+ --prefix=${PREFIX} \
|
||||
+ --libdir=${PREFIX}/lib
|
||||
./waf ${CONCURRENCY}
|
||||
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
diff --git a/tools/x-win/package.sh b/tools/x-win/package.sh
|
||||
index bfb7381e41..032c45a192 100755
|
||||
--- a/tools/x-win/package.sh
|
||||
+++ b/tools/x-win/package.sh
|
||||
@@ -200,6 +200,7 @@ cp gtk2_ardour/icons/cursor_square/* $DESTDIR/share/${LOWERCASE_DIRNAME}/icons/
|
||||
# clean build-dir after depoyment
|
||||
echo " === bundle completed, cleaning up"
|
||||
./waf uninstall
|
||||
+find $DESTDIR -name "*.dll.a" | xargs rm
|
||||
echo " === complete"
|
||||
du -sh $DESTDIR
|
||||
|
||||
diff --git a/wscript b/wscript
|
||||
index d4724ecb72..9fd84bb2ca 100644
|
||||
--- a/wscript
|
||||
+++ b/wscript
|
||||
@@ -915,6 +915,12 @@ def configure(conf):
|
||||
conf.env.append_value ('CXXFLAGS', '-DSILENCE_AFTER')
|
||||
conf.define ('FREEBIE', 1)
|
||||
|
||||
+ # set explicit LIBDIR, otherwise mingw/windows builds use
|
||||
+ # conf.env.LIBDIR = conf.env.BINDIR and `waf install` fails
|
||||
+ # because $BINDIR/ardour6 is the main binary, and $LIBDIR/ardour6/ a directory
|
||||
+ if Options.options.libdir:
|
||||
+ conf.env.LIBDIR = Options.options.libdir
|
||||
+
|
||||
if Options.options.lv2dir:
|
||||
conf.env['LV2DIR'] = Options.options.lv2dir
|
||||
else:
|
||||
@@ -1247,6 +1253,17 @@ int main () { return 0; }
|
||||
# Fix utterly braindead FLAC include path to not smash assert.h
|
||||
conf.env['INCLUDES_FLAC'] = []
|
||||
|
||||
+ if sys.platform == 'darwin':
|
||||
+ # override waf's -install_name added in
|
||||
+ # waflib/Tools/ccroot.py when -dynamiclib is used
|
||||
+ if conf.env.LINKFLAGS_cshlib:
|
||||
+ conf.env.LINKFLAGS_cshlib = [];
|
||||
+ conf.env.LDFLAGS_cshlib = ['-dynamiclib']
|
||||
+
|
||||
+ if conf.env.LINKFLAGS_cxxshlib:
|
||||
+ conf.env.LINKFLAGS_cxxshlib = [];
|
||||
+ conf.env.LDFLAGS_cxxshlib = ['-dynamiclib']
|
||||
+
|
||||
config_text = open('libs/ardour/config_text.cc', "w")
|
||||
config_text.write('''#include "ardour/ardour.h"
|
||||
namespace ARDOUR {
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From 7c381dab6e0977f61f9bbd08bd1d20f0fe2abcf6 Mon Sep 17 00:00:00 2001
|
||||
From: Robin Gareus <robin@gareus.org>
|
||||
Date: Sat, 25 Jan 2020 04:17:53 +0100
|
||||
Subject: [PATCH 6/8] Downgrade "using all channels" warning to info - part 2
|
||||
|
||||
---
|
||||
libs/backends/alsa/alsa_audiobackend.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc
|
||||
index 6b044f9fd0..357b00c044 100644
|
||||
--- a/libs/backends/alsa/alsa_audiobackend.cc
|
||||
+++ b/libs/backends/alsa/alsa_audiobackend.cc
|
||||
@@ -883,7 +883,7 @@ AlsaAudioBackend::_start (bool for_latency_measurement)
|
||||
} else {
|
||||
_n_outputs = std::min (_n_outputs, _pcmi->nplay ());
|
||||
}
|
||||
- PBD::warning << _("AlsaAudioBackend: adjusted output channel count to match device.") << endmsg;
|
||||
+ PBD::info << _("AlsaAudioBackend: adjusted output channel count to match device.") << endmsg;
|
||||
}
|
||||
|
||||
if (_n_inputs != _pcmi->ncapt ()) {
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
From 4fe30364951ea46b93e3c93acbaf2f777343d131 Mon Sep 17 00:00:00 2001
|
||||
From: Robin Gareus <robin@gareus.org>
|
||||
Date: Sat, 25 Jan 2020 06:20:16 +0100
|
||||
Subject: [PATCH 7/8] Update waf2.x "subst" feature uses obj attributes
|
||||
|
||||
Upstrem-Status: Backport [1]
|
||||
|
||||
[1] https://github.com/Ardour/ardour/commit/4fe30364951ea46b93e3c93acbaf2f777343d131
|
||||
---
|
||||
libs/fst/wscript | 4 +---
|
||||
libs/plugins/a-comp.lv2/wscript | 2 +-
|
||||
libs/plugins/a-delay.lv2/wscript | 2 +-
|
||||
libs/plugins/a-eq.lv2/wscript | 2 +-
|
||||
libs/plugins/a-fluidsynth.lv2/wscript | 2 +-
|
||||
libs/plugins/a-reverb.lv2/wscript | 2 +-
|
||||
libs/plugins/reasonablesynth.lv2/wscript | 2 +-
|
||||
7 files changed, 7 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/libs/fst/wscript b/libs/fst/wscript
|
||||
index ca90b7207d..bbac8d6f27 100644
|
||||
--- a/libs/fst/wscript
|
||||
+++ b/libs/fst/wscript
|
||||
@@ -52,9 +52,7 @@ def build(bld):
|
||||
obj.target = 'ardour-vst-scanner'
|
||||
obj.chmod = Utils.O755
|
||||
obj.install_path = os.path.join(bld.env['LIBDIR'])
|
||||
- obj.dict = {
|
||||
- 'VERSION' : bld.env['VERSION'],
|
||||
- }
|
||||
+ obj.VERSION = bld.env['VERSION']
|
||||
|
||||
obj = bld (features = 'c cxx cxxprogram wine')
|
||||
obj.source = (
|
||||
diff --git a/libs/plugins/a-comp.lv2/wscript b/libs/plugins/a-comp.lv2/wscript
|
||||
index 99d7bb03f1..00099cb564 100644
|
||||
--- a/libs/plugins/a-comp.lv2/wscript
|
||||
+++ b/libs/plugins/a-comp.lv2/wscript
|
||||
@@ -34,7 +34,7 @@ def build(bld):
|
||||
obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
obj.chmod = Utils.O644
|
||||
- obj.dict = {'LIB_EXT': module_ext}
|
||||
+ obj.LIB_EXT = module_ext
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
diff --git a/libs/plugins/a-delay.lv2/wscript b/libs/plugins/a-delay.lv2/wscript
|
||||
index 2af05ff137..c28d7cabcf 100644
|
||||
--- a/libs/plugins/a-delay.lv2/wscript
|
||||
+++ b/libs/plugins/a-delay.lv2/wscript
|
||||
@@ -33,7 +33,7 @@ def build(bld):
|
||||
obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
obj.chmod = Utils.O644
|
||||
- obj.dict = {'LIB_EXT': module_ext}
|
||||
+ obj.LIB_EXT = module_ext
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
diff --git a/libs/plugins/a-eq.lv2/wscript b/libs/plugins/a-eq.lv2/wscript
|
||||
index e36a804f7f..6f380aa232 100644
|
||||
--- a/libs/plugins/a-eq.lv2/wscript
|
||||
+++ b/libs/plugins/a-eq.lv2/wscript
|
||||
@@ -33,7 +33,7 @@ def build(bld):
|
||||
obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
obj.chmod = Utils.O644
|
||||
- obj.dict = {'LIB_EXT': module_ext}
|
||||
+ obj.LIB_EXT = module_ext
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
diff --git a/libs/plugins/a-fluidsynth.lv2/wscript b/libs/plugins/a-fluidsynth.lv2/wscript
|
||||
index 3a093259d6..681ad1f489 100644
|
||||
--- a/libs/plugins/a-fluidsynth.lv2/wscript
|
||||
+++ b/libs/plugins/a-fluidsynth.lv2/wscript
|
||||
@@ -32,7 +32,7 @@ def build(bld):
|
||||
obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
obj.chmod = Utils.O644
|
||||
- obj.dict = {'LIB_EXT': module_ext}
|
||||
+ obj.LIB_EXT = module_ext
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'cxx cshlib',
|
||||
diff --git a/libs/plugins/a-reverb.lv2/wscript b/libs/plugins/a-reverb.lv2/wscript
|
||||
index 3eb5ce10bc..a11e2cf7af 100644
|
||||
--- a/libs/plugins/a-reverb.lv2/wscript
|
||||
+++ b/libs/plugins/a-reverb.lv2/wscript
|
||||
@@ -32,7 +32,7 @@ def build(bld):
|
||||
obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
obj.chmod = Utils.O644
|
||||
- obj.dict = {'LIB_EXT': module_ext}
|
||||
+ obj.LIB_EXT = module_ext
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
diff --git a/libs/plugins/reasonablesynth.lv2/wscript b/libs/plugins/reasonablesynth.lv2/wscript
|
||||
index 0eb5c55a04..ee54ce8bee 100644
|
||||
--- a/libs/plugins/reasonablesynth.lv2/wscript
|
||||
+++ b/libs/plugins/reasonablesynth.lv2/wscript
|
||||
@@ -32,7 +32,7 @@ def build(bld):
|
||||
obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
obj.install_path = '${LV2DIR}/%s' % bundle
|
||||
obj.chmod = Utils.O644
|
||||
- obj.dict = {'LIB_EXT': module_ext}
|
||||
+ obj.LIB_EXT = module_ext
|
||||
|
||||
# Build plugin library
|
||||
obj = bld(features = 'c cshlib',
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
From cf71cc33c44d25a5483ef3ed4ea994f845e0f9b8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
|
||||
Date: Sat, 25 Jan 2020 17:20:39 +0100
|
||||
Subject: [PATCH] a-comp.lv2/wscript: sync to master
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
---
|
||||
libs/plugins/a-comp.lv2/wscript | 12 +++++-------
|
||||
1 file changed, 5 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/libs/plugins/a-comp.lv2/wscript b/libs/plugins/a-comp.lv2/wscript
|
||||
index 00099cb564..c739e4bea7 100644
|
||||
--- a/libs/plugins/a-comp.lv2/wscript
|
||||
+++ b/libs/plugins/a-comp.lv2/wscript
|
||||
@@ -15,10 +15,9 @@ def options(opt):
|
||||
def configure(conf):
|
||||
conf.load('compiler_c')
|
||||
autowaf.configure(conf)
|
||||
- if Options.options.lv2:
|
||||
- autowaf.check_pkg(conf, 'lv2', atleast_version='1.0.0',
|
||||
- uselib_store='LV2_1_0_0')
|
||||
- autowaf.check_pkg(conf, 'cairo', uselib_store='CAIRO', atleast_version='1.12.0')
|
||||
+ autowaf.check_pkg(conf, 'lv2', atleast_version='1.0.0',
|
||||
+ uselib_store='LV2_1_0_0')
|
||||
+ autowaf.check_pkg(conf, 'cairo', uselib_store='CAIRO', atleast_version='1.12.0')
|
||||
|
||||
def build(bld):
|
||||
bundle = 'a-comp.lv2'
|
||||
@@ -28,7 +27,6 @@ def build(bld):
|
||||
if bld.is_defined('HAVE_LV2'):
|
||||
# Build RDF files
|
||||
for i in ['manifest.ttl', 'a-comp.ttl', 'a-comp#stereo.ttl', 'presets.ttl']:
|
||||
- bld(features = 'subst',
|
||||
obj = bld(features='subst')
|
||||
obj.source = i + '.in'
|
||||
obj.target = '../../LV2/%s/%s' % (bundle, i)
|
||||
@@ -40,8 +38,8 @@ def build(bld):
|
||||
obj = bld(features = 'c cshlib',
|
||||
source = 'a-comp.c',
|
||||
name = 'a-comp',
|
||||
- cflags = [ '-fPIC', bld.env['compiler_flags_dict']['c99'] ],
|
||||
- includes = [ '../../ardour' ],
|
||||
+ cflags = [ bld.env['compiler_flags_dict']['pic'], bld.env['compiler_flags_dict']['c99'] ],
|
||||
+ includes = [ '../../ardour', '../shared' ],
|
||||
target = '../../LV2/%s/a-comp' % bundle,
|
||||
install_path = '${LV2DIR}/%s' % bundle,
|
||||
uselib = 'CAIRO',
|
||||
--
|
||||
2.21.0
|
||||
|
||||
172
recipes-musicians/ardour/ardour5/waf-backport/waf
vendored
172
recipes-musicians/ardour/ardour5/waf-backport/waf
vendored
File diff suppressed because one or more lines are too long
@@ -1,127 +0,0 @@
|
||||
SUMMARY = "Ardour is a multi-channel digital audio workstation"
|
||||
HOMEPAGE = "http://ardour.org/"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b"
|
||||
|
||||
DEPENDS += " \
|
||||
gettext-native \
|
||||
gtk+ \
|
||||
gtkmm \
|
||||
cppunit \
|
||||
jack \
|
||||
alsa-lib \
|
||||
fftw \
|
||||
vamp-plugin-sdk \
|
||||
aubio \
|
||||
taglib \
|
||||
boost \
|
||||
virtual/libx11 \
|
||||
dssi \
|
||||
zlib \
|
||||
lrdf \
|
||||
rubberband \
|
||||
suil \
|
||||
lilv \
|
||||
libarchive \
|
||||
libltc \
|
||||
qm-dsp \
|
||||
fluidsynth \
|
||||
"
|
||||
|
||||
inherit waf features_check gtk-icon-cache pkgconfig python3native mime-xdg siteinfo
|
||||
|
||||
REQUIRED_DISTRO_FEATURES = "x11"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/Ardour/ardour.git \
|
||||
file://waf-backport/waf \
|
||||
file://waf-backport/0001-Towards-waf-python-2-3-support.patch \
|
||||
file://waf-backport/0002-Update-waf-to-v2.0.19.patch \
|
||||
file://waf-backport/0003-Change-waf-darwin-default-compiler-to-prefer-gcc-if-.patch \
|
||||
file://waf-backport/0004-Tweaks-to-build-package-scripts-for-new-waf.patch \
|
||||
file://waf-backport/0005-Downgrade-using-all-channels-warning-to-info-part-2.patch \
|
||||
file://waf-backport/0006-Update-waf2.x-subst-feature-uses-obj-attributes.patch \
|
||||
file://waf-backport/0007-a-comp.lv2-wscript-sync-to-master.patch \
|
||||
file://0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch \
|
||||
file://0002-Use-ARM-NEON-intrinsics-if-available-for-mixing-func.patch \
|
||||
file://0003-Prevent-excessive-meter-redraws-for-inactive-meters-.patch \
|
||||
file://0004-Prevent-excessive-meter-redraws-for-inactive-meters-.patch \
|
||||
file://0005-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch \
|
||||
file://0006-Find-fmt-binding-in-out-of-tree-building.patch \
|
||||
file://ardour5.desktop \
|
||||
"
|
||||
SRCREV = "ae0dcdc0c5d13483271065c360e378202d20170a"
|
||||
PV = "5.12"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# arch specific override - default (tested) is ARM -> no fpu-optimizations
|
||||
# can be something like i686 / x86_64 see file 'wscript' in sourcepath for more details
|
||||
BUILD_DIST_TARGET ??= "none"
|
||||
|
||||
EXTRA_OECONF = " \
|
||||
--configdir=${sysconfdir} \
|
||||
--bindir=${bindir} \
|
||||
--libdir=${libdir} \
|
||||
--optimize \
|
||||
--cxx11 \
|
||||
--no-phone-home \
|
||||
--use-external-libs \
|
||||
--qm-dsp-include=${STAGING_INCDIR}/qm-dsp \
|
||||
\
|
||||
--with-backends="jack,alsa" \
|
||||
--dist-target=${BUILD_DIST_TARGET} \
|
||||
"
|
||||
|
||||
PATH_append = ":${B}"
|
||||
|
||||
# Asking fails - waf supports --bindir / --libdir
|
||||
waf_preconfigure() {
|
||||
}
|
||||
|
||||
do_configure_prepend() {
|
||||
# link python -> python3
|
||||
ln -sf `which python3` ${B}/python
|
||||
# copy waf
|
||||
cp -f ${WORKDIR}/waf-backport/waf ${S}/
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
# install icons to freedesktop locations
|
||||
for s in 16 22 32 48 256 512; do
|
||||
install -d ${D}${datadir}/icons/hicolor/${s}x${s}/apps
|
||||
ln -s ../../../../${BPN}/resources/Ardour-icon_${s}px.png \
|
||||
${D}${datadir}/icons/hicolor/${s}x${s}/apps/${BPN}.png
|
||||
done
|
||||
|
||||
# install .desktop
|
||||
install -d ${D}${datadir}/applications
|
||||
install -m 0644 ${WORKDIR}/ardour5.desktop ${D}${datadir}/applications
|
||||
}
|
||||
|
||||
FILES_${PN} += " \
|
||||
${datadir}/${BPN} \
|
||||
${libdir}/${BPN} \
|
||||
"
|
||||
|
||||
FILES_${PN}-dev += " \
|
||||
${libdir}/${BPN}/libardour.so \
|
||||
${libdir}/${BPN}/libardouralsautil.so \
|
||||
${libdir}/${BPN}/libaudiographer.so \
|
||||
${libdir}/${BPN}/libcanvas.so \
|
||||
${libdir}/${BPN}/libevoral.so \
|
||||
${libdir}/${BPN}/libgtkmm2ext.so \
|
||||
${libdir}/${BPN}/libmidipp.so \
|
||||
${libdir}/${BPN}/libpbd.so \
|
||||
${libdir}/${BPN}/libptformat.so \
|
||||
${libdir}/${BPN}/libwaveview.so \
|
||||
${libdir}/${BPN}/libwidgets.so \
|
||||
${libdir}/${BPN}/vamp/*.so \
|
||||
"
|
||||
|
||||
FILES_${PN}-staticdev += " \
|
||||
${libdir}/${BPN}/*.a \
|
||||
"
|
||||
|
||||
# did not get ardour6 to fly on 32bit systems - so (r)provide for 32 bits as fallback
|
||||
PROVIDES = "${@oe.utils.conditional('SITEINFO_BITS', '32', 'ardour', '', d)}"
|
||||
RPROVIDES_${PN} = "${@oe.utils.conditional('SITEINFO_BITS', '32', 'ardour', '', d)}"
|
||||
@@ -102,6 +102,5 @@ FILES_${PN}-staticdev += " \
|
||||
${libdir}/${BPN}/*.a \
|
||||
"
|
||||
|
||||
# did not get ardour6 to fly on 32bit systems - so (r)provide for 64 bits only
|
||||
PROVIDES = "${@oe.utils.conditional('SITEINFO_BITS', '64', 'ardour', '', d)}"
|
||||
RPROVIDES_${PN} = "${@oe.utils.conditional('SITEINFO_BITS', '64', 'ardour', '', d)}"
|
||||
PROVIDES = "ardour"
|
||||
RPROVIDES_${PN} = "ardour"
|
||||
|
||||
Reference in New Issue
Block a user