Browse Source

Add meson.build

master
Nils 6 months ago
parent
commit
73e0534aae
  1. 2
      .gitignore
  2. 146
      meson.build

2
.gitignore

@ -0,0 +1,2 @@
config.h
build/

146
meson.build

@ -0,0 +1,146 @@
##############################################################################
# Copyright (C) 2020- Nils Hilbricht
#License for this build file. This is not the license for calfbox, which is GPL.
#https://www.isc.org/licenses/
#
#Permission to use, copy, modify, and/or distribute this software for any purpose with or without
#fee is hereby granted, provided that the above copyright notice and this permission notice appear
#in all copies.
#
#THE SOFTWARE IS PROVIDED “AS IS” AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
#INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE
#FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
#FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
##############################################################################
project(
'libcalfbox-lss',
'c',
version : '0.5.0',
license : 'GPLv3',
)
cc = meson.get_compiler('c')
thread_dep = dependency('threads')
jack_dep = dependency('jack', version: '>=1.9.17') #and not 'libjack'
fluidsynth_dep = dependency('fluidsynth')
sndfile_dep = dependency('sndfile')
glib_dep = dependency('glib-2.0', version: '>=2.6')
uuid_dep = dependency('uuid')
m_dep = cc.find_library('m', required : true) #C build-in math lib
rt_dep = cc.find_library('rt', required : true) #C build-in POSIX real time lib
cflags = ['-D_GNU_SOURCE'] #used in target below
as_version = meson.project_version()
conf = configuration_data()
# Surround the version in quotes to make it a C string
conf.set_quoted('VERSION', as_version)
#Hardcode config.h options that are guaranteed by library dependencies below
#Also set options that are specific to this library version but would be a config in original cbox
conf.set('JACK_ENABLED', 1)
conf.set('JACK_HAS_RENAME', 1)
conf.set('USE_FLUIDSYNTH', 1)
conf.set('USE_LIBSMF', 0)
conf.set('USE_LIBUSB', 0)
conf.set('USE_NCURSES', 0)
conf.set('USE_PYTHON', 0)
conf.set('USE_NEON', 0)
conf.set('USE_SSE', 0) #upstream said this does very little.
#Dynamic config.h options
conf.set('HAVE_DLFCN_H', cc.has_header('dlfcn.h'))
conf.set('HAVE_INTTYPES_H', cc.has_header('inttypes.h'))
conf.set('HAVE_STDINT_H', cc.has_header('stdint.h'))
conf.set('HAVE_STDIO_H', cc.has_header('stdio.h'))
conf.set('HAVE_STDLIB_H', cc.has_header('stdlib.h'))
conf.set('HAVE_STRINGS_H', cc.has_header('strings.h'))
conf.set('HAVE_STRING_H', cc.has_header('string.h'))
conf.set('HAVE_SYS_STAT_H', cc.has_header('sys/stat.h'))
conf.set('HAVE_SYS_TYPES_H', cc.has_header('sys/types.h'))
conf.set('HAVE_UNISTD_H', cc.has_header('unistd.h'))
configure_file(output : 'config.h', configuration : conf)
libcalfbox_sources = [
'calfbox/app.c',
'calfbox/auxbus.c',
'calfbox/blob.c',
'calfbox/chorus.c',
'calfbox/cmd.c',
'calfbox/compressor.c',
'calfbox/config-api.c',
'calfbox/delay.c',
'calfbox/distortion.c',
'calfbox/dom.c',
'calfbox/engine.c',
'calfbox/eq.c',
'calfbox/errors.c',
'calfbox/fbr.c',
'calfbox/fifo.c',
'calfbox/fluid.c',
'calfbox/fuzz.c',
'calfbox/fxchain.c',
'calfbox/gate.c',
'calfbox/hwcfg.c',
'calfbox/instr.c',
'calfbox/io.c',
'calfbox/jackinput.c',
'calfbox/jackio.c',
'calfbox/layer.c',
'calfbox/limiter.c',
'calfbox/master.c',
'calfbox/meter.c',
'calfbox/midi.c',
'calfbox/mididest.c',
'calfbox/module.c',
'calfbox/pattern.c',
'calfbox/pattern-maker.c',
'calfbox/phaser.c',
'calfbox/prefetch_pipe.c',
'calfbox/recsrc.c',
'calfbox/reverb.c',
'calfbox/rt.c',
'calfbox/sampler.c',
'calfbox/sampler_channel.c',
'calfbox/sampler_gen.c',
'calfbox/sampler_layer.c',
'calfbox/sampler_nif.c',
'calfbox/sampler_prevoice.c',
'calfbox/sampler_prg.c',
'calfbox/sampler_rll.c',
'calfbox/sampler_voice.c',
'calfbox/scene.c',
'calfbox/scripting.c',
'calfbox/seq.c',
'calfbox/seq-adhoc.c',
'calfbox/sfzloader.c',
'calfbox/sfzparser.c',
'calfbox/song.c',
'calfbox/streamplay.c',
'calfbox/streamrec.c',
'calfbox/tarfile.c',
'calfbox/tonectl.c',
'calfbox/tonewheel.c',
'calfbox/track.c',
'calfbox/usbaudio.c',
'calfbox/usbio.c',
'calfbox/usbmidi.c',
'calfbox/usbprobe.c',
'calfbox/wavebank.c'
]
cbox_include = include_directories('calfbox')
libcalfbox = shared_library('calfbox-lss',
libcalfbox_sources,
include_directories : cbox_include,
dependencies : [glib_dep, jack_dep, thread_dep, fluidsynth_dep, sndfile_dep, uuid_dep, m_dep, rt_dep],
c_args : cflags ,
install : true)
Loading…
Cancel
Save