diff --git a/Makefile b/Makefile index 0190a2e08..64f417d1b 100644 --- a/Makefile +++ b/Makefile @@ -860,9 +860,13 @@ else endif ifeq ($(HAVE_ZYN_DEPS),true) ifeq ($(HAVE_ZYN_UI_DEPS),true) - @echo "ZynAddSubFX: $(ANS_YES)(with UI)" +ifeq ($(HAVE_NTK),true) + @echo "ZynAddSubFX: $(ANS_YES)(with NTK UI)" else - @echo "ZynAddSubFX: $(ANS_YES)(without UI) $(mS)NTK missing$(mE)" + @echo "ZynAddSubFX: $(ANS_YES)(with FLTK UI)" +endif +else + @echo "ZynAddSubFX: $(ANS_YES)(without UI) $(mS)FLTK or NTK missing$(mE)" endif else @echo "ZynAddSubFX: $(ANS_NO) $(mS)fftw3, mxml or zlib missing$(mE)" diff --git a/source/Makefile.mk b/source/Makefile.mk index bec2aa7bb..2f509d704 100644 --- a/source/Makefile.mk +++ b/source/Makefile.mk @@ -157,6 +157,7 @@ HAVE_GTK3 = $(shell pkg-config --exists gtk+-3.0 && echo true) ifeq ($(LINUX),true) HAVE_ALSA = $(shell pkg-config --exists alsa && echo true) HAVE_DGL = $(shell pkg-config --exists gl x11 && echo true) +HAVE_NTK = $(shell pkg-config --exists ntk ntk_images && echo true) HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true) HAVE_X11 = $(shell pkg-config --exists x11 && echo true) endif @@ -170,12 +171,20 @@ HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) HAVE_LINUXSAMPLER = $(shell pkg-config --atleast-version=1.0.0.svn41 linuxsampler && echo true) HAVE_PROJECTM = $(shell pkg-config --exists libprojectM && echo true) -HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml zlib && echo true) -HAVE_ZYN_UI_DEPS = $(shell pkg-config --exists ntk_images ntk && echo true) +# -------------------------------------------------------------- +# Check for optional libs (special non-pkgconfig unix tests) ifeq ($(UNIX),true) + # libmagic doesn't have a pkg-config file, so we need to call the compiler to test it -HAVE_LIBMAGIC = $(shell echo '\#include ' | $(CC) $(CFLAGS) -x c -w -c - -o .libmagic-tmp 2>/dev/null && echo true) +HAVE_LIBMAGIC = $(shell echo '\#include ' | $(CC) $(CFLAGS) -x c -w -c - -o .libmagic-tmp 2>/dev/null && echo true) + +# fltk doesn't have a pkg-config file but has fltk-config instead. +# Also, don't try looking for it if we already have NTK. +ifneq ($(HAVE_NTK),true) +HAVE_FLTK = $(shell which fltk-config 1>/dev/null 2>/dev/null && echo true) +endif + endif # -------------------------------------------------------------- @@ -377,6 +386,14 @@ endif # -------------------------------------------------------------- # Set libs stuff (part 3) +HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml zlib && echo true) +ifeq ($(HAVE_FLTK),true) +HAVE_ZYN_UI_DEPS = true +endif +ifeq ($(HAVE_NTK),true) +HAVE_ZYN_UI_DEPS = true +endif + ifeq ($(HAVE_DGL),true) NATIVE_PLUGINS_LIBS += $(DGL_LIBS) ifeq ($(HAVE_PROJECTM),true) @@ -395,7 +412,11 @@ BASE_FLAGS += -DHAVE_ZYN_DEPS NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs fftw3 mxml zlib) ifeq ($(HAVE_ZYN_UI_DEPS),true) BASE_FLAGS += -DHAVE_ZYN_UI_DEPS +ifeq ($(HAVE_NTK),true) NATIVE_PLUGINS_LIBS += $(shell pkg-config --libs ntk_images ntk) +else +NATIVE_PLUGINS_LIBS += $(shell fltk-config --use-images --ldstaticflags) +endif endif endif diff --git a/source/native-plugins/Makefile b/source/native-plugins/Makefile index f5c8a5a3f..4758661a3 100644 --- a/source/native-plugins/Makefile +++ b/source/native-plugins/Makefile @@ -23,8 +23,15 @@ ifneq ($(MACOS),true) ZYN_CXX_FLAGS += -DHAVE_SCHEDULER endif ifeq ($(HAVE_ZYN_UI_DEPS),true) +ifeq ($(HAVE_NTK),true) +FLUID = ntk-fluid ZYN_CXX_FLAGS += -DNTK_GUI ZYN_CXX_FLAGS += $(shell pkg-config --cflags ntk_images ntk) +else +FLUID = fluid +ZYN_CXX_FLAGS += -DFLTK_GUI +ZYN_CXX_FLAGS += $(shell fltk-config --use-images --cxxflags) +endif endif endif @@ -162,11 +169,11 @@ $(MODULEDIR)/$(MODULENAME).a: $(OBJS) zynaddsubfx/UI/%.cpp: zynaddsubfx/UI/%.fl @echo "Generating $@/h" - @ntk-fluid -c -o zynaddsubfx/UI/$*.cpp -h zynaddsubfx/UI/$*.h $< + @$(FLUID) -c -o zynaddsubfx/UI/$*.cpp -h zynaddsubfx/UI/$*.h $< zynaddsubfx/UI/%.h: zynaddsubfx/UI/%.fl @echo "Generating $@/cpp" - @ntk-fluid -c -o zynaddsubfx/UI/$*.cpp -h zynaddsubfx/UI/$*.h $< + @$(FLUID) -c -o zynaddsubfx/UI/$*.cpp -h zynaddsubfx/UI/$*.h $< # ---------------------------------------------------------------------------------------------------------------------------- diff --git a/source/native-plugins/zynaddsubfx-synth.cpp b/source/native-plugins/zynaddsubfx-synth.cpp index 5df08ee77..79d193baa 100644 --- a/source/native-plugins/zynaddsubfx-synth.cpp +++ b/source/native-plugins/zynaddsubfx-synth.cpp @@ -37,11 +37,12 @@ # undef override # endif -# include "UI/common.H" # include "UI/MasterUI.h" # include # include -# include +# ifdef NTK_GUI +# include +# endif # ifdef override_hack # define override @@ -57,19 +58,23 @@ using juce::FloatVectorOperations; #ifdef WANT_ZYNADDSUBFX_UI -static Fl_Tiled_Image* gModuleBackdrop = nullptr; static CarlaString gPixmapPath; extern CarlaString gUiPixmapPath; +# ifdef NTK_GUI +static Fl_Tiled_Image* gModuleBackdrop = nullptr; +# endif void set_module_parameters(Fl_Widget* o) { - CARLA_SAFE_ASSERT_RETURN(gModuleBackdrop != nullptr,); - o->box(FL_DOWN_FRAME); o->align(o->align() | FL_ALIGN_IMAGE_BACKDROP); o->color(FL_BLACK); o->labeltype(FL_SHADOW_LABEL); + +# ifdef NTK_GUI + CARLA_SAFE_ASSERT_RETURN(gModuleBackdrop != nullptr,); o->image(gModuleBackdrop); +# endif } #endif @@ -446,6 +451,7 @@ protected: initialized = true; fl_register_images(); +# ifdef NTK_GUI Fl_Dial::default_style(Fl_Dial::PIXMAP_DIAL); if (Fl_Shared_Image* const img = Fl_Shared_Image::get(gPixmapPath + "knob.png")) @@ -454,7 +460,7 @@ protected: if (Fl_Shared_Image* const img = Fl_Shared_Image::get(gPixmapPath + "window_backdrop.png")) Fl::scheme_bg(new Fl_Tiled_Image(img)); - if(Fl_Shared_Image* const img = Fl_Shared_Image::get(gPixmapPath + "module_backdrop.png")) + if (Fl_Shared_Image* const img = Fl_Shared_Image::get(gPixmapPath + "module_backdrop.png")) gModuleBackdrop = new Fl_Tiled_Image(img); Fl::background(50, 50, 50); @@ -462,6 +468,7 @@ protected: Fl::foreground(255, 255, 255); Fl_Theme::set("Cairo"); +# endif } if (fUi == nullptr)