From 5175192755e57d1d7016253d48f34f9d0c2c0832 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Thu, 9 Mar 2023 13:21:49 +0200 Subject: CMake: build shared libs with OPTION_CAIROEXT (issue #250) - remove separate libfltk_cairo to avoid cyclic dependencies, but - keep a dummy libfltk_cairo in 1.4.0 for backwards compatibility - move cairo/Fl_Cairo.cxx to src/Fl_Cairo.cxx - add preliminary Cairo support for Visual Studio (MSVC) Static linking is not affected by this change, but users building with hand-made Makefiles will have to remove libfltk_cairo starting with FLTK 1.4.0. The dummy library can be linked for backwards compatibility but it will be removed later (in 1.4.x or 1.5.0). The shared FLTK library libfltk.{so|dylib|dll|..} depends on libcairo if and only if FLTK is built with one of the Cairo options. This has always been the case for OPTION_CAIROEXT but is now also true if only OPTION_CAIRO is selected, i.e. FLTK programs linked with a Cairo enabled shared FLTK library will also be linked with libcairo. The same is true for configure options --enable-cairo and --enable-cairoext, respectively. Preliminary Cairo support for MSVC now detects a Cairo installation using the CMake variable FLTK_CAIRO_DIR which must be set by the user. Note that this feature is temporary and may be changed in the future for a better and more comfortable version. --- src/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/Makefile') diff --git a/src/Makefile b/src/Makefile index 4e20b3e56..c025ff1d3 100644 --- a/src/Makefile +++ b/src/Makefile @@ -26,6 +26,7 @@ CPPFILES = \ Fl_Browser_load.cxx \ Fl_Box.cxx \ Fl_Button.cxx \ + Fl_Cairo.cxx \ Fl_Chart.cxx \ Fl_Check_Browser.cxx \ Fl_Check_Button.cxx \ @@ -452,7 +453,7 @@ $(LIBNAME): $(OBJECTS) libfltk.so.$(FL_DSO_VERSION): $(OBJECTS) echo $(DSOCOMMAND) $@ ... - $(DSOCOMMAND) $@ $(OBJECTS) $(LDLIBS) + $(DSOCOMMAND) $@ $(OBJECTS) $(LDLIBS) $(CAIROLIBS) $(RM) libfltk.so $(LN) libfltk.so.$(FL_DSO_VERSION) libfltk.so @@ -468,7 +469,7 @@ libfltk.$(FL_DSO_VERSION).dylib: $(OBJECTS) -install_name $(libdir)/$@ \ -current_version $(FL_VERSION) \ -compatibility_version $(FL_DSO_VERSION).0 \ - $(OBJECTS) $(LDLIBS) + $(OBJECTS) $(LDLIBS) $(CAIROLIBS) $(RM) libfltk.dylib $(LN) libfltk.$(FL_DSO_VERSION).dylib libfltk.dylib -- cgit v1.2.3