From e25ddc39f86f69e2e12cb679dff82a0c5068cc23 Mon Sep 17 00:00:00 2001 From: Nils Philippsen Date: Mon, 23 Nov 2015 13:52:14 +0100 Subject: [PATCH] make copies of global lists before extending Not doing so can make source or object files appear multiple times in the list of files to be compiled or linked, e.g. when doing './waf build install', subsequently leading to linker errors. --- gtk2_ardour/wscript | 6 ++++-- libs/ardour/wscript | 3 ++- libs/gtkmm2ext/wscript | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index 34bf3f04eb..e58c50c1a8 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -422,7 +422,8 @@ def build(bld): # now the shared library containing the GTK GUI for ardour obj = bld (features = 'cxx c cxxshlib') - obj.source = gtk2_ardour_sources + # operate on copy to avoid adding sources twice + obj.source = list(gtk2_ardour_sources) obj.includes = [ '../libs/fst', '.' ] obj.name = 'libgtk2_ardour' obj.target = 'gtk2_ardour' @@ -433,7 +434,8 @@ def build(bld): obj = bld (features = 'cxx c cxxprogram winres') else: obj = bld (features = 'cxx c cxxprogram') - obj.source = gtk2_ardour_sources + # 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'] diff --git a/libs/ardour/wscript b/libs/ardour/wscript index c0ef56b7e3..262b10159a 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -335,7 +335,8 @@ def build(bld): # micro increment <=> no interface changes LIBARDOUR_LIB_VERSION = "3.0.0" - sources = libardour_sources + # operate on copy to avoid adding sources twice + sources = list(libardour_sources) if bld.is_tracks_build(): sources += [ 'engine_state_controller.cc' ] diff --git a/libs/gtkmm2ext/wscript b/libs/gtkmm2ext/wscript index b7545c33c5..1832d6a03e 100644 --- a/libs/gtkmm2ext/wscript +++ b/libs/gtkmm2ext/wscript @@ -84,7 +84,8 @@ def configure(conf): def build(bld): - sources = gtkmm2ext_sources + # operate on copy to avoid adding sources twice + sources = list(gtkmm2ext_sources) if bld.is_tracks_build(): sources += [ 'waves_fastmeter.cc', 'fader.cc' ] else: