fltk/CMake/fl_summary.cmake

90 lines
3.5 KiB
CMake

#
# Macros used by the CMake build system for the Fast Light Tool Kit (FLTK).
#
# Copyright 2024 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
#
########################################################################
# The macros in this file are used to generate the CMake build summary.
# Fixed widths of title fields are intentionally hard coded in two of
# these macros so we can easily change the alignment.
########################################################################
include(${CMAKE_CURRENT_LIST_DIR}/fl_debug_var.cmake)
########################################################################
# Output a summary line like "<title> <value>"
########################################################################
# <title> will be expanded to a fixed width (can be empty)
# <value> text to be displayed
########################################################################
macro(fl_summary title value)
fl_expand_name(label "${title}" 24)
message(STATUS "${label} ${value}")
endmacro(fl_summary title value)
########################################################################
# Output a summary line like "<title> will be built ..."
# or "<title> will not be built ..."
########################################################################
# title will be expanded to a fixed width (must not be empty)
# subdir = relative build directory (e.g. lib or bin/test)
# build = CMake variable name (bool): whether <title> is built
# option = option name the user can set to build <title>
########################################################################
macro(fl_summary_build title subdir build option)
if(${build})
set(value "will be built in: ${CMAKE_CURRENT_BINARY_DIR}/${subdir}")
else()
set(value "will not be built (set ${option}=ON to build)")
endif()
fl_expand_name(label "${title}" 19)
message(STATUS "${label} ${value}")
endmacro(fl_summary_build title var subdir)
########################################################################
# Output a simple summary line like "<title> {Yes|No}"
########################################################################
# title will be expanded to a fixed width (must not be empty)
# var = CMake variable name, must evaluate to true or false
########################################################################
macro(fl_summary_yn title var)
if(${var})
set(value "Yes")
else()
set(value "No")
endif()
fl_summary("${title}" ${value})
endmacro(fl_summary_yn title var)
########################################################################
# Output summary line for image libs (bundled or system libs)
########################################################################
# title = "Image Libraries" or empty
# name = displayed name = { JPEG | PNG | ZLIB }
# lib = CMake library name (system library, if it was found)
########################################################################
macro(fl_summary_image title name lib)
fl_expand_name(name4 "${name}" 8)
if(FLTK_USE_BUNDLED_${name})
set(value "${name4} = Bundled")
else()
set(value "${name4} = System: ${${lib}}")
endif()
fl_summary("${title}" "${value}")
endmacro(fl_summary_image title name lib)