summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-10-16 08:29:59 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-10-16 08:29:59 +0200
commit260a446609b7638669fa97afb393f3993106b6ac (patch)
tree423ca97506d4dfb8cda1165807408709bed278c5 /CMake
parent531ab614e277dd96c6ebf3318b13689bea517c90 (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.cmake51
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)