diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2015-04-25 13:50:27 +0000 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2015-04-25 13:50:27 +0000 |
| commit | e23bf0b768531c31d344cbb1b1a034f8e9de664d (patch) | |
| tree | 039a5b912a077d5656691b79bf82c7440f1e42cc /CMake | |
| parent | d2b7b5b24a65772e08ba6da6b559f770c7fcb4af (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.cmake | 52 | ||||
| -rw-r--r-- | CMake/install.cmake | 22 | ||||
| -rw-r--r-- | CMake/options.cmake | 36 | ||||
| -rw-r--r-- | CMake/resources.cmake | 6 | ||||
| -rw-r--r-- | CMake/variables.cmake | 81 |
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 "") |
