From 88129db051f0af336e15f4d02748c74c59cd3c06 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Thu, 20 Dec 2018 19:12:50 +0100 Subject: Improve CMake's Cairo detection and issue error message... ... if Cairo was requested (OPTION_CAIRO or OPTION_CAIROEXT) but Cairo was not found. CMake generation is terminated with a fatal error. The user has two choices: install Cairo libs and headers or disable OPTION_CAIRO and OPTION_CAIROEXT. --- CMake/options.cmake | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'CMake') diff --git a/CMake/options.cmake b/CMake/options.cmake index e94e0e937..438ff8374 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -157,27 +157,33 @@ include(FindPkgConfig) option(OPTION_CAIRO "use lib Cairo" OFF) option(OPTION_CAIROEXT - "use FLTK code instrumentation for cairo extended use" OFF + "use FLTK code instrumentation for Cairo extended use" OFF ) -if(OPTION_CAIRO OR OPTION_CAIROEXT AND LIB_CAIRO) +if ((OPTION_CAIRO OR OPTION_CAIROEXT) AND LIB_CAIRO) pkg_search_module(PKG_CAIRO cairo) -endif(OPTION_CAIRO OR OPTION_CAIROEXT AND LIB_CAIRO) +endif ((OPTION_CAIRO OR OPTION_CAIROEXT) AND LIB_CAIRO) -if(PKG_CAIRO_FOUND) - set(FLTK_HAVE_CAIRO 1) +if (PKG_CAIRO_FOUND) + set (FLTK_HAVE_CAIRO 1) add_subdirectory(cairo) list(APPEND FLTK_LDLIBS -lcairo -lpixman-1) include_directories(${PKG_CAIRO_INCLUDE_DIRS}) string(REPLACE ";" " " CAIROFLAGS "${PKG_CAIRO_CFLAGS}") -endif(PKG_CAIRO_FOUND) +endif (PKG_CAIRO_FOUND) -if(LIB_CAIRO AND OPTION_CAIROEXT AND PKG_CAIRO_FOUND) +if (LIB_CAIRO AND OPTION_CAIROEXT AND PKG_CAIRO_FOUND) set(FLTK_USE_CAIRO 1) set(FLTK_CAIRO_FOUND TRUE) else() set(FLTK_CAIRO_FOUND FALSE) -endif(LIB_CAIRO AND OPTION_CAIROEXT AND PKG_CAIRO_FOUND) +endif (LIB_CAIRO AND OPTION_CAIROEXT AND PKG_CAIRO_FOUND) + +if ((OPTION_CAIRO OR OPTION_CAIROEXT) AND NOT PKG_CAIRO_FOUND) + message(STATUS "*** Cairo was requested but not found - please install Cairo ...") + message(STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT") + message(FATAL_ERROR "*** Terminating: missing Cairo libs or headers") +endif ((OPTION_CAIRO OR OPTION_CAIROEXT) AND NOT PKG_CAIRO_FOUND) ####################################################################### option(OPTION_USE_NANOSVG "support SVG images" ON) -- cgit v1.2.3 From e3b289e008643af49876efd7d1d0b561305390f8 Mon Sep 17 00:00:00 2001 From: fabien Date: Sat, 22 Dec 2018 08:26:56 -0600 Subject: CMake CAIRO support minor improvements: Make the conditional code more readeable by reusing the already parsed PKG_CAIRO_FOUND variable instead of testing for it again, which also simplifies the preconditions testing. Fix typo (. in endif statement comment). --- CMake/options.cmake | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'CMake') diff --git a/CMake/options.cmake b/CMake/options.cmake index 438ff8374..c71eff1f4 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -170,20 +170,20 @@ if (PKG_CAIRO_FOUND) list(APPEND FLTK_LDLIBS -lcairo -lpixman-1) include_directories(${PKG_CAIRO_INCLUDE_DIRS}) string(REPLACE ";" " " CAIROFLAGS "${PKG_CAIRO_CFLAGS}") -endif (PKG_CAIRO_FOUND) -if (LIB_CAIRO AND OPTION_CAIROEXT AND PKG_CAIRO_FOUND) - set(FLTK_USE_CAIRO 1) - set(FLTK_CAIRO_FOUND TRUE) -else() - set(FLTK_CAIRO_FOUND FALSE) -endif (LIB_CAIRO AND OPTION_CAIROEXT AND PKG_CAIRO_FOUND) - -if ((OPTION_CAIRO OR OPTION_CAIROEXT) AND NOT PKG_CAIRO_FOUND) - message(STATUS "*** Cairo was requested but not found - please install Cairo ...") - message(STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT") - message(FATAL_ERROR "*** Terminating: missing Cairo libs or headers") -endif ((OPTION_CAIRO OR OPTION_CAIROEXT) AND NOT PKG_CAIRO_FOUND) + if (LIB_CAIRO AND OPTION_CAIROEXT) + set(FLTK_USE_CAIRO 1) + set(FLTK_CAIRO_FOUND TRUE) + else () + set(FLTK_CAIRO_FOUND FALSE) + endif (LIB_CAIRO AND OPTION_CAIROEXT) +else () + if ((OPTION_CAIRO OR OPTION_CAIROEXT)) + message(STATUS "*** Cairo was requested but not found - please check your cairo installation") + message(STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT.") + message(FATAL_ERROR "*** Terminating: missing Cairo libs or headers.") + endif ((OPTION_CAIRO OR OPTION_CAIROEXT)) +endif (PKG_CAIRO_FOUND) ####################################################################### option(OPTION_USE_NANOSVG "support SVG images" ON) -- cgit v1.2.3 From 9338385da76a773f31fb9df363795eda7a2948be Mon Sep 17 00:00:00 2001 From: fabien Date: Sat, 22 Dec 2018 10:35:52 -0600 Subject: remove unnecessary double braces in option.cmake cairo detection code --- CMake/options.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'CMake') diff --git a/CMake/options.cmake b/CMake/options.cmake index c71eff1f4..c37bf7181 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -178,11 +178,11 @@ if (PKG_CAIRO_FOUND) set(FLTK_CAIRO_FOUND FALSE) endif (LIB_CAIRO AND OPTION_CAIROEXT) else () - if ((OPTION_CAIRO OR OPTION_CAIROEXT)) + if (OPTION_CAIRO OR OPTION_CAIROEXT) message(STATUS "*** Cairo was requested but not found - please check your cairo installation") message(STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT.") message(FATAL_ERROR "*** Terminating: missing Cairo libs or headers.") - endif ((OPTION_CAIRO OR OPTION_CAIROEXT)) + endif (OPTION_CAIRO OR OPTION_CAIROEXT) endif (PKG_CAIRO_FOUND) ####################################################################### -- cgit v1.2.3 From 65d90c33dc310a84feb4c550c5b1dcd1bedc7881 Mon Sep 17 00:00:00 2001 From: fabien Date: Sat, 22 Dec 2018 15:01:20 -0600 Subject: Removes few tabs from options.cmake. When removing tabs, also apply cmp standard (two spaces) recommended indentation. --- CMake/options.cmake | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'CMake') diff --git a/CMake/options.cmake b/CMake/options.cmake index c37bf7181..bc3aa7e69 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -143,8 +143,8 @@ if(DOXYGEN_FOUND) option(OPTION_BUILD_HTML_DOCUMENTATION "build html docs" OFF) option(OPTION_INSTALL_HTML_DOCUMENTATION "install html docs" OFF) if(LATEX_FOUND) - option(OPTION_BUILD_PDF_DOCUMENTATION "build pdf docs" OFF) - option(OPTION_INSTALL_PDF_DOCUMENTATION "install pdf docs" OFF) + option(OPTION_BUILD_PDF_DOCUMENTATION "build pdf docs" OFF) + option(OPTION_INSTALL_PDF_DOCUMENTATION "install pdf docs" OFF) endif(LATEX_FOUND) endif(DOXYGEN_FOUND) @@ -172,16 +172,16 @@ if (PKG_CAIRO_FOUND) string(REPLACE ";" " " CAIROFLAGS "${PKG_CAIRO_CFLAGS}") if (LIB_CAIRO AND OPTION_CAIROEXT) - set(FLTK_USE_CAIRO 1) - set(FLTK_CAIRO_FOUND TRUE) + set(FLTK_USE_CAIRO 1) + set(FLTK_CAIRO_FOUND TRUE) else () - set(FLTK_CAIRO_FOUND FALSE) + set(FLTK_CAIRO_FOUND FALSE) endif (LIB_CAIRO AND OPTION_CAIROEXT) else () if (OPTION_CAIRO OR OPTION_CAIROEXT) - message(STATUS "*** Cairo was requested but not found - please check your cairo installation") - message(STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT.") - message(FATAL_ERROR "*** Terminating: missing Cairo libs or headers.") + message(STATUS "*** Cairo was requested but not found - please check your cairo installation") + message(STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT.") + message(FATAL_ERROR "*** Terminating: missing Cairo libs or headers.") endif (OPTION_CAIRO OR OPTION_CAIROEXT) endif (PKG_CAIRO_FOUND) @@ -462,20 +462,20 @@ endif (OPTION_USE_PANGO) ####################################################################### if(X11_Xft_FOUND AND OPTION_USE_PANGO) #this covers Debian, Ubuntu, FreeBSD, NetBSD, Darwin - if(APPLE AND OPTION_APPLE_X11) - list(APPEND CMAKE_INCLUDE_PATH /sw/include) - list(APPEND CMAKE_LIBRARY_PATH /sw/lib) - endif(APPLE AND OPTION_APPLE_X11) - find_file(HAVE_PANGO_H pango-1.0/pango/pango.h ${CMAKE_INCLUDE_PATH}) - find_file(HAVE_PANGOXFT_H pango-1.0/pango/pangoxft.h ${CMAKE_INCLUDE_PATH}) + if(APPLE AND OPTION_APPLE_X11) + list(APPEND CMAKE_INCLUDE_PATH /sw/include) + list(APPEND CMAKE_LIBRARY_PATH /sw/lib) + endif(APPLE AND OPTION_APPLE_X11) + find_file(HAVE_PANGO_H pango-1.0/pango/pango.h ${CMAKE_INCLUDE_PATH}) + find_file(HAVE_PANGOXFT_H pango-1.0/pango/pangoxft.h ${CMAKE_INCLUDE_PATH}) if(HAVE_PANGO_H AND HAVE_PANGOXFT_H) find_library(HAVE_LIB_PANGO pango-1.0 ${CMAKE_LIBRARY_PATH}) find_library(HAVE_LIB_PANGOXFT pangoxft-1.0 ${CMAKE_LIBRARY_PATH}) if(APPLE) - set(HAVE_LIB_GOBJECT TRUE) + set(HAVE_LIB_GOBJECT TRUE) else() - find_library(HAVE_LIB_GOBJECT gobject-2.0 ${CMAKE_LIBRARY_PATH}) + find_library(HAVE_LIB_GOBJECT gobject-2.0 ${CMAKE_LIBRARY_PATH}) endif(APPLE) endif(HAVE_PANGO_H AND HAVE_PANGOXFT_H) if(HAVE_LIB_PANGO AND HAVE_LIB_PANGOXFT AND HAVE_LIB_GOBJECT) @@ -559,7 +559,7 @@ endif(OPTION_FILESYSTEM_SUPPORT) # prior to CMake 3.0 this feature was buggy if(NOT CMAKE_VERSION VERSION_LESS 3.0.0) option(CMAKE_SUPPRESS_REGENERATION - "suppress rules to re-run CMake on rebuild" OFF) + "suppress rules to re-run CMake on rebuild" OFF) mark_as_advanced(CMAKE_SUPPRESS_REGENERATION) endif(NOT CMAKE_VERSION VERSION_LESS 3.0.0) -- cgit v1.2.3 From de199c327e9b55bd615f7262724da8ecba1999cf Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Sat, 29 Dec 2018 20:04:38 +0100 Subject: Add a CMake option to generate driver (developer) documentation. Generating driver documentation can now be configured with CMake. The new configuration OPTION_INCLUDE_DRIVER_DOCUMENTATION is "marked as advanced" since only advanced users and/or FLTK developers need this. Previously this could only be achieved by editing documentation/Doxyfile.in. Added missing documentation option descriptions as well. --- CMake/options.cmake | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'CMake') diff --git a/CMake/options.cmake b/CMake/options.cmake index bc3aa7e69..c747484bd 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -142,6 +142,10 @@ option(OPTION_FILESYSTEM_SUPPORT "allow file system support" ON) if(DOXYGEN_FOUND) option(OPTION_BUILD_HTML_DOCUMENTATION "build html docs" OFF) option(OPTION_INSTALL_HTML_DOCUMENTATION "install html docs" OFF) + + option(OPTION_INCLUDE_DRIVER_DOCUMENTATION "include driver (developer) docs" OFF) + mark_as_advanced(OPTION_INCLUDE_DRIVER_DOCUMENTATION) + if(LATEX_FOUND) option(OPTION_BUILD_PDF_DOCUMENTATION "build pdf docs" OFF) option(OPTION_INSTALL_PDF_DOCUMENTATION "install pdf docs" OFF) -- cgit v1.2.3