2010-01-16 17:18:18 +03:00
|
|
|
#
|
2004-10-19 00:29:58 +04:00
|
|
|
# Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org)
|
2014-02-09 22:41:29 +04:00
|
|
|
# Written by Michael Surette
|
2010-01-16 17:18:18 +03:00
|
|
|
#
|
2020-06-13 16:19:27 +03:00
|
|
|
# Copyright 1998-2020 by Bill Spitzak and others.
|
2010-01-16 17:18:18 +03:00
|
|
|
#
|
2011-07-19 08:49:30 +04:00
|
|
|
# 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:
|
2010-01-16 17:18:18 +03:00
|
|
|
#
|
2020-07-01 19:03:10 +03:00
|
|
|
# https://www.fltk.org/COPYING.php
|
2010-01-16 17:18:18 +03:00
|
|
|
#
|
2020-07-01 19:03:10 +03:00
|
|
|
# Please see the following page on how to report bugs and issues:
|
2010-01-16 17:18:18 +03:00
|
|
|
#
|
2020-07-01 19:03:10 +03:00
|
|
|
# https://www.fltk.org/bugs.php
|
2010-01-16 17:18:18 +03:00
|
|
|
#
|
2004-10-19 00:29:58 +04:00
|
|
|
|
2020-06-13 16:19:27 +03:00
|
|
|
#######################################################################
|
|
|
|
# set CMake minimum version (must be before `project()`
|
|
|
|
#######################################################################
|
|
|
|
|
|
|
|
# Note: previous (1.3.x) minimum version
|
|
|
|
# cmake_minimum_required (VERSION 2.6.3)
|
|
|
|
|
|
|
|
# Note: minimum CMake version required by GNUInstallDirs
|
|
|
|
# cmake_minimum_required (VERSION 2.8.4)
|
|
|
|
|
|
|
|
# Minimum CMake version required by FLTK 1.4 (06/2020, work in progress)
|
|
|
|
cmake_minimum_required (VERSION 3.2.3 FATAL_ERROR)
|
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
# define the FLTK project and version
|
|
|
|
#######################################################################
|
2014-10-09 20:03:56 +04:00
|
|
|
|
2020-06-13 16:19:27 +03:00
|
|
|
project (FLTK VERSION 1.4.0)
|
2014-09-27 04:41:06 +04:00
|
|
|
|
|
|
|
#######################################################################
|
2020-06-13 16:19:27 +03:00
|
|
|
# include macro definitions of generally used macros
|
2014-09-27 04:41:06 +04:00
|
|
|
#######################################################################
|
2020-06-13 16:19:27 +03:00
|
|
|
|
|
|
|
include (CMake/fl_debug_var.cmake)
|
|
|
|
include (CMake/fl_add_library.cmake)
|
|
|
|
|
|
|
|
if (false)
|
|
|
|
fl_debug_var (FLTK_VERSION_MAJOR)
|
|
|
|
fl_debug_var (FLTK_VERSION_MINOR)
|
|
|
|
fl_debug_var (FLTK_VERSION_PATCH)
|
|
|
|
fl_debug_var (FLTK_VERSION)
|
|
|
|
fl_debug_var (FLTK_VERSION)
|
|
|
|
endif (false)
|
2010-04-06 02:33:58 +04:00
|
|
|
|
|
|
|
#######################################################################
|
2014-02-09 22:41:29 +04:00
|
|
|
# basic setup
|
2010-04-06 02:33:58 +04:00
|
|
|
#######################################################################
|
2020-06-13 16:19:27 +03:00
|
|
|
include (CMake/setup.cmake)
|
2010-04-06 02:33:58 +04:00
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
# check for headers, libraries and functions
|
|
|
|
#######################################################################
|
2020-06-13 16:19:27 +03:00
|
|
|
include (CMake/resources.cmake)
|
2010-04-06 02:33:58 +04:00
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
# options
|
|
|
|
#######################################################################
|
2020-06-13 16:19:27 +03:00
|
|
|
include (CMake/options.cmake)
|
2010-04-06 02:33:58 +04:00
|
|
|
|
2019-01-15 01:27:34 +03:00
|
|
|
#######################################################################
|
|
|
|
# Android Studio setup
|
|
|
|
#######################################################################
|
|
|
|
if (OPTION_CREATE_ANDROID_STUDIO_IDE)
|
2020-06-13 16:19:27 +03:00
|
|
|
include (CMake/android.cmake)
|
2019-01-15 01:27:34 +03:00
|
|
|
endif (OPTION_CREATE_ANDROID_STUDIO_IDE)
|
|
|
|
|
2018-02-09 23:51:15 +03:00
|
|
|
#######################################################################
|
|
|
|
# print (debug) several build variables and options
|
|
|
|
#######################################################################
|
|
|
|
|
|
|
|
set (debug_build 0) # set to 1 to show debug info
|
2020-06-13 16:19:27 +03:00
|
|
|
|
2018-02-09 23:51:15 +03:00
|
|
|
if (debug_build)
|
|
|
|
message ("")
|
|
|
|
message (STATUS "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt: set debug_build to 0 to disable the following info:")
|
2020-06-13 16:19:27 +03:00
|
|
|
fl_debug_var (WIN32)
|
|
|
|
fl_debug_var (MINGW)
|
|
|
|
fl_debug_var (CYGWIN)
|
|
|
|
fl_debug_var (MSVC)
|
|
|
|
fl_debug_var (UNIX)
|
|
|
|
fl_debug_var (APPLE)
|
|
|
|
fl_debug_var (ANDROID)
|
|
|
|
fl_debug_var (CMAKE_BUILD_TYPE)
|
|
|
|
fl_debug_var (CMAKE_SIZEOF_VOID_P)
|
|
|
|
fl_debug_var (OPTION_OPTIM)
|
|
|
|
fl_debug_var (CMAKE_C_FLAGS)
|
|
|
|
fl_debug_var (CMAKE_CXX_FLAGS)
|
|
|
|
fl_debug_var (CMAKE_EXE_LINKER_FLAGS)
|
2018-02-09 23:51:15 +03:00
|
|
|
message (STATUS "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt: end of debug_build info.")
|
|
|
|
endif (debug_build)
|
2020-06-13 16:19:27 +03:00
|
|
|
|
2018-02-09 23:51:15 +03:00
|
|
|
unset (debug_build)
|
|
|
|
|
2015-04-25 16:50:27 +03:00
|
|
|
#######################################################################
|
|
|
|
# variables shared by export and install
|
|
|
|
# export.cmake creates configuration files for direct use in a built but uninstalled FLTK
|
|
|
|
# install.cmake creates these files for an installed FLTK
|
|
|
|
# these two would only differ in paths, so common variables are set here
|
|
|
|
#######################################################################
|
2020-06-13 16:19:27 +03:00
|
|
|
include (CMake/variables.cmake)
|
2015-04-25 16:50:27 +03:00
|
|
|
|
2013-09-11 16:54:40 +04:00
|
|
|
#######################################################################
|
2014-02-09 22:41:29 +04:00
|
|
|
# final config and export
|
2010-04-06 02:33:58 +04:00
|
|
|
#######################################################################
|
2020-06-13 16:19:27 +03:00
|
|
|
include (CMake/export.cmake)
|
2010-04-06 02:33:58 +04:00
|
|
|
|
2020-06-13 16:19:27 +03:00
|
|
|
configure_file (
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/abi-version.cmake.in
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/FL/abi-version.h
|
|
|
|
@ONLY
|
|
|
|
)
|
2015-07-12 22:23:55 +03:00
|
|
|
|
2010-04-06 02:33:58 +04:00
|
|
|
#######################################################################
|
2020-08-13 21:32:56 +03:00
|
|
|
# options to build test/demo and example programs
|
2010-04-06 02:33:58 +04:00
|
|
|
#######################################################################
|
2020-08-13 21:32:56 +03:00
|
|
|
|
|
|
|
if (FLTK_BUILD_TEST)
|
|
|
|
add_subdirectory (test)
|
|
|
|
endif (FLTK_BUILD_TEST)
|
|
|
|
|
|
|
|
if (FLTK_BUILD_EXAMPLES)
|
|
|
|
add_subdirectory (examples)
|
|
|
|
endif (FLTK_BUILD_EXAMPLES)
|
2010-04-06 02:33:58 +04:00
|
|
|
|
2019-01-16 04:12:29 +03:00
|
|
|
#######################################################################
|
|
|
|
# Android Studio wrapup
|
|
|
|
#######################################################################
|
|
|
|
if (OPTION_CREATE_ANDROID_STUDIO_IDE)
|
|
|
|
CREATE_ANDROID_IDE_WRAPUP()
|
|
|
|
endif (OPTION_CREATE_ANDROID_STUDIO_IDE)
|
|
|
|
|
2010-04-06 02:33:58 +04:00
|
|
|
#######################################################################
|
|
|
|
# installation
|
|
|
|
#######################################################################
|
2020-06-13 16:19:27 +03:00
|
|
|
include (CMake/install.cmake)
|
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
# Generate Library Export Headers *** EXPERIMENTAL *** WIP ***
|
|
|
|
#######################################################################
|
|
|
|
|
|
|
|
# Enable (1) or disable (0) generation of experimental headers (WIP)
|
|
|
|
set (GENERATE_EXPORT_HEADERS 0)
|
|
|
|
|
|
|
|
if (OPTION_BUILD_SHARED_LIBS AND GENERATE_EXPORT_HEADERS)
|
|
|
|
|
|
|
|
include (GenerateExportHeader)
|
|
|
|
|
|
|
|
generate_export_header (fltk_SHARED
|
|
|
|
BASE_NAME fl
|
|
|
|
EXPORT_FILE_NAME FL/fltk_export.h
|
|
|
|
STATIC_DEFINE FL_STATIC_LIB
|
|
|
|
)
|
|
|
|
|
|
|
|
if (NOT MSVC)
|
|
|
|
|
|
|
|
# Visual Studio builds only one shared lib (DLL)
|
|
|
|
|
|
|
|
generate_export_header (fltk_images_SHARED
|
|
|
|
BASE_NAME fl_images
|
|
|
|
EXPORT_FILE_NAME FL/fltk_images_export.h
|
|
|
|
STATIC_DEFINE FL_STATIC_LIB
|
|
|
|
)
|
|
|
|
|
|
|
|
generate_export_header (fltk_forms_SHARED
|
|
|
|
BASE_NAME fl_forms
|
|
|
|
EXPORT_FILE_NAME FL/fltk_forms_export.h
|
|
|
|
STATIC_DEFINE FL_STATIC_LIB
|
|
|
|
)
|
|
|
|
|
|
|
|
generate_export_header (fltk_gl_SHARED
|
|
|
|
BASE_NAME fl_gl
|
|
|
|
EXPORT_FILE_NAME FL/fltk_gl_export.h
|
|
|
|
STATIC_DEFINE FL_STATIC_LIB
|
|
|
|
)
|
|
|
|
|
|
|
|
endif (NOT MSVC)
|
|
|
|
|
|
|
|
endif (OPTION_BUILD_SHARED_LIBS AND GENERATE_EXPORT_HEADERS)
|