Browse Source

Allow to link against system dependencies

Signed-off-by: falkTX <falktx@falktx.com>
tags/22.02
falkTX 3 years ago
parent
commit
6675a1e81d
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
4 changed files with 46 additions and 11 deletions
  1. +18
    -6
      Makefile
  2. +12
    -4
      plugins/Makefile
  3. +2
    -0
      src/CardinalPlugin.cpp
  4. +14
    -1
      src/Makefile

+ 18
- 6
Makefile View File

@@ -18,12 +18,22 @@ SYSDEPS ?= false
# -------------------------------------------------------------- # --------------------------------------------------------------
# Check for system-wide dependencies # Check for system-wide dependencies


# HAVE_LIBARCHIVE = $(shell pkg-config --exists libarchive && echo true)
#
# libjansson.a
# libsamplerate.a
# libspeexdsp.a
# libzstd.a
ifeq ($(SYSDEPS),true)

ifneq ($(shell pkg-config --exists jansson && echo true),true)
$(error jansson dpendency not installed/available)
endif
ifneq ($(shell pkg-config --exists libarchive && echo true),true)
$(error libarchive dpendency not installed/available)
endif
ifneq ($(shell pkg-config --exists samplerate && echo true),true)
$(error samplerate dpendency not installed/available)
endif
ifneq ($(shell pkg-config --exists speexdsp && echo true),true)
$(error speexdsp dpendency not installed/available)
endif

endif


# -------------------------------------------------------------- # --------------------------------------------------------------


@@ -31,7 +41,9 @@ cardinal: deps dgl plugins
$(MAKE) all -C src $(MAKE) all -C src


deps: deps:
ifneq ($(SYSDEPS),true)
$(MAKE) all -C deps $(MAKE) all -C deps
endif


dgl: dgl:
$(MAKE) USE_NANOVG_FBO=true USE_RGBA=true -C dpf/dgl opengl $(MAKE) USE_NANOVG_FBO=true USE_RGBA=true -C dpf/dgl opengl


+ 12
- 4
plugins/Makefile View File

@@ -4,7 +4,12 @@
# Created by falkTX # Created by falkTX
# #


DEP_PATH = $(abspath ../src/Rack/dep)
# --------------------------------------------------------------
# Build config

PREFIX ?= /usr/local
DESTDIR ?=
SYSDEPS ?= false


# -------------------------------------------------------------- # --------------------------------------------------------------
# Import base definitions # Import base definitions
@@ -259,9 +264,6 @@ BASE_FLAGS += -I../include/neon-compat
BASE_FLAGS += -I../src BASE_FLAGS += -I../src
BASE_FLAGS += -I../src/Rack/include BASE_FLAGS += -I../src/Rack/include
BASE_FLAGS += -I../src/Rack/include/dsp BASE_FLAGS += -I../src/Rack/include/dsp
BASE_FLAGS += -I../src/Rack/dep/include
# BASE_FLAGS += -I../src/Rack/dep/filesystem/include
# BASE_FLAGS += -I../src/Rack/dep/fuzzysearchdatabase/src
BASE_FLAGS += -I../src/Rack/dep/glfw/include BASE_FLAGS += -I../src/Rack/dep/glfw/include
BASE_FLAGS += -I../src/Rack/dep/nanosvg/src BASE_FLAGS += -I../src/Rack/dep/nanosvg/src
BASE_FLAGS += -I../src/Rack/dep/osdialog BASE_FLAGS += -I../src/Rack/dep/osdialog
@@ -269,6 +271,12 @@ BASE_FLAGS += -I../src/Rack/dep/oui-blendish
BASE_FLAGS += -I../src/Rack/dep/pffft BASE_FLAGS += -I../src/Rack/dep/pffft
BASE_FLAGS += -pthread BASE_FLAGS += -pthread


# ifneq ($(SYSDEPS),true)
# BASE_FLAGS += -I../src/Rack/dep/include
# # BASE_FLAGS += -I../src/Rack/dep/filesystem/include
# # BASE_FLAGS += -I../src/Rack/dep/fuzzysearchdatabase/src
# endif

ifeq ($(WINDOWS),true) ifeq ($(WINDOWS),true)
BASE_FLAGS += -D_USE_MATH_DEFINES BASE_FLAGS += -D_USE_MATH_DEFINES
BASE_FLAGS += -DWIN32_LEAN_AND_MEAN BASE_FLAGS += -DWIN32_LEAN_AND_MEAN


+ 2
- 0
src/CardinalPlugin.cpp View File

