From 48802f14ad064f044ed71af98e770ecb96fd27b7 Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Mon, 12 Feb 2018 23:54:33 +0000 Subject: [PATCH 1/3] meson: add meson build for luppp This allows easier and faster building, with less complexity and better defaults than the previoius CMake based system. Signed-off-by: Harry van Haaren --- meson.build | 36 ++++++++++++++++++++++++++++++++++++ src/avtk/meson.build | 1 + src/cjson/meson.build | 1 + src/controller/meson.build | 6 ++++++ src/dsp/meson.build | 1 + src/meson.build | 32 ++++++++++++++++++++++++++++++++ src/observer/meson.build | 1 + src/state/meson.build | 1 + 8 files changed, 79 insertions(+) create mode 100644 meson.build create mode 100644 src/avtk/meson.build create mode 100644 src/cjson/meson.build create mode 100644 src/controller/meson.build create mode 100644 src/dsp/meson.build create mode 100644 src/meson.build create mode 100644 src/observer/meson.build create mode 100644 src/state/meson.build diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..4d46d8a --- /dev/null +++ b/meson.build @@ -0,0 +1,36 @@ +project('openav_luppp', ['c','cpp']) + +conf_data = configuration_data() +conf_data.set('version', '1.1.1') + +#add_project_arguments('-std=c99', language : 'c') +#add_project_arguments('-std=c++11', language : 'cpp') +add_project_arguments('-Wno-unused-variable', language : 'cpp') +add_project_arguments('-Wno-reorder', language : 'cpp') +add_project_arguments('-Wno-sign-compare', language : 'cpp') + +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') + +luppp_src = [] +subdir('src') + + +dep_names = [ + 'ntk', + 'cairo', + 'liblo', + 'jack', + 'sndfile', + 'samplerate', + 'x11' + ] +deps = [] + +foreach dep : dep_names + deps += dependency(dep) +endforeach + +# compile the main project +executable('luppp', luppp_src, + dependencies: deps) diff --git a/src/avtk/meson.build b/src/avtk/meson.build new file mode 100644 index 0000000..66860a8 --- /dev/null +++ b/src/avtk/meson.build @@ -0,0 +1 @@ +luppp_src += files( 'bindings.cxx', 'volume.cxx', 'clipselector.cxx') diff --git a/src/cjson/meson.build b/src/cjson/meson.build new file mode 100644 index 0000000..3d44a70 --- /dev/null +++ b/src/cjson/meson.build @@ -0,0 +1 @@ +luppp_src += files('cJSON.c') diff --git a/src/controller/meson.build b/src/controller/meson.build new file mode 100644 index 0000000..f240e87 --- /dev/null +++ b/src/controller/meson.build @@ -0,0 +1,6 @@ +luppp_src += files( + 'controller.cxx', + 'genericmidi.cxx', + 'guicontroller.cxx', + 'nonseq.cxx' +) diff --git a/src/dsp/meson.build b/src/dsp/meson.build new file mode 100644 index 0000000..c84e1a3 --- /dev/null +++ b/src/dsp/meson.build @@ -0,0 +1 @@ +luppp_src += files('dsp_sidechain_gain.cxx') diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..1af9470 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,32 @@ +luppp_src = files( + 'audiobuffer.cxx', + 'controllerupdater.cxx', + 'debug.cxx', + 'diskreader.cxx', + 'diskwriter.cxx', + 'event.cxx', + 'eventhandlerdsp.cxx', + 'eventhandlergui.cxx', + 'gaudioeditor.cxx', + 'gmastertrack.cxx', + 'goptions.cxx', + 'gridlogic.cxx', + 'gtrack.cxx', + 'gui.cxx', + 'jack.cxx', + 'jacksendreturn.cxx', + 'logic.cxx', + 'looperclip.cxx', + 'looper.cxx', + 'main.cxx', + 'metronome.cxx', + 'timemanager.cxx', + 'trackoutput.cxx' + ) + +subdir('cjson') +subdir('dsp') +subdir('controller') +subdir('observer') +subdir('state') +subdir('avtk') diff --git a/src/observer/meson.build b/src/observer/meson.build new file mode 100644 index 0000000..8016da9 --- /dev/null +++ b/src/observer/meson.build @@ -0,0 +1 @@ +luppp_src += files('midi.cxx', 'time.cxx') diff --git a/src/state/meson.build b/src/state/meson.build new file mode 100644 index 0000000..236ada8 --- /dev/null +++ b/src/state/meson.build @@ -0,0 +1 @@ +luppp_src += files('state.cxx', 'stately.cxx') From f34a44e7759f1f84da56263cba183a9ac108382e Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Sat, 3 Mar 2018 21:16:21 +0000 Subject: [PATCH 2/3] meson: add tests and option to disable them This enables building the Luppp unit tests with Meson, and adds an option to disable building those tests. For a release, the option should probably be off - although currently it has no significant impact on the result. Signed-off-by: Harry van Haaren --- meson.build | 12 +++++++++--- meson_options.txt | 1 + src/meson.build | 4 ++++ src/tests/meson.build | 5 +++++ 4 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 meson_options.txt create mode 100644 src/tests/meson.build diff --git a/meson.build b/meson.build index 4d46d8a..230eaac 100644 --- a/meson.build +++ b/meson.build @@ -1,10 +1,16 @@ -project('openav_luppp', ['c','cpp']) +project( 'openav_luppp', ['c','cpp'], + default_options : [ + 'cpp_std=c++11', + ]) conf_data = configuration_data() conf_data.set('version', '1.1.1') -#add_project_arguments('-std=c99', language : 'c') -#add_project_arguments('-std=c++11', language : 'cpp') + +if(get_option('tests') == true) + add_project_arguments('-DBUILD_TESTS', language : 'cpp') +endif + add_project_arguments('-Wno-unused-variable', language : 'cpp') add_project_arguments('-Wno-reorder', language : 'cpp') add_project_arguments('-Wno-sign-compare', language : 'cpp') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..701b984 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1 @@ +option('tests', type : 'boolean', value : true, description : 'Build tests') diff --git a/src/meson.build b/src/meson.build index 1af9470..7e02ce8 100644 --- a/src/meson.build +++ b/src/meson.build @@ -30,3 +30,7 @@ subdir('controller') subdir('observer') subdir('state') subdir('avtk') + +if(get_option('tests') == true) + subdir('tests') +endif diff --git a/src/tests/meson.build b/src/tests/meson.build new file mode 100644 index 0000000..2a5604d --- /dev/null +++ b/src/tests/meson.build @@ -0,0 +1,5 @@ +luppp_src += files( + 'diskreadertest.cxx', + 'diskwritertest.cxx', + 'goptionstest.cxx', + 'gridlogictests.cxx') From bc8e55b036f068e33a607eac6bbbae53aec6d071 Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Sun, 4 Mar 2018 02:13:52 +0000 Subject: [PATCH 3/3] meson: generate version.hxx on compile This fixes local builds (re-generates version.hxx if it gets removed), ninja dist now works correctly too. Signed-off-by: Harry van Haaren --- meson.build | 2 +- src/meson.build | 4 ++++ src/version.hxx.in | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/version.hxx.in diff --git a/meson.build b/meson.build index 230eaac..4fe900c 100644 --- a/meson.build +++ b/meson.build @@ -38,5 +38,5 @@ foreach dep : dep_names endforeach # compile the main project -executable('luppp', luppp_src, +executable('luppp', luppp_src + [version_hxx], dependencies: deps) diff --git a/src/meson.build b/src/meson.build index 7e02ce8..d350343 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,3 +1,7 @@ +version_hxx = vcs_tag( + input : 'version.hxx.in', + output : 'version.hxx') + luppp_src = files( 'audiobuffer.cxx', 'controllerupdater.cxx', diff --git a/src/version.hxx.in b/src/version.hxx.in new file mode 100644 index 0000000..9f82d90 --- /dev/null +++ b/src/version.hxx.in @@ -0,0 +1 @@ +#define GIT_VERSION "@VCS_TAG@"