diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-10-16 08:29:59 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-10-16 08:29:59 +0200 |
| commit | 260a446609b7638669fa97afb393f3993106b6ac (patch) | |
| tree | 423ca97506d4dfb8cda1165807408709bed278c5 /CMake | |
| parent | 531ab614e277dd96c6ebf3318b13689bea517c90 (diff) | |
macOS + homebrew: restore building with CMake's OPTION_APPLE_X11
These option combinations work:
-DOPTION_APPLE_X11
-DOPTION_APPLE_X11 -DOPTION_USE_CAIRO
But
-DOPTION_APPLE_X11 -DOPTION_USE_PANGO
is not possible because homebrew doesn't provide the pangoxft package.
Diffstat (limited to 'CMake')
| -rw-r--r-- | CMake/options.cmake | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/CMake/options.cmake b/CMake/options.cmake index 132f435a1..e8de29178 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -272,6 +272,7 @@ if (OPTION_APPLE_X11) list (APPEND FLTK_CFLAGS "-D_LIBCPP_HAS_THREAD_API_PTHREAD") endif (NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 17.0.0)) include_directories (AFTER SYSTEM /opt/X11/include/freetype2) + include_directories (AFTER SYSTEM /opt/X11/include) # for Xft.h if (PATH_TO_XLIBS) set (LDFLAGS "-L${PATH_TO_XLIBS} ${LDFLAGS}") endif (PATH_TO_XLIBS) @@ -409,7 +410,10 @@ endif (HAVE_GL) if (OPTION_USE_GL) if (OPTION_APPLE_X11) set (OPENGL_FOUND TRUE) - set (OPENGL_LIBRARIES -L${PATH_TO_XLIBS} -lGLU -lGL) + find_library(OPENGL_LIB GL) + get_filename_component (PATH_TO_GLLIB ${OPENGL_LIB} DIRECTORY) + # with GL, must use XQuartz libX11 else "Insufficient GL support" + set (OPENGL_LIBRARIES -L${PATH_TO_GLLIB} -lX11 -lGLU -lGL) unset(HAVE_GL_GLU_H CACHE) find_file (HAVE_GL_GLU_H GL/glu.h PATHS ${X11_INCLUDE_DIR}) else() @@ -588,8 +592,16 @@ if (OPTION_USE_CAIRO) set (OPTION_USE_PANGO TRUE CACHE BOOL "use lib Pango") endif (OPTION_USE_CAIRO) +if (OPTION_USE_PANGO OR OPTION_USE_CAIRO) + if (OPTION_USE_WAYLAND OR OPTION_APPLE_X11) + set (USE_PANGOXFT false) + else () + set (USE_PANGOXFT true) + endif (OPTION_USE_WAYLAND OR OPTION_APPLE_X11) +endif (OPTION_USE_PANGO OR OPTION_USE_CAIRO) + # test option compatibility: Pango requires Xft -if (OPTION_USE_PANGO AND NOT OPTION_USE_WAYLAND) +if (USE_PANGOXFT) if (NOT X11_Xft_FOUND) message (STATUS "Pango requires Xft but Xft library or headers could not be found.") message (STATUS "Please install Xft development files and try again or disable OPTION_USE_PANGO.") @@ -601,25 +613,36 @@ if (OPTION_USE_PANGO AND NOT OPTION_USE_WAYLAND) message (FATAL_ERROR "*** Aborting ***") endif (NOT OPTION_USE_XFT) endif (NOT X11_Xft_FOUND) -endif (OPTION_USE_PANGO AND NOT OPTION_USE_WAYLAND) +endif (USE_PANGOXFT) ####################################################################### -if ((X11_Xft_FOUND OR OPTION_USE_WAYLAND) AND OPTION_USE_PANGO) +if ((X11_Xft_FOUND OR NOT USE_PANGOXFT) AND OPTION_USE_PANGO) pkg_check_modules(CAIRO cairo) - pkg_check_modules(PANGOXFT pangoxft) + if (USE_PANGOXFT) + pkg_check_modules(PANGOXFT pangoxft) + endif (USE_PANGOXFT) pkg_check_modules(PANGOCAIRO pangocairo) - if (PANGOXFT_FOUND AND PANGOCAIRO_FOUND AND CAIRO_FOUND) - include_directories (${PANGOXFT_INCLUDE_DIRS} ${CAIRO_INCLUDE_DIRS}) + if ((PANGOXFT_FOUND OR NOT USE_PANGOXFT) AND PANGOCAIRO_FOUND AND CAIRO_FOUND) + if (USE_PANGOXFT) + include_directories (${PANGOXFT_INCLUDE_DIRS}) + else () + include_directories (${PANGOCAIRO_INCLUDE_DIRS}) + endif (USE_PANGOXFT) + include_directories (${CAIRO_INCLUDE_DIRS}) find_library (HAVE_LIB_PANGO pango-1.0 ${CMAKE_LIBRARY_PATH}) - find_library (HAVE_LIB_PANGOXFT pangoxft-1.0 ${CMAKE_LIBRARY_PATH}) + if (USE_PANGOXFT) + find_library (HAVE_LIB_PANGOXFT pangoxft-1.0 ${CMAKE_LIBRARY_PATH}) + endif (USE_PANGOXFT) find_library (HAVE_LIB_PANGOCAIRO pangocairo-1.0 ${CMAKE_LIBRARY_PATH}) find_library (HAVE_LIB_CAIRO cairo ${CMAKE_LIBRARY_PATH}) find_library (HAVE_LIB_GOBJECT gobject-2.0 ${CMAKE_LIBRARY_PATH}) mark_as_advanced (HAVE_LIB_PANGO) - mark_as_advanced (HAVE_LIB_PANGOXFT) + if (USE_PANGOXFT) + mark_as_advanced (HAVE_LIB_PANGOXFT) + endif (USE_PANGOXFT) mark_as_advanced (HAVE_LIB_PANGOCAIRO) mark_as_advanced (HAVE_LIB_CAIRO) mark_as_advanced (HAVE_LIB_GOBJECT) @@ -627,7 +650,9 @@ if ((X11_Xft_FOUND OR OPTION_USE_WAYLAND) AND OPTION_USE_PANGO) set (USE_PANGO TRUE) # add required libraries to fltk-config ... - list (APPEND FLTK_LDLIBS ${PANGOXFT_LDFLAGS}) + if (USE_PANGOXFT) + list (APPEND FLTK_LDLIBS ${PANGOXFT_LDFLAGS}) + endif (USE_PANGOXFT) list (APPEND FLTK_LDLIBS ${PANGOCAIRO_LDFLAGS}) list (APPEND FLTK_LDLIBS ${CAIRO_LDFLAGS}) @@ -641,7 +666,7 @@ if ((X11_Xft_FOUND OR OPTION_USE_WAYLAND) AND OPTION_USE_PANGO) set (LDFLAGS "${LDFLAGS} -L${PANGO_L_PATH}") endif (APPLE) - else (PANGOXFT_FOUND AND PANGOCAIRO_FOUND AND CAIRO_FOUND) + else () # this covers Debian, Ubuntu, FreeBSD, NetBSD, Darwin if (APPLE AND OPTION_APPLE_X11) @@ -682,14 +707,14 @@ if ((X11_Xft_FOUND OR OPTION_USE_WAYLAND) AND OPTION_USE_PANGO) list (APPEND FLTK_LDLIBS -lpango-1.0 -lpangoxft-1.0 -lgobject-2.0) endif (HAVE_LIB_PANGO AND HAVE_LIB_PANGOXFT AND HAVE_LIB_GOBJECT) - endif (PANGOXFT_FOUND AND PANGOCAIRO_FOUND AND CAIRO_FOUND) + endif ((PANGOXFT_FOUND OR NOT USE_PANGOXFT) AND PANGOCAIRO_FOUND AND CAIRO_FOUND) if (USE_PANGO AND (OPTION_USE_CAIRO OR OPTION_USE_WAYLAND)) set (FLTK_USE_CAIRO 1) # fl_debug_var (FLTK_USE_CAIRO) endif (USE_PANGO AND (OPTION_USE_CAIRO OR OPTION_USE_WAYLAND)) -endif ((X11_Xft_FOUND OR OPTION_USE_WAYLAND) AND OPTION_USE_PANGO) +endif ((X11_Xft_FOUND OR NOT USE_PANGOXFT) AND OPTION_USE_PANGO) if (OPTION_USE_WAYLAND AND NOT OPTION_USE_SYSTEM_LIBDECOR) |