@@ -85,11 +85,13 @@ struct Initializer {
if (asset::systemDir.empty()) if (asset::systemDir.empty())
{ {
#ifdef CARDINAL_PLUGIN_SOURCE_DIR
// Make system dir point to source code location as fallback // Make system dir point to source code location as fallback
asset::systemDir = CARDINAL_PLUGIN_SOURCE_DIR DISTRHO_OS_SEP_STR "Rack"; asset::systemDir = CARDINAL_PLUGIN_SOURCE_DIR DISTRHO_OS_SEP_STR "Rack";
// And if that fails, use install target prefix // And if that fails, use install target prefix
if (! system::isDirectory(system::join(asset::systemDir, "res"))) if (! system::isDirectory(system::join(asset::systemDir, "res")))
#endif
{ {
asset::bundlePath = CARDINAL_PLUGIN_PREFIX "/share/Cardinal/PluginManifests"; asset::bundlePath = CARDINAL_PLUGIN_PREFIX "/share/Cardinal/PluginManifests";
asset::systemDir = CARDINAL_PLUGIN_PREFIX "/share/Cardinal"; asset::systemDir = CARDINAL_PLUGIN_PREFIX "/share/Cardinal";


+ 14
- 1
src/Makefile View File

@@ -60,6 +60,7 @@ FILES_DSP += $(filter-out Rack/src/window/Window.cpp, $(wildcard Rack/src/*/*.cp
# -------------------------------------------------------------- # --------------------------------------------------------------
# Extra libraries to link against # Extra libraries to link against


ifneq ($(SYSDEPS),true)
EXTRA_LIBS = ../plugins/plugins.a EXTRA_LIBS = ../plugins/plugins.a
EXTRA_LIBS += Rack/dep/lib/libjansson.a EXTRA_LIBS += Rack/dep/lib/libjansson.a
EXTRA_LIBS += Rack/dep/lib/libsamplerate.a EXTRA_LIBS += Rack/dep/lib/libsamplerate.a
@@ -72,6 +73,7 @@ endif
EXTRA_LIBS += Rack/dep/lib/libzstd.a EXTRA_LIBS += Rack/dep/lib/libzstd.a


EXTRA_DEPENDENCIES = $(EXTRA_LIBS) EXTRA_DEPENDENCIES = $(EXTRA_LIBS)
endif


# -------------------------------------------------------------- # --------------------------------------------------------------
# Do some magic # Do some magic
@@ -98,7 +100,11 @@ BASE_FLAGS += -I../dpf/dgl/src/nanovg
BASE_FLAGS += -I../include BASE_FLAGS += -I../include
BASE_FLAGS += -I../include/neon-compat BASE_FLAGS += -I../include/neon-compat
BASE_FLAGS += -IRack/include BASE_FLAGS += -IRack/include
ifeq ($(SYSDEPS),true)
BASE_FLAGS += $(shell pkg-config --cflags jansson libarchive samplerate speexdsp)
else
BASE_FLAGS += -IRack/dep/include BASE_FLAGS += -IRack/dep/include
endif
BASE_FLAGS += -IRack/dep/filesystem/include BASE_FLAGS += -IRack/dep/filesystem/include
BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src
BASE_FLAGS += -IRack/dep/glfw/include BASE_FLAGS += -IRack/dep/glfw/include
@@ -144,12 +150,16 @@ LINK_FLAGS += -ldbghelp -lshlwapi
EXTRA_LIBS += -lws2_32 -lwinmm EXTRA_LIBS += -lws2_32 -lwinmm
endif endif


ifeq ($(SYSDEPS),true)
LINK_FLAGS += $(shell pkg-config --libs jansson libarchive samplerate speexdsp)
endif

ifeq ($(WITH_LTO),true) ifeq ($(WITH_LTO),true)
LINK_FLAGS += -fno-strict-aliasing -flto -Werror=odr -Werror=lto-type-mismatch LINK_FLAGS += -fno-strict-aliasing -flto -Werror=odr -Werror=lto-type-mismatch
endif endif


# -------------------------------------------------------------- # --------------------------------------------------------------
# temporary macro just to get the ball rolling
# fallback path to resource files


ifeq ($(EXE_WRAPPER),wine) ifeq ($(EXE_WRAPPER),wine)
SOURCE_DIR = Z:$(subst /,\\,$(CURDIR)) SOURCE_DIR = Z:$(subst /,\\,$(CURDIR))
@@ -157,7 +167,10 @@ else
SOURCE_DIR = $(CURDIR) SOURCE_DIR = $(CURDIR)
endif endif


ifneq ($(SYSDEPS),true)
BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_SOURCE_DIR='"$(SOURCE_DIR)"' BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_SOURCE_DIR='"$(SOURCE_DIR)"'
endif

BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"' BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"'


# -------------------------------------------------------------- # --------------------------------------------------------------


Loading…
Cancel
Save