summaryrefslogtreecommitdiff
path: root/CMake/export.cmake
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2020-06-13 15:19:27 +0200
committerAlbrecht Schlosser <albrechts.fltk@online.de>2020-07-15 00:34:53 +0200
commit720b84ef9d086245f5119d143202a2661a78ca53 (patch)
tree26bcd11ffa797c3c01917507e9204fbc9f9b45aa /CMake/export.cmake
parent54425030774eb04b29c749ffa85d224c8bbfcc34 (diff)
CMake: refactor and reformat CMake files
- raise minimum CMake version from 2.6.3 to 3.2.3 (Jun 01, 2015) - indent all CMake files according to the CMP (2 col.) - refactor FLTK version number definitions and usage - unify CMake and autoconf/configure variable names: - FL_VERSION -> FLTK_VERSION - FL_MAJOR_VERSION -> FLTK_VERSION_MAJOR - etc. for _MINOR_ and _PATCH_, respectively - note: this does not affect FL_VERSION etc. in source code - generate "export headers" for all libraries (experimental: OFF) - port some forgotten goodies from branch-1.3 to master - merge and improve macro 'create_example' (WIP) - remove "temporary" options and code for older CMake versions - include and use 'GenerateExportHeader' (experimental, WIP: OFF) - note: created header files are not yet used - build only *one* DLL with Visual Studio (tested, works) - similar to the bundled IDE projects in 1.3.x - add some dynamically linked test/demo programs ('*-shared') if shared libraries are built (WIP) - split 'macros.cmake': use one file per macro
Diffstat (limited to 'CMake/export.cmake')
-rw-r--r--CMake/export.cmake138
1 files changed, 73 insertions, 65 deletions
diff --git a/CMake/export.cmake b/CMake/export.cmake
index d6c07564a..6e8bc5dd6 100644
--- a/CMake/export.cmake
+++ b/CMake/export.cmake
@@ -2,7 +2,7 @@
# Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org)
# Written by Michael Surette
#
-# Copyright 1998-2018 by Bill Spitzak and others.
+# Copyright 1998-2020 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
@@ -18,104 +18,112 @@
#######################################################################
# final config and export
#######################################################################
+
# Set the fluid executable path
-if(CMAKE_CROSSCOMPILING)
- find_file(FLUID_PATH
- NAMES fluid fluid.exe
- PATHS ENV PATH
- NO_CMAKE_FIND_ROOT_PATH
- )
- add_executable(fluid IMPORTED)
- set(FLTK_FLUID_EXECUTABLE ${FLUID_PATH})
- set(FLUID) # no export
- set_target_properties(fluid
- PROPERTIES IMPORTED_LOCATION ${FLUID_PATH}
- )
-else()
- add_subdirectory(fluid)
- set(FLTK_FLUID_EXECUTABLE fluid)
- set(FLUID fluid) # export
-endif(CMAKE_CROSSCOMPILING)
+if (CMAKE_CROSSCOMPILING)
+ find_file(FLUID_PATH
+ NAMES fluid fluid.exe
+ PATHS ENV PATH
+ NO_CMAKE_FIND_ROOT_PATH
+ )
+ add_executable(fluid IMPORTED)
+ set (FLTK_FLUID_EXECUTABLE ${FLUID_PATH})
+ set (FLUID) # no export
+ set_target_properties(fluid
+ PROPERTIES IMPORTED_LOCATION ${FLUID_PATH}
+ )
+else ()
+ add_subdirectory(fluid)
+ set (FLTK_FLUID_EXECUTABLE fluid)
+ set (FLUID fluid) # export
+endif (CMAKE_CROSSCOMPILING)
add_subdirectory(src)
# generate FLTK-Targets.cmake for build directory use
export(TARGETS ${FLUID} ${FLTK_LIBRARIES} FILE ${CMAKE_CURRENT_BINARY_DIR}/FLTK-Targets.cmake)
+# generate FLTK-Functions.cmake for build directory use
+configure_file (
+ ${CMAKE_CURRENT_SOURCE_DIR}/CMake/FLTK-Functions.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/FLTK-Functions.cmake
+ COPYONLY
+)
+
# generate FLTKConfig.cmake for build directory use
-set(INCLUDE_DIRS "${FLTK_INCLUDE_DIRS}")
-set(CONFIG_PATH ${CMAKE_CURRENT_BINARY_DIR})
+set (INCLUDE_DIRS "${FLTK_INCLUDE_DIRS}")
+set (CONFIG_PATH ${CMAKE_CURRENT_BINARY_DIR})
configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/CMake/FLTKConfig.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/FLTKConfig.cmake
- @ONLY
+ ${CMAKE_CURRENT_SOURCE_DIR}/CMake/FLTKConfig.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/FLTKConfig.cmake
+ @ONLY
)
# generate UseFLTK.cmake for build directory use
configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/CMake/UseFLTK.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/UseFLTK.cmake
- @ONLY
+ ${CMAKE_CURRENT_SOURCE_DIR}/CMake/UseFLTK.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/UseFLTK.cmake
+ @ONLY
)
# generate fltk-config for build directory use
-set(prefix ${CMAKE_CURRENT_BINARY_DIR})
-set(exec_prefix "\${prefix}")
-set(includedir "${CMAKE_CURRENT_SOURCE_DIR}")
-set(BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
-set(libdir "\${exec_prefix}/lib")
-set(srcdir ".")
+set (prefix ${CMAKE_CURRENT_BINARY_DIR})
+set (exec_prefix "\${prefix}")
+set (includedir "${CMAKE_CURRENT_SOURCE_DIR}")
+set (BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+set (libdir "\${exec_prefix}/lib")
+set (srcdir ".")
-set(LIBNAME "${libdir}/libfltk.a")
+set (LIBNAME "${libdir}/libfltk.a")
configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/fltk-config.in"
- "${CMAKE_CURRENT_BINARY_DIR}/fltk-config"
- @ONLY
+ "${CMAKE_CURRENT_SOURCE_DIR}/fltk-config.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/fltk-config"
+ @ONLY
)
if (UNIX)
execute_process(COMMAND chmod 755 fltk-config
- WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
)
endif (UNIX)
# prepare some variables for config.h
-if(IS_ABSOLUTE "${FLTK_DATADIR}")
- set(PREFIX_DATA "${FLTK_DATADIR}/fltk")
-else(IS_ABSOLUTE "${FLTK_DATADIR}")
- set(PREFIX_DATA "${CMAKE_INSTALL_PREFIX}/${FLTK_DATADIR}/fltk")
-endif(IS_ABSOLUTE "${FLTK_DATADIR}")
+if (IS_ABSOLUTE "${FLTK_DATADIR}")
+ set (PREFIX_DATA "${FLTK_DATADIR}/fltk")
+else (IS_ABSOLUTE "${FLTK_DATADIR}")
+ set (PREFIX_DATA "${CMAKE_INSTALL_PREFIX}/${FLTK_DATADIR}/fltk")
+endif (IS_ABSOLUTE "${FLTK_DATADIR}")
-if(IS_ABSOLUTE "${FLTK_DOCDIR}")
- set(PREFIX_DOC "${FLTK_DOCDIR}/fltk")
-else(IS_ABSOLUTE "${FLTK_DOCDIR}")
- set(PREFIX_DOC "${CMAKE_INSTALL_PREFIX}/${FLTK_DOCDIR}/fltk")
-endif(IS_ABSOLUTE "${FLTK_DOCDIR}")
+if (IS_ABSOLUTE "${FLTK_DOCDIR}")
+ set (PREFIX_DOC "${FLTK_DOCDIR}/fltk")
+else (IS_ABSOLUTE "${FLTK_DOCDIR}")
+ set (PREFIX_DOC "${CMAKE_INSTALL_PREFIX}/${FLTK_DOCDIR}/fltk")
+endif (IS_ABSOLUTE "${FLTK_DOCDIR}")
-set(CONFIG_H_IN configh.cmake.in)
-set(CONFIG_H config.h)
+set (CONFIG_H_IN configh.cmake.in)
+set (CONFIG_H config.h)
# generate config.h
configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_H_IN}"
- "${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_H}"
- @ONLY
+ "${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_H_IN}"
+ "${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_H}"
+ @ONLY
)
-if(OPTION_CREATE_LINKS)
- # Set PREFIX_INCLUDE to the proper value.
- if(IS_ABSOLUTE ${FLTK_INCLUDEDIR})
- set(PREFIX_INCLUDE ${FLTK_INCLUDEDIR})
- else()
- set(PREFIX_INCLUDE "${CMAKE_INSTALL_PREFIX}/${FLTK_INCLUDEDIR}")
- endif(IS_ABSOLUTE ${FLTK_INCLUDEDIR})
- configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/CMake/install-symlinks.cmake.in"
- "${CMAKE_CURRENT_BINARY_DIR}/install-symlinks.cmake"
- @ONLY
- )
-endif(OPTION_CREATE_LINKS)
+if (OPTION_CREATE_LINKS)
+ # Set PREFIX_INCLUDE to the proper value.
+ if (IS_ABSOLUTE ${FLTK_INCLUDEDIR})
+ set (PREFIX_INCLUDE ${FLTK_INCLUDEDIR})
+ else ()
+ set (PREFIX_INCLUDE "${CMAKE_INSTALL_PREFIX}/${FLTK_INCLUDEDIR}")
+ endif (IS_ABSOLUTE ${FLTK_INCLUDEDIR})
+ configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/CMake/install-symlinks.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/install-symlinks.cmake"
+ @ONLY
+ )
+endif (OPTION_CREATE_LINKS)