mirror of https://github.com/fltk/fltk
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
This commit is contained in:
parent
5442503077
commit
720b84ef9d
|
@ -0,0 +1,55 @@
|
|||
#
|
||||
# FLTK-Functions.cmake
|
||||
# Written by Michael Surette
|
||||
#
|
||||
# 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
|
||||
# file is missing or damaged, see the license at:
|
||||
#
|
||||
# https://www.fltk.org/COPYING.php
|
||||
#
|
||||
# Please see the following page on how to report bugs and issues:
|
||||
#
|
||||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
#######################################################################
|
||||
# functions used by the build system and exported for the end-user
|
||||
#######################################################################
|
||||
|
||||
# USAGE: FLTK_RUN_FLUID TARGET_NAME "FLUID_SOURCE [.. FLUID_SOURCE]"
|
||||
|
||||
function (FLTK_RUN_FLUID TARGET SOURCES)
|
||||
set (CXX_FILES)
|
||||
foreach (src ${SOURCES})
|
||||
if ("${src}" MATCHES "\\.fl$")
|
||||
string(REGEX REPLACE "(.*).fl" \\1 basename ${src})
|
||||
add_custom_command(
|
||||
OUTPUT "${basename}.cxx" "${basename}.h"
|
||||
COMMAND fluid -c ${CMAKE_CURRENT_SOURCE_DIR}/${src}
|
||||
DEPENDS ${src}
|
||||
MAIN_DEPENDENCY ${src}
|
||||
)
|
||||
list (APPEND CXX_FILES "${basename}.cxx")
|
||||
endif ("${src}" MATCHES "\\.fl$")
|
||||
set (${TARGET} ${CXX_FILES} PARENT_SCOPE)
|
||||
endforeach ()
|
||||
endfunction (FLTK_RUN_FLUID TARGET SOURCES)
|
||||
|
||||
#######################################################################
|
||||
|
||||
# sets the bundle icon for OSX bundles
|
||||
|
||||
function (FLTK_SET_BUNDLE_ICON TARGET ICON_PATH)
|
||||
get_filename_component (ICON_NAME "${ICON_PATH}" NAME)
|
||||
set_target_properties ("${TARGET}" PROPERTIES
|
||||
MACOSX_BUNDLE_ICON_FILE "${ICON_NAME}"
|
||||
RESOURCE "${ICON_PATH}"
|
||||
)
|
||||
endfunction (FLTK_SET_BUNDLE_ICON TARGET ICON_PATH)
|
||||
|
||||
#
|
||||
# End of file
|
||||
#
|
|
@ -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)
|
||||
|
|
|
@ -0,0 +1,123 @@
|
|||
#
|
||||
# Macro used by the CMake build system for the Fast Light Tool Kit (FLTK).
|
||||
# Written by Michael Surette
|
||||
#
|
||||
# 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
|
||||
# file is missing or damaged, see the license at:
|
||||
#
|
||||
# https://www.fltk.org/COPYING.php
|
||||
#
|
||||
# Please see the following page on how to report bugs and issues:
|
||||
#
|
||||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
#######################################################################
|
||||
# FL_ADD_LIBRARY - add a static or shared library to the build
|
||||
#######################################################################
|
||||
|
||||
macro (FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES)
|
||||
|
||||
if (${LIBTYPE} STREQUAL "SHARED")
|
||||
set (TARGET_NAME ${LIBNAME}_SHARED)
|
||||
else ()
|
||||
set (TARGET_NAME ${LIBNAME})
|
||||
endif (${LIBTYPE} STREQUAL "SHARED")
|
||||
|
||||
if (MSVC)
|
||||
set (OUTPUT_NAME_DEBUG "${LIBNAME}d")
|
||||
set (OUTPUT_NAME_RELEASE "${LIBNAME}")
|
||||
else ()
|
||||
set (OUTPUT_NAME_DEBUG "${LIBNAME}")
|
||||
set (OUTPUT_NAME_RELEASE "${LIBNAME}")
|
||||
endif (MSVC)
|
||||
|
||||
add_library(${TARGET_NAME} ${LIBTYPE} ${LIBFILES})
|
||||
|
||||
# target properties for all libraries
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
CLEAN_DIRECT_OUTPUT TRUE
|
||||
COMPILE_DEFINITIONS "FL_LIBRARY"
|
||||
)
|
||||
|
||||
# additional target properties for static libraries
|
||||
|
||||
if (${LIBTYPE} STREQUAL "STATIC")
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${LIBNAME}
|
||||
OUTPUT_NAME_DEBUG ${OUTPUT_NAME_DEBUG}
|
||||
OUTPUT_NAME_RELEASE ${OUTPUT_NAME_RELEASE}
|
||||
)
|
||||
endif (${LIBTYPE} STREQUAL "STATIC")
|
||||
|
||||
# additional target properties for shared (dynamic) libraries (DLL's)
|
||||
|
||||
if (${LIBTYPE} STREQUAL "SHARED")
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
VERSION ${FLTK_VERSION}
|
||||
SOVERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
|
||||
OUTPUT_NAME ${LIBNAME}
|
||||
OUTPUT_NAME_DEBUG ${OUTPUT_NAME_DEBUG}
|
||||
OUTPUT_NAME_RELEASE ${OUTPUT_NAME_RELEASE}
|
||||
)
|
||||
# MSVC only:
|
||||
if (MSVC)
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME lib${LIBNAME}
|
||||
OUTPUT_NAME_DEBUG lib${OUTPUT_NAME_DEBUG}
|
||||
OUTPUT_NAME_RELEASE lib${OUTPUT_NAME_RELEASE}
|
||||
# PREFIX "lib" # for MSVC static/shared coexistence *DOES NOT WORK*
|
||||
)
|
||||
endif (MSVC)
|
||||
endif (${LIBTYPE} STREQUAL "SHARED")
|
||||
|
||||
# Debug library output names (optional)
|
||||
set (DEBUG_ONAME 0)
|
||||
|
||||
if (DEBUG_ONAME)
|
||||
get_target_property (XX_ONAME ${TARGET_NAME} OUTPUT_NAME)
|
||||
get_target_property (XX_ONAME_DEBUG ${TARGET_NAME} OUTPUT_NAME_DEBUG)
|
||||
get_target_property (XX_ONAME_RELEASE ${TARGET_NAME} OUTPUT_NAME_RELEASE)
|
||||
|
||||
fl_debug_var (TARGET_NAME)
|
||||
fl_debug_var (XX_ONAME)
|
||||
fl_debug_var (XX_ONAME_DEBUG)
|
||||
fl_debug_var (XX_ONAME_RELEASE)
|
||||
message (STATUS "---")
|
||||
endif (DEBUG_ONAME)
|
||||
|
||||
if (MSVC)
|
||||
if (OPTION_LARGE_FILE)
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
LINK_FLAGS /LARGEADDRESSAWARE
|
||||
)
|
||||
endif (OPTION_LARGE_FILE)
|
||||
|
||||
if (${LIBTYPE} STREQUAL "SHARED")
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
COMPILE_DEFINITIONS "FL_DLL"
|
||||
)
|
||||
endif (${LIBTYPE} STREQUAL "SHARED")
|
||||
endif (MSVC)
|
||||
|
||||
install (TARGETS ${TARGET_NAME}
|
||||
EXPORT FLTK-Targets
|
||||
RUNTIME DESTINATION ${FLTK_BINDIR}
|
||||
LIBRARY DESTINATION ${FLTK_LIBDIR}
|
||||
ARCHIVE DESTINATION ${FLTK_LIBDIR}
|
||||
)
|
||||
|
||||
list (APPEND FLTK_LIBRARIES "${TARGET_NAME}")
|
||||
set (FLTK_LIBRARIES ${FLTK_LIBRARIES} PARENT_SCOPE)
|
||||
|
||||
endmacro (FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES)
|
|
@ -0,0 +1,145 @@
|
|||
#
|
||||
# A macro used by the CMake build system for the Fast Light Tool Kit (FLTK).
|
||||
# Written by Michael Surette
|
||||
#
|
||||
# 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
|
||||
# file is missing or damaged, see the license at:
|
||||
#
|
||||
# https://www.fltk.org/COPYING.php
|
||||
#
|
||||
# Please see the following page on how to report bugs and issues:
|
||||
#
|
||||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
#######################################################################
|
||||
#
|
||||
# macro CREATE_EXAMPLE - Create a test/demo program
|
||||
#
|
||||
# Input:
|
||||
#
|
||||
# - NAME: program name, e.g. 'hello'
|
||||
#
|
||||
# - SOURCES: list of source files, separated by ';' (needs quotes)
|
||||
# Sources can be:
|
||||
# - .c/.cxx files, e.g. 'hello.cxx'
|
||||
# - .fl (fluid) files, e.g. 'radio.fl'
|
||||
# - .plist file (macOS), e.g. 'editor-Info.plist'
|
||||
# - .icns file (macOS Icon), e.g. 'checkers.icns'
|
||||
# File name (type), e.g. '.icns' matters, it is parsed internally.
|
||||
# Order of sources doesn't matter, multiple .cxx and .fl files are
|
||||
# supported, but only one .plist and .icns file.
|
||||
# macOS specific files are ignored on other platforms.
|
||||
#
|
||||
# - LIBRARIES:
|
||||
# List of libraries (CMake target names), separated by ';'. Needs
|
||||
# quotes if more than one library is needed, e.g. "fltk_gl;fltk"
|
||||
#
|
||||
# CREATE_EXAMPLE can have an optional fourth argument with a list of options
|
||||
# - the option ANDROID_OK is set if CREATE_EXAMPLE creates code for Android
|
||||
# builds in addition to the native build
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
macro (CREATE_EXAMPLE NAME SOURCES LIBRARIES)
|
||||
|
||||
set (srcs) # source files
|
||||
set (flsrcs) # fluid source (.fl) files
|
||||
set (TARGET_NAME ${NAME}) # CMake target name
|
||||
set (FLUID_SOURCES) # generated sources
|
||||
set (ICON_NAME) # macOS icon (max. one)
|
||||
set (PLIST) # macOS .plist file (max. one)
|
||||
set (RESOURCE_PATH) # macOS resource path
|
||||
|
||||
# rename target name "help" (reserved since CMake 2.8.12 and later)
|
||||
# FIXME: not necessary in FLTK 1.4 but left for compatibility (06/2020)
|
||||
|
||||
if (${TARGET_NAME} STREQUAL "help")
|
||||
set (TARGET_NAME "test_help")
|
||||
endif (${TARGET_NAME} STREQUAL "help")
|
||||
|
||||
# filter input files for different handling (fluid, icon, plist, source)
|
||||
|
||||
foreach (src ${SOURCES})
|
||||
if ("${src}" MATCHES "\\.fl$")
|
||||
list (APPEND flsrcs ${src})
|
||||
elseif ("${src}" MATCHES "\\.icns$")
|
||||
set (ICON_NAME "${src}")
|
||||
elseif ("${src}" MATCHES "\\.plist$")
|
||||
set (PLIST "${src}")
|
||||
else ()
|
||||
list (APPEND srcs ${src})
|
||||
endif ("${src}" MATCHES "\\.fl$")
|
||||
endforeach (src)
|
||||
|
||||
if (flsrcs)
|
||||
FLTK_RUN_FLUID (FLUID_SOURCES "${flsrcs}")
|
||||
endif (flsrcs)
|
||||
|
||||
## FIXME ## #############################################################
|
||||
## FIXME ## The macOS specific code needs reorganization/simplification
|
||||
## FIXME ## -- Albrecht (06/2020)
|
||||
## FIXME ## =============================================================
|
||||
## FIXME ## Use "new" function `FLTK_SET_BUNDLE_ICON()` (?)
|
||||
## FIXME ## -- see CMake/FLTK-Functions.cmake (may need some tweaks)
|
||||
## FIXME ## -- ported from FLTK 1.3 (06/2020)
|
||||
## FIXME ## #############################################################
|
||||
|
||||
if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
|
||||
## -- Code from FLTK 1.3 for reference (variable names adjusted):
|
||||
## add_executable (${TARGET_NAME} MACOSX_BUNDLE ${srcs} ${FLUID_SOURCES} ${ICON_NAME})
|
||||
## if (ICON_NAME)
|
||||
## FLTK_SET_BUNDLE_ICON (${TARGET_NAME} ${ICON_NAME})
|
||||
## endif ()
|
||||
## -- End of code from FLTK 1.3
|
||||
|
||||
if (ICON_NAME)
|
||||
set (RESOURCE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_NAME}.app/Contents/Resources/${ICON_NAME}")
|
||||
elseif (${TARGET_NAME} STREQUAL "demo")
|
||||
set (RESOURCE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/demo.menu")
|
||||
endif (ICON_NAME)
|
||||
|
||||
if (RESOURCE_PATH)
|
||||
add_executable (${TARGET_NAME} MACOSX_BUNDLE ${srcs} ${FLUID_SOURCES} ${RESOURCE_PATH})
|
||||
if (${TARGET_NAME} STREQUAL "demo")
|
||||
target_compile_definitions (demo PUBLIC USING_XCODE)
|
||||
endif (${TARGET_NAME} STREQUAL "demo")
|
||||
else ()
|
||||
add_executable (${TARGET_NAME} MACOSX_BUNDLE ${srcs} ${FLUID_SOURCES})
|
||||
endif (RESOURCE_PATH)
|
||||
else ()
|
||||
add_executable (${TARGET_NAME} WIN32 ${srcs} ${FLUID_SOURCES})
|
||||
endif (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
|
||||
set_target_properties (${TARGET_NAME}
|
||||
PROPERTIES OUTPUT_NAME ${NAME}
|
||||
)
|
||||
|
||||
if (APPLE AND RESOURCE_PATH)
|
||||
if (ICON_NAME)
|
||||
set_target_properties (${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_ICON_FILE ${ICON_NAME})
|
||||
endif (ICON_NAME)
|
||||
set_target_properties (${TARGET_NAME} PROPERTIES RESOURCE ${RESOURCE_PATH})
|
||||
endif (APPLE AND RESOURCE_PATH)
|
||||
|
||||
if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL) AND PLIST)
|
||||
set_target_properties (${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/${PLIST}")
|
||||
endif (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL) AND PLIST)
|
||||
|
||||
target_link_libraries (${TARGET_NAME} ${LIBRARIES})
|
||||
|
||||
# Parse optional fourth argument 'ANDROID_OK', see description above.
|
||||
|
||||
if (${ARGC} GREATER 3)
|
||||
foreach (OPTION ${ARGV3})
|
||||
if (${OPTION} STREQUAL ANDROID_OK AND OPTION_CREATE_ANDROID_STUDIO_IDE)
|
||||
CREATE_ANDROID_IDE_FOR_TEST (${NAME} ${SOURCES} ${LIBRARIES})
|
||||
endif ()
|
||||
endforeach ()
|
||||
endif ()
|
||||
|
||||
endmacro (CREATE_EXAMPLE NAME SOURCES LIBRARIES)
|
|
@ -0,0 +1,47 @@
|
|||
#
|
||||
# Macro used by the CMake build system for the Fast Light Tool Kit (FLTK).
|
||||
# Written by Michael Surette
|
||||
#
|
||||
# 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
|
||||
# file is missing or damaged, see the license at:
|
||||
#
|
||||
# https://www.fltk.org/COPYING.php
|
||||
#
|
||||
# Please see the following page on how to report bugs and issues:
|
||||
#
|
||||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
#######################################################################
|
||||
# fl_debug_var - a macro to output debugging info
|
||||
#######################################################################
|
||||
#
|
||||
# This macro displays the name and value of a CMake variable.
|
||||
# The variable name is expanded with spaces to be (at least)
|
||||
# <min_len> (currently 24) characters wide for better readability.
|
||||
# VARNAME must be a string literal, e.g. WIN32 or "WIN32".
|
||||
#
|
||||
# Syntax:
|
||||
# fl_debug_var(VARNAME)
|
||||
#
|
||||
# Example:
|
||||
# fl_debug_var(WIN32)
|
||||
# fl_debug_var("UNIX")
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
macro (fl_debug_var name)
|
||||
set (min_len 24)
|
||||
set (var "${name}")
|
||||
string(LENGTH "${var}" len)
|
||||
while (len LESS min_len)
|
||||
# add one space until min_len is reached
|
||||
# ** string(APPEND var " ") # requires CMake 3.4.x (otherwise loop...)
|
||||
set (var "${var} ")
|
||||
string(LENGTH "${var}" len)
|
||||
endwhile (len LESS min_len)
|
||||
message (STATUS "${var} = '${${name}}'")
|
||||
endmacro (fl_debug_var)
|
|
@ -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
|
||||
|
@ -25,92 +25,103 @@ configure_file(
|
|||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
@ONLY
|
||||
)
|
||||
add_custom_target(uninstall
|
||||
add_custom_target (uninstall
|
||||
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
)
|
||||
|
||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/FL
|
||||
DESTINATION ${FLTK_INCLUDEDIR} USE_SOURCE_PERMISSIONS
|
||||
PATTERN ".svn" EXCLUDE
|
||||
install (DIRECTORY
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/FL
|
||||
DESTINATION ${FLTK_INCLUDEDIR} USE_SOURCE_PERMISSIONS
|
||||
)
|
||||
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/FL
|
||||
DESTINATION ${FLTK_INCLUDEDIR} USE_SOURCE_PERMISSIONS
|
||||
install (DIRECTORY
|
||||
${CMAKE_CURRENT_BINARY_DIR}/FL
|
||||
DESTINATION ${FLTK_INCLUDEDIR} USE_SOURCE_PERMISSIONS
|
||||
)
|
||||
|
||||
if(OPTION_CREATE_LINKS)
|
||||
install(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/install-symlinks.cmake)
|
||||
endif(OPTION_CREATE_LINKS)
|
||||
if (OPTION_CREATE_LINKS)
|
||||
install (SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/install-symlinks.cmake)
|
||||
endif (OPTION_CREATE_LINKS)
|
||||
|
||||
# generate FLTKConfig.cmake for installed directory use
|
||||
set(INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include)
|
||||
set (INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include)
|
||||
|
||||
set(CONFIG_PATH ${CMAKE_INSTALL_PREFIX}/${FLTK_CONFIG_PATH})
|
||||
set (CONFIG_PATH ${CMAKE_INSTALL_PREFIX}/${FLTK_CONFIG_PATH})
|
||||
|
||||
install(EXPORT FLTK-Targets
|
||||
DESTINATION ${FLTK_CONFIG_PATH}
|
||||
FILE FLTK-Targets.cmake
|
||||
install (EXPORT FLTK-Targets
|
||||
DESTINATION ${FLTK_CONFIG_PATH}
|
||||
FILE FLTK-Targets.cmake
|
||||
)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMake/FLTKConfig.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/etc/FLTKConfig.cmake
|
||||
@ONLY
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMake/FLTKConfig.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/etc/FLTKConfig.cmake
|
||||
@ONLY
|
||||
)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/etc/FLTKConfig.cmake
|
||||
DESTINATION ${FLTK_CONFIG_PATH}
|
||||
install (FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/etc/FLTKConfig.cmake
|
||||
DESTINATION ${FLTK_CONFIG_PATH}
|
||||
)
|
||||
|
||||
install (FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMake/FLTK-Functions.cmake
|
||||
DESTINATION ${FLTK_CONFIG_PATH}
|
||||
)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMake/UseFLTK.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/etc/UseFLTK.cmake
|
||||
@ONLY
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMake/UseFLTK.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/etc/UseFLTK.cmake
|
||||
@ONLY
|
||||
)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/etc/UseFLTK.cmake
|
||||
DESTINATION ${FLTK_CONFIG_PATH}
|
||||
# Deprecated: install UseFLTK.cmake with deprecation warnings only
|
||||
install (FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/etc/UseFLTK.cmake
|
||||
DESTINATION ${FLTK_CONFIG_PATH}
|
||||
)
|
||||
|
||||
# generate fltk-config
|
||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
set(exec_prefix "\${prefix}")
|
||||
set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
set(BINARY_DIR)
|
||||
set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||||
set(srcdir ".")
|
||||
set (prefix ${CMAKE_INSTALL_PREFIX})
|
||||
set (exec_prefix "\${prefix}")
|
||||
set (includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
set (BINARY_DIR)
|
||||
set (libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||||
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}/bin/fltk-config"
|
||||
@ONLY
|
||||
)
|
||||
if(UNIX)
|
||||
execute_process(COMMAND chmod 755 fltk-config
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin"
|
||||
)
|
||||
endif(UNIX)
|
||||
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/bin/fltk-config
|
||||
DESTINATION ${FLTK_BINDIR}
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/fltk-config.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/bin/fltk-config"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
if(UNIX OR MSYS OR (MINGW AND CMAKE_CROSSCOMPILING))
|
||||
macro(INSTALL_MAN FILE LEVEL)
|
||||
install(FILES
|
||||
if (UNIX)
|
||||
execute_process (COMMAND chmod 755 fltk-config
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin"
|
||||
)
|
||||
endif (UNIX)
|
||||
|
||||
install (PROGRAMS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/bin/fltk-config
|
||||
DESTINATION ${FLTK_BINDIR}
|
||||
)
|
||||
|
||||
if (UNIX OR MSYS OR (MINGW AND CMAKE_CROSSCOMPILING))
|
||||
macro(INSTALL_MAN FILE LEVEL)
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/documentation/src/${FILE}.man
|
||||
DESTINATION ${FLTK_MANDIR}/man${LEVEL}
|
||||
RENAME ${FILE}.${LEVEL}
|
||||
)
|
||||
endmacro(INSTALL_MAN FILE LEVEL)
|
||||
)
|
||||
endmacro (INSTALL_MAN FILE LEVEL)
|
||||
|
||||
INSTALL_MAN(fluid 1)
|
||||
INSTALL_MAN(fltk-config 1)
|
||||
INSTALL_MAN(fltk 3)
|
||||
INSTALL_MAN(blocks 6)
|
||||
INSTALL_MAN(checkers 6)
|
||||
INSTALL_MAN(sudoku 6)
|
||||
INSTALL_MAN (fluid 1)
|
||||
INSTALL_MAN (fltk-config 1)
|
||||
INSTALL_MAN (fltk 3)
|
||||
INSTALL_MAN (blocks 6)
|
||||
INSTALL_MAN (checkers 6)
|
||||
INSTALL_MAN (sudoku 6)
|
||||
|
||||
endif(UNIX OR MSYS OR (MINGW AND CMAKE_CROSSCOMPILING))
|
||||
endif (UNIX OR MSYS OR (MINGW AND CMAKE_CROSSCOMPILING))
|
||||
|
|
|
@ -1,204 +0,0 @@
|
|||
#
|
||||
# Macros used by the CMake build system for the Fast Light Tool Kit (FLTK).
|
||||
# Written by Michael Surette
|
||||
#
|
||||
# Copyright 1998-2018 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:
|
||||
#
|
||||
# https://www.fltk.org/COPYING.php
|
||||
#
|
||||
# Please see the following page on how to report bugs and issues:
|
||||
#
|
||||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
#######################################################################
|
||||
# macros used for debugging purposes
|
||||
#######################################################################
|
||||
|
||||
# This macro displays the name and value of a CMake variable.
|
||||
# The variable name is expanded with spaces to be (at least)
|
||||
# <min_len> (currently 24) characters wide for better readability.
|
||||
# VARNAME must be a string literal, e.g. WIN32 or "WIN32".
|
||||
#
|
||||
# Syntax:
|
||||
# fl_debug_var(VARNAME)
|
||||
#
|
||||
# Example:
|
||||
# fl_debug_var(WIN32)
|
||||
# fl_debug_var("UNIX")
|
||||
#
|
||||
|
||||
macro (fl_debug_var name)
|
||||
set (min_len 24)
|
||||
set (var "${name}")
|
||||
string(LENGTH "${var}" len)
|
||||
while (len LESS min_len)
|
||||
# add one space until min_len is reached
|
||||
# ** string(APPEND var " ") # requires CMake 3.4.x (otherwise loop...)
|
||||
set (var "${var} ")
|
||||
string(LENGTH "${var}" len)
|
||||
endwhile (len LESS min_len)
|
||||
message (STATUS "${var} = '${${name}}'")
|
||||
endmacro (fl_debug_var)
|
||||
|
||||
#######################################################################
|
||||
# macros used by the build system
|
||||
#######################################################################
|
||||
macro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES)
|
||||
|
||||
if (${LIBTYPE} STREQUAL "SHARED")
|
||||
set (TARGET_NAME ${LIBNAME}_SHARED)
|
||||
else ()
|
||||
set (TARGET_NAME ${LIBNAME})
|
||||
endif (${LIBTYPE} STREQUAL "SHARED")
|
||||
|
||||
if (MSVC)
|
||||
set (DEBUG_OUTPUT_NAME "${LIBNAME}d")
|
||||
else ()
|
||||
set (DEBUG_OUTPUT_NAME "${LIBNAME}")
|
||||
endif (MSVC)
|
||||
|
||||
add_library(${TARGET_NAME} ${LIBTYPE} ${LIBFILES})
|
||||
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${LIBNAME}
|
||||
DEBUG_OUTPUT_NAME ${DEBUG_OUTPUT_NAME}
|
||||
CLEAN_DIRECT_OUTPUT TRUE
|
||||
COMPILE_DEFINITIONS "FL_LIBRARY"
|
||||
)
|
||||
|
||||
if (${LIBTYPE} STREQUAL "SHARED")
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${LIBNAME}
|
||||
DEBUG_OUTPUT_NAME ${DEBUG_OUTPUT_NAME}
|
||||
VERSION ${FLTK_VERSION_FULL}
|
||||
SOVERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
|
||||
PREFIX "lib" # for MSVC static/shared coexistence
|
||||
)
|
||||
endif (${LIBTYPE} STREQUAL "SHARED")
|
||||
|
||||
if (MSVC)
|
||||
if (OPTION_LARGE_FILE)
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
LINK_FLAGS /LARGEADDRESSAWARE
|
||||
)
|
||||
endif (OPTION_LARGE_FILE)
|
||||
|
||||
if (${LIBTYPE} STREQUAL "SHARED")
|
||||
set_target_properties(${TARGET_NAME}
|
||||
PROPERTIES
|
||||
COMPILE_DEFINITIONS "FL_DLL"
|
||||
)
|
||||
endif (${LIBTYPE} STREQUAL "SHARED")
|
||||
endif (MSVC)
|
||||
|
||||
install(TARGETS ${TARGET_NAME}
|
||||
EXPORT FLTK-Targets
|
||||
RUNTIME DESTINATION ${FLTK_BINDIR}
|
||||
LIBRARY DESTINATION ${FLTK_LIBDIR}
|
||||
ARCHIVE DESTINATION ${FLTK_LIBDIR}
|
||||
)
|
||||
|
||||
list(APPEND FLTK_LIBRARIES "${TARGET_NAME}")
|
||||
set (FLTK_LIBRARIES ${FLTK_LIBRARIES} PARENT_SCOPE)
|
||||
|
||||
endmacro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES)
|
||||
|
||||
#######################################################################
|
||||
# USAGE: FLTK_RUN_FLUID TARGET_NAME "FLUID_SOURCE [.. FLUID_SOURCE]"
|
||||
function(FLTK_RUN_FLUID TARGET SOURCES)
|
||||
set (CXX_FILES)
|
||||
foreach(src ${SOURCES})
|
||||
if ("${src}" MATCHES "\\.fl$")
|
||||
string(REGEX REPLACE "(.*).fl" \\1 basename ${src})
|
||||
add_custom_command(
|
||||
OUTPUT "${basename}.cxx" "${basename}.h"
|
||||
COMMAND fluid -c ${CMAKE_CURRENT_SOURCE_DIR}/${src}
|
||||
DEPENDS ${src}
|
||||
MAIN_DEPENDENCY ${src}
|
||||
)
|
||||
list(APPEND CXX_FILES "${basename}.cxx")
|
||||
endif ("${src}" MATCHES "\\.fl$")
|
||||
set (${TARGET} ${CXX_FILES} PARENT_SCOPE)
|
||||
endforeach(src)
|
||||
endfunction(FLTK_RUN_FLUID TARGET SOURCES)
|
||||
|
||||
#######################################################################
|
||||
macro(CREATE_EXAMPLE NAME SOURCES LIBRARIES)
|
||||
|
||||
set (srcs) # source files
|
||||
set (flsrcs) # fluid source files
|
||||
|
||||
set (tname ${NAME}) # target name
|
||||
set (oname ${NAME}) # output (executable) name
|
||||
|
||||
foreach(src ${SOURCES})
|
||||
if ("${src}" MATCHES "\\.fl$")
|
||||
list(APPEND flsrcs ${src})
|
||||
else ()
|
||||
list(APPEND srcs ${src})
|
||||
endif ("${src}" MATCHES "\\.fl$")
|
||||
endforeach(src)
|
||||
|
||||
set (FLUID_SOURCES)
|
||||
if (flsrcs)
|
||||
FLTK_RUN_FLUID(FLUID_SOURCES "${flsrcs}")
|
||||
endif (flsrcs)
|
||||
|
||||
if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
unset (RESOURCE_PATH)
|
||||
if (${tname} STREQUAL "blocks" OR ${tname} STREQUAL "checkers" OR ${tname} STREQUAL "sudoku")
|
||||
set (ICON_NAME ${tname}.icns)
|
||||
set (RESOURCE_PATH "${PROJECT_SOURCE_DIR}/test/${tname}.app/Contents/Resources/${ICON_NAME}")
|
||||
elseif (${tname} STREQUAL "demo")
|
||||
set (RESOURCE_PATH "${PROJECT_SOURCE_DIR}/test/demo.menu")
|
||||
endif (${tname} STREQUAL "blocks" OR ${tname} STREQUAL "checkers" OR ${tname} STREQUAL "sudoku")
|
||||
|
||||
if (DEFINED RESOURCE_PATH)
|
||||
add_executable(${tname} MACOSX_BUNDLE ${srcs} ${FLUID_SOURCES} ${RESOURCE_PATH})
|
||||
if (${tname} STREQUAL "demo")
|
||||
target_compile_definitions(demo PUBLIC USING_XCODE)
|
||||
endif (${tname} STREQUAL "demo")
|
||||
else ()
|
||||
add_executable(${tname} MACOSX_BUNDLE ${srcs} ${FLUID_SOURCES})
|
||||
endif (DEFINED RESOURCE_PATH)
|
||||
else ()
|
||||
add_executable(${tname} WIN32 ${srcs} ${FLUID_SOURCES})
|
||||
endif (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
|
||||
set_target_properties(${tname}
|
||||
PROPERTIES OUTPUT_NAME ${oname}
|
||||
)
|
||||
if (APPLE AND DEFINED RESOURCE_PATH)
|
||||
if (NOT ${tname} STREQUAL "demo")
|
||||
set_target_properties(${tname} PROPERTIES MACOSX_BUNDLE_ICON_FILE ${ICON_NAME})
|
||||
endif (NOT ${tname} STREQUAL "demo")
|
||||
set_target_properties(${tname} PROPERTIES RESOURCE ${RESOURCE_PATH})
|
||||
endif (APPLE AND DEFINED RESOURCE_PATH)
|
||||
if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL) AND ${tname} STREQUAL "editor")
|
||||
set_target_properties("editor" PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/test/editor-Info.plist" )
|
||||
endif(APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL) AND ${tname} STREQUAL "editor")
|
||||
|
||||
target_link_libraries(${tname} ${LIBRARIES})
|
||||
|
||||
# CREATE_EXAMPLE can have an optional fourth argument with a list of options
|
||||
# - the option ANDROID_OK is set if CREATE_EXAMPLE creates code for Androids
|
||||
# builds in addition to the native build
|
||||
if (${ARGC} GREATER 3)
|
||||
foreach(OPTION ${ARGV3})
|
||||
if (${OPTION} STREQUAL ANDROID_OK AND OPTION_CREATE_ANDROID_STUDIO_IDE)
|
||||
CREATE_ANDROID_IDE_FOR_TEST(${NAME} ${SOURCES} ${LIBRARIES})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
endmacro(CREATE_EXAMPLE NAME SOURCES LIBRARIES)
|
||||
|
||||
#######################################################################
|
|
@ -22,50 +22,34 @@ if (DEBUG_OPTIONS_CMAKE)
|
|||
fl_debug_var (FLTK_LDLIBS)
|
||||
endif (DEBUG_OPTIONS_CMAKE)
|
||||
|
||||
#######################################################################
|
||||
# *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. Should be OFF."
|
||||
OFF
|
||||
)
|
||||
mark_as_advanced(USE_FIND_FILE)
|
||||
|
||||
#######################################################################
|
||||
# options
|
||||
#######################################################################
|
||||
set(OPTION_OPTIM ""
|
||||
CACHE STRING
|
||||
"custom optimization flags"
|
||||
)
|
||||
add_definitions(${OPTION_OPTIM})
|
||||
set (OPTION_OPTIM ""
|
||||
CACHE STRING
|
||||
"custom optimization flags"
|
||||
)
|
||||
add_definitions (${OPTION_OPTIM})
|
||||
|
||||
#######################################################################
|
||||
set(OPTION_ARCHFLAGS ""
|
||||
CACHE STRING
|
||||
"custom architecture flags"
|
||||
)
|
||||
add_definitions(${OPTION_ARCHFLAGS})
|
||||
set (OPTION_ARCHFLAGS ""
|
||||
CACHE STRING
|
||||
"custom architecture flags"
|
||||
)
|
||||
add_definitions (${OPTION_ARCHFLAGS})
|
||||
|
||||
#######################################################################
|
||||
set(OPTION_ABI_VERSION ""
|
||||
CACHE STRING
|
||||
"FLTK ABI Version FL_ABI_VERSION: 1xxyy for 1.x.y (xx,yy with leading zero)"
|
||||
)
|
||||
set(FL_ABI_VERSION ${OPTION_ABI_VERSION})
|
||||
set (OPTION_ABI_VERSION ""
|
||||
CACHE STRING
|
||||
"FLTK ABI Version FL_ABI_VERSION: 1xxyy for 1.x.y (xx,yy with leading zero)"
|
||||
)
|
||||
set (FL_ABI_VERSION ${OPTION_ABI_VERSION})
|
||||
|
||||
#######################################################################
|
||||
#######################################################################
|
||||
if (UNIX)
|
||||
option(OPTION_CREATE_LINKS "create backwards compatibility links" OFF)
|
||||
option (OPTION_CREATE_LINKS "create backwards compatibility links" OFF)
|
||||
list (APPEND FLTK_LDLIBS -lm)
|
||||
endif (UNIX)
|
||||
|
||||
#######################################################################
|
||||
|
@ -107,105 +91,105 @@ if (OPTION_APPLE_SDL)
|
|||
endif (OPTION_APPLE_SDL)
|
||||
|
||||
#######################################################################
|
||||
option(OPTION_USE_POLL "use poll if available" OFF)
|
||||
mark_as_advanced(OPTION_USE_POLL)
|
||||
option (OPTION_USE_POLL "use poll if available" OFF)
|
||||
mark_as_advanced (OPTION_USE_POLL)
|
||||
|
||||
if(OPTION_USE_POLL)
|
||||
CHECK_FUNCTION_EXISTS(poll USE_POLL)
|
||||
endif(OPTION_USE_POLL)
|
||||
if (OPTION_USE_POLL)
|
||||
CHECK_FUNCTION_EXISTS(poll USE_POLL)
|
||||
endif (OPTION_USE_POLL)
|
||||
|
||||
#######################################################################
|
||||
option(OPTION_BUILD_SHARED_LIBS
|
||||
"Build shared libraries(in addition to static libraries)"
|
||||
OFF
|
||||
)
|
||||
option (OPTION_BUILD_SHARED_LIBS
|
||||
"Build shared libraries(in addition to static libraries)"
|
||||
OFF
|
||||
)
|
||||
|
||||
#######################################################################
|
||||
option(OPTION_BUILD_EXAMPLES "build example programs" ON)
|
||||
option(OPTION_PRINT_SUPPORT "allow print support" ON)
|
||||
option(OPTION_FILESYSTEM_SUPPORT "allow file system support" ON)
|
||||
option (OPTION_BUILD_EXAMPLES "build example programs" ON)
|
||||
option (OPTION_PRINT_SUPPORT "allow print support" ON)
|
||||
option (OPTION_FILESYSTEM_SUPPORT "allow file system support" ON)
|
||||
|
||||
#######################################################################
|
||||
if (DOXYGEN_FOUND)
|
||||
option(OPTION_BUILD_HTML_DOCUMENTATION "build html docs" ON)
|
||||
option(OPTION_INSTALL_HTML_DOCUMENTATION "install html docs" OFF)
|
||||
option (OPTION_BUILD_HTML_DOCUMENTATION "build html docs" ON)
|
||||
option (OPTION_INSTALL_HTML_DOCUMENTATION "install html docs" OFF)
|
||||
|
||||
option(OPTION_INCLUDE_DRIVER_DOCUMENTATION "include driver (developer) docs" OFF)
|
||||
mark_as_advanced(OPTION_INCLUDE_DRIVER_DOCUMENTATION)
|
||||
option (OPTION_INCLUDE_DRIVER_DOCUMENTATION "include driver (developer) docs" OFF)
|
||||
mark_as_advanced (OPTION_INCLUDE_DRIVER_DOCUMENTATION)
|
||||
|
||||
if (LATEX_FOUND)
|
||||
option(OPTION_BUILD_PDF_DOCUMENTATION "build pdf docs" ON)
|
||||
option(OPTION_INSTALL_PDF_DOCUMENTATION "install pdf docs" OFF)
|
||||
endif (LATEX_FOUND)
|
||||
if (LATEX_FOUND)
|
||||
option (OPTION_BUILD_PDF_DOCUMENTATION "build pdf docs" ON)
|
||||
option (OPTION_INSTALL_PDF_DOCUMENTATION "install pdf docs" OFF)
|
||||
endif (LATEX_FOUND)
|
||||
endif (DOXYGEN_FOUND)
|
||||
|
||||
if(OPTION_BUILD_HTML_DOCUMENTATION OR OPTION_BUILD_PDF_DOCUMENTATION)
|
||||
add_subdirectory(documentation)
|
||||
endif(OPTION_BUILD_HTML_DOCUMENTATION OR OPTION_BUILD_PDF_DOCUMENTATION)
|
||||
if (OPTION_BUILD_HTML_DOCUMENTATION OR OPTION_BUILD_PDF_DOCUMENTATION)
|
||||
add_subdirectory (documentation)
|
||||
endif (OPTION_BUILD_HTML_DOCUMENTATION OR OPTION_BUILD_PDF_DOCUMENTATION)
|
||||
|
||||
#######################################################################
|
||||
include(FindPkgConfig)
|
||||
include (FindPkgConfig)
|
||||
|
||||
option(OPTION_CAIRO "use lib Cairo" OFF)
|
||||
option(OPTION_CAIROEXT
|
||||
"use FLTK code instrumentation for Cairo extended use" OFF
|
||||
)
|
||||
option (OPTION_CAIRO "use lib Cairo" OFF)
|
||||
option (OPTION_CAIROEXT
|
||||
"use FLTK code instrumentation for Cairo extended use" OFF
|
||||
)
|
||||
|
||||
if ((OPTION_CAIRO OR OPTION_CAIROEXT) AND LIB_CAIRO)
|
||||
pkg_search_module(PKG_CAIRO cairo)
|
||||
pkg_search_module (PKG_CAIRO cairo)
|
||||
endif ((OPTION_CAIRO OR OPTION_CAIROEXT) AND LIB_CAIRO)
|
||||
|
||||
if (PKG_CAIRO_FOUND)
|
||||
set (FLTK_HAVE_CAIRO 1)
|
||||
add_subdirectory(cairo)
|
||||
list(APPEND FLTK_LDLIBS -lcairo -lpixman-1)
|
||||
include_directories(${PKG_CAIRO_INCLUDE_DIRS})
|
||||
string(REPLACE ";" " " CAIROFLAGS "${PKG_CAIRO_CFLAGS}")
|
||||
set (FLTK_HAVE_CAIRO 1)
|
||||
add_subdirectory (cairo)
|
||||
list (APPEND FLTK_LDLIBS -lcairo -lpixman-1)
|
||||
include_directories (${PKG_CAIRO_INCLUDE_DIRS})
|
||||
string (REPLACE ";" " " CAIROFLAGS "${PKG_CAIRO_CFLAGS}")
|
||||
|
||||
if (LIB_CAIRO AND OPTION_CAIROEXT)
|
||||
set(FLTK_USE_CAIRO 1)
|
||||
set(FLTK_CAIRO_FOUND TRUE)
|
||||
else ()
|
||||
set(FLTK_CAIRO_FOUND FALSE)
|
||||
endif (LIB_CAIRO AND OPTION_CAIROEXT)
|
||||
if (LIB_CAIRO AND OPTION_CAIROEXT)
|
||||
set (FLTK_USE_CAIRO 1)
|
||||
set (FLTK_CAIRO_FOUND TRUE)
|
||||
else ()
|
||||
set (FLTK_CAIRO_FOUND FALSE)
|
||||
endif (LIB_CAIRO AND OPTION_CAIROEXT)
|
||||
else ()
|
||||
if (OPTION_CAIRO OR OPTION_CAIROEXT)
|
||||
message(STATUS "*** Cairo was requested but not found - please check your cairo installation")
|
||||
message(STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT.")
|
||||
message(FATAL_ERROR "*** Terminating: missing Cairo libs or headers.")
|
||||
endif (OPTION_CAIRO OR OPTION_CAIROEXT)
|
||||
if (OPTION_CAIRO OR OPTION_CAIROEXT)
|
||||
message (STATUS "*** Cairo was requested but not found - please check your cairo installation")
|
||||
message (STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT.")
|
||||
message (FATAL_ERROR "*** Terminating: missing Cairo libs or headers.")
|
||||
endif (OPTION_CAIRO OR OPTION_CAIROEXT)
|
||||
endif (PKG_CAIRO_FOUND)
|
||||
|
||||
#######################################################################
|
||||
option(OPTION_USE_SVG "read/write SVG files" ON)
|
||||
option (OPTION_USE_SVG "read/write SVG files" ON)
|
||||
|
||||
if(OPTION_USE_SVG)
|
||||
set(FLTK_USE_SVG 1)
|
||||
endif(OPTION_USE_SVG)
|
||||
if (OPTION_USE_SVG)
|
||||
set (FLTK_USE_SVG 1)
|
||||
endif (OPTION_USE_SVG)
|
||||
|
||||
#######################################################################
|
||||
set(HAVE_GL LIB_GL OR LIB_MesaGL)
|
||||
set (HAVE_GL LIB_GL OR LIB_MesaGL)
|
||||
|
||||
if(HAVE_GL)
|
||||
option(OPTION_USE_GL "use OpenGL" ON)
|
||||
endif(HAVE_GL)
|
||||
if (HAVE_GL)
|
||||
option (OPTION_USE_GL "use OpenGL" ON)
|
||||
endif (HAVE_GL)
|
||||
|
||||
if(OPTION_USE_GL)
|
||||
if(OPTION_APPLE_X11)
|
||||
set(OPENGL_FOUND TRUE)
|
||||
set(OPENGL_LIBRARIES -L${PATH_TO_XLIBS} -lGLU -lGL)
|
||||
set(HAVE_GL_GLU_H /opt/X11/include/GL/glu.h)
|
||||
elseif(OPTION_APPLE_SDL)
|
||||
set(OPENGL_FOUND FALSE)
|
||||
else()
|
||||
include(FindOpenGL)
|
||||
if(APPLE)
|
||||
set(HAVE_GL_GLU_H ${HAVE_OPENGL_GLU_H})
|
||||
endif(APPLE)
|
||||
endif(OPTION_APPLE_X11)
|
||||
if (OPTION_USE_GL)
|
||||
if (OPTION_APPLE_X11)
|
||||
set (OPENGL_FOUND TRUE)
|
||||
set (OPENGL_LIBRARIES -L${PATH_TO_XLIBS} -lGLU -lGL)
|
||||
find_file (HAVE_GL_GLU_H GL/glu.h PATHS /opt/X11/include)
|
||||
elseif (OPTION_APPLE_SDL)
|
||||
set (OPENGL_FOUND FALSE)
|
||||
else()
|
||||
include (FindOpenGL)
|
||||
if (APPLE)
|
||||
set (HAVE_GL_GLU_H ${HAVE_OPENGL_GLU_H})
|
||||
endif (APPLE)
|
||||
endif (OPTION_APPLE_X11)
|
||||
else ()
|
||||
set(OPENGL_FOUND FALSE)
|
||||
endif(OPTION_USE_GL)
|
||||
set (OPENGL_FOUND FALSE)
|
||||
endif (OPTION_USE_GL)
|
||||
|
||||
if (OPENGL_FOUND)
|
||||
set (CMAKE_REQUIRED_INCLUDES ${OPENGL_INCLUDE_DIR}/GL)
|
||||
|
@ -256,44 +240,44 @@ endif (OPTION_LARGE_FILE)
|
|||
# before this file is included (or set to 0 for WIN32).
|
||||
|
||||
if (WIN32 AND NOT CYGWIN)
|
||||
# set(HAVE_PTHREAD_H 0) # (see resources.cmake)
|
||||
set(OPTION_USE_THREADS FALSE)
|
||||
# set (HAVE_PTHREAD_H 0) # (see resources.cmake)
|
||||
set (OPTION_USE_THREADS FALSE)
|
||||
else ()
|
||||
option(OPTION_USE_THREADS "use multi-threading with pthreads" ON)
|
||||
option (OPTION_USE_THREADS "use multi-threading with pthreads" ON)
|
||||
endif (WIN32 AND NOT CYGWIN)
|
||||
|
||||
# initialize more variables
|
||||
set(USE_THREADS 0)
|
||||
set(HAVE_PTHREAD 0)
|
||||
set(FLTK_PTHREADS_FOUND FALSE)
|
||||
set (USE_THREADS 0)
|
||||
set (HAVE_PTHREAD 0)
|
||||
set (FLTK_PTHREADS_FOUND FALSE)
|
||||
|
||||
if (OPTION_USE_THREADS)
|
||||
|
||||
include(FindThreads)
|
||||
include (FindThreads)
|
||||
|
||||
if (CMAKE_HAVE_THREADS_LIBRARY)
|
||||
add_definitions("-D_THREAD_SAFE -D_REENTRANT")
|
||||
set(USE_THREADS 1)
|
||||
set(FLTK_THREADS_FOUND TRUE)
|
||||
add_definitions ("-D_THREAD_SAFE -D_REENTRANT")
|
||||
set (USE_THREADS 1)
|
||||
set (FLTK_THREADS_FOUND TRUE)
|
||||
endif (CMAKE_HAVE_THREADS_LIBRARY)
|
||||
|
||||
if (CMAKE_USE_PTHREADS_INIT AND NOT WIN32)
|
||||
set(HAVE_PTHREAD 1)
|
||||
set (HAVE_PTHREAD 1)
|
||||
if (NOT APPLE)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
|
||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
|
||||
endif (NOT APPLE)
|
||||
list(APPEND FLTK_LDLIBS -lpthread)
|
||||
list(APPEND FLTK_CFLAGS -D_THREAD_SAFE -D_REENTRANT)
|
||||
set(FLTK_PTHREADS_FOUND TRUE)
|
||||
list (APPEND FLTK_LDLIBS -lpthread)
|
||||
list (APPEND FLTK_CFLAGS -D_THREAD_SAFE -D_REENTRANT)
|
||||
set (FLTK_PTHREADS_FOUND TRUE)
|
||||
else()
|
||||
set(HAVE_PTHREAD 0)
|
||||
set(HAVE_PTHREAD_H 0)
|
||||
set(FLTK_PTHREADS_FOUND FALSE)
|
||||
endif(CMAKE_USE_PTHREADS_INIT AND NOT WIN32)
|
||||
set (HAVE_PTHREAD 0)
|
||||
set (HAVE_PTHREAD_H 0)
|
||||
set (FLTK_PTHREADS_FOUND FALSE)
|
||||
endif (CMAKE_USE_PTHREADS_INIT AND NOT WIN32)
|
||||
|
||||
else (OPTION_USE_THREADS)
|
||||
|
||||
set(HAVE_PTHREAD_H 0)
|
||||
set (HAVE_PTHREAD_H 0)
|
||||
|
||||
endif (OPTION_USE_THREADS)
|
||||
|
||||
|
@ -323,7 +307,7 @@ if (ZLIB_FOUND)
|
|||
set (FLTK_BUILTIN_ZLIB_FOUND FALSE)
|
||||
else()
|
||||
if (OPTION_USE_SYSTEM_ZLIB)
|
||||
message(STATUS "\ncannot find system zlib library - using built-in\n")
|
||||
message (STATUS "\ncannot find system zlib library - using built-in\n")
|
||||
endif (OPTION_USE_SYSTEM_ZLIB)
|
||||
|
||||
add_subdirectory (zlib)
|
||||
|
@ -347,9 +331,9 @@ if (OPTION_USE_SYSTEM_LIBJPEG)
|
|||
endif (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
|
||||
if (JPEG_FOUND)
|
||||
set(FLTK_JPEG_LIBRARIES ${JPEG_LIBRARIES})
|
||||
include_directories(${JPEG_INCLUDE_DIR})
|
||||
set(FLTK_BUILTIN_JPEG_FOUND FALSE)
|
||||
set (FLTK_JPEG_LIBRARIES ${JPEG_LIBRARIES})
|
||||
include_directories (${JPEG_INCLUDE_DIR})
|
||||
set (FLTK_BUILTIN_JPEG_FOUND FALSE)
|
||||
else ()
|
||||
if (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
message (STATUS "\ncannot find system jpeg library - using built-in\n")
|
||||
|
@ -396,101 +380,101 @@ endif (PNG_FOUND)
|
|||
set (HAVE_LIBPNG 1)
|
||||
|
||||
#######################################################################
|
||||
if(X11_Xinerama_FOUND)
|
||||
option(OPTION_USE_XINERAMA "use lib Xinerama" ON)
|
||||
endif(X11_Xinerama_FOUND)
|
||||
if (X11_Xinerama_FOUND)
|
||||
option (OPTION_USE_XINERAMA "use lib Xinerama" ON)
|
||||
endif (X11_Xinerama_FOUND)
|
||||
|
||||
if(OPTION_USE_XINERAMA)
|
||||
set(HAVE_XINERAMA ${X11_Xinerama_FOUND})
|
||||
include_directories(${X11_Xinerama_INCLUDE_PATH})
|
||||
list(APPEND FLTK_LDLIBS -lXinerama)
|
||||
set(FLTK_XINERAMA_FOUND TRUE)
|
||||
if (OPTION_USE_XINERAMA)
|
||||
set (HAVE_XINERAMA ${X11_Xinerama_FOUND})
|
||||
include_directories (${X11_Xinerama_INCLUDE_PATH})
|
||||
list (APPEND FLTK_LDLIBS -lXinerama)
|
||||
set (FLTK_XINERAMA_FOUND TRUE)
|
||||
else()
|
||||
set(FLTK_XINERAMA_FOUND FALSE)
|
||||
endif(OPTION_USE_XINERAMA)
|
||||
set (FLTK_XINERAMA_FOUND FALSE)
|
||||
endif (OPTION_USE_XINERAMA)
|
||||
|
||||
#######################################################################
|
||||
if(X11_Xfixes_FOUND)
|
||||
option(OPTION_USE_XFIXES "use lib Xfixes" ON)
|
||||
endif(X11_Xfixes_FOUND)
|
||||
if (X11_Xfixes_FOUND)
|
||||
option (OPTION_USE_XFIXES "use lib Xfixes" ON)
|
||||
endif (X11_Xfixes_FOUND)
|
||||
|
||||
if(OPTION_USE_XFIXES)
|
||||
set(HAVE_XFIXES ${X11_Xfixes_FOUND})
|
||||
include_directories(${X11_Xfixes_INCLUDE_PATH})
|
||||
list(APPEND FLTK_LDLIBS -lXfixes)
|
||||
set(FLTK_XFIXES_FOUND TRUE)
|
||||
if (OPTION_USE_XFIXES)
|
||||
set (HAVE_XFIXES ${X11_Xfixes_FOUND})
|
||||
include_directories (${X11_Xfixes_INCLUDE_PATH})
|
||||
list (APPEND FLTK_LDLIBS -lXfixes)
|
||||
set (FLTK_XFIXES_FOUND TRUE)
|
||||
else()
|
||||
set(FLTK_XFIXES_FOUND FALSE)
|
||||
endif(OPTION_USE_XFIXES)
|
||||
set (FLTK_XFIXES_FOUND FALSE)
|
||||
endif (OPTION_USE_XFIXES)
|
||||
|
||||
#######################################################################
|
||||
if(X11_Xcursor_FOUND)
|
||||
option(OPTION_USE_XCURSOR "use lib Xcursor" ON)
|
||||
endif(X11_Xcursor_FOUND)
|
||||
if (X11_Xcursor_FOUND)
|
||||
option (OPTION_USE_XCURSOR "use lib Xcursor" ON)
|
||||
endif (X11_Xcursor_FOUND)
|
||||
|
||||
if(OPTION_USE_XCURSOR)
|
||||
set(HAVE_XCURSOR ${X11_Xcursor_FOUND})
|
||||
include_directories(${X11_Xcursor_INCLUDE_PATH})
|
||||
list(APPEND FLTK_LDLIBS -lXcursor)
|
||||
set(FLTK_XCURSOR_FOUND TRUE)
|
||||
if (OPTION_USE_XCURSOR)
|
||||
set (HAVE_XCURSOR ${X11_Xcursor_FOUND})
|
||||
include_directories (${X11_Xcursor_INCLUDE_PATH})
|
||||
list (APPEND FLTK_LDLIBS -lXcursor)
|
||||
set (FLTK_XCURSOR_FOUND TRUE)
|
||||
else()
|
||||
set(FLTK_XCURSOR_FOUND FALSE)
|
||||
endif(OPTION_USE_XCURSOR)
|
||||
set (FLTK_XCURSOR_FOUND FALSE)
|
||||
endif (OPTION_USE_XCURSOR)
|
||||
|
||||
#######################################################################
|
||||
if(X11_Xft_FOUND)
|
||||
option(OPTION_USE_XFT "use lib Xft" ON)
|
||||
option(OPTION_USE_PANGO "use lib Pango" OFF)
|
||||
endif(X11_Xft_FOUND)
|
||||
if (X11_Xft_FOUND)
|
||||
option (OPTION_USE_XFT "use lib Xft" ON)
|
||||
option (OPTION_USE_PANGO "use lib Pango" OFF)
|
||||
endif (X11_Xft_FOUND)
|
||||
|
||||
# test option compatibility: Pango requires Xft
|
||||
if (OPTION_USE_PANGO)
|
||||
if (NOT X11_Xft_FOUND)
|
||||
message(STATUS "Pango requires Xft but Xft library or headers could not be found.")
|
||||
message(STATUS "Please install Xft development files and try again or disable OPTION_USE_PANGO.")
|
||||
message(FATAL_ERROR "*** Aborting ***")
|
||||
message (STATUS "Pango requires Xft but Xft library or headers could not be found.")
|
||||
message (STATUS "Please install Xft development files and try again or disable OPTION_USE_PANGO.")
|
||||
message (FATAL_ERROR "*** Aborting ***")
|
||||
else ()
|
||||
if (NOT OPTION_USE_XFT)
|
||||
message(STATUS "Pango requires Xft but usage of Xft was disabled.")
|
||||
message(STATUS "Please enable OPTION_USE_XFT and try again or disable OPTION_USE_PANGO.")
|
||||
message(FATAL_ERROR "*** Aborting ***")
|
||||
message (STATUS "Pango requires Xft but usage of Xft was disabled.")
|
||||
message (STATUS "Please enable OPTION_USE_XFT and try again or disable OPTION_USE_PANGO.")
|
||||
message (FATAL_ERROR "*** Aborting ***")
|
||||
endif (NOT OPTION_USE_XFT)
|
||||
endif (NOT X11_Xft_FOUND)
|
||||
endif (OPTION_USE_PANGO)
|
||||
|
||||
#######################################################################
|
||||
if(X11_Xft_FOUND AND OPTION_USE_PANGO)
|
||||
if (X11_Xft_FOUND AND OPTION_USE_PANGO)
|
||||
pkg_check_modules(PANGOXFT pangoxft)
|
||||
# message(STATUS "PANGOXFT_FOUND=" ${PANGOXFT_FOUND})
|
||||
if(PANGOXFT_FOUND)
|
||||
include_directories(${PANGOXFT_INCLUDE_DIRS})
|
||||
# message (STATUS "PANGOXFT_FOUND=" ${PANGOXFT_FOUND})
|
||||
if (PANGOXFT_FOUND)
|
||||
include_directories (${PANGOXFT_INCLUDE_DIRS})
|
||||
find_library(HAVE_LIB_PANGO pango-1.0 ${CMAKE_LIBRARY_PATH})
|
||||
find_library(HAVE_LIB_PANGOXFT pangoxft-1.0 ${CMAKE_LIBRARY_PATH})
|
||||
set(USE_PANGO TRUE)
|
||||
list(APPEND FLTK_LDLIBS -lpango-1.0 -lpangoxft-1.0 -lgobject-2.0)
|
||||
set (USE_PANGO TRUE)
|
||||
list (APPEND FLTK_LDLIBS -lpango-1.0 -lpangoxft-1.0 -lgobject-2.0)
|
||||
else(PANGOXFT_FOUND)
|
||||
|
||||
#this covers Debian, Ubuntu, FreeBSD, NetBSD, Darwin
|
||||
if(APPLE AND OPTION_APPLE_X11)
|
||||
find_file(FINK_PREFIX NAMES /opt/sw /sw)
|
||||
list(APPEND CMAKE_INCLUDE_PATH ${FINK_PREFIX}/include)
|
||||
list(APPEND CMAKE_LIBRARY_PATH ${FINK_PREFIX}/lib)
|
||||
endif(APPLE AND OPTION_APPLE_X11)
|
||||
# this covers Debian, Ubuntu, FreeBSD, NetBSD, Darwin
|
||||
if (APPLE AND OPTION_APPLE_X11)
|
||||
find_file(FINK_PREFIX NAMES /opt/sw /sw)
|
||||
list (APPEND CMAKE_INCLUDE_PATH ${FINK_PREFIX}/include)
|
||||
list (APPEND CMAKE_LIBRARY_PATH ${FINK_PREFIX}/lib)
|
||||
endif (APPLE AND OPTION_APPLE_X11)
|
||||
find_file(HAVE_PANGO_H pango-1.0/pango/pango.h ${CMAKE_INCLUDE_PATH})
|
||||
find_file(HAVE_PANGOXFT_H pango-1.0/pango/pangoxft.h ${CMAKE_INCLUDE_PATH})
|
||||
|
||||
if(HAVE_PANGO_H AND HAVE_PANGOXFT_H)
|
||||
if (HAVE_PANGO_H AND HAVE_PANGOXFT_H)
|
||||
find_library(HAVE_LIB_PANGO pango-1.0 ${CMAKE_LIBRARY_PATH})
|
||||
find_library(HAVE_LIB_PANGOXFT pangoxft-1.0 ${CMAKE_LIBRARY_PATH})
|
||||
if(APPLE)
|
||||
set(HAVE_LIB_GOBJECT TRUE)
|
||||
if (APPLE)
|
||||
set (HAVE_LIB_GOBJECT TRUE)
|
||||
else()
|
||||
find_library(HAVE_LIB_GOBJECT gobject-2.0 ${CMAKE_LIBRARY_PATH})
|
||||
endif(APPLE)
|
||||
endif(HAVE_PANGO_H AND HAVE_PANGOXFT_H)
|
||||
if(HAVE_LIB_PANGO AND HAVE_LIB_PANGOXFT AND HAVE_LIB_GOBJECT)
|
||||
set(USE_PANGO TRUE)
|
||||
# message(STATUS "USE_PANGO=" ${USE_PANGO})
|
||||
endif (APPLE)
|
||||
endif (HAVE_PANGO_H AND HAVE_PANGOXFT_H)
|
||||
if (HAVE_LIB_PANGO AND HAVE_LIB_PANGOXFT AND HAVE_LIB_GOBJECT)
|
||||
set (USE_PANGO TRUE)
|
||||
# message (STATUS "USE_PANGO=" ${USE_PANGO})
|
||||
# remove last 3 components of HAVE_PANGO_H and put in PANGO_H_PREFIX
|
||||
get_filename_component(PANGO_H_PREFIX ${HAVE_PANGO_H} PATH)
|
||||
get_filename_component(PANGO_H_PREFIX ${PANGO_H_PREFIX} PATH)
|
||||
|
@ -499,84 +483,80 @@ if(X11_Xft_FOUND AND OPTION_USE_PANGO)
|
|||
get_filename_component(PANGOLIB_DIR ${HAVE_LIB_PANGO} PATH)
|
||||
# glib.h is usually in ${PANGO_H_PREFIX}/glib-2.0/ ...
|
||||
find_path(GLIB_H_PATH glib.h ${PANGO_H_PREFIX}/glib-2.0)
|
||||
if(NOT GLIB_H_PATH) # ... but not under NetBSD
|
||||
if (NOT GLIB_H_PATH) # ... but not under NetBSD
|
||||
find_path(GLIB_H_PATH glib.h ${PANGO_H_PREFIX}/glib/glib-2.0)
|
||||
endif(NOT GLIB_H_PATH)
|
||||
include_directories(${PANGO_H_PREFIX}/pango-1.0 ${GLIB_H_PATH} ${PANGOLIB_DIR}/glib-2.0/include)
|
||||
list(APPEND FLTK_LDLIBS -lpango-1.0 -lpangoxft-1.0 -lgobject-2.0)
|
||||
endif (NOT GLIB_H_PATH)
|
||||
include_directories (${PANGO_H_PREFIX}/pango-1.0 ${GLIB_H_PATH} ${PANGOLIB_DIR}/glib-2.0/include)
|
||||
list (APPEND FLTK_LDLIBS -lpango-1.0 -lpangoxft-1.0 -lgobject-2.0)
|
||||
if (APPLE)
|
||||
set(LDFLAGS "${LDFLAGS} -L${FINK_PREFIX}/lib")
|
||||
set (LDFLAGS "${LDFLAGS} -L${FINK_PREFIX}/lib")
|
||||
endif (APPLE)
|
||||
endif(HAVE_LIB_PANGO AND HAVE_LIB_PANGOXFT AND HAVE_LIB_GOBJECT)
|
||||
endif(PANGOXFT_FOUND)
|
||||
endif(X11_Xft_FOUND AND OPTION_USE_PANGO)
|
||||
endif (HAVE_LIB_PANGO AND HAVE_LIB_PANGOXFT AND HAVE_LIB_GOBJECT)
|
||||
endif (PANGOXFT_FOUND)
|
||||
endif (X11_Xft_FOUND AND OPTION_USE_PANGO)
|
||||
|
||||
if(OPTION_USE_XFT)
|
||||
set(USE_XFT X11_Xft_FOUND)
|
||||
list(APPEND FLTK_LDLIBS -lXft)
|
||||
set(FLTK_XFT_FOUND TRUE)
|
||||
if(APPLE AND OPTION_APPLE_X11)
|
||||
find_library(LIB_fontconfig fontconfig "/opt/X11/lib")
|
||||
endif(APPLE AND OPTION_APPLE_X11)
|
||||
if (OPTION_USE_XFT)
|
||||
set (USE_XFT X11_Xft_FOUND)
|
||||
list (APPEND FLTK_LDLIBS -lXft)
|
||||
set (FLTK_XFT_FOUND TRUE)
|
||||
if (APPLE AND OPTION_APPLE_X11)
|
||||
find_library(LIB_fontconfig fontconfig "/opt/X11/lib")
|
||||
endif (APPLE AND OPTION_APPLE_X11)
|
||||
else()
|
||||
set(FLTK_XFT_FOUND FALSE)
|
||||
endif(OPTION_USE_XFT)
|
||||
set (FLTK_XFT_FOUND FALSE)
|
||||
endif (OPTION_USE_XFT)
|
||||
|
||||
#######################################################################
|
||||
if(X11_Xrender_FOUND)
|
||||
option(OPTION_USE_XRENDER "use lib Xrender" ON)
|
||||
endif(X11_Xrender_FOUND)
|
||||
if (X11_Xrender_FOUND)
|
||||
option (OPTION_USE_XRENDER "use lib Xrender" ON)
|
||||
endif (X11_Xrender_FOUND)
|
||||
|
||||
if(OPTION_USE_XRENDER)
|
||||
set(HAVE_XRENDER ${X11_Xrender_FOUND})
|
||||
if(HAVE_XRENDER)
|
||||
include_directories(${X11_Xrender_INCLUDE_PATH})
|
||||
list(APPEND FLTK_LDLIBS -lXrender)
|
||||
set(FLTK_XRENDER_FOUND TRUE)
|
||||
else(HAVE_XRENDER)
|
||||
set(FLTK_XRENDER_FOUND FALSE)
|
||||
endif(HAVE_XRENDER)
|
||||
if (OPTION_USE_XRENDER)
|
||||
set (HAVE_XRENDER ${X11_Xrender_FOUND})
|
||||
if (HAVE_XRENDER)
|
||||
include_directories (${X11_Xrender_INCLUDE_PATH})
|
||||
list (APPEND FLTK_LDLIBS -lXrender)
|
||||
set (FLTK_XRENDER_FOUND TRUE)
|
||||
else(HAVE_XRENDER)
|
||||
set (FLTK_XRENDER_FOUND FALSE)
|
||||
endif (HAVE_XRENDER)
|
||||
else(OPTION_USE_XRENDER)
|
||||
set(FLTK_XRENDER_FOUND FALSE)
|
||||
endif(OPTION_USE_XRENDER)
|
||||
set (FLTK_XRENDER_FOUND FALSE)
|
||||
endif (OPTION_USE_XRENDER)
|
||||
|
||||
#######################################################################
|
||||
if(X11_FOUND)
|
||||
option(OPTION_USE_XDBE "use lib Xdbe" ON)
|
||||
endif(X11_FOUND)
|
||||
if (X11_FOUND)
|
||||
option (OPTION_USE_XDBE "use lib Xdbe" ON)
|
||||
endif (X11_FOUND)
|
||||
|
||||
if(OPTION_USE_XDBE AND HAVE_XDBE_H)
|
||||
set(HAVE_XDBE 1)
|
||||
set(FLTK_XDBE_FOUND TRUE)
|
||||
if (OPTION_USE_XDBE AND HAVE_XDBE_H)
|
||||
set (HAVE_XDBE 1)
|
||||
set (FLTK_XDBE_FOUND TRUE)
|
||||
else()
|
||||
set(FLTK_XDBE_FOUND FALSE)
|
||||
endif(OPTION_USE_XDBE AND HAVE_XDBE_H)
|
||||
set (FLTK_XDBE_FOUND FALSE)
|
||||
endif (OPTION_USE_XDBE AND HAVE_XDBE_H)
|
||||
|
||||
#######################################################################
|
||||
set(FL_NO_PRINT_SUPPORT FALSE)
|
||||
if(X11_FOUND AND NOT OPTION_PRINT_SUPPORT)
|
||||
set(FL_NO_PRINT_SUPPORT TRUE)
|
||||
endif(X11_FOUND AND NOT OPTION_PRINT_SUPPORT)
|
||||
set (FL_NO_PRINT_SUPPORT FALSE)
|
||||
if (X11_FOUND AND NOT OPTION_PRINT_SUPPORT)
|
||||
set (FL_NO_PRINT_SUPPORT TRUE)
|
||||
endif (X11_FOUND AND NOT OPTION_PRINT_SUPPORT)
|
||||
#######################################################################
|
||||
|
||||
#######################################################################
|
||||
set(FL_CFG_NO_FILESYSTEM_SUPPORT TRUE)
|
||||
if(OPTION_FILESYSTEM_SUPPORT)
|
||||
set(FL_CFG_NO_FILESYSTEM_SUPPORT FALSE)
|
||||
endif(OPTION_FILESYSTEM_SUPPORT)
|
||||
set (FL_CFG_NO_FILESYSTEM_SUPPORT TRUE)
|
||||
if (OPTION_FILESYSTEM_SUPPORT)
|
||||
set (FL_CFG_NO_FILESYSTEM_SUPPORT FALSE)
|
||||
endif (OPTION_FILESYSTEM_SUPPORT)
|
||||
#######################################################################
|
||||
|
||||
#######################################################################
|
||||
option (OPTION_CREATE_ANDROID_STUDIO_IDE "create files needed to compile FLtk for Android" OFF)
|
||||
option (OPTION_CREATE_ANDROID_STUDIO_IDE "create files needed to compile FLTK for Android" OFF)
|
||||
#######################################################################
|
||||
|
||||
#######################################################################
|
||||
# prior to CMake 3.0 this feature was buggy
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.0.0)
|
||||
option(CMAKE_SUPPRESS_REGENERATION
|
||||
"suppress rules to re-run CMake on rebuild" OFF)
|
||||
mark_as_advanced(CMAKE_SUPPRESS_REGENERATION)
|
||||
endif(NOT CMAKE_VERSION VERSION_LESS 3.0.0)
|
||||
option (CMAKE_SUPPRESS_REGENERATION "suppress rules to re-run CMake on rebuild" OFF)
|
||||
mark_as_advanced (CMAKE_SUPPRESS_REGENERATION)
|
||||
|
||||
#######################################################################
|
||||
# Debugging ...
|
||||
|
@ -587,7 +567,6 @@ if (DEBUG_OPTIONS_CMAKE)
|
|||
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)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#
|
||||
# Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org)
|
||||
# Resource definitions 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
|
||||
|
@ -19,38 +19,17 @@
|
|||
# check for headers, libraries and functions
|
||||
#######################################################################
|
||||
|
||||
# The following code is work in progress (as of Feb 2018) - AlbrechtS
|
||||
|
||||
# The cache option USE_FIND_FILE can be set to ON to switch back to the old
|
||||
# behavior that tries to find headers by find_file() which appears to be
|
||||
# error prone at least under Windows when MSYS2 and MinGW are both
|
||||
# installed on one system.
|
||||
# If USE_FIND_FILE is OFF (new behavior), then headers are searched for by
|
||||
# check_include_files() which tries to compile a small file to test if
|
||||
# the header file can be used. In some cases this needs more than one
|
||||
# header in a list because another header must be included before the
|
||||
# header being searched for.
|
||||
# Example: X11/Xlib.h must be included before X11/Xregion.h so Xregion.h
|
||||
# can be compiled successfully.
|
||||
|
||||
# If CMAKE_REQUIRED_QUIET is 1 (default) the search is mostly quiet, if
|
||||
# it is 0 (or not defined) check_include_files() is more verbose and
|
||||
# the result of the search is logged with fl_debug_var().
|
||||
# If CMAKE_REQUIRED_QUIET is 1 (default) the search is mostly quiet,
|
||||
# if it is 0 (or not defined) check_include_files() is more verbose
|
||||
# and the result of the search is logged with fl_debug_var().
|
||||
# This is useful for debugging.
|
||||
|
||||
set (CMAKE_REQUIRED_QUIET 1)
|
||||
|
||||
include(CheckIncludeFiles)
|
||||
|
||||
# The following macro is used to switch between old and new behavior.
|
||||
# Once this is stable (USE_FIND_FILE = 0) the unused part may be removed.
|
||||
include (CheckIncludeFiles)
|
||||
|
||||
macro (fl_find_header VAR HEADER)
|
||||
if (USE_FIND_FILE)
|
||||
find_file (${VAR} "${HEADER}")
|
||||
else (USE_FIND_FILE)
|
||||
check_include_files("${HEADER}" ${VAR})
|
||||
endif (USE_FIND_FILE)
|
||||
check_include_files ("${HEADER}" ${VAR})
|
||||
if (NOT CMAKE_REQUIRED_QUIET)
|
||||
fl_debug_var (${VAR})
|
||||
endif (NOT CMAKE_REQUIRED_QUIET)
|
||||
|
@ -70,17 +49,12 @@ fl_find_header (HAVE_STRINGS_H strings.h)
|
|||
fl_find_header (HAVE_SYS_SELECT_H sys/select.h)
|
||||
fl_find_header (HAVE_SYS_STDTYPES_H sys/stdtypes.h)
|
||||
|
||||
if (USE_FIND_FILE)
|
||||
fl_find_header (HAVE_X11_XREGION_H "X11/Xregion.h")
|
||||
fl_find_header (HAVE_XDBE_H "X11/extensions/Xdbe.h")
|
||||
else ()
|
||||
fl_find_header (HAVE_X11_XREGION_H "X11/Xlib.h;X11/Xregion.h")
|
||||
fl_find_header (HAVE_XDBE_H "X11/Xlib.h;X11/extensions/Xdbe.h")
|
||||
endif()
|
||||
fl_find_header (HAVE_X11_XREGION_H "X11/Xlib.h;X11/Xregion.h")
|
||||
fl_find_header (HAVE_XDBE_H "X11/Xlib.h;X11/extensions/Xdbe.h")
|
||||
|
||||
if (WIN32 AND NOT CYGWIN)
|
||||
# we don't use pthreads on Windows (except for Cygwin, see options.cmake)
|
||||
set(HAVE_PTHREAD_H 0)
|
||||
set (HAVE_PTHREAD_H 0)
|
||||
else ()
|
||||
fl_find_header (HAVE_PTHREAD_H pthread.h)
|
||||
endif (WIN32 AND NOT CYGWIN)
|
||||
|
@ -111,20 +85,20 @@ if (MSVC)
|
|||
set (MSVC_RERUN_MESSAGE FALSE)
|
||||
|
||||
if (NOT HAVE_GL_GLU_H)
|
||||
message(STATUS "Warning: Header file GL/glu.h was not found.")
|
||||
message (STATUS "Warning: Header file GL/glu.h was not found.")
|
||||
set (HAVE_GL_GLU_H 1)
|
||||
set (MSVC_RERUN_MESSAGE TRUE)
|
||||
endif (NOT HAVE_GL_GLU_H)
|
||||
|
||||
if (NOT HAVE_LOCALE_H)
|
||||
message(STATUS "Warning: Header file locale.h was not found.")
|
||||
message (STATUS "Warning: Header file locale.h was not found.")
|
||||
set (HAVE_LOCALE_H 1)
|
||||
set (MSVC_RERUN_MESSAGE TRUE)
|
||||
endif (NOT HAVE_LOCALE_H)
|
||||
|
||||
if (MSVC_RERUN_MESSAGE)
|
||||
message(STATUS "The FLTK team recommends to rerun CMake from a")
|
||||
message(STATUS "\"Developer Command Prompt for Visual Studio xxxx\"")
|
||||
message (STATUS "The FLTK team recommends to rerun CMake from a")
|
||||
message (STATUS "\"Developer Command Prompt for Visual Studio xxxx\"")
|
||||
endif (MSVC_RERUN_MESSAGE)
|
||||
|
||||
unset (MSVC_RERUN_MESSAGE)
|
||||
|
@ -139,24 +113,25 @@ endif (MSVC)
|
|||
# once we found the first suitable header file.
|
||||
|
||||
fl_find_header (HAVE_DIRENT_H dirent.h)
|
||||
if(NOT HAVE_DIRENT_H)
|
||||
fl_find_header (HAVE_SYS_NDIR_H sys/ndir.h)
|
||||
if(NOT HAVE_SYS_NDIR_H)
|
||||
fl_find_header (HAVE_SYS_DIR_H sys/dir.h)
|
||||
if(NOT HAVE_SYS_DIR_H)
|
||||
fl_find_header (HAVE_NDIR_H ndir.h)
|
||||
endif(NOT HAVE_SYS_DIR_H)
|
||||
endif(NOT HAVE_SYS_NDIR_H)
|
||||
endif(NOT HAVE_DIRENT_H)
|
||||
|
||||
mark_as_advanced(HAVE_ALSA_ASOUNDLIB_H HAVE_DIRENT_H HAVE_DLFCN_H)
|
||||
mark_as_advanced(HAVE_GL_GLU_H)
|
||||
mark_as_advanced(HAVE_LIBPNG_PNG_H HAVE_LOCALE_H HAVE_NDIR_H)
|
||||
mark_as_advanced(HAVE_OPENGL_GLU_H HAVE_PNG_H HAVE_PTHREAD_H)
|
||||
mark_as_advanced(HAVE_STDIO_H HAVE_STRINGS_H HAVE_SYS_DIR_H)
|
||||
mark_as_advanced(HAVE_SYS_NDIR_H HAVE_SYS_SELECT_H)
|
||||
mark_as_advanced(HAVE_SYS_STDTYPES_H HAVE_XDBE_H)
|
||||
mark_as_advanced(HAVE_X11_XREGION_H)
|
||||
if (NOT HAVE_DIRENT_H)
|
||||
fl_find_header (HAVE_SYS_NDIR_H sys/ndir.h)
|
||||
if (NOT HAVE_SYS_NDIR_H)
|
||||
fl_find_header (HAVE_SYS_DIR_H sys/dir.h)
|
||||
if (NOT HAVE_SYS_DIR_H)
|
||||
fl_find_header (HAVE_NDIR_H ndir.h)
|
||||
endif (NOT HAVE_SYS_DIR_H)
|
||||
endif (NOT HAVE_SYS_NDIR_H)
|
||||
endif (NOT HAVE_DIRENT_H)
|
||||
|
||||
mark_as_advanced (HAVE_ALSA_ASOUNDLIB_H HAVE_DIRENT_H HAVE_DLFCN_H)
|
||||
mark_as_advanced (HAVE_GL_GLU_H)
|
||||
mark_as_advanced (HAVE_LIBPNG_PNG_H HAVE_LOCALE_H HAVE_NDIR_H)
|
||||
mark_as_advanced (HAVE_OPENGL_GLU_H HAVE_PNG_H HAVE_PTHREAD_H)
|
||||
mark_as_advanced (HAVE_STDIO_H HAVE_STRINGS_H HAVE_SYS_DIR_H)
|
||||
mark_as_advanced (HAVE_SYS_NDIR_H HAVE_SYS_SELECT_H)
|
||||
mark_as_advanced (HAVE_SYS_STDTYPES_H HAVE_XDBE_H)
|
||||
mark_as_advanced (HAVE_X11_XREGION_H)
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# The following code is used to find the include path for freetype
|
||||
|
@ -164,104 +139,104 @@ mark_as_advanced(HAVE_X11_XREGION_H)
|
|||
|
||||
# where to find freetype headers
|
||||
|
||||
find_path(FREETYPE_PATH freetype.h PATH_SUFFIXES freetype2)
|
||||
find_path(FREETYPE_PATH freetype/freetype.h PATH_SUFFIXES freetype2)
|
||||
find_path (FREETYPE_PATH freetype.h PATH_SUFFIXES freetype2)
|
||||
find_path (FREETYPE_PATH freetype/freetype.h PATH_SUFFIXES freetype2)
|
||||
|
||||
if (FREETYPE_PATH)
|
||||
include_directories(${FREETYPE_PATH})
|
||||
include_directories (${FREETYPE_PATH})
|
||||
endif (FREETYPE_PATH)
|
||||
|
||||
mark_as_advanced(FREETYPE_PATH)
|
||||
mark_as_advanced (FREETYPE_PATH)
|
||||
|
||||
#######################################################################
|
||||
# libraries
|
||||
find_library(LIB_CAIRO cairo)
|
||||
find_library(LIB_dl dl)
|
||||
find_library(LIB_fontconfig fontconfig)
|
||||
find_library(LIB_freetype freetype)
|
||||
find_library(LIB_GL GL)
|
||||
find_library(LIB_MesaGL MesaGL)
|
||||
find_library(LIB_jpeg jpeg)
|
||||
find_library(LIB_png png)
|
||||
find_library(LIB_zlib z)
|
||||
find_library (LIB_CAIRO cairo)
|
||||
find_library (LIB_dl dl)
|
||||
find_library (LIB_fontconfig fontconfig)
|
||||
find_library (LIB_freetype freetype)
|
||||
find_library (LIB_GL GL)
|
||||
find_library (LIB_MesaGL MesaGL)
|
||||
find_library (LIB_jpeg jpeg)
|
||||
find_library (LIB_png png)
|
||||
find_library (LIB_zlib z)
|
||||
|
||||
mark_as_advanced(LIB_CAIRO LIB_dl LIB_fontconfig LIB_freetype)
|
||||
mark_as_advanced(LIB_GL LIB_MesaGL)
|
||||
mark_as_advanced(LIB_jpeg LIB_png LIB_zlib)
|
||||
mark_as_advanced (LIB_CAIRO LIB_dl LIB_fontconfig LIB_freetype)
|
||||
mark_as_advanced (LIB_GL LIB_MesaGL)
|
||||
mark_as_advanced (LIB_jpeg LIB_png LIB_zlib)
|
||||
|
||||
#######################################################################
|
||||
# functions
|
||||
include(CheckFunctionExists)
|
||||
include (CheckFunctionExists)
|
||||
|
||||
# save CMAKE_REQUIRED_LIBRARIES (is this really necessary ?)
|
||||
if(DEFINED CMAKE_REQUIRED_LIBRARIES)
|
||||
set(SAVED_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
|
||||
else(DEFINED CMAKE_REQUIRED_LIBRARIES)
|
||||
unset(SAVED_REQUIRED_LIBRARIES)
|
||||
endif(DEFINED CMAKE_REQUIRED_LIBRARIES)
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
if (DEFINED CMAKE_REQUIRED_LIBRARIES)
|
||||
set (SAVED_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
|
||||
else (DEFINED CMAKE_REQUIRED_LIBRARIES)
|
||||
unset (SAVED_REQUIRED_LIBRARIES)
|
||||
endif (DEFINED CMAKE_REQUIRED_LIBRARIES)
|
||||
set (CMAKE_REQUIRED_LIBRARIES)
|
||||
|
||||
if(HAVE_DLFCN_H)
|
||||
set(HAVE_DLFCN_H 1)
|
||||
endif(HAVE_DLFCN_H)
|
||||
if (HAVE_DLFCN_H)
|
||||
set (HAVE_DLFCN_H 1)
|
||||
endif (HAVE_DLFCN_H)
|
||||
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_DL_LIBS})
|
||||
CHECK_FUNCTION_EXISTS(dlsym HAVE_DLSYM)
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_DL_LIBS})
|
||||
CHECK_FUNCTION_EXISTS (dlsym HAVE_DLSYM)
|
||||
set (CMAKE_REQUIRED_LIBRARIES)
|
||||
|
||||
CHECK_FUNCTION_EXISTS(localeconv HAVE_LOCALECONV)
|
||||
CHECK_FUNCTION_EXISTS (localeconv HAVE_LOCALECONV)
|
||||
|
||||
if(LIB_png)
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${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)
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
endif(LIB_png)
|
||||
if (LIB_png)
|
||||
set (CMAKE_REQUIRED_LIBRARIES ${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)
|
||||
set (CMAKE_REQUIRED_LIBRARIES)
|
||||
endif (LIB_png)
|
||||
|
||||
CHECK_FUNCTION_EXISTS(scandir HAVE_SCANDIR)
|
||||
CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
|
||||
CHECK_FUNCTION_EXISTS (scandir HAVE_SCANDIR)
|
||||
CHECK_FUNCTION_EXISTS (snprintf HAVE_SNPRINTF)
|
||||
|
||||
# not really true but we convert strcasecmp calls to _stricmp calls in flstring.h
|
||||
if(MSVC)
|
||||
set(HAVE_STRCASECMP 1)
|
||||
endif(MSVC)
|
||||
if (MSVC)
|
||||
set (HAVE_STRCASECMP 1)
|
||||
endif (MSVC)
|
||||
|
||||
CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP)
|
||||
CHECK_FUNCTION_EXISTS (strcasecmp HAVE_STRCASECMP)
|
||||
|
||||
CHECK_FUNCTION_EXISTS(strlcat HAVE_STRLCAT)
|
||||
CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY)
|
||||
CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF)
|
||||
CHECK_FUNCTION_EXISTS (strlcat HAVE_STRLCAT)
|
||||
CHECK_FUNCTION_EXISTS (strlcpy HAVE_STRLCPY)
|
||||
CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF)
|
||||
|
||||
if(HAVE_SCANDIR AND NOT HAVE_SCANDIR_POSIX)
|
||||
set(MSG "POSIX compatible scandir")
|
||||
message(STATUS "Looking for ${MSG}")
|
||||
if (HAVE_SCANDIR AND NOT HAVE_SCANDIR_POSIX)
|
||||
set (MSG "POSIX compatible scandir")
|
||||
message (STATUS "Looking for ${MSG}")
|
||||
try_compile(V
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMake/posixScandir.cxx
|
||||
)
|
||||
if(V)
|
||||
message(STATUS "${MSG} - found")
|
||||
set(HAVE_SCANDIR_POSIX 1 CACHE INTERNAL "")
|
||||
if (V)
|
||||
message (STATUS "${MSG} - found")
|
||||
set (HAVE_SCANDIR_POSIX 1 CACHE INTERNAL "")
|
||||
else()
|
||||
message(STATUS "${MSG} - not found")
|
||||
set(HAVE_SCANDIR_POSIX HAVE_SCANDIR_POSIX-NOTFOUND)
|
||||
endif(V)
|
||||
endif(HAVE_SCANDIR AND NOT HAVE_SCANDIR_POSIX)
|
||||
mark_as_advanced(HAVE_SCANDIR_POSIX)
|
||||
message (STATUS "${MSG} - not found")
|
||||
set (HAVE_SCANDIR_POSIX HAVE_SCANDIR_POSIX-NOTFOUND)
|
||||
endif (V)
|
||||
endif (HAVE_SCANDIR AND NOT HAVE_SCANDIR_POSIX)
|
||||
mark_as_advanced (HAVE_SCANDIR_POSIX)
|
||||
|
||||
# restore CMAKE_REQUIRED_LIBRARIES (is this really necessary ?)
|
||||
if(DEFINED SAVED_REQUIRED_LIBRARIES)
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${SAVED_REQUIRED_LIBRARIES})
|
||||
unset(SAVED_REQUIRED_LIBRARIES)
|
||||
if (DEFINED SAVED_REQUIRED_LIBRARIES)
|
||||
set (CMAKE_REQUIRED_LIBRARIES ${SAVED_REQUIRED_LIBRARIES})
|
||||
unset (SAVED_REQUIRED_LIBRARIES)
|
||||
else(DEFINED SAVED_REQUIRED_LIBRARIES)
|
||||
unset(CMAKE_REQUIRED_LIBRARIES)
|
||||
endif(DEFINED SAVED_REQUIRED_LIBRARIES)
|
||||
unset (CMAKE_REQUIRED_LIBRARIES)
|
||||
endif (DEFINED SAVED_REQUIRED_LIBRARIES)
|
||||
|
||||
#######################################################################
|
||||
# packages
|
||||
|
||||
# Doxygen: necessary for HTML and PDF docs
|
||||
find_package(Doxygen)
|
||||
find_package (Doxygen)
|
||||
|
||||
# LaTex: necessary for PDF docs (note: FindLATEX doesn't return LATEX_FOUND)
|
||||
|
||||
|
@ -270,15 +245,15 @@ find_package(Doxygen)
|
|||
|
||||
set (LATEX_FOUND)
|
||||
if (DOXYGEN_FOUND)
|
||||
find_package(LATEX)
|
||||
find_package (LATEX)
|
||||
if (LATEX_COMPILER AND NOT LATEX_FOUND)
|
||||
set(LATEX_FOUND YES)
|
||||
set (LATEX_FOUND YES)
|
||||
endif (LATEX_COMPILER AND NOT LATEX_FOUND)
|
||||
endif (DOXYGEN_FOUND)
|
||||
|
||||
# message("Doxygen found : ${DOXYGEN_FOUND}")
|
||||
# message("LaTex found : ${LATEX_FOUND}")
|
||||
# message("LaTex Compiler : ${LATEX_COMPILER}")
|
||||
# message ("Doxygen found : ${DOXYGEN_FOUND}")
|
||||
# message ("LaTex found : ${LATEX_FOUND}")
|
||||
# message ("LaTex Compiler : ${LATEX_COMPILER}")
|
||||
|
||||
# Cleanup: unset local variables
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# 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
|
||||
|
@ -19,52 +19,37 @@
|
|||
# basic setup
|
||||
#######################################################################
|
||||
|
||||
# The FLTK version
|
||||
set(FLTK_VERSION_MAJOR "1")
|
||||
set(FLTK_VERSION_MINOR "4")
|
||||
set(FLTK_VERSION_PATCH "0")
|
||||
set(FLTK_VERSION "${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}")
|
||||
set(FLTK_VERSION_FULL "${FLTK_VERSION}.${FLTK_VERSION_PATCH}")
|
||||
|
||||
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
||||
set(ARCHIVE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
||||
set (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
set (LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
||||
set (ARCHIVE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
||||
|
||||
# Search for modules in the FLTK source dir first
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
|
||||
set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
|
||||
|
||||
set(FLTK_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
include_directories(${FLTK_INCLUDE_DIRS})
|
||||
set (FLTK_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
include_directories (${FLTK_INCLUDE_DIRS})
|
||||
|
||||
# Remember root of FLTK source directory in case we're in a subdirectory.
|
||||
# Used for instance to find the source directory for doxygen docs
|
||||
set(FLTK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set (FLTK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
# Setup install locations
|
||||
if(CMAKE_VERSION VERSION_GREATER 2.8.4)
|
||||
# Use GNUInstallDirs if available.
|
||||
include(GNUInstallDirs)
|
||||
else()
|
||||
# Else set reasonable defaults.
|
||||
set(CMAKE_INSTALL_BINDIR bin)
|
||||
set(CMAKE_INSTALL_LIBDIR lib)
|
||||
set(CMAKE_INSTALL_INCLUDEDIR include)
|
||||
set(CMAKE_INSTALL_DATADIR share)
|
||||
set(CMAKE_INSTALL_MANDIR share/man)
|
||||
endif(CMAKE_VERSION VERSION_GREATER 2.8.4)
|
||||
# Setup install locations (requires CMake 2.8.4)
|
||||
|
||||
set(FLTK_BINDIR ${CMAKE_INSTALL_BINDIR} CACHE PATH
|
||||
"Binary install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set(FLTK_LIBDIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH
|
||||
"Library install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set(FLTK_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH
|
||||
"Public header install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set(FLTK_DATADIR ${CMAKE_INSTALL_DATADIR} CACHE PATH
|
||||
"Non-arch data install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set(FLTK_MANDIR ${CMAKE_INSTALL_MANDIR} CACHE PATH
|
||||
"Manual install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set(FLTK_DOCDIR ${CMAKE_INSTALL_DATADIR}/doc CACHE PATH
|
||||
"Non-arch doc install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
include(GNUInstallDirs)
|
||||
|
||||
|
||||
set (FLTK_BINDIR ${CMAKE_INSTALL_BINDIR} CACHE PATH
|
||||
"Binary install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set (FLTK_LIBDIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH
|
||||
"Library install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set (FLTK_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH
|
||||
"Public header install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set (FLTK_DATADIR ${CMAKE_INSTALL_DATADIR} CACHE PATH
|
||||
"Non-arch data install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set (FLTK_MANDIR ${CMAKE_INSTALL_MANDIR} CACHE PATH
|
||||
"Manual install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
set (FLTK_DOCDIR ${CMAKE_INSTALL_DATADIR}/doc CACHE PATH
|
||||
"Non-arch doc install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||
|
||||
|
||||
#######################################################################
|
||||
|
@ -72,56 +57,56 @@ set(FLTK_DOCDIR ${CMAKE_INSTALL_DATADIR}/doc CACHE PATH
|
|||
#######################################################################
|
||||
|
||||
# set where config files go
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
set(FLTK_CONFIG_PATH CMake)
|
||||
elseif(APPLE AND NOT OPTION_APPLE_X11)
|
||||
set(FLTK_CONFIG_PATH FLTK.framework/Resources/CMake)
|
||||
else()
|
||||
set(FLTK_CONFIG_PATH ${FLTK_DATADIR}/fltk)
|
||||
endif(WIN32 AND NOT CYGWIN)
|
||||
if (WIN32 AND NOT CYGWIN)
|
||||
set (FLTK_CONFIG_PATH CMake)
|
||||
elseif (APPLE AND NOT OPTION_APPLE_X11)
|
||||
set (FLTK_CONFIG_PATH FLTK.framework/Resources/CMake)
|
||||
else ()
|
||||
set (FLTK_CONFIG_PATH ${FLTK_DATADIR}/fltk)
|
||||
endif (WIN32 AND NOT CYGWIN)
|
||||
|
||||
include(TestBigEndian)
|
||||
TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
|
||||
|
||||
if(APPLE)
|
||||
set(HAVE_STRCASECMP 1)
|
||||
set(HAVE_DIRENT_H 1)
|
||||
set(HAVE_SNPRINTF 1)
|
||||
set(HAVE_VSNPRINTF 1)
|
||||
set(HAVE_SCANDIR 1)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated")
|
||||
if(OPTION_APPLE_X11)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -U__APPLE__")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -U__APPLE__")
|
||||
if(${CMAKE_SYSTEM_VERSION} VERSION_GREATER 16.9.0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LIBCPP_HAS_THREAD_API_PTHREAD")
|
||||
endif(${CMAKE_SYSTEM_VERSION} VERSION_GREATER 16.9.0)
|
||||
elseif(OPTION_APPLE_SDL)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__")
|
||||
else()
|
||||
set(__APPLE_QUARTZ__ 1)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework Cocoa")
|
||||
endif(OPTION_APPLE_X11)
|
||||
endif(APPLE)
|
||||
if (APPLE)
|
||||
set (HAVE_STRCASECMP 1)
|
||||
set (HAVE_DIRENT_H 1)
|
||||
set (HAVE_SNPRINTF 1)
|
||||
set (HAVE_VSNPRINTF 1)
|
||||
set (HAVE_SCANDIR 1)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated")
|
||||
if (OPTION_APPLE_X11)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -U__APPLE__")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -U__APPLE__")
|
||||
if (${CMAKE_SYSTEM_VERSION} VERSION_GREATER 16.9.0)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LIBCPP_HAS_THREAD_API_PTHREAD")
|
||||
endif (${CMAKE_SYSTEM_VERSION} VERSION_GREATER 16.9.0)
|
||||
elseif (OPTION_APPLE_SDL)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SDL2_INCLUDE_DIRS} -U__APPLE__")
|
||||
else ()
|
||||
set (__APPLE_QUARTZ__ 1)
|
||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework Cocoa")
|
||||
endif (OPTION_APPLE_X11)
|
||||
endif (APPLE)
|
||||
|
||||
if(WIN32)
|
||||
# we do no longer define WIN32 or _WIN32 (since FLTK 1.4.0)
|
||||
# ... but if we did, we'd define _WIN32 (since FLTK 1.4.0)
|
||||
# add_definitions(-D_WIN32)
|
||||
if(MSVC)
|
||||
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||||
set(BORDER_WIDTH 2)
|
||||
endif(MSVC)
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL GNU)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows")
|
||||
endif(CMAKE_C_COMPILER_ID STREQUAL GNU)
|
||||
if(MINGW AND EXISTS /mingw)
|
||||
list(APPEND CMAKE_PREFIX_PATH /mingw)
|
||||
endif(MINGW AND EXISTS /mingw)
|
||||
endif(WIN32)
|
||||
if (WIN32)
|
||||
# we do no longer define WIN32 or _WIN32 (since FLTK 1.4.0)
|
||||
# ... but if we did, we'd define _WIN32 (since FLTK 1.4.0)
|
||||
# add_definitions (-D_WIN32)
|
||||
if (MSVC)
|
||||
add_definitions (-DWIN32_LEAN_AND_MEAN)
|
||||
add_definitions (-D_CRT_SECURE_NO_WARNINGS)
|
||||
set (BORDER_WIDTH 2)
|
||||
endif (MSVC)
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL GNU)
|
||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows")
|
||||
endif (CMAKE_C_COMPILER_ID STREQUAL GNU)
|
||||
if (MINGW AND EXISTS /mingw)
|
||||
list(APPEND CMAKE_PREFIX_PATH /mingw)
|
||||
endif (MINGW AND EXISTS /mingw)
|
||||
endif (WIN32)
|
||||
|
||||
#######################################################################
|
||||
# size of ints
|
||||
|
@ -130,24 +115,24 @@ include(CheckTypeSize)
|
|||
CHECK_TYPE_SIZE(short SIZEOF_SHORT)
|
||||
CHECK_TYPE_SIZE(int SIZEOF_INT)
|
||||
CHECK_TYPE_SIZE(long SIZEOF_LONG)
|
||||
CHECK_TYPE_SIZE("long long" HAVE_LONG_LONG)
|
||||
CHECK_TYPE_SIZE("long long" HAVE_LONG_LONG)
|
||||
|
||||
if(${SIZEOF_SHORT} MATCHES "^2$")
|
||||
set(U16 "unsigned short")
|
||||
endif(${SIZEOF_SHORT} MATCHES "^2$")
|
||||
if (${SIZEOF_SHORT} MATCHES "^2$")
|
||||
set (U16 "unsigned short")
|
||||
endif (${SIZEOF_SHORT} MATCHES "^2$")
|
||||
|
||||
if(${SIZEOF_INT} MATCHES "^4$")
|
||||
set(U32 "unsigned")
|
||||
else()
|
||||
if(${SIZEOF_LONG} MATCHES "^4$")
|
||||
set(U32 "unsigned long")
|
||||
endif(${SIZEOF_LONG} MATCHES "^4$")
|
||||
endif(${SIZEOF_INT} MATCHES "^4$")
|
||||
if (${SIZEOF_INT} MATCHES "^4$")
|
||||
set (U32 "unsigned")
|
||||
else ()
|
||||
if (${SIZEOF_LONG} MATCHES "^4$")
|
||||
set (U32 "unsigned long")
|
||||
endif (${SIZEOF_LONG} MATCHES "^4$")
|
||||
endif (${SIZEOF_INT} MATCHES "^4$")
|
||||
|
||||
if(${SIZEOF_INT} MATCHES "^8$")
|
||||
set(U64 "unsigned")
|
||||
else()
|
||||
if(${SIZEOF_LONG} MATCHES "^8$")
|
||||
set(U64 "unsigned long")
|
||||
endif(${SIZEOF_LONG} MATCHES "^8$")
|
||||
endif(${SIZEOF_INT} MATCHES "^8$")
|
||||
if (${SIZEOF_INT} MATCHES "^8$")
|
||||
set (U64 "unsigned")
|
||||
else ()
|
||||
if (${SIZEOF_LONG} MATCHES "^8$")
|
||||
set (U64 "unsigned long")
|
||||
endif (${SIZEOF_LONG} MATCHES "^8$")
|
||||
endif (${SIZEOF_INT} MATCHES "^8$")
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# This file sets variables for common use in export.cmake and install.cmake
|
||||
# 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
|
||||
|
@ -16,9 +16,6 @@
|
|||
#
|
||||
|
||||
#######################################################################
|
||||
set (FL_MAJOR_VERSION ${FLTK_VERSION_MAJOR})
|
||||
set (FL_MINOR_VERSION ${FLTK_VERSION_MINOR})
|
||||
set (FL_PATCH_VERSION ${FLTK_VERSION_PATCH})
|
||||
|
||||
set (DEBUG_VARIABLES_CMAKE 0)
|
||||
if (DEBUG_VARIABLES_CMAKE)
|
||||
|
@ -83,66 +80,66 @@ set (IMAGELIBS)
|
|||
set (STATICIMAGELIBS)
|
||||
|
||||
if (FLTK_BUILTIN_JPEG_FOUND)
|
||||
list(APPEND IMAGELIBS -lfltk_jpeg)
|
||||
list(APPEND STATICIMAGELIBS \$libdir/libfltk_jpeg.a)
|
||||
list (APPEND IMAGELIBS -lfltk_jpeg)
|
||||
list (APPEND STATICIMAGELIBS \$libdir/libfltk_jpeg.a)
|
||||
else ()
|
||||
if (LIB_jpeg)
|
||||
list(APPEND IMAGELIBS -ljpeg)
|
||||
list(APPEND STATICIMAGELIBS -ljpeg)
|
||||
list (APPEND IMAGELIBS -ljpeg)
|
||||
list (APPEND STATICIMAGELIBS -ljpeg)
|
||||
endif (LIB_jpeg)
|
||||
endif (FLTK_BUILTIN_JPEG_FOUND)
|
||||
|
||||
if (FLTK_BUILTIN_PNG_FOUND)
|
||||
list(APPEND IMAGELIBS -lfltk_png)
|
||||
list(APPEND STATICIMAGELIBS \$libdir/libfltk_png.a)
|
||||
list (APPEND IMAGELIBS -lfltk_png)
|
||||
list (APPEND STATICIMAGELIBS \$libdir/libfltk_png.a)
|
||||
else ()
|
||||
if (LIB_png)
|
||||
list(APPEND IMAGELIBS -lpng)
|
||||
list(APPEND STATICIMAGELIBS -lpng)
|
||||
list (APPEND IMAGELIBS -lpng)
|
||||
list (APPEND STATICIMAGELIBS -lpng)
|
||||
endif (LIB_png)
|
||||
endif (FLTK_BUILTIN_PNG_FOUND)
|
||||
|
||||
if (FLTK_BUILTIN_ZLIB_FOUND)
|
||||
list(APPEND IMAGELIBS -lfltk_z)
|
||||
list(APPEND STATICIMAGELIBS \$libdir/libfltk_z.a)
|
||||
list (APPEND IMAGELIBS -lfltk_z)
|
||||
list (APPEND STATICIMAGELIBS \$libdir/libfltk_z.a)
|
||||
else ()
|
||||
if (LIB_zlib)
|
||||
list(APPEND IMAGELIBS -lz)
|
||||
list(APPEND STATICIMAGELIBS -lz)
|
||||
list (APPEND IMAGELIBS -lz)
|
||||
list (APPEND STATICIMAGELIBS -lz)
|
||||
endif (LIB_zlib)
|
||||
endif (FLTK_BUILTIN_ZLIB_FOUND)
|
||||
|
||||
string(REPLACE ";" " " IMAGELIBS "${IMAGELIBS}")
|
||||
string(REPLACE ";" " " STATICIMAGELIBS "${STATICIMAGELIBS}")
|
||||
string (REPLACE ";" " " IMAGELIBS "${IMAGELIBS}")
|
||||
string (REPLACE ";" " " STATICIMAGELIBS "${STATICIMAGELIBS}")
|
||||
|
||||
#######################################################################
|
||||
set(CC ${CMAKE_C_COMPILER})
|
||||
set(CXX ${CMAKE_CXX_COMPILER})
|
||||
set (CC ${CMAKE_C_COMPILER})
|
||||
set (CXX ${CMAKE_CXX_COMPILER})
|
||||
|
||||
set(ARCHFLAGS ${OPTION_ARCHFLAGS})
|
||||
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 (CFLAGS "${OPTION_OPTIM} ${CMAKE_C_FLAGS} ${CFLAGS}")
|
||||
foreach (arg ${FLTK_CFLAGS})
|
||||
set (CFLAGS "${CFLAGS} ${arg}")
|
||||
endforeach (arg ${FLTK_CFLAGS})
|
||||
|
||||
set(CXXFLAGS "${CFLAGS}")
|
||||
set (CXXFLAGS "${CFLAGS}")
|
||||
|
||||
foreach(arg ${FLTK_LDLIBS})
|
||||
set(LINK_LIBS "${LINK_LIBS} ${arg}")
|
||||
endforeach(arg ${FLTK_LDLIBS})
|
||||
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")
|
||||
set (SHAREDSUFFIX "_s")
|
||||
else ()
|
||||
set(SHAREDSUFFIX "")
|
||||
set (SHAREDSUFFIX "")
|
||||
endif (${CMAKE_SYSTEM_NAME} STREQUAL "AIX")
|
||||
|
||||
if (DEBUG_VARIABLES_CMAKE)
|
||||
|
|
140
CMakeLists.txt
140
CMakeLists.txt
|
@ -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
|
||||
|
@ -15,64 +15,87 @@
|
|||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
# Prevent annoying warning under Cygwin; this must be before project().
|
||||
# Remove when CMake >= 2.8.4 is required
|
||||
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
|
||||
#######################################################################
|
||||
# set CMake minimum version (must be before `project()`
|
||||
#######################################################################
|
||||
|
||||
project(FLTK)
|
||||
cmake_minimum_required(VERSION 2.6.3)
|
||||
# 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 some macros
|
||||
# define the FLTK project and version
|
||||
#######################################################################
|
||||
include(CMake/macros.cmake)
|
||||
|
||||
project (FLTK VERSION 1.4.0)
|
||||
|
||||
#######################################################################
|
||||
# include macro definitions of generally used macros
|
||||
#######################################################################
|
||||
|
||||
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)
|
||||
|
||||
#######################################################################
|
||||
# basic setup
|
||||
#######################################################################
|
||||
include(CMake/setup.cmake)
|
||||
include (CMake/setup.cmake)
|
||||
|
||||
#######################################################################
|
||||
# check for headers, libraries and functions
|
||||
#######################################################################
|
||||
include(CMake/resources.cmake)
|
||||
include (CMake/resources.cmake)
|
||||
|
||||
#######################################################################
|
||||
# options
|
||||
#######################################################################
|
||||
include(CMake/options.cmake)
|
||||
include (CMake/options.cmake)
|
||||
|
||||
#######################################################################
|
||||
# Android Studio setup
|
||||
#######################################################################
|
||||
if (OPTION_CREATE_ANDROID_STUDIO_IDE)
|
||||
include(CMake/android.cmake)
|
||||
include (CMake/android.cmake)
|
||||
endif (OPTION_CREATE_ANDROID_STUDIO_IDE)
|
||||
|
||||
|
||||
#######################################################################
|
||||
# print (debug) several build variables and options
|
||||
#######################################################################
|
||||
|
||||
set (debug_build 0) # set to 1 to show debug info
|
||||
|
||||
if (debug_build)
|
||||
message ("")
|
||||
message (STATUS "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt: set debug_build to 0 to disable the following info:")
|
||||
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)
|
||||
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)
|
||||
message (STATUS "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt: end of debug_build info.")
|
||||
endif (debug_build)
|
||||
|
||||
unset (debug_build)
|
||||
|
||||
#######################################################################
|
||||
|
@ -81,25 +104,25 @@ unset (debug_build)
|
|||
# install.cmake creates these files for an installed FLTK
|
||||
# these two would only differ in paths, so common variables are set here
|
||||
#######################################################################
|
||||
include(CMake/variables.cmake)
|
||||
include (CMake/variables.cmake)
|
||||
|
||||
#######################################################################
|
||||
# final config and export
|
||||
#######################################################################
|
||||
include(CMake/export.cmake)
|
||||
include (CMake/export.cmake)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/abi-version.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/FL/abi-version.h
|
||||
@ONLY
|
||||
)
|
||||
configure_file (
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/abi-version.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/FL/abi-version.h
|
||||
@ONLY
|
||||
)
|
||||
|
||||
#######################################################################
|
||||
# build examples - these have to be built after fluid is built/imported
|
||||
#######################################################################
|
||||
if(OPTION_BUILD_EXAMPLES)
|
||||
add_subdirectory(test)
|
||||
endif(OPTION_BUILD_EXAMPLES)
|
||||
if (OPTION_BUILD_EXAMPLES)
|
||||
add_subdirectory (test)
|
||||
endif (OPTION_BUILD_EXAMPLES)
|
||||
|
||||
#######################################################################
|
||||
# Android Studio wrapup
|
||||
|
@ -111,4 +134,47 @@ endif (OPTION_CREATE_ANDROID_STUDIO_IDE)
|
|||
#######################################################################
|
||||
# installation
|
||||
#######################################################################
|
||||
include(CMake/install.cmake)
|
||||
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)
|
||||
|
|
|
@ -552,9 +552,9 @@ add_executable(CubeView WIN32 CubeMain.cxx CubeView.cxx CubeViewUI.cxx)
|
|||
target_link_libraries(CubeView fltk fltk_gl)
|
||||
---
|
||||
|
||||
You can repeat the add_custom_command for each fluid file or if you have
|
||||
a large number of them see the CMake/macros.cmake function FLTK_RUN_FLUID
|
||||
for an example of how to run it in a loop.
|
||||
You can repeat the add_custom_command for each fluid file or if you
|
||||
have a large number of them see the CMake/FLTK-Functions.cmake function
|
||||
FLTK_RUN_FLUID for an example of how to run it in a loop.
|
||||
|
||||
The two lines
|
||||
|
||||
|
|
21
configure.ac
21
configure.ac
|
@ -56,19 +56,20 @@ case $host_os in
|
|||
esac
|
||||
|
||||
dnl FLTK library versions...
|
||||
FL_MAJOR_VERSION=1
|
||||
FL_MINOR_VERSION=4
|
||||
FL_PATCH_VERSION=0
|
||||
FL_DSO_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}
|
||||
FL_ABI_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}.0
|
||||
FL_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}.${FL_PATCH_VERSION}
|
||||
FLTK_VERSION_MAJOR=1
|
||||
FLTK_VERSION_MINOR=4
|
||||
FLTK_VERSION_PATCH=0
|
||||
FLTK_VERSION=${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}.${FLTK_VERSION_PATCH}
|
||||
|
||||
AC_SUBST(FL_MAJOR_VERSION)
|
||||
AC_SUBST(FL_MINOR_VERSION)
|
||||
AC_SUBST(FL_PATCH_VERSION)
|
||||
FL_DSO_VERSION=${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
|
||||
FL_ABI_VERSION=${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}.0
|
||||
|
||||
AC_SUBST(FLTK_VERSION_MAJOR)
|
||||
AC_SUBST(FLTK_VERSION_MINOR)
|
||||
AC_SUBST(FLTK_VERSION_PATCH)
|
||||
AC_SUBST(FLTK_VERSION)
|
||||
AC_SUBST(FL_DSO_VERSION)
|
||||
AC_SUBST(FL_ABI_VERSION)
|
||||
AC_SUBST(FL_VERSION)
|
||||
|
||||
AC_SUBST(ARCHFLAGS)
|
||||
AC_SUBST(OPTIM)
|
||||
|
|
|
@ -16,8 +16,6 @@
|
|||
|
||||
set (DOCS)
|
||||
|
||||
set (FL_VERSION "${FLTK_VERSION_FULL}")
|
||||
|
||||
if (OPTION_INCLUDE_DRIVER_DOCUMENTATION)
|
||||
set (DRIVER_DOCS "DriverDev")
|
||||
else ()
|
||||
|
@ -30,34 +28,34 @@ endif ()
|
|||
|
||||
if (OPTION_BUILD_HTML_DOCUMENTATION)
|
||||
|
||||
list(APPEND DOCS html)
|
||||
list (APPEND DOCS html)
|
||||
|
||||
# generate Doxygen file "Doxyfile"
|
||||
# generate Doxygen file "Doxyfile"
|
||||
|
||||
set(GENERATE_HTML YES)
|
||||
set(GENERATE_LATEX NO)
|
||||
set(LATEX_HEADER "")
|
||||
set (GENERATE_HTML YES)
|
||||
set (GENERATE_LATEX NO)
|
||||
set (LATEX_HEADER "")
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
@ONLY
|
||||
)
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
@ONLY
|
||||
)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/tiny.png
|
||||
${CMAKE_CURRENT_BINARY_DIR}/html/tiny.png
|
||||
COPYONLY
|
||||
)
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/tiny.png
|
||||
${CMAKE_CURRENT_BINARY_DIR}/html/tiny.png
|
||||
COPYONLY
|
||||
)
|
||||
|
||||
# generate html docs
|
||||
# generate html docs
|
||||
|
||||
add_custom_target(html
|
||||
# ALL
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating HTML documentation" VERBATIM
|
||||
)
|
||||
add_custom_target (html
|
||||
# ALL
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating HTML documentation" VERBATIM
|
||||
)
|
||||
|
||||
endif (OPTION_BUILD_HTML_DOCUMENTATION)
|
||||
|
||||
|
@ -67,52 +65,51 @@ endif (OPTION_BUILD_HTML_DOCUMENTATION)
|
|||
|
||||
if (OPTION_BUILD_PDF_DOCUMENTATION)
|
||||
|
||||
list(APPEND DOCS pdf)
|
||||
list (APPEND DOCS pdf)
|
||||
|
||||
# generate Doxygen file "Doxybook"
|
||||
# generate Doxygen file "Doxybook"
|
||||
|
||||
set(GENERATE_HTML NO)
|
||||
set(GENERATE_LATEX YES)
|
||||
set(LATEX_HEADER "${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex")
|
||||
set (GENERATE_HTML NO)
|
||||
set (GENERATE_LATEX YES)
|
||||
set (LATEX_HEADER "${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex")
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Doxybook
|
||||
@ONLY
|
||||
)
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Doxybook
|
||||
@ONLY
|
||||
)
|
||||
|
||||
# generate LaTeX header fltk-book.tex
|
||||
# generate LaTeX header fltk-book.tex
|
||||
|
||||
set(FL_VERSION ${FLTK_VERSION_FULL})
|
||||
set(DOXY_VERSION ${DOXYGEN_VERSION})
|
||||
execute_process(COMMAND date +%Y
|
||||
OUTPUT_VARIABLE YEAR
|
||||
)
|
||||
set (DOXY_VERSION ${DOXYGEN_VERSION})
|
||||
execute_process (COMMAND date +%Y
|
||||
OUTPUT_VARIABLE YEAR
|
||||
)
|
||||
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/fltk-book.tex.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex
|
||||
@ONLY
|
||||
)
|
||||
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/src/fltk-book.tex.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex
|
||||
@ONLY
|
||||
)
|
||||
|
||||
# generate fltk.pdf
|
||||
# generate fltk.pdf
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} Doxybook
|
||||
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/make_pdf
|
||||
COMMAND cp -f latex/refman.pdf fltk.pdf
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating PDF documentation" VERBATIM
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} Doxybook
|
||||
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/make_pdf
|
||||
COMMAND cp -f latex/refman.pdf fltk.pdf
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating PDF documentation" VERBATIM
|
||||
)
|
||||
|
||||
# add target 'pdf'
|
||||
# add target 'pdf'
|
||||
|
||||
add_custom_target(pdf
|
||||
# ALL
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf
|
||||
)
|
||||
add_custom_target (pdf
|
||||
# ALL
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf
|
||||
)
|
||||
|
||||
endif(OPTION_BUILD_PDF_DOCUMENTATION)
|
||||
endif (OPTION_BUILD_PDF_DOCUMENTATION)
|
||||
|
||||
#----------------------------------
|
||||
# add target 'docs' for all docs
|
||||
|
@ -120,10 +117,10 @@ endif(OPTION_BUILD_PDF_DOCUMENTATION)
|
|||
|
||||
if (DOCS)
|
||||
|
||||
add_custom_target(docs
|
||||
# ALL
|
||||
DEPENDS ${DOCS}
|
||||
)
|
||||
add_custom_target(docs
|
||||
# ALL
|
||||
DEPENDS ${DOCS}
|
||||
)
|
||||
|
||||
endif (DOCS)
|
||||
|
||||
|
@ -133,16 +130,16 @@ endif (DOCS)
|
|||
|
||||
if (OPTION_INSTALL_HTML_DOCUMENTATION AND OPTION_BUILD_HTML_DOCUMENTATION)
|
||||
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
|
||||
DESTINATION ${FLTK_DATADIR}/doc/fltk
|
||||
)
|
||||
install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
|
||||
DESTINATION ${FLTK_DATADIR}/doc/fltk
|
||||
)
|
||||
|
||||
endif (OPTION_INSTALL_HTML_DOCUMENTATION AND OPTION_BUILD_HTML_DOCUMENTATION)
|
||||
|
||||
if (OPTION_INSTALL_PDF_DOCUMENTATION AND OPTION_BUILD_PDF_DOCUMENTATION)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf
|
||||
DESTINATION ${FLTK_DATADIR}/doc/fltk/
|
||||
)
|
||||
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf
|
||||
DESTINATION ${FLTK_DATADIR}/doc/fltk/
|
||||
)
|
||||
|
||||
endif (OPTION_INSTALL_PDF_DOCUMENTATION AND OPTION_BUILD_PDF_DOCUMENTATION)
|
||||
|
|
|
@ -25,7 +25,7 @@ DOXYFILE_ENCODING = UTF-8
|
|||
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
|
||||
# by quotes) that should identify the project.
|
||||
|
||||
PROJECT_NAME = "FLTK @FL_VERSION@"
|
||||
PROJECT_NAME = "FLTK @FLTK_VERSION@"
|
||||
|
||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
|
||||
# This could be handy for archiving the generated documentation or
|
||||
|
|
|
@ -132,7 +132,7 @@ uninstall-linux uninstall-osx:
|
|||
|
||||
Doxyfile: Doxyfile.in
|
||||
echo "Generating Doxyfile ..."
|
||||
sed -e's,@FL_VERSION@,$(FL_VERSION),' \
|
||||
sed -e's,@FLTK_VERSION@,$(FLTK_VERSION),' \
|
||||
-e's,@GENERATE_HTML@,YES,' \
|
||||
-e's,@GENERATE_LATEX@,NO,' \
|
||||
-e's, @LATEX_HEADER@,,' \
|
||||
|
@ -142,7 +142,7 @@ Doxyfile: Doxyfile.in
|
|||
|
||||
Doxybook: Doxyfile.in
|
||||
echo "Generating Doxybook ..."
|
||||
sed -e's,@FL_VERSION@,$(FL_VERSION),' \
|
||||
sed -e's,@FLTK_VERSION@,$(FLTK_VERSION),' \
|
||||
-e's,@GENERATE_HTML@,NO,' \
|
||||
-e's,@GENERATE_LATEX@,YES,' \
|
||||
-e's,@LATEX_HEADER@,src/fltk-book.tex,' \
|
||||
|
@ -183,6 +183,6 @@ src/fltk-book.tex: src/fltk-book.tex.in
|
|||
DOXY_VERSION=`$(DOXYDOC) --version`; \
|
||||
YEAR=`date +%Y`; \
|
||||
sed -e"s/@YEAR@/$$YEAR/g" \
|
||||
-e"s/@FL_VERSION@/$(FL_VERSION)/g" \
|
||||
-e"s/@FLTK_VERSION@/$(FLTK_VERSION)/g" \
|
||||
-e"s/@DOXY_VERSION@/$$DOXY_VERSION/g" \
|
||||
< $< > $@
|
||||
|
|
|
@ -127,7 +127,7 @@
|
|||
\begin{titlepage}
|
||||
\vspace*{5cm}
|
||||
\begin{center}%
|
||||
{\Huge FLTK @FL_VERSION@ Programming Manual}\\
|
||||
{\Huge FLTK @FLTK_VERSION@ Programming Manual}\\
|
||||
\vspace*{2cm}
|
||||
\begin{DoxyImageNoCaption}
|
||||
\mbox{\includegraphics[width=6cm]{FL200.png}}
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
MAJOR_VERSION=@FL_MAJOR_VERSION@
|
||||
MINOR_VERSION=@FL_MINOR_VERSION@
|
||||
PATCH_VERSION=@FL_PATCH_VERSION@
|
||||
MAJOR_VERSION=@FLTK_VERSION_MAJOR@
|
||||
MINOR_VERSION=@FLTK_VERSION_MINOR@
|
||||
PATCH_VERSION=@FLTK_VERSION_PATCH@
|
||||
VERSION="$MAJOR_VERSION.$MINOR_VERSION.$PATCH_VERSION"
|
||||
APIVERSION="$MAJOR_VERSION.$MINOR_VERSION"
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
%vendor FLTK Development Team
|
||||
%license COPYING
|
||||
%readme README.txt
|
||||
%version @FL_MAJOR_VERSION@.@FL_MINOR_VERSION@.@FL_PATCH_VERSION@
|
||||
%version @FLTK_VERSION_MAJOR@.@FLTK_VERSION_MINOR@.@FLTK_VERSION_PATCH@
|
||||
%description The Fast Light Tool Kit ("FLTK", pronounced "fulltick") is a
|
||||
%description cross-platform C++ GUI toolkit for UNIX(r)/Linux(r) (X11),
|
||||
%description Microsoft(r) Windows(r), and MacOS(r) X. FLTK provides modern
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
%define version @FL_MAJOR_VERSION@.@FL_MINOR_VERSION@.@FL_PATCH_VERSION@
|
||||
%define version @FLTK_VERSION_MAJOR@.@FLTK_VERSION_MINOR@.@FLTK_VERSION_PATCH@
|
||||
%define release 1
|
||||
%define prefix /usr
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# CMakeLists.txt to build fluid for the FLTK project using CMake (www.cmake.org)
|
||||
#
|
||||
# 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
|
||||
|
@ -14,85 +14,84 @@
|
|||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
if (NOT ANDROID)
|
||||
|
||||
if(NOT ANDROID)
|
||||
|
||||
set(CPPFILES
|
||||
CodeEditor.cxx
|
||||
Fl_Function_Type.cxx
|
||||
Fl_Group_Type.cxx
|
||||
Fl_Menu_Type.cxx
|
||||
Fl_Type.cxx
|
||||
Fl_Widget_Type.cxx
|
||||
Fl_Window_Type.cxx
|
||||
Fluid_Image.cxx
|
||||
about_panel.cxx
|
||||
align_widget.cxx
|
||||
alignment_panel.cxx
|
||||
code.cxx
|
||||
factory.cxx
|
||||
file.cxx
|
||||
fluid.cxx
|
||||
function_panel.cxx
|
||||
template_panel.cxx
|
||||
undo.cxx
|
||||
widget_panel.cxx
|
||||
set (CPPFILES
|
||||
CodeEditor.cxx
|
||||
Fl_Function_Type.cxx
|
||||
Fl_Group_Type.cxx
|
||||
Fl_Menu_Type.cxx
|
||||
Fl_Type.cxx
|
||||
Fl_Widget_Type.cxx
|
||||
Fl_Window_Type.cxx
|
||||
Fluid_Image.cxx
|
||||
about_panel.cxx
|
||||
align_widget.cxx
|
||||
alignment_panel.cxx
|
||||
code.cxx
|
||||
factory.cxx
|
||||
file.cxx
|
||||
fluid.cxx
|
||||
function_panel.cxx
|
||||
template_panel.cxx
|
||||
undo.cxx
|
||||
widget_panel.cxx
|
||||
)
|
||||
|
||||
# ExternalCodeEditor: platform specific files
|
||||
|
||||
if (WIN32)
|
||||
list(APPEND CPPFILES ExternalCodeEditor_WIN32.cxx)
|
||||
list (APPEND CPPFILES ExternalCodeEditor_WIN32.cxx)
|
||||
else ()
|
||||
list(APPEND CPPFILES ExternalCodeEditor_UNIX.cxx)
|
||||
list (APPEND CPPFILES ExternalCodeEditor_UNIX.cxx)
|
||||
endif (WIN32)
|
||||
|
||||
if(APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
set(ICON_NAME fluid.icns)
|
||||
set(ICON_PATH "${PROJECT_SOURCE_DIR}/fluid/fluid.app/Contents/Resources/${ICON_NAME}")
|
||||
if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
set (ICON_NAME fluid.icns)
|
||||
set (ICON_PATH "${PROJECT_SOURCE_DIR}/fluid/fluid.app/Contents/Resources/${ICON_NAME}")
|
||||
add_executable(fluid MACOSX_BUNDLE ${CPPFILES} ${ICON_PATH})
|
||||
else()
|
||||
else ()
|
||||
add_executable(fluid WIN32 ${CPPFILES})
|
||||
endif(APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
endif (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
|
||||
target_link_libraries(fluid fltk fltk_images fltk_forms)
|
||||
|
||||
# install fluid
|
||||
|
||||
if(APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
# create bundle
|
||||
set_target_properties(fluid PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/fluid/fluid.app/Contents/Info.plist")
|
||||
set_target_properties(fluid PROPERTIES MACOSX_BUNDLE_ICON_FILE ${ICON_NAME})
|
||||
set_target_properties(fluid PROPERTIES RESOURCE ${ICON_PATH})
|
||||
set_target_properties (fluid PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/fluid/fluid.app/Contents/Info.plist")
|
||||
set_target_properties (fluid PROPERTIES MACOSX_BUNDLE_ICON_FILE ${ICON_NAME})
|
||||
set_target_properties (fluid PROPERTIES RESOURCE ${ICON_PATH})
|
||||
# install
|
||||
install(TARGETS fluid DESTINATION ${FLTK_BINDIR})
|
||||
install (TARGETS fluid DESTINATION ${FLTK_BINDIR})
|
||||
else()
|
||||
install(TARGETS fluid
|
||||
install (TARGETS fluid
|
||||
EXPORT FLTK-Targets
|
||||
RUNTIME DESTINATION ${FLTK_BINDIR}
|
||||
LIBRARY DESTINATION ${FLTK_LIBDIR}
|
||||
ARCHIVE DESTINATION ${FLTK_LIBDIR}
|
||||
)
|
||||
endif(APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
)
|
||||
endif (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
|
||||
# install desktop files
|
||||
|
||||
if(UNIX)
|
||||
install(FILES fluid.desktop
|
||||
DESTINATION ${FLTK_DATADIR}/applications
|
||||
)
|
||||
# Install mime-type file. x-fluid.desktop method is deprecated.
|
||||
install(FILES fluid.xml
|
||||
DESTINATION ${FLTK_DATADIR}/mime/packages
|
||||
)
|
||||
if (UNIX)
|
||||
install (FILES fluid.desktop
|
||||
DESTINATION ${FLTK_DATADIR}/applications
|
||||
)
|
||||
# Install mime-type file (x-fluid.desktop method is deprecated)
|
||||
install (FILES fluid.xml
|
||||
DESTINATION ${FLTK_DATADIR}/mime/packages
|
||||
)
|
||||
|
||||
# Install desktop icons.
|
||||
foreach(icon 32 48 64 128)
|
||||
install(FILES icons/fluid-${icon}.png
|
||||
DESTINATION ${FLTK_DATADIR}/icons/hicolor/${icon}x${icon}/apps
|
||||
RENAME fluid.png
|
||||
)
|
||||
endforeach()
|
||||
endif(UNIX)
|
||||
# Install desktop icons
|
||||
foreach (icon 32 48 64 128)
|
||||
install (FILES icons/fluid-${icon}.png
|
||||
DESTINATION ${FLTK_DATADIR}/icons/hicolor/${icon}x${icon}/apps
|
||||
RENAME fluid.png
|
||||
)
|
||||
endforeach()
|
||||
endif (UNIX)
|
||||
|
||||
endif(NOT ANDROID)
|
||||
endif (NOT ANDROID)
|
||||
|
|
|
@ -16,13 +16,9 @@
|
|||
|
||||
# FLTK version numbers
|
||||
|
||||
FL_MAJOR_VERSION = @FL_MAJOR_VERSION@
|
||||
FL_MINOR_VERSION = @FL_MINOR_VERSION@
|
||||
FL_PATCH_VERSION = @FL_PATCH_VERSION@
|
||||
|
||||
FL_VERSION = @FLTK_VERSION@
|
||||
FL_DSO_VERSION = @FL_DSO_VERSION@
|
||||
FL_ABI_VERSION = @FL_ABI_VERSION@
|
||||
FL_VERSION = @FL_VERSION@
|
||||
|
||||
# FLTK configuration options: BUILD = { WIN | OSX | X11 | XFT }
|
||||
|
||||
|
|
|
@ -173,7 +173,7 @@ list (APPEND HEADER_FILES
|
|||
${CMAKE_CURRENT_BINARY_DIR}/../config.h
|
||||
)
|
||||
|
||||
set (GL_HEADER_FILES) # FIXME: not (yet?) defined
|
||||
set (GL_HEADER_FILES) # FIXME: not (yet?) defined
|
||||
|
||||
if ((USE_X11 OR USE_SDL) AND NOT OPTION_PRINT_SUPPORT)
|
||||
set (PSFILES
|
||||
|
@ -221,6 +221,7 @@ if (USE_X11)
|
|||
drivers/Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx
|
||||
)
|
||||
endif (USE_XFT)
|
||||
|
||||
set (DRIVER_HEADER_FILES
|
||||
drivers/Posix/Fl_Posix_System_Driver.H
|
||||
drivers/X11/Fl_X11_Screen_Driver.H
|
||||
|
@ -294,7 +295,7 @@ elseif (ANDROID)
|
|||
|
||||
# Android
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
|
||||
set (DRIVER_FILES
|
||||
drivers/Android/Fl_Android_Application.cxx
|
||||
|
@ -361,7 +362,7 @@ set (CPPFILES
|
|||
${DRIVER_FILES}
|
||||
)
|
||||
|
||||
set (FLCPPFILES
|
||||
set (FORMS_FILES
|
||||
forms_compatibility.cxx
|
||||
forms_bitmap.cxx
|
||||
forms_free.cxx
|
||||
|
@ -453,15 +454,15 @@ if (WIN32)
|
|||
endif (WIN32)
|
||||
|
||||
if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
set (MMFILES
|
||||
Fl_cocoa.mm
|
||||
drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm
|
||||
Fl_Native_File_Chooser_MAC.mm
|
||||
Fl_MacOS_Sys_Menu_Bar.mm
|
||||
)
|
||||
set (MMFILES
|
||||
Fl_cocoa.mm
|
||||
drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm
|
||||
Fl_Native_File_Chooser_MAC.mm
|
||||
Fl_MacOS_Sys_Menu_Bar.mm
|
||||
)
|
||||
else()
|
||||
set (MMFILES
|
||||
)
|
||||
set (MMFILES
|
||||
)
|
||||
endif (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
|
||||
|
||||
|
||||
|
@ -475,7 +476,7 @@ list (APPEND SHARED_FILES ${HEADER_FILES} ${DRIVER_HEADER_FILES})
|
|||
set (STATIC_FILES ${SHARED_FILES})
|
||||
|
||||
if (WIN32)
|
||||
list (APPEND STATIC_FILES fl_call_main.c)
|
||||
list (APPEND STATIC_FILES fl_call_main.c)
|
||||
endif (WIN32)
|
||||
|
||||
add_definitions(-DFL_LIBRARY)
|
||||
|
@ -487,162 +488,188 @@ add_definitions(-DFL_LIBRARY)
|
|||
set (OPTIONAL_LIBS)
|
||||
|
||||
if (LIB_dl)
|
||||
list (APPEND OPTIONAL_LIBS ${LIB_dl})
|
||||
list (APPEND OPTIONAL_LIBS ${LIB_dl})
|
||||
endif (LIB_dl)
|
||||
|
||||
if (USE_THREADS)
|
||||
list (APPEND OPTIONAL_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
||||
list (APPEND OPTIONAL_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
||||
endif (USE_THREADS)
|
||||
|
||||
if (USE_X11)
|
||||
list (APPEND OPTIONAL_LIBS ${X11_LIBRARIES})
|
||||
list (APPEND OPTIONAL_LIBS ${X11_LIBRARIES})
|
||||
endif (USE_X11)
|
||||
|
||||
if (USE_SDL)
|
||||
list (APPEND OPTIONAL_LIBS ${SDL2_LIBRARY})
|
||||
endif(USE_SDL)
|
||||
list (APPEND OPTIONAL_LIBS ${SDL2_LIBRARY})
|
||||
endif (USE_SDL)
|
||||
|
||||
if (WIN32)
|
||||
list (APPEND OPTIONAL_LIBS comctl32 ws2_32)
|
||||
list (APPEND OPTIONAL_LIBS comctl32 ws2_32)
|
||||
endif (WIN32)
|
||||
|
||||
if (FLTK_HAVE_CAIRO)
|
||||
list (APPEND OPTIONAL_LIBS fltk_cairo ${PKG_CAIRO_LIBRARIES})
|
||||
list (APPEND OPTIONAL_LIBS fltk_cairo ${PKG_CAIRO_LIBRARIES})
|
||||
ENDif (FLTK_HAVE_CAIRO)
|
||||
|
||||
if (HAVE_XINERAMA)
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xinerama_LIB})
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xinerama_LIB})
|
||||
endif (HAVE_XINERAMA)
|
||||
|
||||
if (HAVE_XFIXES)
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xfixes_LIB})
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xfixes_LIB})
|
||||
endif (HAVE_XFIXES)
|
||||
|
||||
if (HAVE_XCURSOR)
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xcursor_LIB})
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xcursor_LIB})
|
||||
endif (HAVE_XCURSOR)
|
||||
|
||||
if (HAVE_XRENDER)
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xrender_LIB})
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xrender_LIB})
|
||||
endif (HAVE_XRENDER)
|
||||
|
||||
if (USE_PANGO)
|
||||
list (APPEND OPTIONAL_LIBS ${HAVE_LIB_PANGO} ${HAVE_LIB_PANGOXFT})
|
||||
if(NOT APPLE)
|
||||
list (APPEND OPTIONAL_LIBS ${HAVE_LIB_GOBJECT} )
|
||||
endif(NOT APPLE)
|
||||
endif(USE_PANGO)
|
||||
if (NOT APPLE)
|
||||
list (APPEND OPTIONAL_LIBS ${HAVE_LIB_GOBJECT} )
|
||||
endif (NOT APPLE)
|
||||
endif (USE_PANGO)
|
||||
|
||||
if (USE_XFT)
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xft_LIB})
|
||||
if (LIB_fontconfig)
|
||||
list (APPEND OPTIONAL_LIBS ${LIB_fontconfig})
|
||||
endif (LIB_fontconfig)
|
||||
list (APPEND OPTIONAL_LIBS ${X11_Xft_LIB})
|
||||
if (LIB_fontconfig)
|
||||
list (APPEND OPTIONAL_LIBS ${LIB_fontconfig})
|
||||
endif (LIB_fontconfig)
|
||||
endif (USE_XFT)
|
||||
|
||||
#######################################################################
|
||||
|
||||
FL_ADD_LIBRARY(fltk STATIC "${STATIC_FILES}")
|
||||
target_link_libraries(fltk ${OPTIONAL_LIBS})
|
||||
FL_ADD_LIBRARY (fltk STATIC "${STATIC_FILES}")
|
||||
target_link_libraries (fltk ${OPTIONAL_LIBS})
|
||||
|
||||
#######################################################################
|
||||
|
||||
FL_ADD_LIBRARY(fltk_forms STATIC "${FLCPPFILES}")
|
||||
target_link_libraries(fltk_forms fltk)
|
||||
FL_ADD_LIBRARY (fltk_forms STATIC "${FORMS_FILES}")
|
||||
target_link_libraries (fltk_forms fltk)
|
||||
|
||||
#######################################################################
|
||||
|
||||
FL_ADD_LIBRARY(fltk_images STATIC "${IMGCPPFILES}")
|
||||
target_link_libraries(fltk_images fltk)
|
||||
FL_ADD_LIBRARY (fltk_images STATIC "${IMGCPPFILES}")
|
||||
target_link_libraries (fltk_images fltk)
|
||||
|
||||
if (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
target_link_libraries(fltk_images ${FLTK_JPEG_LIBRARIES})
|
||||
target_link_libraries (fltk_images ${FLTK_JPEG_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(fltk_images fltk_jpeg)
|
||||
target_link_libraries (fltk_images fltk_jpeg)
|
||||
endif (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
|
||||
if (OPTION_USE_SYSTEM_ZLIB)
|
||||
target_link_libraries(fltk_images ${FLTK_ZLIB_LIBRARIES})
|
||||
target_link_libraries (fltk_images ${FLTK_ZLIB_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(fltk_images fltk_z)
|
||||
target_link_libraries (fltk_images fltk_z)
|
||||
endif (OPTION_USE_SYSTEM_ZLIB)
|
||||
|
||||
if (OPTION_USE_SYSTEM_LIBPNG)
|
||||
target_link_libraries(fltk_images ${FLTK_PNG_LIBRARIES})
|
||||
target_link_libraries (fltk_images ${FLTK_PNG_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(fltk_images fltk_png)
|
||||
target_link_libraries (fltk_images fltk_png)
|
||||
endif (OPTION_USE_SYSTEM_LIBPNG)
|
||||
|
||||
#######################################################################
|
||||
|
||||
if (OPENGL_FOUND)
|
||||
FL_ADD_LIBRARY(fltk_gl STATIC "${GLCPPFILES};${GL_HEADER_FILES};${GL_DRIVER_HEADER_FILES}")
|
||||
target_link_libraries(fltk_gl fltk ${OPENGL_LIBRARIES})
|
||||
FL_ADD_LIBRARY (fltk_gl STATIC "${GLCPPFILES};${GL_HEADER_FILES};${GL_DRIVER_HEADER_FILES}")
|
||||
target_link_libraries (fltk_gl fltk ${OPENGL_LIBRARIES})
|
||||
endif (OPENGL_FOUND)
|
||||
|
||||
#######################################################################
|
||||
# Build shared libraries (optional)
|
||||
#######################################################################
|
||||
# Shared libraries, part 1: everything except Visual Studio (MSVC)
|
||||
#######################################################################
|
||||
|
||||
# Note to devs: As of 08 Aug 2016 we can build shared libs (dlls)
|
||||
# under Windows with Visual Studio (MSVC) but we can't link for instance
|
||||
# fltk_images_SHARED with fltk_SHARED - we have to use fltk, i.e. the
|
||||
# "static" object library instead. I don't know how to fix this, but
|
||||
# at least we can build shared libraries (dlls) with Visual Studio.
|
||||
# AlbrechtS
|
||||
if (OPTION_BUILD_SHARED_LIBS AND NOT MSVC)
|
||||
|
||||
if (OPTION_BUILD_SHARED_LIBS)
|
||||
FL_ADD_LIBRARY (fltk SHARED "${SHARED_FILES}")
|
||||
target_link_libraries (fltk_SHARED ${OPTIONAL_LIBS})
|
||||
|
||||
FL_ADD_LIBRARY(fltk SHARED "${SHARED_FILES}")
|
||||
target_link_libraries(fltk_SHARED ${OPTIONAL_LIBS})
|
||||
###################################################################
|
||||
|
||||
###################################################################
|
||||
FL_ADD_LIBRARY (fltk_forms SHARED "${FORMS_FILES}")
|
||||
target_link_libraries (fltk_forms_SHARED fltk_SHARED)
|
||||
|
||||
FL_ADD_LIBRARY(fltk_forms SHARED "${FLCPPFILES}")
|
||||
if (MSVC)
|
||||
target_link_libraries(fltk_forms_SHARED fltk)
|
||||
else ()
|
||||
target_link_libraries(fltk_forms_SHARED fltk_SHARED)
|
||||
endif (MSVC)
|
||||
###################################################################
|
||||
|
||||
###################################################################
|
||||
FL_ADD_LIBRARY (fltk_images SHARED "${IMGCPPFILES}")
|
||||
target_link_libraries (fltk_images_SHARED fltk_SHARED)
|
||||
|
||||
FL_ADD_LIBRARY(fltk_images SHARED "${IMGCPPFILES}")
|
||||
if (MSVC)
|
||||
target_link_libraries(fltk_images_SHARED fltk)
|
||||
else ()
|
||||
target_link_libraries(fltk_images_SHARED fltk_SHARED)
|
||||
endif (MSVC)
|
||||
if (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
target_link_libraries (fltk_images_SHARED ${FLTK_JPEG_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries (fltk_images_SHARED fltk_jpeg_SHARED)
|
||||
endif (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
|
||||
if (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
target_link_libraries(fltk_images_SHARED ${FLTK_JPEG_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(fltk_images_SHARED fltk_jpeg_SHARED)
|
||||
endif (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
if (OPTION_USE_SYSTEM_LIBPNG)
|
||||
target_link_libraries (fltk_images_SHARED ${FLTK_PNG_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries (fltk_images_SHARED fltk_png_SHARED)
|
||||
endif (OPTION_USE_SYSTEM_LIBPNG)
|
||||
|
||||
if (OPTION_USE_SYSTEM_LIBPNG)
|
||||
target_link_libraries(fltk_images_SHARED ${FLTK_PNG_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(fltk_images_SHARED fltk_png_SHARED)
|
||||
endif (OPTION_USE_SYSTEM_LIBPNG)
|
||||
if (OPTION_USE_SYSTEM_ZLIB)
|
||||
target_link_libraries (fltk_images_SHARED ${FLTK_ZLIB_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries (fltk_images_SHARED fltk_z_SHARED)
|
||||
endif (OPTION_USE_SYSTEM_ZLIB)
|
||||
|
||||
if (OPTION_USE_SYSTEM_ZLIB)
|
||||
target_link_libraries(fltk_images_SHARED ${FLTK_ZLIB_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(fltk_images_SHARED fltk_z_SHARED)
|
||||
endif (OPTION_USE_SYSTEM_ZLIB)
|
||||
###################################################################
|
||||
|
||||
###################################################################
|
||||
if (OPENGL_FOUND)
|
||||
FL_ADD_LIBRARY (fltk_gl SHARED "${GLCPPFILES};${GL_HEADER_FILES};${GL_DRIVER_HEADER_FILES}")
|
||||
target_link_libraries (fltk_gl_SHARED fltk_SHARED ${OPENGL_LIBRARIES})
|
||||
endif (OPENGL_FOUND)
|
||||
|
||||
if (OPENGL_FOUND)
|
||||
FL_ADD_LIBRARY(fltk_gl SHARED "${GLCPPFILES};${GL_HEADER_FILES};${GL_DRIVER_HEADER_FILES}")
|
||||
if (MSVC)
|
||||
target_link_libraries(fltk_gl_SHARED fltk ${OPENGL_LIBRARIES})
|
||||
else ()
|
||||
target_link_libraries(fltk_gl_SHARED fltk_SHARED ${OPENGL_LIBRARIES})
|
||||
endif (MSVC)
|
||||
endif (OPENGL_FOUND)
|
||||
|
||||
endif (OPTION_BUILD_SHARED_LIBS)
|
||||
endif (OPTION_BUILD_SHARED_LIBS AND NOT MSVC)
|
||||
|
||||
#######################################################################
|
||||
# Shared libraries, part 2: Visual Studio (MSVC)
|
||||
#######################################################################
|
||||
|
||||
# Note to devs: As of June 2020 we can't build separate shared libs (DLL's)
|
||||
# under Windows with Visual Studio (MSVC) but we can build one big DLL
|
||||
# that comprises all FLTK and optional PNG, JPEG, and ZLIB libs.
|
||||
# AlbrechtS
|
||||
|
||||
if (OPTION_BUILD_SHARED_LIBS AND MSVC)
|
||||
|
||||
set (SOURCES ${SHARED_FILES} ${FORMS_FILES} ${IMGCPPFILES})
|
||||
if (OPENGL_FOUND)
|
||||
list (APPEND SOURCES ${GLCPPFILES} ${GL_HEADER_FILES} ${GL_DRIVER_HEADER_FILES})
|
||||
endif (OPENGL_FOUND)
|
||||
|
||||
FL_ADD_LIBRARY (fltk SHARED "${SOURCES}")
|
||||
target_link_libraries (fltk_SHARED ${OPTIONAL_LIBS})
|
||||
|
||||
if (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
target_link_libraries (fltk_SHARED ${FLTK_JPEG_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries (fltk_SHARED fltk_jpeg_SHARED)
|
||||
endif (OPTION_USE_SYSTEM_LIBJPEG)
|
||||
|
||||
if (OPTION_USE_SYSTEM_LIBPNG)
|
||||
target_link_libraries (fltk_SHARED ${FLTK_PNG_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries (fltk_SHARED fltk_png_SHARED)
|
||||
endif (OPTION_USE_SYSTEM_LIBPNG)
|
||||
|
||||
if (OPTION_USE_SYSTEM_ZLIB)
|
||||
target_link_libraries (fltk_SHARED ${FLTK_ZLIB_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries (fltk_SHARED fltk_z_SHARED)
|
||||
endif (OPTION_USE_SYSTEM_ZLIB)
|
||||
|
||||
if (OPENGL_FOUND)
|
||||
target_link_libraries (fltk_SHARED ${OPENGL_LIBRARIES})
|
||||
endif (OPENGL_FOUND)
|
||||
|
||||
endif (OPTION_BUILD_SHARED_LIBS AND MSVC)
|
||||
|
||||
#######################################################################
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# https://www.fltk.org/bugs.php
|
||||
#
|
||||
|
||||
# Note: see ../configure.in and/or ../makeinclude for definition of
|
||||
# Note: see ../configure.ac and/or ../makeinclude for definition of
|
||||
# FL_VERSION (x.y.z), FL_ABI_VERSION (x.y.0), and FL_DSO_VERSION (x.y)
|
||||
|
||||
CPPFILES = \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# CMakeLists.txt used to build test and demo apps by the CMake build system
|
||||
#
|
||||
# Copyright 2004-2019 by Bill Spitzak and others.
|
||||
# Copyright 2004-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
|
||||
|
@ -15,120 +15,184 @@
|
|||
#
|
||||
#######################################################################
|
||||
|
||||
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/../bin/examples)
|
||||
set (EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/../bin/examples)
|
||||
|
||||
include (../CMake/FLTK-Functions.cmake)
|
||||
include (../CMake/fl_create_example.cmake)
|
||||
|
||||
#######################################################################
|
||||
# audio libs for test apps
|
||||
if(WIN32)
|
||||
set(AUDIOLIBS winmm)
|
||||
elseif(APPLE)
|
||||
set(AUDIOLIBS "-framework CoreAudio")
|
||||
elseif(HAVE_ALSA_ASOUNDLIB_H)
|
||||
if (WIN32)
|
||||
set (AUDIOLIBS winmm)
|
||||
elseif (APPLE)
|
||||
set (AUDIOLIBS "-framework CoreAudio")
|
||||
elseif (HAVE_ALSA_ASOUNDLIB_H)
|
||||
find_library(LIB_asound asound)
|
||||
if(LIB_asound)
|
||||
set(AUDIOLIBS ${LIB_asound})
|
||||
endif(LIB_asound)
|
||||
endif(WIN32)
|
||||
if (LIB_asound)
|
||||
set (AUDIOLIBS ${LIB_asound})
|
||||
endif (LIB_asound)
|
||||
endif (WIN32)
|
||||
|
||||
#######################################################################
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
)
|
||||
|
||||
#######################################################################
|
||||
# Add the ANDROID_OK option if the example can be compiled for Android
|
||||
# as well as for other platforms.
|
||||
if(NOT ANDROID)
|
||||
CREATE_EXAMPLE(adjuster adjuster.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(arc arc.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(animated animated.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(ask ask.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(bitmap bitmap.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(blocks blocks.cxx "fltk;${AUDIOLIBS}")
|
||||
CREATE_EXAMPLE(boxtype boxtype.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(browser browser.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(button button.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(buttons buttons.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(checkers "checkers.cxx;checkers_pieces.fl" "fltk_images;fltk" ANDROID_OK)
|
||||
CREATE_EXAMPLE(clock clock.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(colbrowser colbrowser.cxx fltk)
|
||||
CREATE_EXAMPLE(color_chooser color_chooser.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(cursor cursor.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(curve curve.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(demo demo.cxx fltk)
|
||||
CREATE_EXAMPLE(device device.cxx "fltk;fltk_images")
|
||||
CREATE_EXAMPLE(doublebuffer doublebuffer.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(editor editor.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(fast_slow fast_slow.fl fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE(file_chooser file_chooser.cxx "fltk_images;fltk")
|
||||
CREATE_EXAMPLE(fonts fonts.cxx fltk)
|
||||
CREATE_EXAMPLE(forms forms.cxx "fltk_forms;fltk")
|
||||
CREATE_EXAMPLE(hello hello.cxx fltk)
|
||||
CREATE_EXAMPLE(help_dialog help_dialog.cxx "fltk_images;fltk")
|
||||
CREATE_EXAMPLE(icon icon.cxx fltk)
|
||||
CREATE_EXAMPLE(iconize iconize.cxx fltk)
|
||||
CREATE_EXAMPLE(image image.cxx fltk)
|
||||
CREATE_EXAMPLE(inactive inactive.fl fltk)
|
||||
CREATE_EXAMPLE(input input.cxx fltk)
|
||||
CREATE_EXAMPLE(input_choice input_choice.cxx fltk)
|
||||
CREATE_EXAMPLE(keyboard "keyboard.cxx;keyboard_ui.fl" fltk)
|
||||
CREATE_EXAMPLE(label label.cxx fltk)
|
||||
CREATE_EXAMPLE(line_style line_style.cxx fltk)
|
||||
CREATE_EXAMPLE(list_visuals list_visuals.cxx fltk)
|
||||
CREATE_EXAMPLE(mandelbrot "mandelbrot_ui.fl;mandelbrot.cxx" fltk)
|
||||
CREATE_EXAMPLE(menubar menubar.cxx fltk)
|
||||
CREATE_EXAMPLE(message message.cxx fltk)
|
||||
CREATE_EXAMPLE(minimum minimum.cxx fltk)
|
||||
CREATE_EXAMPLE(native-filechooser native-filechooser.cxx "fltk_images;fltk")
|
||||
CREATE_EXAMPLE(navigation navigation.cxx fltk)
|
||||
CREATE_EXAMPLE(output output.cxx fltk)
|
||||
CREATE_EXAMPLE(overlay overlay.cxx fltk)
|
||||
CREATE_EXAMPLE(pack pack.cxx fltk)
|
||||
CREATE_EXAMPLE(pixmap pixmap.cxx fltk)
|
||||
CREATE_EXAMPLE(pixmap_browser pixmap_browser.cxx "fltk_images;fltk")
|
||||
CREATE_EXAMPLE(preferences preferences.fl fltk)
|
||||
CREATE_EXAMPLE(offscreen offscreen.cxx fltk)
|
||||
CREATE_EXAMPLE(radio radio.fl fltk)
|
||||
CREATE_EXAMPLE(resize resize.fl fltk)
|
||||
CREATE_EXAMPLE(resizebox resizebox.cxx fltk)
|
||||
CREATE_EXAMPLE(rotated_text rotated_text.cxx fltk)
|
||||
CREATE_EXAMPLE(scroll scroll.cxx fltk)
|
||||
CREATE_EXAMPLE(subwindow subwindow.cxx fltk)
|
||||
CREATE_EXAMPLE(sudoku sudoku.cxx "fltk_images;fltk;${AUDIOLIBS}")
|
||||
CREATE_EXAMPLE(symbols symbols.cxx fltk)
|
||||
CREATE_EXAMPLE(tabs tabs.fl fltk)
|
||||
CREATE_EXAMPLE(table table.cxx fltk)
|
||||
CREATE_EXAMPLE(threads threads.cxx fltk)
|
||||
CREATE_EXAMPLE(tile tile.cxx fltk)
|
||||
CREATE_EXAMPLE(tiled_image tiled_image.cxx fltk)
|
||||
CREATE_EXAMPLE(tree tree.fl fltk)
|
||||
CREATE_EXAMPLE(twowin twowin.cxx fltk)
|
||||
CREATE_EXAMPLE(utf8 utf8.cxx fltk)
|
||||
CREATE_EXAMPLE(valuators valuators.fl fltk)
|
||||
CREATE_EXAMPLE(unittests unittests.cxx fltk)
|
||||
CREATE_EXAMPLE(windowfocus windowfocus.cxx fltk)
|
||||
CREATE_EXAMPLE(fltk-versions ../examples/fltk-versions.cxx fltk)
|
||||
|
||||
if (NOT ANDROID)
|
||||
|
||||
CREATE_EXAMPLE (adjuster adjuster.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (arc arc.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (animated animated.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (ask ask.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (bitmap bitmap.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (blocks blocks.cxx "fltk;${AUDIOLIBS}")
|
||||
CREATE_EXAMPLE (boxtype boxtype.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (browser browser.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (button button.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (buttons buttons.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (checkers "checkers.cxx;checkers_pieces.fl" "fltk_images;fltk" ANDROID_OK)
|
||||
CREATE_EXAMPLE (clock clock.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (colbrowser colbrowser.cxx fltk)
|
||||
CREATE_EXAMPLE (color_chooser color_chooser.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (cursor cursor.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (curve curve.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (demo demo.cxx fltk)
|
||||
CREATE_EXAMPLE (device device.cxx "fltk_images;fltk")
|
||||
CREATE_EXAMPLE (doublebuffer doublebuffer.cxx fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (editor "editor.cxx;editor-Info.plist" fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (fast_slow fast_slow.fl fltk ANDROID_OK)
|
||||
CREATE_EXAMPLE (file_chooser file_chooser.cxx "fltk_images;fltk")
|
||||
CREATE_EXAMPLE (fonts fonts.cxx fltk)
|
||||
CREATE_EXAMPLE (forms forms.cxx "fltk_forms;fltk")
|
||||
CREATE_EXAMPLE (hello hello.cxx fltk)
|
||||
CREATE_EXAMPLE (help_dialog help_dialog.cxx "fltk_images;fltk")
|
||||
CREATE_EXAMPLE (icon icon.cxx fltk)
|
||||
CREATE_EXAMPLE (iconize iconize.cxx fltk)
|
||||
CREATE_EXAMPLE (image image.cxx fltk)
|
||||
CREATE_EXAMPLE (inactive inactive.fl fltk)
|
||||
CREATE_EXAMPLE (input input.cxx fltk)
|
||||
CREATE_EXAMPLE (input_choice input_choice.cxx fltk)
|
||||
CREATE_EXAMPLE (keyboard "keyboard.cxx;keyboard_ui.fl" fltk)
|
||||
CREATE_EXAMPLE (label label.cxx fltk)
|
||||
CREATE_EXAMPLE (line_style line_style.cxx fltk)
|
||||
CREATE_EXAMPLE (list_visuals list_visuals.cxx fltk)
|
||||
CREATE_EXAMPLE (mandelbrot "mandelbrot_ui.fl;mandelbrot.cxx" fltk)
|
||||
CREATE_EXAMPLE (menubar menubar.cxx fltk)
|
||||
CREATE_EXAMPLE (message message.cxx fltk)
|
||||
CREATE_EXAMPLE (minimum minimum.cxx fltk)
|
||||
CREATE_EXAMPLE (native-filechooser native-filechooser.cxx "fltk_images;fltk")
|
||||
CREATE_EXAMPLE (navigation navigation.cxx fltk)
|
||||
CREATE_EXAMPLE (output output.cxx fltk)
|
||||
CREATE_EXAMPLE (overlay overlay.cxx fltk)
|
||||
CREATE_EXAMPLE (pack pack.cxx fltk)
|
||||
CREATE_EXAMPLE (pixmap pixmap.cxx fltk)
|
||||
CREATE_EXAMPLE (pixmap_browser pixmap_browser.cxx "fltk_images;fltk")
|
||||
CREATE_EXAMPLE (preferences preferences.fl fltk)
|
||||
CREATE_EXAMPLE (offscreen offscreen.cxx fltk)
|
||||
CREATE_EXAMPLE (radio radio.fl fltk)
|
||||
CREATE_EXAMPLE (resize resize.fl fltk)
|
||||
CREATE_EXAMPLE (resizebox resizebox.cxx fltk)
|
||||
CREATE_EXAMPLE (rotated_text rotated_text.cxx fltk)
|
||||
CREATE_EXAMPLE (scroll scroll.cxx fltk)
|
||||
CREATE_EXAMPLE (subwindow subwindow.cxx fltk)
|
||||
CREATE_EXAMPLE (sudoku sudoku.cxx "fltk_images;fltk;${AUDIOLIBS}")
|
||||
CREATE_EXAMPLE (symbols symbols.cxx fltk)
|
||||
CREATE_EXAMPLE (tabs tabs.fl fltk)
|
||||
CREATE_EXAMPLE (table table.cxx fltk)
|
||||
CREATE_EXAMPLE (threads threads.cxx fltk)
|
||||
CREATE_EXAMPLE (tile tile.cxx fltk)
|
||||
CREATE_EXAMPLE (tiled_image tiled_image.cxx fltk)
|
||||
CREATE_EXAMPLE (tree tree.fl fltk)
|
||||
CREATE_EXAMPLE (twowin twowin.cxx fltk)
|
||||
CREATE_EXAMPLE (utf8 utf8.cxx fltk)
|
||||
CREATE_EXAMPLE (valuators valuators.fl fltk)
|
||||
CREATE_EXAMPLE (unittests unittests.cxx fltk)
|
||||
CREATE_EXAMPLE (windowfocus windowfocus.cxx fltk)
|
||||
|
||||
CREATE_EXAMPLE (fltk-versions ../examples/fltk-versions.cxx fltk)
|
||||
|
||||
# OpenGL demos...
|
||||
if(OPENGL_FOUND)
|
||||
CREATE_EXAMPLE(CubeView "CubeMain.cxx;CubeView.cxx;CubeViewUI.fl" "fltk_gl;fltk")
|
||||
CREATE_EXAMPLE(cube cube.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
|
||||
CREATE_EXAMPLE(fractals "fractals.cxx;fracviewer.cxx" "fltk_gl;fltk")
|
||||
CREATE_EXAMPLE(fullscreen fullscreen.cxx "fltk_gl;fltk")
|
||||
CREATE_EXAMPLE(glpuzzle glpuzzle.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
|
||||
CREATE_EXAMPLE(gl_overlay gl_overlay.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
|
||||
CREATE_EXAMPLE(shape shape.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
|
||||
endif(OPENGL_FOUND)
|
||||
if (OPENGL_FOUND)
|
||||
CREATE_EXAMPLE (CubeView "CubeMain.cxx;CubeView.cxx;CubeViewUI.fl" "fltk_gl;fltk")
|
||||
CREATE_EXAMPLE (cube cube.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
|
||||
CREATE_EXAMPLE (fractals "fractals.cxx;fracviewer.cxx" "fltk_gl;fltk")
|
||||
CREATE_EXAMPLE (fullscreen fullscreen.cxx "fltk_gl;fltk")
|
||||
CREATE_EXAMPLE (glpuzzle glpuzzle.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
|
||||
CREATE_EXAMPLE (gl_overlay gl_overlay.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
|
||||
CREATE_EXAMPLE (shape shape.cxx "fltk_gl;fltk;${OPENGL_LIBRARIES}")
|
||||
endif (OPENGL_FOUND)
|
||||
|
||||
# Cairo demo - must also be built w/o Cairo (displays a message box)
|
||||
if (FLTK_HAVE_CAIRO)
|
||||
CREATE_EXAMPLE(cairo_test cairo_test.cxx "fltk_cairo;fltk")
|
||||
CREATE_EXAMPLE (cairo_test cairo_test.cxx "fltk_cairo;fltk")
|
||||
else ()
|
||||
CREATE_EXAMPLE(cairo_test cairo_test.cxx fltk)
|
||||
CREATE_EXAMPLE (cairo_test cairo_test.cxx fltk)
|
||||
endif (FLTK_HAVE_CAIRO)
|
||||
|
||||
endif(NOT ANDROID)
|
||||
# /EXPERIMENTAL/ Build some of the demo programs linked against the shared lib(s)
|
||||
|
||||
if (OPTION_BUILD_SHARED_LIBS)
|
||||
|
||||
if (MSVC) # MS Visual C++ aka. Visual Studio
|
||||
|
||||
# We need to link with fl_call_main.c, but this must not be compiled with
|
||||
# macro FL_DLL, whereas the other source file(s) must be compiled with FL_DLL
|
||||
# to link against the shared libs.
|
||||
#
|
||||
# ;-) I *love* Visual Studio (MSVC) ;-)
|
||||
#
|
||||
# Trick: build an object library with just this one file and link the executable
|
||||
# against the shared library plus this object library. Another way would be to
|
||||
# add the extra source file fl_call_main.c to the source files of all targets
|
||||
# and set the FL_DLL compile_definition property only on the main *source* files
|
||||
# but this doesn't work since the same file must be compiled for the "static"
|
||||
# and the "shared" target, for instance hello.cxx for "hello" and "hello-shared".
|
||||
|
||||
add_library (CALL_MAIN OBJECT EXCLUDE_FROM_ALL ../src/fl_call_main.c)
|
||||
|
||||
# define a list of shared targets so we can set COMPILE_DEFINITIONS in a loop
|
||||
set (SHARED_TARGETS)
|
||||
|
||||
CREATE_EXAMPLE (hello-shared hello.cxx "fltk_SHARED;CALL_MAIN")
|
||||
CREATE_EXAMPLE (pixmap_browser-shared pixmap_browser.cxx "fltk_SHARED;CALL_MAIN")
|
||||
CREATE_EXAMPLE (unittests-shared unittests.cxx "fltk_SHARED;CALL_MAIN")
|
||||
|
||||
list (APPEND SHARED_TARGETS hello pixmap_browser unittests)
|
||||
|
||||
if (OPENGL_FOUND)
|
||||
CREATE_EXAMPLE (glpuzzle-shared glpuzzle.cxx "fltk_SHARED;CALL_MAIN;${OPENGL_LIBRARIES}")
|
||||
CREATE_EXAMPLE (shape-shared shape.cxx "fltk_SHARED;CALL_MAIN;${OPENGL_LIBRARIES}")
|
||||
|
||||
list (APPEND SHARED_TARGETS glpuzzle shape)
|
||||
|
||||
endif (OPENGL_FOUND)
|
||||
|
||||
# apply property COMPILE_DEFINITIONS in a loop for all necessary source files
|
||||
foreach (tgt ${SHARED_TARGETS})
|
||||
target_compile_definitions (${tgt}-shared PRIVATE "FL_DLL")
|
||||
endforeach ()
|
||||
|
||||
else () # not MSVC
|
||||
|
||||
CREATE_EXAMPLE (hello-shared hello.cxx fltk_SHARED)
|
||||
CREATE_EXAMPLE (pixmap_browser-shared pixmap_browser.cxx "fltk_images_SHARED;fltk_SHARED")
|
||||
CREATE_EXAMPLE (unittests-shared unittests.cxx fltk_SHARED)
|
||||
|
||||
if (OPENGL_FOUND)
|
||||
CREATE_EXAMPLE (glpuzzle-shared glpuzzle.cxx "fltk_gl_SHARED;fltk_SHARED;${OPENGL_LIBRARIES}")
|
||||
CREATE_EXAMPLE (shape-shared shape.cxx "fltk_gl_SHARED;fltk_SHARED;${OPENGL_LIBRARIES}")
|
||||
endif (OPENGL_FOUND)
|
||||
|
||||
endif (MSVC) # (not MSVC)
|
||||
|
||||
endif (OPTION_BUILD_SHARED_LIBS)
|
||||
|
||||
endif (NOT ANDROID)
|
||||
|
||||
# We need some support files for the demo programs:
|
||||
|
||||
|
@ -140,34 +204,31 @@ endif(NOT ANDROID)
|
|||
|
||||
# prepare for a "better" test file installation path
|
||||
set (TESTFILE_PATH ${EXECUTABLE_OUTPUT_PATH})
|
||||
|
||||
# *FIXME* *DEBUG*
|
||||
# message ("test/CMakeLists.txt: EXECUTABLE_OUTPUT_PATH = '${EXECUTABLE_OUTPUT_PATH}'")
|
||||
# message ("test/CMakeLists.txt: TESTFILE_PATH = '${TESTFILE_PATH}'")
|
||||
# fl_debug_var (TESTFILE_PATH)
|
||||
|
||||
# use a target filename to make sure the target directory gets created
|
||||
configure_file(demo.menu ${TESTFILE_PATH}/demo.menu COPYONLY)
|
||||
configure_file (demo.menu ${TESTFILE_PATH}/demo.menu COPYONLY)
|
||||
|
||||
# use target directory only to avoid redundancy
|
||||
configure_file(rgb.txt ${TESTFILE_PATH} COPYONLY)
|
||||
configure_file(help_dialog.html ${TESTFILE_PATH} COPYONLY)
|
||||
configure_file(browser.cxx ${TESTFILE_PATH} COPYONLY)
|
||||
configure_file(editor.cxx ${TESTFILE_PATH} COPYONLY)
|
||||
# use target directory only (no filename) to avoid redundancy
|
||||
configure_file (rgb.txt ${TESTFILE_PATH} COPYONLY)
|
||||
configure_file (help_dialog.html ${TESTFILE_PATH} COPYONLY)
|
||||
configure_file (browser.cxx ${TESTFILE_PATH} COPYONLY)
|
||||
configure_file (editor.cxx ${TESTFILE_PATH} COPYONLY)
|
||||
|
||||
# Apple macOS creates bundles instead of executables and needs a little bit
|
||||
# more help for demos to run correctly
|
||||
if(APPLE AND NOT OPTION_APPLE_X11)
|
||||
if (APPLE AND NOT OPTION_APPLE_X11)
|
||||
|
||||
# make the menu structure part of the app
|
||||
target_sources(demo PRIVATE demo.menu)
|
||||
set_target_properties(demo PROPERTIES MACOSX_BUNDLE TRUE RESOURCE demo.menu )
|
||||
# make the menu structure part of the app
|
||||
target_sources (demo PRIVATE demo.menu)
|
||||
set_target_properties (demo PROPERTIES MACOSX_BUNDLE TRUE RESOURCE demo.menu)
|
||||
|
||||
# add a sample RGB file that otherwise only exists under X11
|
||||
target_sources(colbrowser PRIVATE rgb.txt)
|
||||
set_target_properties(colbrowser PROPERTIES MACOSX_BUNDLE TRUE RESOURCE rgb.txt )
|
||||
# add a sample RGB file that otherwise only exists under X11
|
||||
target_sources (colbrowser PRIVATE rgb.txt)
|
||||
set_target_properties (colbrowser PROPERTIES MACOSX_BUNDLE TRUE RESOURCE rgb.txt)
|
||||
|
||||
# help_dialog displays an html file as an example
|
||||
target_sources(help_dialog PRIVATE help_dialog.html)
|
||||
set_target_properties(help_dialog PROPERTIES MACOSX_BUNDLE TRUE RESOURCE help_dialog.html )
|
||||
# help_dialog displays an html file as an example
|
||||
target_sources (help_dialog PRIVATE help_dialog.html)
|
||||
set_target_properties (help_dialog PROPERTIES MACOSX_BUNDLE TRUE RESOURCE help_dialog.html)
|
||||
|
||||
endif(APPLE AND NOT OPTION_APPLE_X11)
|
||||
endif (APPLE AND NOT OPTION_APPLE_X11)
|
||||
|
|
Loading…
Reference in New Issue