summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2015-04-25 13:50:27 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2015-04-25 13:50:27 +0000
commite23bf0b768531c31d344cbb1b1a034f8e9de664d (patch)
tree039a5b912a077d5656691b79bf82c7440f1e42cc /CMake
parentd2b7b5b24a65772e08ba6da6b559f770c7fcb4af (diff)
[CMake] Fix CMake build's fltk-config (STR #3217).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10716 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'CMake')
-rw-r--r--CMake/export.cmake52
-rw-r--r--CMake/install.cmake22
-rw-r--r--CMake/options.cmake36
-rw-r--r--CMake/resources.cmake6
-rw-r--r--CMake/variables.cmake81
5 files changed, 125 insertions, 72 deletions
diff --git a/CMake/export.cmake b/CMake/export.cmake
index bc19a1d89..4996a7753 100644
--- a/CMake/export.cmake
+++ b/CMake/export.cmake
@@ -61,46 +61,17 @@ configure_file(
@ONLY
)
-# generate config.h
-configure_file(
- "${FLTK_SOURCE_DIR}/configh.cmake.in"
- "${FLTK_BINARY_DIR}/config.h"
- @ONLY
-)
+# generate fltk-config for build directory use
+set(prefix ${FLTK_BINARY_DIR})
+set(exec_prefix "\${prefix}")
+set(includedir "${FLTK_SOURCE_DIR}")
+set(libdir "\${exec_prefix}/lib")
+set(srcdir ".")
-# generate fltk-config
-# Set install locations; this could be shortened with a foreach loop...
-if(IS_ABSOLUTE ${FLTK_INSTALL_BINDIR})
- set(FLTK_FULL_BINDIR ${FLTK_BINDIR})
-else()
- set(FLTK_FULL_BINDIR ${CMAKE_INSTALL_PREFIX}/${FLTK_BINDIR})
-endif(IS_ABSOLUTE ${FLTK_INSTALL_BINDIR})
-
-if(IS_ABSOLUTE ${FLTK_INCLUDEDIR})
- set(FLTK_FULL_INCLUDEDIR ${FLTK_INCLUDEDIR})
-else()
- set(FLTK_FULL_INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/${FLTK_INCLUDEDIR})
-endif(IS_ABSOLUTE ${FLTK_INCLUDEDIR})
-
-if(IS_ABSOLUTE ${FLTK_LIBDIR})
- set(FLTK_FULL_LIBDIR ${FLTK_LIBDIR})
-else()
- set(FLTK_FULL_LIBDIR ${CMAKE_INSTALL_PREFIX}/${FLTK_LIBDIR})
-endif(IS_ABSOLUTE ${FLTK_LIBDIR})
-
-# set compiler
-get_filename_component(CC ${CMAKE_C_COMPILER} NAME)
-get_filename_component(CXX ${CMAKE_CXX_COMPILER} NAME)
-
-string(REPLACE ";" " " C_FLAGS "${FLTK_CFLAGS}")
-
-if(X11_Xext_FOUND)
- list(APPEND FLTK_LDLIBS -lXext)
-endif(X11_Xext_FOUND)
-string(REPLACE ";" " " LD_LIBS "${FLTK_LDLIBS}")
+set(LIBNAME "${libdir}/libfltk.a")
configure_file(
- "${FLTK_SOURCE_DIR}/fltk-config.cmake.in"
+ "${FLTK_SOURCE_DIR}/fltk-config.in"
"${FLTK_BINARY_DIR}/fltk-config"
@ONLY
)
@@ -110,6 +81,13 @@ if(UNIX)
)
endif(UNIX)
+# generate config.h
+configure_file(
+ "${FLTK_SOURCE_DIR}/configh.cmake.in"
+ "${FLTK_BINARY_DIR}/config.h"
+ @ONLY
+)
+
if(OPTION_CREATE_LINKS)
# Set PREFIX_INCLUDE to the proper value.
if(IS_ABSOLUTE ${FLTK_INCLUDEDIR})
diff --git a/CMake/install.cmake b/CMake/install.cmake
index 974faa8ae..755489b02 100644
--- a/CMake/install.cmake
+++ b/CMake/install.cmake
@@ -70,7 +70,27 @@ install(FILES ${FLTK_BINARY_DIR}/etc/UseFLTK.cmake
DESTINATION ${FLTK_CONFIG_PATH}
)
-install(PROGRAMS ${FLTK_BINARY_DIR}/fltk-config
+# generate fltk-config
+set(prefix ${CMAKE_INSTALL_PREFIX})
+set(exec_prefix "\${prefix}")
+set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
+set(srcdir ".")
+
+set(LIBNAME "${libdir}/libfltk.a")
+
+configure_file(
+ "${FLTK_SOURCE_DIR}/fltk-config.in"
+ "${FLTK_BINARY_DIR}/bin/fltk-config"
+ @ONLY
+)
+if(UNIX)
+ execute_process(COMMAND chmod 755 fltk-config
+ WORKING_DIRECTORY "${FLTK_BINARY_DIR}/bin"
+ )
+endif(UNIX)
+
+install(PROGRAMS ${FLTK_BINARY_DIR}/bin/fltk-config
DESTINATION ${FLTK_BINDIR}
)
diff --git a/CMake/options.cmake b/CMake/options.cmake
index 87bd31f74..ce58c94b7 100644
--- a/CMake/options.cmake
+++ b/CMake/options.cmake
@@ -37,6 +37,7 @@ add_definitions(${OPTION_ARCHFLAGS})
#######################################################################
if(UNIX)
option(OPTION_CREATE_LINKS "create backwards compatibility links" OFF)
+ list(APPEND FLTK_LDLIBS -lm)
endif(UNIX)
#######################################################################
@@ -49,6 +50,12 @@ if((NOT APPLE OR OPTION_APPLE_X11) AND NOT WIN32)
if(X11_FOUND)
set(USE_X11 1)
list(APPEND FLTK_LDLIBS -lX11)
+ if (X11_Xext_FOUND)
+ list(APPEND FLTK_LDLIBS -lXext)
+ endif(X11_Xext_FOUND)
+ if(X11_Xrender_FOUND)
+ list(APPEND FLTK_LDLIBS -lXrender)
+ endif(X11_Xrender_FOUND)
endif(X11_FOUND)
endif((NOT APPLE OR OPTION_APPLE_X11) AND NOT WIN32)
@@ -108,7 +115,7 @@ endif(OPTION_USE_GL)
if(OPENGL_FOUND)
set(CMAKE_REQUIRED_INCLUDES ${OPENGL_INCLUDE_DIR}/GL)
- set(CMAKE_REQUIRED_LIBRARIES -lGLU -lGL)
+ set(GLLIB "-lGLU -lGL")
CHECK_FUNCTION_EXISTS(glXGetProcAddressARB HAVE_GLXGETPROCADDRESSARB)
set(FLTK_GL_FOUND TRUE)
else()
@@ -298,30 +305,3 @@ else()
set(FLTK_XDBE_FOUND FALSE)
endif(OPTION_USE_XDBE AND HAVE_XDBE_H)
-#######################################################################
-# add several libraries (STR #3011)
-# FIXME: libraries may need reordering, and this version does not yet
-# correctly support static linking and local zlib, png, and jpeg libs.
-
-if(LIB_fontconfig)
- list(APPEND FLTK_LDLIBS -lfontconfig)
-endif(LIB_fontconfig)
-
-if(HAVE_DLSYM)
- list(APPEND FLTK_LDLIBS -ldl)
-endif(HAVE_DLSYM)
-
-if(LIB_png)
- list(APPEND IMAGELIBS -lpng)
-endif(LIB_png)
-
-if(LIB_zlib)
- list(APPEND IMAGELIBS -lz)
-endif(LIB_zlib)
-
-if(LIB_jpeg)
- list(APPEND IMAGELIBS -ljpeg)
-endif(LIB_jpeg)
-
-string(REPLACE ";" " " IMAGELIBS "${IMAGELIBS}")
-set(STATICIMAGELIBS "${IMAGELIBS}")
diff --git a/CMake/resources.cmake b/CMake/resources.cmake
index 3c369a2b1..bce8b2b87 100644
--- a/CMake/resources.cmake
+++ b/CMake/resources.cmake
@@ -78,16 +78,12 @@ mark_as_advanced(LIB_jpeg LIB_png LIB_zlib)
include(CheckFunctionExists)
if(HAVE_DLFCN_H)
- set(CMAKE_REQUIRED_LIBRARIES dl)
set(HAVE_DLFCN_H 1)
endif(HAVE_DLFCN_H)
CHECK_FUNCTION_EXISTS(dlsym HAVE_DLSYM)
CHECK_FUNCTION_EXISTS(localeconv HAVE_LOCALECONV)
-if(LIB_png)
- set(CMAKE_REQUIRED_LIBRARIES png)
-endif(LIB_png)
CHECK_FUNCTION_EXISTS(png_get_valid HAVE_PNG_GET_VALID)
CHECK_FUNCTION_EXISTS(png_set_tRNS_to_alpha HAVE_PNG_SET_TRNS_TO_ALPHA)
@@ -105,8 +101,6 @@ CHECK_FUNCTION_EXISTS(strlcat HAVE_STRLCAT)
CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY)
CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF)
-set(CMAKE_REQUIRED_LIBRARIES)
-
if(HAVE_SCANDIR AND NOT HAVE_SCANDIR_POSIX)
set(MSG "POSIX compatible scandir")
message(STATUS "Looking for ${MSG}")
diff --git a/CMake/variables.cmake b/CMake/variables.cmake
new file mode 100644
index 000000000..e161ef9e9
--- /dev/null
+++ b/CMake/variables.cmake
@@ -0,0 +1,81 @@
+#
+# "$Id$"
+#
+# This file sets variables for common use in export.cmake and install.cmake
+# Written by Michael Surette
+#
+# Copyright 1998-2015 by Bill Spitzak and others.
+#
+# This library is free software. Distribution and use rights are outlined in
+# the file "COPYING" which should have been included with this file. If this
+# file is missing or damaged, see the license at:
+#
+# http://www.fltk.org/COPYING.php
+#
+# Please report all bugs and problems on the following page:
+#
+# http://www.fltk.org/str.php
+#
+
+#######################################################################
+set(FL_MAJOR_VERSION ${FLTK_VERSION_MAJOR})
+set(FL_MINOR_VERSION ${FLTK_VERSION_MINOR})
+set(FL_PATCH_VERSION ${FLTK_VERSION_PATCH})
+
+#######################################################################
+# add several libraries (STR #3011)
+# FIXME: libraries may need reordering, and this version does not yet
+# correctly support static linking and local zlib, png, and jpeg libs.
+
+if(LIB_fontconfig)
+ list(APPEND FLTK_LDLIBS -lfontconfig)
+endif(LIB_fontconfig)
+
+if(HAVE_DLSYM)
+ list(APPEND FLTK_LDLIBS -ldl)
+endif(HAVE_DLSYM)
+
+if(LIB_png)
+ list(APPEND IMAGELIBS -lpng)
+endif(LIB_png)
+
+if(LIB_zlib)
+ list(APPEND IMAGELIBS -lz)
+endif(LIB_zlib)
+
+if(LIB_jpeg)
+ list(APPEND IMAGELIBS -ljpeg)
+endif(LIB_jpeg)
+
+string(REPLACE ";" " " IMAGELIBS "${IMAGELIBS}")
+set(STATICIMAGELIBS "${IMAGELIBS}")
+
+#######################################################################
+set(CC ${CMAKE_C_COMPILER})
+set(CXX ${CMAKE_CXX_COMPILER})
+
+set(ARCHFLAGS ${OPTION_ARCHFLAGS})
+
+string(TOUPPER "${CMAKE_BUILD_TYPE}" BUILD_UPPER)
+if(${BUILD_UPPER})
+ set(CFLAGS "${CMAKE_C_FLAGS_${BUILD_UPPER}} ${CFLAGS}")
+endif(${BUILD_UPPER})
+set(CFLAGS "${OPTION_OPTIM} ${CMAKE_C_FLAGS} ${CFLAGS}")
+foreach(arg ${FLTK_CFLAGS})
+ set(CFLAGS "${CFLAGS} ${arg}")
+endforeach(arg ${FLTK_CFLAGS})
+
+set(CXXFLAGS ${CFLAGS})
+
+foreach(arg ${FLTK_LDLIBS})
+ set(LINK_LIBS "${LINK_LIBS} ${arg}")
+endforeach(arg ${FLTK_LDLIBS})
+
+set(LIBS ${LINK_LIBS})
+
+# FIXME: The only case `configure' would set the "SHAREDSUFFIX"
+# variable is to "_s" if OS == "aix", hence we do NOT (yet) set it here.
+# This is for fltk-config only, so it doesn't matter much anyway.
+# ${CMAKE_SHARED_LIBRARY_SUFFIX} would be ".so" under Linux.
+# * do not * set(SHAREDSUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
+set(SHAREDSUFFIX "")