diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a05f6c49..58e75be31 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -211,7 +211,7 @@ feature_summary (WHAT ALL DESCRIPTION "Configuration Summary for ${_descr} --\n" message (STATUS "Static libraries will be built in ${CMAKE_CURRENT_BINARY_DIR}/lib") if (OPTION_BUILD_SHARED_LIBS) - message (STATUS "Shared libraries will be built in ${CMAKE_CURRENT_BINARY_DIR}/lib") + message (STATUS "Shared libraries will be built in ${CMAKE_CURRENT_BINARY_DIR}/lib") else () message (STATUS "Shared libraries will not be built (set OPTION_BUILD_SHARED_LIBS=ON to build)") endif () diff --git a/cairo/CMakeLists.txt b/cairo/CMakeLists.txt index 2cfa912fd..181f30ed5 100644 --- a/cairo/CMakeLists.txt +++ b/cairo/CMakeLists.txt @@ -1,17 +1,27 @@ -include_directories(${PKG_CAIRO_INCLUDE_DIRS}) +include_directories (${PKG_CAIRO_INCLUDE_DIRS}) # source files for cairo -set(cairo_SRCS Fl_Cairo.cxx) +set (cairo_SRCS Fl_Cairo.cxx) ####################################################################### -FL_ADD_LIBRARY(fltk_cairo STATIC "${cairo_SRCS}") +FL_ADD_LIBRARY (fltk_cairo STATIC "${cairo_SRCS}") ####################################################################### -if(OPTION_BUILD_SHARED_LIBS) +# Build shared library (optional) ####################################################################### -FL_ADD_LIBRARY(fltk_cairo SHARED "${cairo_SRCS}") + +if (OPTION_BUILD_SHARED_LIBS) + + FL_ADD_LIBRARY (fltk_cairo SHARED "${cairo_SRCS}") + target_link_libraries (fltk_cairo_SHARED fltk_SHARED ${PKG_CAIRO_LIBRARIES}) + + if (CMAKE_VERSION VERSION_LESS "3.13") + link_directories (${PKG_CAIRO_LIBRARY_DIRS}) + else() + target_link_directories (fltk_cairo_SHARED PRIVATE ${PKG_CAIRO_LIBRARY_DIRS}) + endif() + +endif (OPTION_BUILD_SHARED_LIBS) ####################################################################### -endif(OPTION_BUILD_SHARED_LIBS) -####################################################################### diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1a614bee4..274df8e02 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -519,10 +519,6 @@ if (WIN32) list (APPEND OPTIONAL_LIBS comctl32 ws2_32) endif (WIN32) -if (FLTK_HAVE_CAIRO) - list (APPEND OPTIONAL_LIBS fltk_cairo ${PKG_CAIRO_LIBRARIES}) -endif (FLTK_HAVE_CAIRO) - if (HAVE_XINERAMA) list (APPEND OPTIONAL_LIBS ${X11_Xinerama_LIB}) endif (HAVE_XINERAMA) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9c602ce7a..33df73a62 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -147,7 +147,7 @@ endif (OPENGL_FOUND) # Cairo demo - must also be built w/o Cairo (displays a message box) if (FLTK_HAVE_CAIRO) - CREATE_EXAMPLE (cairo_test cairo_test.cxx "fltk_cairo;fltk") + CREATE_EXAMPLE (cairo_test cairo_test.cxx "fltk_cairo;fltk;cairo") else () CREATE_EXAMPLE (cairo_test cairo_test.cxx fltk) endif (FLTK_HAVE_CAIRO) @@ -206,6 +206,10 @@ if (OPTION_BUILD_SHARED_LIBS) CREATE_EXAMPLE (shape-shared shape.cxx "fltk_gl_SHARED;fltk_SHARED;${OPENGL_LIBRARIES}") endif (OPENGL_FOUND) + if (FLTK_HAVE_CAIRO) + CREATE_EXAMPLE (cairo_test-shared cairo_test.cxx "fltk_cairo_SHARED;fltk_SHARED;cairo") + endif () + endif (MSVC) # (not MSVC) endif (OPTION_BUILD_SHARED_LIBS)