summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2018-02-24 13:44:06 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2018-02-24 13:44:06 +0000
commitc9d4df288ceab6061d46dd1a5db36abcf8dc721a (patch)
tree2bac7ac615574e44d2fc651579ad385cf440a012 /CMake
parent7d1488507d110e567f57610894e9ce5d0eaebf2b (diff)
CMake: fix fltk-config generation for MacOS.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12687 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'CMake')
-rw-r--r--CMake/options.cmake43
-rw-r--r--CMake/variables.cmake27
2 files changed, 51 insertions, 19 deletions
diff --git a/CMake/options.cmake b/CMake/options.cmake
index 22b83525f..92bca14f6 100644
--- a/CMake/options.cmake
+++ b/CMake/options.cmake
@@ -25,10 +25,18 @@ if (DEBUG_OPTIONS_CMAKE)
endif (DEBUG_OPTIONS_CMAKE)
#######################################################################
-# *temporary* option to modify header searches
+# *Temporary* option to modify header file searches
+#######################################################################
+# Note: The old, deprecated behavior (ON) was to use find_file() for
+# header searches, the new behavior (ON) is to use check_include_files()
+# which seems to be more reliable but more difficult to set up and
+# slower because it uses a compilation test. Default is "new" (OFF).
+# This option should be removed as soon as the new search strategy
+# is considered stable.
+# Currently used only in resources.cmake.
#######################################################################
option(USE_FIND_FILE
- "Deprecated: use find_file() for header searches"
+ "Deprecated: use find_file() for header searches. Should be OFF."
OFF
)
mark_as_advanced(USE_FIND_FILE)
@@ -59,14 +67,9 @@ set(FL_ABI_VERSION ${OPTION_ABI_VERSION})
#######################################################################
#######################################################################
if (UNIX)
- option(OPTION_CREATE_LINKS "create backwards compatibility links" OFF)
- list(APPEND FLTK_LDLIBS -lm)
+ option(OPTION_CREATE_LINKS "create backwards compatibility links" OFF)
endif (UNIX)
-if (WIN32)
- list(APPEND FLTK_LDLIBS -lole32 -luuid -lcomctl32)
-endif (WIN32)
-
#######################################################################
## Add a TEMPORARY OPTION to enable high-DPI support under Windows.
## May be removed once high-DPI support under Windows is complete.
@@ -195,21 +198,26 @@ if(OPTION_USE_GL)
set(HAVE_GL_GLU_H ${HAVE_OPENGL_GLU_H})
endif(APPLE)
endif(OPTION_APPLE_X11)
+else ()
+ set(OPENGL_FOUND FALSE)
endif(OPTION_USE_GL)
-if (DEBUG_OPTIONS_CMAKE)
- fl_debug_var(OPENGL_FOUND)
- fl_debug_var(OPENGL_INCLUDE_DIR)
- fl_debug_var(OPENGL_LIBRARIES)
-endif (DEBUG_OPTIONS_CMAKE)
-
if (OPENGL_FOUND)
set (CMAKE_REQUIRED_INCLUDES ${OPENGL_INCLUDE_DIR}/GL)
+
+ # Set GLLIBS (used in fltk-config).
+ # We should probably deduct this from OPENGL_LIBRARIES but it turned
+ # out to be difficult since FindOpenGL seems to return different
+ # syntax depending on the platform (and maybe also CMake version).
+ # Hence we use the following code...
+
if (WIN32)
set (GLLIBS "-lglu32 -lopengl32")
+ elseif (APPLE AND NOT OPTION_APPLE_X11)
+ set (GLLIBS "-framework OpenGL")
else ()
set (GLLIBS "-lGLU -lGL")
- endif ()
+ endif (WIN32)
# check if function glXGetProcAddressARB exists
set (TEMP_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
@@ -221,6 +229,7 @@ if (OPENGL_FOUND)
set (FLTK_GL_FOUND TRUE)
else ()
set (FLTK_GL_FOUND FALSE)
+ set (GLLIBS)
endif (OPENGL_FOUND)
#######################################################################
@@ -541,11 +550,15 @@ endif(NOT CMAKE_VERSION VERSION_LESS 3.0.0)
# Debugging ...
if (DEBUG_OPTIONS_CMAKE)
+ message (STATUS "") # empty line
fl_debug_var (WIN32)
fl_debug_var (LIBS)
fl_debug_var (GLLIBS)
fl_debug_var (FLTK_LDLIBS)
fl_debug_var (USE_FIND_FILE)
+ fl_debug_var (OPENGL_FOUND)
+ fl_debug_var (OPENGL_INCLUDE_DIR)
+ fl_debug_var (OPENGL_LIBRARIES)
message (STATUS "[** end of options.cmake **]")
endif (DEBUG_OPTIONS_CMAKE)
unset (DEBUG_OPTIONS_CMAKE)
diff --git a/CMake/variables.cmake b/CMake/variables.cmake
index 9719435cf..60e14a5f2 100644
--- a/CMake/variables.cmake
+++ b/CMake/variables.cmake
@@ -25,6 +25,8 @@ set (FL_PATCH_VERSION ${FLTK_VERSION_PATCH})
set (DEBUG_VARIABLES_CMAKE 0)
if (DEBUG_VARIABLES_CMAKE)
message (STATUS "[** variables.cmake **]")
+ fl_debug_var (HAVE_DLSYM)
+ fl_debug_var (CMAKE_DL_LIBS)
fl_debug_var (CMAKE_EXE_LINKER_FLAGS)
fl_debug_var (LDFLAGS)
fl_debug_var (LIBS)
@@ -40,14 +42,28 @@ endif (DEBUG_VARIABLES_CMAKE)
#######################################################################
# add several libraries
# FIXME: libraries may need reordering.
+# FIXME: check fontconfig conditions (only if Xft is used or ...)
+
+if (WIN32)
+ list (APPEND FLTK_LDLIBS -lole32 -luuid -lcomctl32)
+elseif (APPLE AND OPTION_APPLE_SDL)
+ # FIXME: do nothing?
+elseif (APPLE AND NOT OPTION_APPLE_X11)
+ list (APPEND FLTK_LDLIBS "-framework Cocoa")
+else ()
+ list (APPEND FLTK_LDLIBS -lm)
+endif (WIN32)
if (LIB_fontconfig)
list(APPEND FLTK_LDLIBS -lfontconfig)
endif (LIB_fontconfig)
-if (HAVE_DLSYM AND NOT WIN32)
- list(APPEND FLTK_LDLIBS -ldl)
-endif (HAVE_DLSYM AND NOT WIN32)
+# add "-ldl" or whatever is necessary according to CMake (CMAKE_DL_LIBS)
+if (HAVE_DLSYM)
+ foreach (LIB ${CMAKE_DL_LIBS})
+ list (APPEND FLTK_LDLIBS "-l${LIB}")
+ endforeach ()
+endif (HAVE_DLSYM)
#######################################################################
# Set variables for fltk-config (generated from fltk-config.in)
@@ -123,7 +139,7 @@ foreach(arg ${FLTK_LDLIBS})
set(LINK_LIBS "${LINK_LIBS} ${arg}")
endforeach(arg ${FLTK_LDLIBS})
-set(LIBS ${LINK_LIBS})
+set(LIBS "${LINK_LIBS}")
if (${CMAKE_SYSTEM_NAME} STREQUAL "AIX")
set(SHAREDSUFFIX "_s")
@@ -132,6 +148,9 @@ else ()
endif (${CMAKE_SYSTEM_NAME} STREQUAL "AIX")
if (DEBUG_VARIABLES_CMAKE)
+ message (STATUS "") # empty line
+ fl_debug_var (HAVE_DLSYM)
+ fl_debug_var (CMAKE_DL_LIBS)
fl_debug_var (CMAKE_EXE_LINKER_FLAGS)
fl_debug_var (LDFLAGS)
fl_debug_var (LIBS)