1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00

Help: Convert remaining modules to block-style comments

This commit is contained in:
Kitware Robot
2018-10-22 10:31:08 -04:00
committed by Kyle Edwards
parent 7115aa6c22
commit df4ed1e9ff
202 changed files with 10078 additions and 9868 deletions

View File

@@ -1,17 +1,18 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# AddFileDependencies
# -------------------
#
# Add dependencies to a source file.
#
# .. code-block:: cmake
#
# ADD_FILE_DEPENDENCIES(<source> <files>)
#
# Adds the given ``<files>`` to the dependencies of file ``<source>``.
#[=======================================================================[.rst:
AddFileDependencies
-------------------
Add dependencies to a source file.
.. code-block:: cmake
ADD_FILE_DEPENDENCIES(<source> <files>)
Adds the given ``<files>`` to the dependencies of file ``<source>``.
#]=======================================================================]
macro(ADD_FILE_DEPENDENCIES _file)

View File

@@ -1,46 +1,47 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeAddFortranSubdirectory
# ---------------------------
#
# Use MinGW gfortran from VS if a fortran compiler is not found.
#
# The 'add_fortran_subdirectory' function adds a subdirectory to a
# project that contains a fortran only sub-project. The module will
# check the current compiler and see if it can support fortran. If no
# fortran compiler is found and the compiler is MSVC, then this module
# will find the MinGW gfortran. It will then use an external project to
# build with the MinGW tools. It will also create imported targets for
# the libraries created. This will only work if the fortran code is
# built into a dll, so BUILD_SHARED_LIBS is turned on in the project.
# In addition the CMAKE_GNUtoMS option is set to on, so that the MS .lib
# files are created. Usage is as follows:
#
# ::
#
# cmake_add_fortran_subdirectory(
# <subdir> # name of subdirectory
# PROJECT <project_name> # project name in subdir top CMakeLists.txt
# ARCHIVE_DIR <dir> # dir where project places .lib files
# RUNTIME_DIR <dir> # dir where project places .dll files
# LIBRARIES <lib>... # names of library targets to import
# LINK_LIBRARIES # link interface libraries for LIBRARIES
# [LINK_LIBS <lib> <dep>...]...
# CMAKE_COMMAND_LINE ... # extra command line flags to pass to cmake
# NO_EXTERNAL_INSTALL # skip installation of external project
# )
#
# Relative paths in ARCHIVE_DIR and RUNTIME_DIR are interpreted with
# respect to the build directory corresponding to the source directory
# in which the function is invoked.
#
# Limitations:
#
# NO_EXTERNAL_INSTALL is required for forward compatibility with a
# future version that supports installation of the external project
# binaries during "make install".
#[=======================================================================[.rst:
CMakeAddFortranSubdirectory
---------------------------
Use MinGW gfortran from VS if a fortran compiler is not found.
The 'add_fortran_subdirectory' function adds a subdirectory to a
project that contains a fortran only sub-project. The module will
check the current compiler and see if it can support fortran. If no
fortran compiler is found and the compiler is MSVC, then this module
will find the MinGW gfortran. It will then use an external project to
build with the MinGW tools. It will also create imported targets for
the libraries created. This will only work if the fortran code is
built into a dll, so BUILD_SHARED_LIBS is turned on in the project.
In addition the CMAKE_GNUtoMS option is set to on, so that the MS .lib
files are created. Usage is as follows:
::
cmake_add_fortran_subdirectory(
<subdir> # name of subdirectory
PROJECT <project_name> # project name in subdir top CMakeLists.txt
ARCHIVE_DIR <dir> # dir where project places .lib files
RUNTIME_DIR <dir> # dir where project places .dll files
LIBRARIES <lib>... # names of library targets to import
LINK_LIBRARIES # link interface libraries for LIBRARIES
[LINK_LIBS <lib> <dep>...]...
CMAKE_COMMAND_LINE ... # extra command line flags to pass to cmake
NO_EXTERNAL_INSTALL # skip installation of external project
)
Relative paths in ARCHIVE_DIR and RUNTIME_DIR are interpreted with
respect to the build directory corresponding to the source directory
in which the function is invoked.
Limitations:
NO_EXTERNAL_INSTALL is required for forward compatibility with a
future version that supports installation of the external project
binaries during "make install".
#]=======================================================================]
set(_MS_MINGW_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
include(CheckLanguage)

View File

@@ -1,20 +1,21 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeBackwardCompatibilityCXX
# -----------------------------
#
# define a bunch of backwards compatibility variables
#
# ::
#
# CMAKE_ANSI_CXXFLAGS - flag for ansi c++
# CMAKE_HAS_ANSI_STRING_STREAM - has <strstream>
# include(TestForANSIStreamHeaders)
# include(CheckIncludeFileCXX)
# include(TestForSTDNamespace)
# include(TestForANSIForScope)
#[=======================================================================[.rst:
CMakeBackwardCompatibilityCXX
-----------------------------
define a bunch of backwards compatibility variables
::
CMAKE_ANSI_CXXFLAGS - flag for ansi c++
CMAKE_HAS_ANSI_STRING_STREAM - has <strstream>
include(TestForANSIStreamHeaders)
include(CheckIncludeFileCXX)
include(TestForSTDNamespace)
include(TestForANSIForScope)
#]=======================================================================]
if(NOT CMAKE_SKIP_COMPATIBILITY_TESTS)
# check for some ANSI flags in the CXX compiler if it is not gnu

View File

@@ -1,27 +1,28 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeDependentOption
# --------------------
#
# Macro to provide an option dependent on other options.
#
# This macro presents an option to the user only if a set of other
# conditions are true. When the option is not presented a default value
# is used, but any value set by the user is preserved for when the
# option is presented again. Example invocation:
#
# ::
#
# CMAKE_DEPENDENT_OPTION(USE_FOO "Use Foo" ON
# "USE_BAR;NOT USE_ZOT" OFF)
#
# If USE_BAR is true and USE_ZOT is false, this provides an option
# called USE_FOO that defaults to ON. Otherwise, it sets USE_FOO to
# OFF. If the status of USE_BAR or USE_ZOT ever changes, any value for
# the USE_FOO option is saved so that when the option is re-enabled it
# retains its old value.
#[=======================================================================[.rst:
CMakeDependentOption
--------------------
Macro to provide an option dependent on other options.
This macro presents an option to the user only if a set of other
conditions are true. When the option is not presented a default value
is used, but any value set by the user is preserved for when the
option is presented again. Example invocation:
::
CMAKE_DEPENDENT_OPTION(USE_FOO "Use Foo" ON
"USE_BAR;NOT USE_ZOT" OFF)
If USE_BAR is true and USE_ZOT is false, this provides an option
called USE_FOO that defaults to ON. Otherwise, it sets USE_FOO to
OFF. If the status of USE_BAR or USE_ZOT ever changes, any value for
the USE_FOO option is saved so that when the option is re-enabled it
retains its old value.
#]=======================================================================]
macro(CMAKE_DEPENDENT_OPTION option doc default depends force)
if(${option}_ISSET MATCHES "^${option}_ISSET$")

View File

@@ -1,35 +1,36 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeDetermineVSServicePack
# ---------------------------
#
# Deprecated. Do not use.
#
# The functionality of this module has been superseded by the
# :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable that contains
# the compiler version number.
#
# Determine the Visual Studio service pack of the 'cl' in use.
#
# Usage::
#
# if(MSVC)
# include(CMakeDetermineVSServicePack)
# DetermineVSServicePack( my_service_pack )
# if( my_service_pack )
# message(STATUS "Detected: ${my_service_pack}")
# endif()
# endif()
#
# Function DetermineVSServicePack sets the given variable to one of the
# following values or an empty string if unknown::
#
# vc80, vc80sp1
# vc90, vc90sp1
# vc100, vc100sp1
# vc110, vc110sp1, vc110sp2, vc110sp3, vc110sp4
#[=======================================================================[.rst:
CMakeDetermineVSServicePack
---------------------------
Deprecated. Do not use.
The functionality of this module has been superseded by the
:variable:`CMAKE_<LANG>_COMPILER_VERSION` variable that contains
the compiler version number.
Determine the Visual Studio service pack of the 'cl' in use.
Usage::
if(MSVC)
include(CMakeDetermineVSServicePack)
DetermineVSServicePack( my_service_pack )
if( my_service_pack )
message(STATUS "Detected: ${my_service_pack}")
endif()
endif()
Function DetermineVSServicePack sets the given variable to one of the
following values or an empty string if unknown::
vc80, vc80sp1
vc90, vc90sp1
vc100, vc100sp1
vc110, vc110sp1, vc110sp2, vc110sp3, vc110sp4
#]=======================================================================]
if(NOT CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.8)
message(DEPRECATION

View File

@@ -1,41 +1,42 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeExpandImportedTargets
# --------------------------
#
# Deprecated. Do not use.
#
# This module was once needed to expand imported targets to the underlying
# libraries they reference on disk for use with the :command:`try_compile`
# and :command:`try_run` commands. These commands now support imported
# libraries in their ``LINK_LIBRARIES`` options (since CMake 2.8.11
# for :command:`try_compile` and since CMake 3.2 for :command:`try_run`).
#
# This module does not support the policy :policy:`CMP0022` ``NEW``
# behavior or use of the :prop_tgt:`INTERFACE_LINK_LIBRARIES` property
# because :manual:`generator expressions <cmake-generator-expressions(7)>`
# cannot be evaluated during configuration.
#
# ::
#
# CMAKE_EXPAND_IMPORTED_TARGETS(<var> LIBRARIES lib1 lib2...libN
# [CONFIGURATION <config>])
#
# CMAKE_EXPAND_IMPORTED_TARGETS() takes a list of libraries and replaces
# all imported targets contained in this list with their actual file
# paths of the referenced libraries on disk, including the libraries
# from their link interfaces. If a CONFIGURATION is given, it uses the
# respective configuration of the imported targets if it exists. If no
# CONFIGURATION is given, it uses the first configuration from
# ${CMAKE_CONFIGURATION_TYPES} if set, otherwise ${CMAKE_BUILD_TYPE}.
#
# ::
#
# cmake_expand_imported_targets(expandedLibs
# LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}
# CONFIGURATION "${CMAKE_TRY_COMPILE_CONFIGURATION}" )
#[=======================================================================[.rst:
CMakeExpandImportedTargets
--------------------------
Deprecated. Do not use.
This module was once needed to expand imported targets to the underlying
libraries they reference on disk for use with the :command:`try_compile`
and :command:`try_run` commands. These commands now support imported
libraries in their ``LINK_LIBRARIES`` options (since CMake 2.8.11
for :command:`try_compile` and since CMake 3.2 for :command:`try_run`).
This module does not support the policy :policy:`CMP0022` ``NEW``
behavior or use of the :prop_tgt:`INTERFACE_LINK_LIBRARIES` property
because :manual:`generator expressions <cmake-generator-expressions(7)>`
cannot be evaluated during configuration.
::
CMAKE_EXPAND_IMPORTED_TARGETS(<var> LIBRARIES lib1 lib2...libN
[CONFIGURATION <config>])
CMAKE_EXPAND_IMPORTED_TARGETS() takes a list of libraries and replaces
all imported targets contained in this list with their actual file
paths of the referenced libraries on disk, including the libraries
from their link interfaces. If a CONFIGURATION is given, it uses the
respective configuration of the imported targets if it exists. If no
CONFIGURATION is given, it uses the first configuration from
${CMAKE_CONFIGURATION_TYPES} if set, otherwise ${CMAKE_BUILD_TYPE}.
::
cmake_expand_imported_targets(expandedLibs
LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}
CONFIGURATION "${CMAKE_TRY_COMPILE_CONFIGURATION}" )
#]=======================================================================]
function(CMAKE_EXPAND_IMPORTED_TARGETS _RESULT )

View File

@@ -1,15 +1,16 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeFindFrameworks
# -------------------
#
# helper module to find OSX frameworks
#
# This module reads hints about search locations from variables::
#
# CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS - Extra directories
#[=======================================================================[.rst:
CMakeFindFrameworks
-------------------
helper module to find OSX frameworks
This module reads hints about search locations from variables::
CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS - Extra directories
#]=======================================================================]
if(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED)
set(CMAKE_FIND_FRAMEWORKS_INCLUDED 1)

View File

@@ -1,33 +1,34 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeFindPackageMode
# --------------------
#
#
#
# This file is executed by cmake when invoked with --find-package. It
# expects that the following variables are set using -D:
#
# ``NAME``
# name of the package
# ``COMPILER_ID``
# the CMake compiler ID for which the result is,
# i.e. GNU/Intel/Clang/MSVC, etc.
# ``LANGUAGE``
# language for which the result will be used,
# i.e. C/CXX/Fortran/ASM
# ``MODE``
# ``EXIST``
# only check for existence of the given package
# ``COMPILE``
# print the flags needed for compiling an object file which uses
# the given package
# ``LINK``
# print the flags needed for linking when using the given package
# ``QUIET``
# if TRUE, don't print anything
#[=======================================================================[.rst:
CMakeFindPackageMode
--------------------
This file is executed by cmake when invoked with --find-package. It
expects that the following variables are set using -D:
``NAME``
name of the package
``COMPILER_ID``
the CMake compiler ID for which the result is,
i.e. GNU/Intel/Clang/MSVC, etc.
``LANGUAGE``
language for which the result will be used,
i.e. C/CXX/Fortran/ASM
``MODE``
``EXIST``
only check for existence of the given package
``COMPILE``
print the flags needed for compiling an object file which uses
the given package
``LINK``
print the flags needed for linking when using the given package
``QUIET``
if TRUE, don't print anything
#]=======================================================================]
if(NOT NAME)
message(FATAL_ERROR "Name of the package to be searched not specified. Set the CMake variable NAME, e.g. -DNAME=JPEG .")

View File

@@ -1,69 +1,70 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeForceCompiler
# ------------------
#
# Deprecated. Do not use.
#
# The macros provided by this module were once intended for use by
# cross-compiling toolchain files when CMake was not able to automatically
# detect the compiler identification. Since the introduction of this module,
# CMake's compiler identification capabilities have improved and can now be
# taught to recognize any compiler. Furthermore, the suite of information
# CMake detects from a compiler is now too extensive to be provided by
# toolchain files using these macros.
#
# One common use case for this module was to skip CMake's checks for a
# working compiler when using a cross-compiler that cannot link binaries
# without special flags or custom linker scripts. This case is now supported
# by setting the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable in the
# toolchain file instead.
#
# -------------------------------------------------------------------------
#
# Macro CMAKE_FORCE_C_COMPILER has the following signature:
#
# ::
#
# CMAKE_FORCE_C_COMPILER(<compiler> <compiler-id>)
#
# It sets CMAKE_C_COMPILER to the given compiler and the cmake internal
# variable CMAKE_C_COMPILER_ID to the given compiler-id. It also
# bypasses the check for working compiler and basic compiler information
# tests.
#
# Macro CMAKE_FORCE_CXX_COMPILER has the following signature:
#
# ::
#
# CMAKE_FORCE_CXX_COMPILER(<compiler> <compiler-id>)
#
# It sets CMAKE_CXX_COMPILER to the given compiler and the cmake
# internal variable CMAKE_CXX_COMPILER_ID to the given compiler-id. It
# also bypasses the check for working compiler and basic compiler
# information tests.
#
# Macro CMAKE_FORCE_Fortran_COMPILER has the following signature:
#
# ::
#
# CMAKE_FORCE_Fortran_COMPILER(<compiler> <compiler-id>)
#
# It sets CMAKE_Fortran_COMPILER to the given compiler and the cmake
# internal variable CMAKE_Fortran_COMPILER_ID to the given compiler-id.
# It also bypasses the check for working compiler and basic compiler
# information tests.
#
# So a simple toolchain file could look like this:
#
# ::
#
# include (CMakeForceCompiler)
# set(CMAKE_SYSTEM_NAME Generic)
# CMAKE_FORCE_C_COMPILER (chc12 MetrowerksHicross)
# CMAKE_FORCE_CXX_COMPILER (chc12 MetrowerksHicross)
#[=======================================================================[.rst:
CMakeForceCompiler
------------------
Deprecated. Do not use.
The macros provided by this module were once intended for use by
cross-compiling toolchain files when CMake was not able to automatically
detect the compiler identification. Since the introduction of this module,
CMake's compiler identification capabilities have improved and can now be
taught to recognize any compiler. Furthermore, the suite of information
CMake detects from a compiler is now too extensive to be provided by
toolchain files using these macros.
One common use case for this module was to skip CMake's checks for a
working compiler when using a cross-compiler that cannot link binaries
without special flags or custom linker scripts. This case is now supported
by setting the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable in the
toolchain file instead.
-------------------------------------------------------------------------
Macro CMAKE_FORCE_C_COMPILER has the following signature:
::
CMAKE_FORCE_C_COMPILER(<compiler> <compiler-id>)
It sets CMAKE_C_COMPILER to the given compiler and the cmake internal
variable CMAKE_C_COMPILER_ID to the given compiler-id. It also
bypasses the check for working compiler and basic compiler information
tests.
Macro CMAKE_FORCE_CXX_COMPILER has the following signature:
::
CMAKE_FORCE_CXX_COMPILER(<compiler> <compiler-id>)
It sets CMAKE_CXX_COMPILER to the given compiler and the cmake
internal variable CMAKE_CXX_COMPILER_ID to the given compiler-id. It
also bypasses the check for working compiler and basic compiler
information tests.
Macro CMAKE_FORCE_Fortran_COMPILER has the following signature:
::
CMAKE_FORCE_Fortran_COMPILER(<compiler> <compiler-id>)
It sets CMAKE_Fortran_COMPILER to the given compiler and the cmake
internal variable CMAKE_Fortran_COMPILER_ID to the given compiler-id.
It also bypasses the check for working compiler and basic compiler
information tests.
So a simple toolchain file could look like this:
::
include (CMakeForceCompiler)
set(CMAKE_SYSTEM_NAME Generic)
CMAKE_FORCE_C_COMPILER (chc12 MetrowerksHicross)
CMAKE_FORCE_CXX_COMPILER (chc12 MetrowerksHicross)
#]=======================================================================]
macro(CMAKE_FORCE_C_COMPILER compiler id)
message(DEPRECATION "The CMAKE_FORCE_C_COMPILER macro is deprecated. "

View File

@@ -1,122 +1,123 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeGraphVizOptions
# --------------------
#
# The builtin graphviz support of CMake.
#
# Variables specific to the graphviz support
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#
# CMake
# can generate `graphviz <http://www.graphviz.org/>`_ files, showing the dependencies between the
# targets in a project and also external libraries which are linked
# against. When CMake is run with the ``--graphviz=foo.dot`` option, it will
# produce:
#
# * a ``foo.dot`` file showing all dependencies in the project
# * a ``foo.dot.<target>`` file for each target, file showing on which other targets the respective target depends
# * a ``foo.dot.<target>.dependers`` file, showing which other targets depend on the respective target
#
# The different dependency types ``PUBLIC``, ``PRIVATE`` and ``INTERFACE``
# are represented as solid, dashed and dotted edges.
#
# This can result in huge graphs. Using the file
# ``CMakeGraphVizOptions.cmake`` the look and content of the generated
# graphs can be influenced. This file is searched first in
# :variable:`CMAKE_BINARY_DIR` and then in :variable:`CMAKE_SOURCE_DIR`. If found, it is
# read and the variables set in it are used to adjust options for the
# generated graphviz files.
#
# .. variable:: GRAPHVIZ_GRAPH_TYPE
#
# The graph type.
#
# * Mandatory : NO
# * Default : "digraph"
#
# Valid graph types are:
#
# * "graph" : Nodes are joined with lines
# * "digraph" : Nodes are joined with arrows showing direction
# * "strict graph" : Like "graph" but max one line between each node
# * "strict digraph" : Like "graph" but max one line between each node in each direction
#
# .. variable:: GRAPHVIZ_GRAPH_NAME
#
# The graph name.
#
# * Mandatory : NO
# * Default : "GG"
#
# .. variable:: GRAPHVIZ_GRAPH_HEADER
#
# The header written at the top of the graphviz file.
#
# * Mandatory : NO
# * Default : "node [n fontsize = "12"];"
#
# .. variable:: GRAPHVIZ_NODE_PREFIX
#
# The prefix for each node in the graphviz file.
#
# * Mandatory : NO
# * Default : "node"
#
# .. variable:: GRAPHVIZ_EXECUTABLES
#
# Set this to FALSE to exclude executables from the generated graphs.
#
# * Mandatory : NO
# * Default : TRUE
#
# .. variable:: GRAPHVIZ_STATIC_LIBS
#
# Set this to FALSE to exclude static libraries from the generated graphs.
#
# * Mandatory : NO
# * Default : TRUE
#
# .. variable:: GRAPHVIZ_SHARED_LIBS
#
# Set this to FALSE to exclude shared libraries from the generated graphs.
#
# * Mandatory : NO
# * Default : TRUE
#
# .. variable:: GRAPHVIZ_MODULE_LIBS
#
# Set this to FALSE to exclude module libraries from the generated graphs.
#
# * Mandatory : NO
# * Default : TRUE
#
# .. variable:: GRAPHVIZ_EXTERNAL_LIBS
#
# Set this to FALSE to exclude external libraries from the generated graphs.
#
# * Mandatory : NO
# * Default : TRUE
#
# .. variable:: GRAPHVIZ_IGNORE_TARGETS
#
# A list of regular expressions for ignoring targets.
#
# * Mandatory : NO
# * Default : empty
#
# .. variable:: GRAPHVIZ_GENERATE_PER_TARGET
#
# Set this to FALSE to exclude per target graphs ``foo.dot.<target>``.
#
# * Mandatory : NO
# * Default : TRUE
#
# .. variable:: GRAPHVIZ_GENERATE_DEPENDERS
#
# Set this to FALSE to exclude depender graphs ``foo.dot.<target>.dependers``.
#
# * Mandatory : NO
# * Default : TRUE
#[=======================================================================[.rst:
CMakeGraphVizOptions
--------------------
The builtin graphviz support of CMake.
Variables specific to the graphviz support
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CMake
can generate `graphviz <http://www.graphviz.org/>`_ files, showing the dependencies between the
targets in a project and also external libraries which are linked
against. When CMake is run with the ``--graphviz=foo.dot`` option, it will
produce:
* a ``foo.dot`` file showing all dependencies in the project
* a ``foo.dot.<target>`` file for each target, file showing on which other targets the respective target depends
* a ``foo.dot.<target>.dependers`` file, showing which other targets depend on the respective target
The different dependency types ``PUBLIC``, ``PRIVATE`` and ``INTERFACE``
are represented as solid, dashed and dotted edges.
This can result in huge graphs. Using the file
``CMakeGraphVizOptions.cmake`` the look and content of the generated
graphs can be influenced. This file is searched first in
:variable:`CMAKE_BINARY_DIR` and then in :variable:`CMAKE_SOURCE_DIR`. If found, it is
read and the variables set in it are used to adjust options for the
generated graphviz files.
.. variable:: GRAPHVIZ_GRAPH_TYPE
The graph type.
* Mandatory : NO
* Default : "digraph"
Valid graph types are:
* "graph" : Nodes are joined with lines
* "digraph" : Nodes are joined with arrows showing direction
* "strict graph" : Like "graph" but max one line between each node
* "strict digraph" : Like "graph" but max one line between each node in each direction
.. variable:: GRAPHVIZ_GRAPH_NAME
The graph name.
* Mandatory : NO
* Default : "GG"
.. variable:: GRAPHVIZ_GRAPH_HEADER
The header written at the top of the graphviz file.
* Mandatory : NO
* Default : "node [n fontsize = "12"];"
.. variable:: GRAPHVIZ_NODE_PREFIX
The prefix for each node in the graphviz file.
* Mandatory : NO
* Default : "node"
.. variable:: GRAPHVIZ_EXECUTABLES
Set this to FALSE to exclude executables from the generated graphs.
* Mandatory : NO
* Default : TRUE
.. variable:: GRAPHVIZ_STATIC_LIBS
Set this to FALSE to exclude static libraries from the generated graphs.
* Mandatory : NO
* Default : TRUE
.. variable:: GRAPHVIZ_SHARED_LIBS
Set this to FALSE to exclude shared libraries from the generated graphs.
* Mandatory : NO
* Default : TRUE
.. variable:: GRAPHVIZ_MODULE_LIBS
Set this to FALSE to exclude module libraries from the generated graphs.
* Mandatory : NO
* Default : TRUE
.. variable:: GRAPHVIZ_EXTERNAL_LIBS
Set this to FALSE to exclude external libraries from the generated graphs.
* Mandatory : NO
* Default : TRUE
.. variable:: GRAPHVIZ_IGNORE_TARGETS
A list of regular expressions for ignoring targets.
* Mandatory : NO
* Default : empty
.. variable:: GRAPHVIZ_GENERATE_PER_TARGET
Set this to FALSE to exclude per target graphs ``foo.dot.<target>``.
* Mandatory : NO
* Default : TRUE
.. variable:: GRAPHVIZ_GENERATE_DEPENDERS
Set this to FALSE to exclude depender graphs ``foo.dot.<target>.dependers``.
* Mandatory : NO
* Default : TRUE
#]=======================================================================]

View File

@@ -1,209 +1,210 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakePackageConfigHelpers
# -------------------------
#
# Helpers functions for creating config files that can be included by other
# projects to find and use a package.
#
# Adds the :command:`configure_package_config_file()` and
# :command:`write_basic_package_version_file()` commands.
#
# Generating a Package Configuration File
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#
# .. command:: configure_package_config_file
#
# Create a config file for a project::
#
# configure_package_config_file(<input> <output>
# INSTALL_DESTINATION <path>
# [PATH_VARS <var1> <var2> ... <varN>]
# [NO_SET_AND_CHECK_MACRO]
# [NO_CHECK_REQUIRED_COMPONENTS_MACRO]
# [INSTALL_PREFIX <path>]
# )
#
# ``configure_package_config_file()`` should be used instead of the plain
# :command:`configure_file()` command when creating the ``<PackageName>Config.cmake``
# or ``<PackageName>-config.cmake`` file for installing a project or library.
# It helps making the resulting package relocatable by avoiding hardcoded paths
# in the installed ``Config.cmake`` file.
#
# In a ``FooConfig.cmake`` file there may be code like this to make the install
# destinations know to the using project:
#
# .. code-block:: cmake
#
# set(FOO_INCLUDE_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@" )
# set(FOO_DATA_DIR "@CMAKE_INSTALL_PREFIX@/@RELATIVE_DATA_INSTALL_DIR@" )
# set(FOO_ICONS_DIR "@CMAKE_INSTALL_PREFIX@/share/icons" )
# #...logic to determine installedPrefix from the own location...
# set(FOO_CONFIG_DIR "${installedPrefix}/@CONFIG_INSTALL_DIR@" )
#
# All 4 options shown above are not sufficient, since the first 3 hardcode the
# absolute directory locations, and the 4th case works only if the logic to
# determine the ``installedPrefix`` is correct, and if ``CONFIG_INSTALL_DIR``
# contains a relative path, which in general cannot be guaranteed. This has the
# effect that the resulting ``FooConfig.cmake`` file would work poorly under
# Windows and OSX, where users are used to choose the install location of a
# binary package at install time, independent from how
# :variable:`CMAKE_INSTALL_PREFIX` was set at build/cmake time.
#
# Using ``configure_package_config_file`` helps. If used correctly, it makes
# the resulting ``FooConfig.cmake`` file relocatable. Usage:
#
# 1. write a ``FooConfig.cmake.in`` file as you are used to
# 2. insert a line containing only the string ``@PACKAGE_INIT@``
# 3. instead of ``set(FOO_DIR "@SOME_INSTALL_DIR@")``, use
# ``set(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")`` (this must be after the
# ``@PACKAGE_INIT@`` line)
# 4. instead of using the normal :command:`configure_file()`, use
# ``configure_package_config_file()``
#
#
#
# The ``<input>`` and ``<output>`` arguments are the input and output file, the
# same way as in :command:`configure_file()`.
#
# The ``<path>`` given to ``INSTALL_DESTINATION`` must be the destination where
# the ``FooConfig.cmake`` file will be installed to. This path can either be
# absolute, or relative to the ``INSTALL_PREFIX`` path.
#
# The variables ``<var1>`` to ``<varN>`` given as ``PATH_VARS`` are the
# variables which contain install destinations. For each of them the macro will
# create a helper variable ``PACKAGE_<var...>``. These helper variables must be
# used in the ``FooConfig.cmake.in`` file for setting the installed location.
# They are calculated by ``configure_package_config_file`` so that they are
# always relative to the installed location of the package. This works both for
# relative and also for absolute locations. For absolute locations it works
# only if the absolute location is a subdirectory of ``INSTALL_PREFIX``.
#
# If the ``INSTALL_PREFIX`` argument is passed, this is used as base path to
# calculate all the relative paths. The ``<path>`` argument must be an absolute
# path. If this argument is not passed, the :variable:`CMAKE_INSTALL_PREFIX`
# variable will be used instead. The default value is good when generating a
# FooConfig.cmake file to use your package from the install tree. When
# generating a FooConfig.cmake file to use your package from the build tree this
# option should be used.
#
# By default ``configure_package_config_file`` also generates two helper macros,
# ``set_and_check()`` and ``check_required_components()`` into the
# ``FooConfig.cmake`` file.
#
# ``set_and_check()`` should be used instead of the normal ``set()`` command for
# setting directories and file locations. Additionally to setting the variable
# it also checks that the referenced file or directory actually exists and fails
# with a ``FATAL_ERROR`` otherwise. This makes sure that the created
# ``FooConfig.cmake`` file does not contain wrong references.
# When using the ``NO_SET_AND_CHECK_MACRO``, this macro is not generated
# into the ``FooConfig.cmake`` file.
#
# ``check_required_components(<PackageName>)`` should be called at the end of
# the ``FooConfig.cmake`` file. This macro checks whether all requested,
# non-optional components have been found, and if this is not the case, sets
# the ``Foo_FOUND`` variable to ``FALSE``, so that the package is considered to
# be not found. It does that by testing the ``Foo_<Component>_FOUND``
# variables for all requested required components. This macro should be
# called even if the package doesn't provide any components to make sure
# users are not specifying components erroneously. When using the
# ``NO_CHECK_REQUIRED_COMPONENTS_MACRO`` option, this macro is not generated
# into the ``FooConfig.cmake`` file.
#
# For an example see below the documentation for
# :command:`write_basic_package_version_file()`.
#
# Generating a Package Version File
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#
# .. command:: write_basic_package_version_file
#
# Create a version file for a project::
#
# write_basic_package_version_file(<filename>
# [VERSION <major.minor.patch>]
# COMPATIBILITY <AnyNewerVersion|SameMajorVersion|SameMinorVersion|ExactVersion> )
#
#
# Writes a file for use as ``<PackageName>ConfigVersion.cmake`` file to
# ``<filename>``. See the documentation of :command:`find_package()` for
# details on this.
#
# ``<filename>`` is the output filename, it should be in the build tree.
# ``<major.minor.patch>`` is the version number of the project to be installed.
#
# If no ``VERSION`` is given, the :variable:`PROJECT_VERSION` variable is used.
# If this hasn't been set, it errors out.
#
# The ``COMPATIBILITY`` mode ``AnyNewerVersion`` means that the installed
# package version will be considered compatible if it is newer or exactly the
# same as the requested version. This mode should be used for packages which
# are fully backward compatible, also across major versions.
# If ``SameMajorVersion`` is used instead, then the behaviour differs from
# ``AnyNewerVersion`` in that the major version number must be the same as
# requested, e.g. version 2.0 will not be considered compatible if 1.0 is
# requested. This mode should be used for packages which guarantee backward
# compatibility within the same major version.
# If ``SameMinorVersion`` is used, the behaviour is the same as
# ``SameMajorVersion``, but both major and minor version must be the same as
# requested, e.g version 0.2 will not be compatible if 0.1 is requested.
# If ``ExactVersion`` is used, then the package is only considered compatible if
# the requested version matches exactly its own version number (not considering
# the tweak version). For example, version 1.2.3 of a package is only
# considered compatible to requested version 1.2.3. This mode is for packages
# without compatibility guarantees.
# If your project has more elaborated version matching rules, you will need to
# write your own custom ``ConfigVersion.cmake`` file instead of using this
# macro.
#
# Internally, this macro executes :command:`configure_file()` to create the
# resulting version file. Depending on the ``COMPATIBILITY``, the corresponding
# ``BasicConfigVersion-<COMPATIBILITY>.cmake.in`` file is used.
# Please note that these files are internal to CMake and you should not call
# :command:`configure_file()` on them yourself, but they can be used as starting
# point to create more sophisticted custom ``ConfigVersion.cmake`` files.
#
# Example Generating Package Files
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#
# Example using both :command:`configure_package_config_file` and
# ``write_basic_package_version_file()``:
#
# ``CMakeLists.txt``:
#
# .. code-block:: cmake
#
# set(INCLUDE_INSTALL_DIR include/ ... CACHE )
# set(LIB_INSTALL_DIR lib/ ... CACHE )
# set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE )
# #...
# include(CMakePackageConfigHelpers)
# configure_package_config_file(FooConfig.cmake.in
# ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
# INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake
# PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR)
# write_basic_package_version_file(
# ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
# VERSION 1.2.3
# COMPATIBILITY SameMajorVersion )
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
# ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
# DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake )
#
# ``FooConfig.cmake.in``:
#
# ::
#
# set(FOO_VERSION x.y.z)
# ...
# @PACKAGE_INIT@
# ...
# set_and_check(FOO_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
# set_and_check(FOO_SYSCONFIG_DIR "@PACKAGE_SYSCONFIG_INSTALL_DIR@")
#
# check_required_components(Foo)
#[=======================================================================[.rst:
CMakePackageConfigHelpers
-------------------------
Helpers functions for creating config files that can be included by other
projects to find and use a package.
Adds the :command:`configure_package_config_file()` and
:command:`write_basic_package_version_file()` commands.
Generating a Package Configuration File
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command:: configure_package_config_file
Create a config file for a project::
configure_package_config_file(<input> <output>
INSTALL_DESTINATION <path>
[PATH_VARS <var1> <var2> ... <varN>]
[NO_SET_AND_CHECK_MACRO]
[NO_CHECK_REQUIRED_COMPONENTS_MACRO]
[INSTALL_PREFIX <path>]
)
``configure_package_config_file()`` should be used instead of the plain
:command:`configure_file()` command when creating the ``<PackageName>Config.cmake``
or ``<PackageName>-config.cmake`` file for installing a project or library.
It helps making the resulting package relocatable by avoiding hardcoded paths
in the installed ``Config.cmake`` file.
In a ``FooConfig.cmake`` file there may be code like this to make the install
destinations know to the using project:
.. code-block:: cmake
set(FOO_INCLUDE_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@" )
set(FOO_DATA_DIR "@CMAKE_INSTALL_PREFIX@/@RELATIVE_DATA_INSTALL_DIR@" )
set(FOO_ICONS_DIR "@CMAKE_INSTALL_PREFIX@/share/icons" )
#...logic to determine installedPrefix from the own location...
set(FOO_CONFIG_DIR "${installedPrefix}/@CONFIG_INSTALL_DIR@" )
All 4 options shown above are not sufficient, since the first 3 hardcode the
absolute directory locations, and the 4th case works only if the logic to
determine the ``installedPrefix`` is correct, and if ``CONFIG_INSTALL_DIR``
contains a relative path, which in general cannot be guaranteed. This has the
effect that the resulting ``FooConfig.cmake`` file would work poorly under
Windows and OSX, where users are used to choose the install location of a
binary package at install time, independent from how
:variable:`CMAKE_INSTALL_PREFIX` was set at build/cmake time.
Using ``configure_package_config_file`` helps. If used correctly, it makes
the resulting ``FooConfig.cmake`` file relocatable. Usage:
1. write a ``FooConfig.cmake.in`` file as you are used to
2. insert a line containing only the string ``@PACKAGE_INIT@``
3. instead of ``set(FOO_DIR "@SOME_INSTALL_DIR@")``, use
``set(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")`` (this must be after the
``@PACKAGE_INIT@`` line)
4. instead of using the normal :command:`configure_file()`, use
``configure_package_config_file()``
The ``<input>`` and ``<output>`` arguments are the input and output file, the
same way as in :command:`configure_file()`.
The ``<path>`` given to ``INSTALL_DESTINATION`` must be the destination where
the ``FooConfig.cmake`` file will be installed to. This path can either be
absolute, or relative to the ``INSTALL_PREFIX`` path.
The variables ``<var1>`` to ``<varN>`` given as ``PATH_VARS`` are the
variables which contain install destinations. For each of them the macro will
create a helper variable ``PACKAGE_<var...>``. These helper variables must be
used in the ``FooConfig.cmake.in`` file for setting the installed location.
They are calculated by ``configure_package_config_file`` so that they are
always relative to the installed location of the package. This works both for
relative and also for absolute locations. For absolute locations it works
only if the absolute location is a subdirectory of ``INSTALL_PREFIX``.
If the ``INSTALL_PREFIX`` argument is passed, this is used as base path to
calculate all the relative paths. The ``<path>`` argument must be an absolute
path. If this argument is not passed, the :variable:`CMAKE_INSTALL_PREFIX`
variable will be used instead. The default value is good when generating a
FooConfig.cmake file to use your package from the install tree. When
generating a FooConfig.cmake file to use your package from the build tree this
option should be used.
By default ``configure_package_config_file`` also generates two helper macros,
``set_and_check()`` and ``check_required_components()`` into the
``FooConfig.cmake`` file.
``set_and_check()`` should be used instead of the normal ``set()`` command for
setting directories and file locations. Additionally to setting the variable
it also checks that the referenced file or directory actually exists and fails
with a ``FATAL_ERROR`` otherwise. This makes sure that the created
``FooConfig.cmake`` file does not contain wrong references.
When using the ``NO_SET_AND_CHECK_MACRO``, this macro is not generated
into the ``FooConfig.cmake`` file.
``check_required_components(<PackageName>)`` should be called at the end of
the ``FooConfig.cmake`` file. This macro checks whether all requested,
non-optional components have been found, and if this is not the case, sets
the ``Foo_FOUND`` variable to ``FALSE``, so that the package is considered to
be not found. It does that by testing the ``Foo_<Component>_FOUND``
variables for all requested required components. This macro should be
called even if the package doesn't provide any components to make sure
users are not specifying components erroneously. When using the
``NO_CHECK_REQUIRED_COMPONENTS_MACRO`` option, this macro is not generated
into the ``FooConfig.cmake`` file.
For an example see below the documentation for
:command:`write_basic_package_version_file()`.
Generating a Package Version File
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command:: write_basic_package_version_file
Create a version file for a project::
write_basic_package_version_file(<filename>
[VERSION <major.minor.patch>]
COMPATIBILITY <AnyNewerVersion|SameMajorVersion|SameMinorVersion|ExactVersion> )
Writes a file for use as ``<PackageName>ConfigVersion.cmake`` file to
``<filename>``. See the documentation of :command:`find_package()` for
details on this.
``<filename>`` is the output filename, it should be in the build tree.
``<major.minor.patch>`` is the version number of the project to be installed.
If no ``VERSION`` is given, the :variable:`PROJECT_VERSION` variable is used.
If this hasn't been set, it errors out.
The ``COMPATIBILITY`` mode ``AnyNewerVersion`` means that the installed
package version will be considered compatible if it is newer or exactly the
same as the requested version. This mode should be used for packages which
are fully backward compatible, also across major versions.
If ``SameMajorVersion`` is used instead, then the behaviour differs from
``AnyNewerVersion`` in that the major version number must be the same as
requested, e.g. version 2.0 will not be considered compatible if 1.0 is
requested. This mode should be used for packages which guarantee backward
compatibility within the same major version.
If ``SameMinorVersion`` is used, the behaviour is the same as
``SameMajorVersion``, but both major and minor version must be the same as
requested, e.g version 0.2 will not be compatible if 0.1 is requested.
If ``ExactVersion`` is used, then the package is only considered compatible if
the requested version matches exactly its own version number (not considering
the tweak version). For example, version 1.2.3 of a package is only
considered compatible to requested version 1.2.3. This mode is for packages
without compatibility guarantees.
If your project has more elaborated version matching rules, you will need to
write your own custom ``ConfigVersion.cmake`` file instead of using this
macro.
Internally, this macro executes :command:`configure_file()` to create the
resulting version file. Depending on the ``COMPATIBILITY``, the corresponding
``BasicConfigVersion-<COMPATIBILITY>.cmake.in`` file is used.
Please note that these files are internal to CMake and you should not call
:command:`configure_file()` on them yourself, but they can be used as starting
point to create more sophisticted custom ``ConfigVersion.cmake`` files.
Example Generating Package Files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Example using both :command:`configure_package_config_file` and
``write_basic_package_version_file()``:
``CMakeLists.txt``:
.. code-block:: cmake
set(INCLUDE_INSTALL_DIR include/ ... CACHE )
set(LIB_INSTALL_DIR lib/ ... CACHE )
set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE )
#...
include(CMakePackageConfigHelpers)
configure_package_config_file(FooConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake
PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
VERSION 1.2.3
COMPATIBILITY SameMajorVersion )
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake )
``FooConfig.cmake.in``:
::
set(FOO_VERSION x.y.z)
...
@PACKAGE_INIT@
...
set_and_check(FOO_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
set_and_check(FOO_SYSCONFIG_DIR "@PACKAGE_SYSCONFIG_INSTALL_DIR@")
check_required_components(Foo)
#]=======================================================================]
include(WriteBasicConfigVersionFile)

View File

@@ -1,11 +1,12 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeParseArguments
# -------------------
#
# This module once implemented the :command:`cmake_parse_arguments` command
# that is now implemented natively by CMake. It is now an empty placeholder
# for compatibility with projects that include it to get the command from
# CMake 3.4 and lower.
#[=======================================================================[.rst:
CMakeParseArguments
-------------------
This module once implemented the :command:`cmake_parse_arguments` command
that is now implemented natively by CMake. It is now an empty placeholder
for compatibility with projects that include it to get the command from
CMake 3.4 and lower.
#]=======================================================================]

View File

@@ -1,43 +1,44 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakePrintHelpers
# -----------------
#
# Convenience macros for printing properties and variables, useful e.g. for debugging.
#
# ::
#
# CMAKE_PRINT_PROPERTIES([TARGETS target1 .. targetN]
# [SOURCES source1 .. sourceN]
# [DIRECTORIES dir1 .. dirN]
# [TESTS test1 .. testN]
# [CACHE_ENTRIES entry1 .. entryN]
# PROPERTIES prop1 .. propN )
#
# This macro prints the values of the properties of the given targets,
# source files, directories, tests or cache entries. Exactly one of the
# scope keywords must be used. Example::
#
# cmake_print_properties(TARGETS foo bar PROPERTIES
# LOCATION INTERFACE_INCLUDE_DIRS)
#
# This will print the LOCATION and INTERFACE_INCLUDE_DIRS properties for
# both targets foo and bar.
#
#
#
# CMAKE_PRINT_VARIABLES(var1 var2 .. varN)
#
# This macro will print the name of each variable followed by its value.
# Example::
#
# cmake_print_variables(CMAKE_C_COMPILER CMAKE_MAJOR_VERSION DOES_NOT_EXIST)
#
# Gives::
#
# -- CMAKE_C_COMPILER="/usr/bin/gcc" ; CMAKE_MAJOR_VERSION="2" ; DOES_NOT_EXIST=""
#[=======================================================================[.rst:
CMakePrintHelpers
-----------------
Convenience macros for printing properties and variables, useful e.g. for debugging.
::
CMAKE_PRINT_PROPERTIES([TARGETS target1 .. targetN]
[SOURCES source1 .. sourceN]
[DIRECTORIES dir1 .. dirN]
[TESTS test1 .. testN]
[CACHE_ENTRIES entry1 .. entryN]
PROPERTIES prop1 .. propN )
This macro prints the values of the properties of the given targets,
source files, directories, tests or cache entries. Exactly one of the
scope keywords must be used. Example::
cmake_print_properties(TARGETS foo bar PROPERTIES
LOCATION INTERFACE_INCLUDE_DIRS)
This will print the LOCATION and INTERFACE_INCLUDE_DIRS properties for
both targets foo and bar.
CMAKE_PRINT_VARIABLES(var1 var2 .. varN)
This macro will print the name of each variable followed by its value.
Example::
cmake_print_variables(CMAKE_C_COMPILER CMAKE_MAJOR_VERSION DOES_NOT_EXIST)
Gives::
-- CMAKE_C_COMPILER="/usr/bin/gcc" ; CMAKE_MAJOR_VERSION="2" ; DOES_NOT_EXIST=""
#]=======================================================================]
function(CMAKE_PRINT_VARIABLES)
set(msg "")

View File

@@ -1,14 +1,15 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakePrintSystemInformation
# ---------------------------
#
# print system information
#
# This file can be used for diagnostic purposes just include it in a
# project to see various internal CMake variables.
#[=======================================================================[.rst:
CMakePrintSystemInformation
---------------------------
print system information
This file can be used for diagnostic purposes just include it in a
project to see various internal CMake variables.
#]=======================================================================]
message("CMAKE_SYSTEM is ${CMAKE_SYSTEM} ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}")
message("CMAKE_SYSTEM file is ${CMAKE_SYSTEM_INFO_FILE}")

View File

@@ -1,40 +1,41 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakePushCheckState
# -------------------
#
#
#
# This module defines three macros: CMAKE_PUSH_CHECK_STATE()
# CMAKE_POP_CHECK_STATE() and CMAKE_RESET_CHECK_STATE() These macros can
# be used to save, restore and reset (i.e., clear contents) the state of
# the variables CMAKE_REQUIRED_FLAGS, CMAKE_REQUIRED_DEFINITIONS,
# CMAKE_REQUIRED_LIBRARIES, CMAKE_REQUIRED_INCLUDES and CMAKE_EXTRA_INCLUDE_FILES
# used by the various Check-files coming with CMake, like e.g.
# check_function_exists() etc. The variable contents are pushed on a
# stack, pushing multiple times is supported. This is useful e.g. when
# executing such tests in a Find-module, where they have to be set, but
# after the Find-module has been executed they should have the same
# value as they had before.
#
# CMAKE_PUSH_CHECK_STATE() macro receives optional argument RESET.
# Whether it's specified, CMAKE_PUSH_CHECK_STATE() will set all
# CMAKE_REQUIRED_* variables to empty values, same as
# CMAKE_RESET_CHECK_STATE() call will do.
#
# Usage:
#
# ::
#
# cmake_push_check_state(RESET)
# set(CMAKE_REQUIRED_DEFINITIONS -DSOME_MORE_DEF)
# check_function_exists(...)
# cmake_reset_check_state()
# set(CMAKE_REQUIRED_DEFINITIONS -DANOTHER_DEF)
# check_function_exists(...)
# cmake_pop_check_state()
#[=======================================================================[.rst:
CMakePushCheckState
-------------------
This module defines three macros: CMAKE_PUSH_CHECK_STATE()
CMAKE_POP_CHECK_STATE() and CMAKE_RESET_CHECK_STATE() These macros can
be used to save, restore and reset (i.e., clear contents) the state of
the variables CMAKE_REQUIRED_FLAGS, CMAKE_REQUIRED_DEFINITIONS,
CMAKE_REQUIRED_LIBRARIES, CMAKE_REQUIRED_INCLUDES and CMAKE_EXTRA_INCLUDE_FILES
used by the various Check-files coming with CMake, like e.g.
check_function_exists() etc. The variable contents are pushed on a
stack, pushing multiple times is supported. This is useful e.g. when
executing such tests in a Find-module, where they have to be set, but
after the Find-module has been executed they should have the same
value as they had before.
CMAKE_PUSH_CHECK_STATE() macro receives optional argument RESET.
Whether it's specified, CMAKE_PUSH_CHECK_STATE() will set all
CMAKE_REQUIRED_* variables to empty values, same as
CMAKE_RESET_CHECK_STATE() call will do.
Usage:
::
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_DEFINITIONS -DSOME_MORE_DEF)
check_function_exists(...)
cmake_reset_check_state()
set(CMAKE_REQUIRED_DEFINITIONS -DANOTHER_DEF)
check_function_exists(...)
cmake_pop_check_state()
#]=======================================================================]
macro(CMAKE_RESET_CHECK_STATE)

View File

@@ -1,22 +1,23 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CMakeVerifyManifest
# -------------------
#
#
#
# CMakeVerifyManifest.cmake
#
# This script is used to verify that embedded manifests and side by side
# manifests for a project match. To run this script, cd to a directory
# and run the script with cmake -P. On the command line you can pass in
# versions that are OK even if not found in the .manifest files. For
# example, cmake -Dallow_versions=8.0.50608.0
# -PCmakeVerifyManifest.cmake could be used to allow an embedded manifest
# of 8.0.50608.0 to be used in a project even if that version was not
# found in the .manifest file.
#[=======================================================================[.rst:
CMakeVerifyManifest
-------------------
CMakeVerifyManifest.cmake
This script is used to verify that embedded manifests and side by side
manifests for a project match. To run this script, cd to a directory
and run the script with cmake -P. On the command line you can pass in
versions that are OK even if not found in the .manifest files. For
example, cmake -Dallow_versions=8.0.50608.0
-PCmakeVerifyManifest.cmake could be used to allow an embedded manifest
of 8.0.50608.0 to be used in a project even if that version was not
found in the .manifest file.
#]=======================================================================]
# This script first recursively globs *.manifest files from
# the current directory. Then globs *.exe and *.dll. Each

View File

@@ -1,313 +1,314 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CPackComponent
# --------------
#
# Build binary and source package installers
#
# Variables concerning CPack Components
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#
# The CPackComponent module is the module which handles the component
# part of CPack. See CPack module for general information about CPack.
#
# For certain kinds of binary installers (including the graphical
# installers on macOS and Windows), CPack generates installers that
# allow users to select individual application components to install.
# The contents of each of the components are identified by the COMPONENT
# argument of CMake's INSTALL command. These components can be
# annotated with user-friendly names and descriptions, inter-component
# dependencies, etc., and grouped in various ways to customize the
# resulting installer. See the cpack_add_* commands, described below,
# for more information about component-specific installations.
#
# Component-specific installation allows users to select specific sets
# of components to install during the install process. Installation
# components are identified by the COMPONENT argument of CMake's INSTALL
# commands, and should be further described by the following CPack
# commands:
#
# .. variable:: CPACK_COMPONENTS_ALL
#
# The list of component to install.
#
# The default value of this variable is computed by CPack and contains all
# components defined by the project. The user may set it to only include the
# specified components.
#
# Instead of specifying all the desired components, it is possible to obtain a
# list of all defined components and then remove the unwanted ones from the
# list. The :command:`get_cmake_property` command can be used to obtain the
# ``COMPONENTS`` property, then the :command:`list(REMOVE_ITEM)` command can be
# used to remove the unwanted ones. For example, to use all defined components
# except ``foo`` and ``bar``::
#
# get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS)
# list(REMOVE_ITEM CPACK_COMPONENTS_ALL "foo" "bar")
#
# .. variable:: CPACK_<GENNAME>_COMPONENT_INSTALL
#
# Enable/Disable component install for CPack generator <GENNAME>.
#
# Each CPack Generator (RPM, DEB, ARCHIVE, NSIS, DMG, etc...) has a legacy
# default behavior. e.g. RPM builds monolithic whereas NSIS builds
# component. One can change the default behavior by setting this variable to
# 0/1 or OFF/ON.
#
# .. variable:: CPACK_COMPONENTS_GROUPING
#
# Specify how components are grouped for multi-package component-aware CPack
# generators.
#
# Some generators like RPM or ARCHIVE family (TGZ, ZIP, ...) generates
# several packages files when asked for component packaging. They group
# the component differently depending on the value of this variable:
#
# * ONE_PER_GROUP (default): creates one package file per component group
# * ALL_COMPONENTS_IN_ONE : creates a single package with all (requested) components
# * IGNORE : creates one package per component, i.e. IGNORE component group
#
# One can specify different grouping for different CPack generator by
# using a CPACK_PROJECT_CONFIG_FILE.
#
# .. variable:: CPACK_COMPONENT_<compName>_DISPLAY_NAME
#
# The name to be displayed for a component.
#
# .. variable:: CPACK_COMPONENT_<compName>_DESCRIPTION
#
# The description of a component.
#
# .. variable:: CPACK_COMPONENT_<compName>_GROUP
#
# The group of a component.
#
# .. variable:: CPACK_COMPONENT_<compName>_DEPENDS
#
# The dependencies (list of components) on which this component depends.
#
# .. variable:: CPACK_COMPONENT_<compName>_HIDDEN
#
# True if this component is hidden from the user.
#
# .. variable:: CPACK_COMPONENT_<compName>_REQUIRED
#
# True if this component is required.
#
# .. variable:: CPACK_COMPONENT_<compName>_DISABLED
#
# True if this component is not selected to be installed by default.
#
# .. command:: cpack_add_component
#
# Describes a CPack installation
# component named by the COMPONENT argument to a CMake INSTALL command.
#
# ::
#
# cpack_add_component(compname
# [DISPLAY_NAME name]
# [DESCRIPTION description]
# [HIDDEN | REQUIRED | DISABLED ]
# [GROUP group]
# [DEPENDS comp1 comp2 ... ]
# [INSTALL_TYPES type1 type2 ... ]
# [DOWNLOADED]
# [ARCHIVE_FILE filename]
# [PLIST filename])
#
#
#
# The cmake_add_component command describes an installation component,
# which the user can opt to install or remove as part of the graphical
# installation process. compname is the name of the component, as
# provided to the COMPONENT argument of one or more CMake INSTALL
# commands.
#
# DISPLAY_NAME is the displayed name of the component, used in graphical
# installers to display the component name. This value can be any
# string.
#
# DESCRIPTION is an extended description of the component, used in
# graphical installers to give the user additional information about the
# component. Descriptions can span multiple lines using ``\n`` as the
# line separator. Typically, these descriptions should be no more than
# a few lines long.
#
# HIDDEN indicates that this component will be hidden in the graphical
# installer, so that the user cannot directly change whether it is
# installed or not.
#
# REQUIRED indicates that this component is required, and therefore will
# always be installed. It will be visible in the graphical installer,
# but it cannot be unselected. (Typically, required components are
# shown greyed out).
#
# DISABLED indicates that this component should be disabled (unselected)
# by default. The user is free to select this component for
# installation, unless it is also HIDDEN.
#
# DEPENDS lists the components on which this component depends. If this
# component is selected, then each of the components listed must also be
# selected. The dependency information is encoded within the installer
# itself, so that users cannot install inconsistent sets of components.
#
# GROUP names the component group of which this component is a part. If
# not provided, the component will be a standalone component, not part
# of any component group. Component groups are described with the
# cpack_add_component_group command, detailed below.
#
# INSTALL_TYPES lists the installation types of which this component is
# a part. When one of these installations types is selected, this
# component will automatically be selected. Installation types are
# described with the cpack_add_install_type command, detailed below.
#
# DOWNLOADED indicates that this component should be downloaded
# on-the-fly by the installer, rather than packaged in with the
# installer itself. For more information, see the
# cpack_configure_downloads command.
#
# ARCHIVE_FILE provides a name for the archive file created by CPack to
# be used for downloaded components. If not supplied, CPack will create
# a file with some name based on CPACK_PACKAGE_FILE_NAME and the name of
# the component. See cpack_configure_downloads for more information.
#
# PLIST gives a filename that is passed to pkgbuild with the
# ``--component-plist`` argument when using the productbuild generator.
#
# .. command:: cpack_add_component_group
#
# Describes a group of related CPack installation components.
#
# ::
#
# cpack_add_component_group(groupname
# [DISPLAY_NAME name]
# [DESCRIPTION description]
# [PARENT_GROUP parent]
# [EXPANDED]
# [BOLD_TITLE])
#
#
#
# The cpack_add_component_group describes a group of installation
# components, which will be placed together within the listing of
# options. Typically, component groups allow the user to
# select/deselect all of the components within a single group via a
# single group-level option. Use component groups to reduce the
# complexity of installers with many options. groupname is an arbitrary
# name used to identify the group in the GROUP argument of the
# cpack_add_component command, which is used to place a component in a
# group. The name of the group must not conflict with the name of any
# component.
#
# DISPLAY_NAME is the displayed name of the component group, used in
# graphical installers to display the component group name. This value
# can be any string.
#
# DESCRIPTION is an extended description of the component group, used in
# graphical installers to give the user additional information about the
# components within that group. Descriptions can span multiple lines
# using ``\n`` as the line separator. Typically, these descriptions
# should be no more than a few lines long.
#
# PARENT_GROUP, if supplied, names the parent group of this group.
# Parent groups are used to establish a hierarchy of groups, providing
# an arbitrary hierarchy of groups.
#
# EXPANDED indicates that, by default, the group should show up as
# "expanded", so that the user immediately sees all of the components
# within the group. Otherwise, the group will initially show up as a
# single entry.
#
# BOLD_TITLE indicates that the group title should appear in bold, to
# call the user's attention to the group.
#
# .. command:: cpack_add_install_type
#
# Add a new installation type containing
# a set of predefined component selections to the graphical installer.
#
# ::
#
# cpack_add_install_type(typename
# [DISPLAY_NAME name])
#
#
#
# The cpack_add_install_type command identifies a set of preselected
# components that represents a common use case for an application. For
# example, a "Developer" install type might include an application along
# with its header and library files, while an "End user" install type
# might just include the application's executable. Each component
# identifies itself with one or more install types via the INSTALL_TYPES
# argument to cpack_add_component.
#
# DISPLAY_NAME is the displayed name of the install type, which will
# typically show up in a drop-down box within a graphical installer.
# This value can be any string.
#
# .. command:: cpack_configure_downloads
#
# Configure CPack to download
# selected components on-the-fly as part of the installation process.
#
# ::
#
# cpack_configure_downloads(site
# [UPLOAD_DIRECTORY dirname]
# [ALL]
# [ADD_REMOVE|NO_ADD_REMOVE])
#
#
#
# The cpack_configure_downloads command configures installation-time
# downloads of selected components. For each downloadable component,
# CPack will create an archive containing the contents of that
# component, which should be uploaded to the given site. When the user
# selects that component for installation, the installer will download
# and extract the component in place. This feature is useful for
# creating small installers that only download the requested components,
# saving bandwidth. Additionally, the installers are small enough that
# they will be installed as part of the normal installation process, and
# the "Change" button in Windows Add/Remove Programs control panel will
# allow one to add or remove parts of the application after the original
# installation. On Windows, the downloaded-components functionality
# requires the ZipDLL plug-in for NSIS, available at:
#
# ::
#
# http://nsis.sourceforge.net/ZipDLL_plug-in
#
#
#
# On macOS, installers that download components on-the-fly can only
# be built and installed on system using macOS 10.5 or later.
#
# The site argument is a URL where the archives for downloadable
# components will reside, e.g.,
# https://cmake.org/files/2.6.1/installer/ All of the archives
# produced by CPack should be uploaded to that location.
#
# UPLOAD_DIRECTORY is the local directory where CPack will create the
# various archives for each of the components. The contents of this
# directory should be uploaded to a location accessible by the URL given
# in the site argument. If omitted, CPack will use the directory
# CPackUploads inside the CMake binary directory to store the generated
# archives.
#
# The ALL flag indicates that all components be downloaded. Otherwise,
# only those components explicitly marked as DOWNLOADED or that have a
# specified ARCHIVE_FILE will be downloaded. Additionally, the ALL
# option implies ADD_REMOVE (unless NO_ADD_REMOVE is specified).
#
# ADD_REMOVE indicates that CPack should install a copy of the installer
# that can be called from Windows' Add/Remove Programs dialog (via the
# "Modify" button) to change the set of installed components.
# NO_ADD_REMOVE turns off this behavior. This option is ignored on Mac
# OS X.
#[=======================================================================[.rst:
CPackComponent
--------------
Build binary and source package installers
Variables concerning CPack Components
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The CPackComponent module is the module which handles the component
part of CPack. See CPack module for general information about CPack.
For certain kinds of binary installers (including the graphical
installers on macOS and Windows), CPack generates installers that
allow users to select individual application components to install.
The contents of each of the components are identified by the COMPONENT
argument of CMake's INSTALL command. These components can be
annotated with user-friendly names and descriptions, inter-component
dependencies, etc., and grouped in various ways to customize the
resulting installer. See the cpack_add_* commands, described below,
for more information about component-specific installations.
Component-specific installation allows users to select specific sets
of components to install during the install process. Installation
components are identified by the COMPONENT argument of CMake's INSTALL
commands, and should be further described by the following CPack
commands:
.. variable:: CPACK_COMPONENTS_ALL
The list of component to install.
The default value of this variable is computed by CPack and contains all
components defined by the project. The user may set it to only include the
specified components.
Instead of specifying all the desired components, it is possible to obtain a
list of all defined components and then remove the unwanted ones from the
list. The :command:`get_cmake_property` command can be used to obtain the
``COMPONENTS`` property, then the :command:`list(REMOVE_ITEM)` command can be
used to remove the unwanted ones. For example, to use all defined components
except ``foo`` and ``bar``::
get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS)
list(REMOVE_ITEM CPACK_COMPONENTS_ALL "foo" "bar")
.. variable:: CPACK_<GENNAME>_COMPONENT_INSTALL
Enable/Disable component install for CPack generator <GENNAME>.
Each CPack Generator (RPM, DEB, ARCHIVE, NSIS, DMG, etc...) has a legacy
default behavior. e.g. RPM builds monolithic whereas NSIS builds
component. One can change the default behavior by setting this variable to
0/1 or OFF/ON.
.. variable:: CPACK_COMPONENTS_GROUPING
Specify how components are grouped for multi-package component-aware CPack
generators.
Some generators like RPM or ARCHIVE family (TGZ, ZIP, ...) generates
several packages files when asked for component packaging. They group
the component differently depending on the value of this variable:
* ONE_PER_GROUP (default): creates one package file per component group
* ALL_COMPONENTS_IN_ONE : creates a single package with all (requested) components
* IGNORE : creates one package per component, i.e. IGNORE component group
One can specify different grouping for different CPack generator by
using a CPACK_PROJECT_CONFIG_FILE.
.. variable:: CPACK_COMPONENT_<compName>_DISPLAY_NAME
The name to be displayed for a component.
.. variable:: CPACK_COMPONENT_<compName>_DESCRIPTION
The description of a component.
.. variable:: CPACK_COMPONENT_<compName>_GROUP
The group of a component.
.. variable:: CPACK_COMPONENT_<compName>_DEPENDS
The dependencies (list of components) on which this component depends.
.. variable:: CPACK_COMPONENT_<compName>_HIDDEN
True if this component is hidden from the user.
.. variable:: CPACK_COMPONENT_<compName>_REQUIRED
True if this component is required.
.. variable:: CPACK_COMPONENT_<compName>_DISABLED
True if this component is not selected to be installed by default.
.. command:: cpack_add_component
Describes a CPack installation
component named by the COMPONENT argument to a CMake INSTALL command.
::
cpack_add_component(compname
[DISPLAY_NAME name]
[DESCRIPTION description]
[HIDDEN | REQUIRED | DISABLED ]
[GROUP group]
[DEPENDS comp1 comp2 ... ]
[INSTALL_TYPES type1 type2 ... ]
[DOWNLOADED]
[ARCHIVE_FILE filename]
[PLIST filename])
The cmake_add_component command describes an installation component,
which the user can opt to install or remove as part of the graphical
installation process. compname is the name of the component, as
provided to the COMPONENT argument of one or more CMake INSTALL
commands.
DISPLAY_NAME is the displayed name of the component, used in graphical
installers to display the component name. This value can be any
string.
DESCRIPTION is an extended description of the component, used in
graphical installers to give the user additional information about the
component. Descriptions can span multiple lines using ``\n`` as the
line separator. Typically, these descriptions should be no more than
a few lines long.
HIDDEN indicates that this component will be hidden in the graphical
installer, so that the user cannot directly change whether it is
installed or not.
REQUIRED indicates that this component is required, and therefore will
always be installed. It will be visible in the graphical installer,
but it cannot be unselected. (Typically, required components are
shown greyed out).
DISABLED indicates that this component should be disabled (unselected)
by default. The user is free to select this component for
installation, unless it is also HIDDEN.
DEPENDS lists the components on which this component depends. If this
component is selected, then each of the components listed must also be
selected. The dependency information is encoded within the installer
itself, so that users cannot install inconsistent sets of components.
GROUP names the component group of which this component is a part. If
not provided, the component will be a standalone component, not part
of any component group. Component groups are described with the
cpack_add_component_group command, detailed below.
INSTALL_TYPES lists the installation types of which this component is
a part. When one of these installations types is selected, this
component will automatically be selected. Installation types are
described with the cpack_add_install_type command, detailed below.
DOWNLOADED indicates that this component should be downloaded
on-the-fly by the installer, rather than packaged in with the
installer itself. For more information, see the
cpack_configure_downloads command.
ARCHIVE_FILE provides a name for the archive file created by CPack to
be used for downloaded components. If not supplied, CPack will create
a file with some name based on CPACK_PACKAGE_FILE_NAME and the name of
the component. See cpack_configure_downloads for more information.
PLIST gives a filename that is passed to pkgbuild with the
``--component-plist`` argument when using the productbuild generator.
.. command:: cpack_add_component_group
Describes a group of related CPack installation components.
::
cpack_add_component_group(groupname
[DISPLAY_NAME name]
[DESCRIPTION description]
[PARENT_GROUP parent]
[EXPANDED]
[BOLD_TITLE])
The cpack_add_component_group describes a group of installation
components, which will be placed together within the listing of
options. Typically, component groups allow the user to
select/deselect all of the components within a single group via a
single group-level option. Use component groups to reduce the
complexity of installers with many options. groupname is an arbitrary
name used to identify the group in the GROUP argument of the
cpack_add_component command, which is used to place a component in a
group. The name of the group must not conflict with the name of any
component.
DISPLAY_NAME is the displayed name of the component group, used in
graphical installers to display the component group name. This value
can be any string.
DESCRIPTION is an extended description of the component group, used in
graphical installers to give the user additional information about the
components within that group. Descriptions can span multiple lines
using ``\n`` as the line separator. Typically, these descriptions
should be no more than a few lines long.
PARENT_GROUP, if supplied, names the parent group of this group.
Parent groups are used to establish a hierarchy of groups, providing
an arbitrary hierarchy of groups.
EXPANDED indicates that, by default, the group should show up as
"expanded", so that the user immediately sees all of the components
within the group. Otherwise, the group will initially show up as a
single entry.
BOLD_TITLE indicates that the group title should appear in bold, to
call the user's attention to the group.
.. command:: cpack_add_install_type
Add a new installation type containing
a set of predefined component selections to the graphical installer.
::
cpack_add_install_type(typename
[DISPLAY_NAME name])
The cpack_add_install_type command identifies a set of preselected
components that represents a common use case for an application. For
example, a "Developer" install type might include an application along
with its header and library files, while an "End user" install type
might just include the application's executable. Each component
identifies itself with one or more install types via the INSTALL_TYPES
argument to cpack_add_component.
DISPLAY_NAME is the displayed name of the install type, which will
typically show up in a drop-down box within a graphical installer.
This value can be any string.
.. command:: cpack_configure_downloads
Configure CPack to download
selected components on-the-fly as part of the installation process.
::
cpack_configure_downloads(site
[UPLOAD_DIRECTORY dirname]
[ALL]
[ADD_REMOVE|NO_ADD_REMOVE])
The cpack_configure_downloads command configures installation-time
downloads of selected components. For each downloadable component,
CPack will create an archive containing the contents of that
component, which should be uploaded to the given site. When the user
selects that component for installation, the installer will download
and extract the component in place. This feature is useful for
creating small installers that only download the requested components,
saving bandwidth. Additionally, the installers are small enough that
they will be installed as part of the normal installation process, and
the "Change" button in Windows Add/Remove Programs control panel will
allow one to add or remove parts of the application after the original
installation. On Windows, the downloaded-components functionality
requires the ZipDLL plug-in for NSIS, available at:
::
http://nsis.sourceforge.net/ZipDLL_plug-in
On macOS, installers that download components on-the-fly can only
be built and installed on system using macOS 10.5 or later.
The site argument is a URL where the archives for downloadable
components will reside, e.g.,
https://cmake.org/files/2.6.1/installer/ All of the archives
produced by CPack should be uploaded to that location.
UPLOAD_DIRECTORY is the local directory where CPack will create the
various archives for each of the components. The contents of this
directory should be uploaded to a location accessible by the URL given
in the site argument. If omitted, CPack will use the directory
CPackUploads inside the CMake binary directory to store the generated
archives.
The ALL flag indicates that all components be downloaded. Otherwise,
only those components explicitly marked as DOWNLOADED or that have a
specified ARCHIVE_FILE will be downloaded. Additionally, the ALL
option implies ADD_REMOVE (unless NO_ADD_REMOVE is specified).
ADD_REMOVE indicates that CPack should install a copy of the installer
that can be called from Windows' Add/Remove Programs dialog (via the
"Modify" button) to change the set of installed components.
NO_ADD_REMOVE turns off this behavior. This option is ignored on Mac
OS X.
#]=======================================================================]
# Define var in order to avoid multiple inclusion
if(NOT CPackComponent_CMake_INCLUDED)

View File

@@ -1,32 +1,33 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CPackIFWConfigureFile
# ---------------------
#
# The module defines :command:`configure_file` similar command to
# configure file templates prepared in QtIFW/SDK/Creator style.
#
#
# Commands
# ^^^^^^^^
#
# The module defines the following commands:
#
# .. command:: cpack_ifw_configure_file
#
# Copy a file to another location and modify its contents.
#
# ::
#
# cpack_ifw_configure_file(<input> <output>)
#
# Copies an ``<input>`` file to an ``<output>`` file and substitutes variable
# values referenced as ``%{VAR}`` or ``%VAR%`` in the input file content.
# Each variable reference will be replaced with the current value of the
# variable, or the empty string if the variable is not defined.
#
#[=======================================================================[.rst:
CPackIFWConfigureFile
---------------------
The module defines :command:`configure_file` similar command to
configure file templates prepared in QtIFW/SDK/Creator style.
Commands
^^^^^^^^
The module defines the following commands:
.. command:: cpack_ifw_configure_file
Copy a file to another location and modify its contents.
::
cpack_ifw_configure_file(<input> <output>)
Copies an ``<input>`` file to an ``<output>`` file and substitutes variable
values referenced as ``%{VAR}`` or ``%VAR%`` in the input file content.
Each variable reference will be replaced with the current value of the
variable, or the empty string if the variable is not defined.
#]=======================================================================]
# NOTE: This file used to himself packaging via CPack IFW generator and
# should be compatible with minimal CMake version defined in

View File

@@ -1,69 +1,70 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CTestCoverageCollectGCOV
# ------------------------
#
# This module provides the ``ctest_coverage_collect_gcov`` function.
#
# This function runs gcov on all .gcda files found in the binary tree
# and packages the resulting .gcov files into a tar file.
# This tarball also contains the following:
#
# * *data.json* defines the source and build directories for use by CDash.
# * *Labels.json* indicates any :prop_sf:`LABELS` that have been set on the
# source files.
# * The *uncovered* directory holds any uncovered files found by
# :variable:`CTEST_EXTRA_COVERAGE_GLOB`.
#
# After generating this tar file, it can be sent to CDash for display with the
# :command:`ctest_submit(CDASH_UPLOAD)` command.
#
# .. command:: cdash_coverage_collect_gcov
#
# ::
#
# ctest_coverage_collect_gcov(TARBALL <tarfile>
# [SOURCE <source_dir>][BUILD <build_dir>]
# [GCOV_COMMAND <gcov_command>]
# [GCOV_OPTIONS <options>...]
# )
#
# Run gcov and package a tar file for CDash. The options are:
#
# ``TARBALL <tarfile>``
# Specify the location of the ``.tar`` file to be created for later
# upload to CDash. Relative paths will be interpreted with respect
# to the top-level build directory.
#
# ``SOURCE <source_dir>``
# Specify the top-level source directory for the build.
# Default is the value of :variable:`CTEST_SOURCE_DIRECTORY`.
#
# ``BUILD <build_dir>``
# Specify the top-level build directory for the build.
# Default is the value of :variable:`CTEST_BINARY_DIRECTORY`.
#
# ``GCOV_COMMAND <gcov_command>``
# Specify the full path to the ``gcov`` command on the machine.
# Default is the value of :variable:`CTEST_COVERAGE_COMMAND`.
#
# ``GCOV_OPTIONS <options>...``
# Specify options to be passed to gcov. The ``gcov`` command
# is run as ``gcov <options>... -o <gcov-dir> <file>.gcda``.
# If not specified, the default option is just ``-b``.
#
# ``GLOB``
# Recursively search for .gcda files in build_dir rather than
# determining search locations by reading TargetDirectories.txt.
#
# ``DELETE``
# Delete coverage files after they've been packaged into the .tar.
#
# ``QUIET``
# Suppress non-error messages that otherwise would have been
# printed out by this function.
#[=======================================================================[.rst:
CTestCoverageCollectGCOV
------------------------
This module provides the ``ctest_coverage_collect_gcov`` function.
This function runs gcov on all .gcda files found in the binary tree
and packages the resulting .gcov files into a tar file.
This tarball also contains the following:
* *data.json* defines the source and build directories for use by CDash.
* *Labels.json* indicates any :prop_sf:`LABELS` that have been set on the
source files.
* The *uncovered* directory holds any uncovered files found by
:variable:`CTEST_EXTRA_COVERAGE_GLOB`.
After generating this tar file, it can be sent to CDash for display with the
:command:`ctest_submit(CDASH_UPLOAD)` command.
.. command:: cdash_coverage_collect_gcov
::
ctest_coverage_collect_gcov(TARBALL <tarfile>
[SOURCE <source_dir>][BUILD <build_dir>]
[GCOV_COMMAND <gcov_command>]
[GCOV_OPTIONS <options>...]
)
Run gcov and package a tar file for CDash. The options are:
``TARBALL <tarfile>``
Specify the location of the ``.tar`` file to be created for later
upload to CDash. Relative paths will be interpreted with respect
to the top-level build directory.
``SOURCE <source_dir>``
Specify the top-level source directory for the build.
Default is the value of :variable:`CTEST_SOURCE_DIRECTORY`.
``BUILD <build_dir>``
Specify the top-level build directory for the build.
Default is the value of :variable:`CTEST_BINARY_DIRECTORY`.
``GCOV_COMMAND <gcov_command>``
Specify the full path to the ``gcov`` command on the machine.
Default is the value of :variable:`CTEST_COVERAGE_COMMAND`.
``GCOV_OPTIONS <options>...``
Specify options to be passed to gcov. The ``gcov`` command
is run as ``gcov <options>... -o <gcov-dir> <file>.gcda``.
If not specified, the default option is just ``-b``.
``GLOB``
Recursively search for .gcda files in build_dir rather than
determining search locations by reading TargetDirectories.txt.
``DELETE``
Delete coverage files after they've been packaged into the .tar.
``QUIET``
Suppress non-error messages that otherwise would have been
printed out by this function.
#]=======================================================================]
function(ctest_coverage_collect_gcov)
set(options QUIET GLOB DELETE)

View File

@@ -1,13 +1,14 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CTestScriptMode
# ---------------
#
#
#
# This file is read by ctest in script mode (-S)
#[=======================================================================[.rst:
CTestScriptMode
---------------
This file is read by ctest in script mode (-S)
#]=======================================================================]
# Determine the current system, so this information can be used
# in ctest scripts

View File

@@ -1,32 +1,33 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CTestUseLaunchers
# -----------------
#
# Set the RULE_LAUNCH_* global properties when CTEST_USE_LAUNCHERS is on.
#
# CTestUseLaunchers is automatically included when you include(CTest).
# However, it is split out into its own module file so projects can use
# the CTEST_USE_LAUNCHERS functionality independently.
#
# To use launchers, set CTEST_USE_LAUNCHERS to ON in a ctest -S
# dashboard script, and then also set it in the cache of the configured
# project. Both cmake and ctest need to know the value of it for the
# launchers to work properly. CMake needs to know in order to generate
# proper build rules, and ctest, in order to produce the proper error
# and warning analysis.
#
# For convenience, you may set the ENV variable
# CTEST_USE_LAUNCHERS_DEFAULT in your ctest -S script, too. Then, as
# long as your CMakeLists uses include(CTest) or
# include(CTestUseLaunchers), it will use the value of the ENV variable
# to initialize a CTEST_USE_LAUNCHERS cache variable. This cache
# variable initialization only occurs if CTEST_USE_LAUNCHERS is not
# already defined. If CTEST_USE_LAUNCHERS is on in a ctest -S script
# the ctest_configure command will add -DCTEST_USE_LAUNCHERS:BOOL=TRUE
# to the cmake command used to configure the project.
#[=======================================================================[.rst:
CTestUseLaunchers
-----------------
Set the RULE_LAUNCH_* global properties when CTEST_USE_LAUNCHERS is on.
CTestUseLaunchers is automatically included when you include(CTest).
However, it is split out into its own module file so projects can use
the CTEST_USE_LAUNCHERS functionality independently.
To use launchers, set CTEST_USE_LAUNCHERS to ON in a ctest -S
dashboard script, and then also set it in the cache of the configured
project. Both cmake and ctest need to know the value of it for the
launchers to work properly. CMake needs to know in order to generate
proper build rules, and ctest, in order to produce the proper error
and warning analysis.
For convenience, you may set the ENV variable
CTEST_USE_LAUNCHERS_DEFAULT in your ctest -S script, too. Then, as
long as your CMakeLists uses include(CTest) or
include(CTestUseLaunchers), it will use the value of the ENV variable
to initialize a CTEST_USE_LAUNCHERS cache variable. This cache
variable initialization only occurs if CTEST_USE_LAUNCHERS is not
already defined. If CTEST_USE_LAUNCHERS is on in a ctest -S script
the ctest_configure command will add -DCTEST_USE_LAUNCHERS:BOOL=TRUE
to the cmake command used to configure the project.
#]=======================================================================]
if(NOT DEFINED CTEST_USE_LAUNCHERS AND DEFINED ENV{CTEST_USE_LAUNCHERS_DEFAULT})
set(CTEST_USE_LAUNCHERS "$ENV{CTEST_USE_LAUNCHERS_DEFAULT}"

View File

@@ -1,41 +1,42 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckCXXSymbolExists
# --------------------
#
# Check if a symbol exists as a function, variable, or macro in C++
#
# .. code-block:: cmake
#
# CHECK_CXX_SYMBOL_EXISTS(<symbol> <files> <variable>)
#
# Check that the ``<symbol>`` is available after including given header
# ``<files>`` and store the result in a ``<variable>``. Specify the list of
# files in one argument as a semicolon-separated list.
# CHECK_CXX_SYMBOL_EXISTS() can be used to check in C++ files, as
# opposed to CHECK_SYMBOL_EXISTS(), which works only for C.
#
# If the header files define the symbol as a macro it is considered
# available and assumed to work. If the header files declare the symbol
# as a function or variable then the symbol must also be available for
# linking. If the symbol is a type or enum value it will not be
# recognized (consider using CheckTypeSize or CheckCSourceCompiles).
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ``CMAKE_REQUIRED_FLAGS``
# string of compile command line flags
# ``CMAKE_REQUIRED_DEFINITIONS``
# list of macros to define (-DFOO=bar)
# ``CMAKE_REQUIRED_INCLUDES``
# list of include directories
# ``CMAKE_REQUIRED_LIBRARIES``
# list of libraries to link
# ``CMAKE_REQUIRED_QUIET``
# execute quietly without messages
#[=======================================================================[.rst:
CheckCXXSymbolExists
--------------------
Check if a symbol exists as a function, variable, or macro in C++
.. code-block:: cmake
CHECK_CXX_SYMBOL_EXISTS(<symbol> <files> <variable>)
Check that the ``<symbol>`` is available after including given header
``<files>`` and store the result in a ``<variable>``. Specify the list of
files in one argument as a semicolon-separated list.
CHECK_CXX_SYMBOL_EXISTS() can be used to check in C++ files, as
opposed to CHECK_SYMBOL_EXISTS(), which works only for C.
If the header files define the symbol as a macro it is considered
available and assumed to work. If the header files declare the symbol
as a function or variable then the symbol must also be available for
linking. If the symbol is a type or enum value it will not be
recognized (consider using CheckTypeSize or CheckCSourceCompiles).
The following variables may be set before calling this macro to modify
the way the check is run:
``CMAKE_REQUIRED_FLAGS``
string of compile command line flags
``CMAKE_REQUIRED_DEFINITIONS``
list of macros to define (-DFOO=bar)
``CMAKE_REQUIRED_INCLUDES``
list of include directories
``CMAKE_REQUIRED_LIBRARIES``
list of libraries to link
``CMAKE_REQUIRED_QUIET``
execute quietly without messages
#]=======================================================================]
include_guard(GLOBAL)
include(CheckSymbolExists)

View File

@@ -1,28 +1,29 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckFortranFunctionExists
# --------------------------
#
# :command:`Macro <macro>` which checks if a Fortran function exists.
#
# .. code-block:: cmake
#
# CHECK_FORTRAN_FUNCTION_EXISTS(<function> <result>)
#
# where
#
# ``<function>``
# the name of the Fortran function
# ``<result>``
# variable to store the result; will be created as an internal cache variable.
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ``CMAKE_REQUIRED_LIBRARIES``
# list of libraries to link
#[=======================================================================[.rst:
CheckFortranFunctionExists
--------------------------
:command:`Macro <macro>` which checks if a Fortran function exists.
.. code-block:: cmake
CHECK_FORTRAN_FUNCTION_EXISTS(<function> <result>)
where
``<function>``
the name of the Fortran function
``<result>``
variable to store the result; will be created as an internal cache variable.
The following variables may be set before calling this macro to modify
the way the check is run:
``CMAKE_REQUIRED_LIBRARIES``
list of libraries to link
#]=======================================================================]
include_guard(GLOBAL)

View File

@@ -1,47 +1,48 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckFunctionExists
# -------------------
#
# Check if a C function can be linked
#
# .. code-block:: cmake
#
# check_function_exists(<function> <variable>)
#
# Checks that the ``<function>`` is provided by libraries on the system and store
# the result in a ``<variable>``, which will be created as an internal
# cache variable.
#
# The following variables may be set before calling this macro to modify the
# way the check is run:
#
# ``CMAKE_REQUIRED_FLAGS``
# string of compile command line flags
# ``CMAKE_REQUIRED_DEFINITIONS``
# list of macros to define (-DFOO=bar)
# ``CMAKE_REQUIRED_INCLUDES``
# list of include directories
# ``CMAKE_REQUIRED_LIBRARIES``
# list of libraries to link
# ``CMAKE_REQUIRED_QUIET``
# execute quietly without messages
#
# .. note::
#
# Prefer using :Module:`CheckSymbolExists` instead of this module,
# for the following reasons:
#
# * ``check_function_exists()`` can't detect functions that are inlined
# in headers or specified as a macro.
#
# * ``check_function_exists()`` can't detect anything in the 32-bit
# versions of the Win32 API, because of a mismatch in calling conventions.
#
# * ``check_function_exists()`` only verifies linking, it does not verify
# that the function is declared in system headers.
#[=======================================================================[.rst:
CheckFunctionExists
-------------------
Check if a C function can be linked
.. code-block:: cmake
check_function_exists(<function> <variable>)
Checks that the ``<function>`` is provided by libraries on the system and store
the result in a ``<variable>``, which will be created as an internal
cache variable.
The following variables may be set before calling this macro to modify the
way the check is run:
``CMAKE_REQUIRED_FLAGS``
string of compile command line flags
``CMAKE_REQUIRED_DEFINITIONS``
list of macros to define (-DFOO=bar)
``CMAKE_REQUIRED_INCLUDES``
list of include directories
``CMAKE_REQUIRED_LIBRARIES``
list of libraries to link
``CMAKE_REQUIRED_QUIET``
execute quietly without messages
.. note::
Prefer using :Module:`CheckSymbolExists` instead of this module,
for the following reasons:
* ``check_function_exists()`` can't detect functions that are inlined
in headers or specified as a macro.
* ``check_function_exists()`` can't detect anything in the 32-bit
versions of the Win32 API, because of a mismatch in calling conventions.
* ``check_function_exists()`` only verifies linking, it does not verify
that the function is declared in system headers.
#]=======================================================================]
include_guard(GLOBAL)

View File

@@ -1,40 +1,41 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckIncludeFile
# ----------------
#
# Provides a macro to check if a header file can be included in ``C``.
#
# .. command:: CHECK_INCLUDE_FILE
#
# ::
#
# CHECK_INCLUDE_FILE(<include> <variable> [<flags>])
#
# Check if the given ``<include>`` file may be included in a ``C``
# source file and store the result in an internal cache entry named
# ``<variable>``. The optional third argument may be used to add
# compilation flags to the check (or use ``CMAKE_REQUIRED_FLAGS`` below).
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ``CMAKE_REQUIRED_FLAGS``
# string of compile command line flags
# ``CMAKE_REQUIRED_DEFINITIONS``
# list of macros to define (-DFOO=bar)
# ``CMAKE_REQUIRED_INCLUDES``
# list of include directories
# ``CMAKE_REQUIRED_LIBRARIES``
# A list of libraries to link. See policy :policy:`CMP0075`.
# ``CMAKE_REQUIRED_QUIET``
# execute quietly without messages
#
# See the :module:`CheckIncludeFiles` module to check for multiple headers
# at once. See the :module:`CheckIncludeFileCXX` module to check for headers
# using the ``CXX`` language.
#[=======================================================================[.rst:
CheckIncludeFile
----------------
Provides a macro to check if a header file can be included in ``C``.
.. command:: CHECK_INCLUDE_FILE
::
CHECK_INCLUDE_FILE(<include> <variable> [<flags>])
Check if the given ``<include>`` file may be included in a ``C``
source file and store the result in an internal cache entry named
``<variable>``. The optional third argument may be used to add
compilation flags to the check (or use ``CMAKE_REQUIRED_FLAGS`` below).
The following variables may be set before calling this macro to modify
the way the check is run:
``CMAKE_REQUIRED_FLAGS``
string of compile command line flags
``CMAKE_REQUIRED_DEFINITIONS``
list of macros to define (-DFOO=bar)
``CMAKE_REQUIRED_INCLUDES``
list of include directories
``CMAKE_REQUIRED_LIBRARIES``
A list of libraries to link. See policy :policy:`CMP0075`.
``CMAKE_REQUIRED_QUIET``
execute quietly without messages
See the :module:`CheckIncludeFiles` module to check for multiple headers
at once. See the :module:`CheckIncludeFileCXX` module to check for headers
using the ``CXX`` language.
#]=======================================================================]
include_guard(GLOBAL)

View File

@@ -1,39 +1,40 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckIncludeFileCXX
# -------------------
#
# Provides a macro to check if a header file can be included in ``CXX``.
#
# .. command:: CHECK_INCLUDE_FILE_CXX
#
# ::
#
# CHECK_INCLUDE_FILE_CXX(<include> <variable> [<flags>])
#
# Check if the given ``<include>`` file may be included in a ``CXX``
# source file and store the result in an internal cache entry named
# ``<variable>``. The optional third argument may be used to add
# compilation flags to the check (or use ``CMAKE_REQUIRED_FLAGS`` below).
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ``CMAKE_REQUIRED_FLAGS``
# string of compile command line flags
# ``CMAKE_REQUIRED_DEFINITIONS``
# list of macros to define (-DFOO=bar)
# ``CMAKE_REQUIRED_INCLUDES``
# list of include directories
# ``CMAKE_REQUIRED_LIBRARIES``
# A list of libraries to link. See policy :policy:`CMP0075`.
# ``CMAKE_REQUIRED_QUIET``
# execute quietly without messages
#
# See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFiles`
# to check for one or more ``C`` headers.
#[=======================================================================[.rst:
CheckIncludeFileCXX
-------------------
Provides a macro to check if a header file can be included in ``CXX``.
.. command:: CHECK_INCLUDE_FILE_CXX
::
CHECK_INCLUDE_FILE_CXX(<include> <variable> [<flags>])
Check if the given ``<include>`` file may be included in a ``CXX``
source file and store the result in an internal cache entry named
``<variable>``. The optional third argument may be used to add
compilation flags to the check (or use ``CMAKE_REQUIRED_FLAGS`` below).
The following variables may be set before calling this macro to modify
the way the check is run:
``CMAKE_REQUIRED_FLAGS``
string of compile command line flags
``CMAKE_REQUIRED_DEFINITIONS``
list of macros to define (-DFOO=bar)
``CMAKE_REQUIRED_INCLUDES``
list of include directories
``CMAKE_REQUIRED_LIBRARIES``
A list of libraries to link. See policy :policy:`CMP0075`.
``CMAKE_REQUIRED_QUIET``
execute quietly without messages
See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFiles`
to check for one or more ``C`` headers.
#]=======================================================================]
include_guard(GLOBAL)

View File

@@ -1,45 +1,46 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckIncludeFiles
# -----------------
#
# Provides a macro to check if a list of one or more header files can
# be included together.
#
# .. command:: CHECK_INCLUDE_FILES
#
# ::
#
# CHECK_INCLUDE_FILES("<includes>" <variable> [LANGUAGE <language>])
#
# Check if the given ``<includes>`` list may be included together
# in a source file and store the result in an internal cache
# entry named ``<variable>``. Specify the ``<includes>`` argument
# as a :ref:`;-list <CMake Language Lists>` of header file names.
#
# If LANGUAGE is set, the specified compiler will be used to perform the
# check. Acceptable values are ``C`` and ``CXX``. If not set, the C compiler
# will be used if enabled. If the C compiler is not enabled, the C++
# compiler will be used if enabled.
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ``CMAKE_REQUIRED_FLAGS``
# string of compile command line flags
# ``CMAKE_REQUIRED_DEFINITIONS``
# list of macros to define (-DFOO=bar)
# ``CMAKE_REQUIRED_INCLUDES``
# list of include directories
# ``CMAKE_REQUIRED_LIBRARIES``
# A list of libraries to link. See policy :policy:`CMP0075`.
# ``CMAKE_REQUIRED_QUIET``
# execute quietly without messages
#
# See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFileCXX`
# to check for a single header file in ``C`` or ``CXX`` languages.
#[=======================================================================[.rst:
CheckIncludeFiles
-----------------
Provides a macro to check if a list of one or more header files can
be included together.
.. command:: CHECK_INCLUDE_FILES
::
CHECK_INCLUDE_FILES("<includes>" <variable> [LANGUAGE <language>])
Check if the given ``<includes>`` list may be included together
in a source file and store the result in an internal cache
entry named ``<variable>``. Specify the ``<includes>`` argument
as a :ref:`;-list <CMake Language Lists>` of header file names.
If LANGUAGE is set, the specified compiler will be used to perform the
check. Acceptable values are ``C`` and ``CXX``. If not set, the C compiler
will be used if enabled. If the C compiler is not enabled, the C++
compiler will be used if enabled.
The following variables may be set before calling this macro to modify
the way the check is run:
``CMAKE_REQUIRED_FLAGS``
string of compile command line flags
``CMAKE_REQUIRED_DEFINITIONS``
list of macros to define (-DFOO=bar)
``CMAKE_REQUIRED_INCLUDES``
list of include directories
``CMAKE_REQUIRED_LIBRARIES``
A list of libraries to link. See policy :policy:`CMP0075`.
``CMAKE_REQUIRED_QUIET``
execute quietly without messages
See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFileCXX`
to check for a single header file in ``C`` or ``CXX`` languages.
#]=======================================================================]
include_guard(GLOBAL)

View File

@@ -1,35 +1,36 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckLanguage
# -------------
#
# Check if a language can be enabled
#
# Usage:
#
# ::
#
# check_language(<lang>)
#
# where <lang> is a language that may be passed to enable_language()
# such as "Fortran". If CMAKE_<lang>_COMPILER is already defined the
# check does nothing. Otherwise it tries enabling the language in a
# test project. The result is cached in CMAKE_<lang>_COMPILER as the
# compiler that was found, or NOTFOUND if the language cannot be
# enabled.
#
# Example:
#
# ::
#
# check_language(Fortran)
# if(CMAKE_Fortran_COMPILER)
# enable_language(Fortran)
# else()
# message(STATUS "No Fortran support")
# endif()
#[=======================================================================[.rst:
CheckLanguage
-------------
Check if a language can be enabled
Usage:
::
check_language(<lang>)
where <lang> is a language that may be passed to enable_language()
such as "Fortran". If CMAKE_<lang>_COMPILER is already defined the
check does nothing. Otherwise it tries enabling the language in a
test project. The result is cached in CMAKE_<lang>_COMPILER as the
compiler that was found, or NOTFOUND if the language cannot be
enabled.
Example:
::
check_language(Fortran)
if(CMAKE_Fortran_COMPILER)
enable_language(Fortran)
else()
message(STATUS "No Fortran support")
endif()
#]=======================================================================]
include_guard(GLOBAL)

View File

@@ -1,33 +1,34 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckLibraryExists
# ------------------
#
# Check if the function exists.
#
# CHECK_LIBRARY_EXISTS (LIBRARY FUNCTION LOCATION VARIABLE)
#
# ::
#
# LIBRARY - the name of the library you are looking for
# FUNCTION - the name of the function
# LOCATION - location where the library should be found
# VARIABLE - variable to store the result
# Will be created as an internal cache variable.
#
#
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ::
#
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
# CMAKE_REQUIRED_QUIET = execute quietly without messages
#[=======================================================================[.rst:
CheckLibraryExists
------------------
Check if the function exists.
CHECK_LIBRARY_EXISTS (LIBRARY FUNCTION LOCATION VARIABLE)
::
LIBRARY - the name of the library you are looking for
FUNCTION - the name of the function
LOCATION - location where the library should be found
VARIABLE - variable to store the result
Will be created as an internal cache variable.
The following variables may be set before calling this macro to modify
the way the check is run:
::
CMAKE_REQUIRED_FLAGS = string of compile command line flags
CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
CMAKE_REQUIRED_LIBRARIES = list of libraries to link
CMAKE_REQUIRED_QUIET = execute quietly without messages
#]=======================================================================]
include_guard(GLOBAL)

View File

@@ -1,43 +1,44 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckPrototypeDefinition
# ------------------------
#
# Check if the prototype we expect is correct.
#
# check_prototype_definition(FUNCTION PROTOTYPE RETURN HEADER VARIABLE)
#
# ::
#
# FUNCTION - The name of the function (used to check if prototype exists)
# PROTOTYPE- The prototype to check.
# RETURN - The return value of the function.
# HEADER - The header files required.
# VARIABLE - The variable to store the result.
# Will be created as an internal cache variable.
#
# Example:
#
# ::
#
# check_prototype_definition(getpwent_r
# "struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)"
# "NULL"
# "unistd.h;pwd.h"
# SOLARIS_GETPWENT_R)
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ::
#
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
# CMAKE_REQUIRED_INCLUDES = list of include directories
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
# CMAKE_REQUIRED_QUIET = execute quietly without messages
#[=======================================================================[.rst:
CheckPrototypeDefinition
------------------------
Check if the prototype we expect is correct.
check_prototype_definition(FUNCTION PROTOTYPE RETURN HEADER VARIABLE)
::
FUNCTION - The name of the function (used to check if prototype exists)
PROTOTYPE- The prototype to check.
RETURN - The return value of the function.
HEADER - The header files required.
VARIABLE - The variable to store the result.
Will be created as an internal cache variable.
Example:
::
check_prototype_definition(getpwent_r
"struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)"
"NULL"
"unistd.h;pwd.h"
SOLARIS_GETPWENT_R)
The following variables may be set before calling this macro to modify
the way the check is run:
::
CMAKE_REQUIRED_FLAGS = string of compile command line flags
CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
CMAKE_REQUIRED_INCLUDES = list of include directories
CMAKE_REQUIRED_LIBRARIES = list of libraries to link
CMAKE_REQUIRED_QUIET = execute quietly without messages
#]=======================================================================]
#

View File

@@ -1,42 +1,43 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckStructHasMember
# --------------------
#
# Check if the given struct or class has the specified member variable
#
# ::
#
# CHECK_STRUCT_HAS_MEMBER(<struct> <member> <header> <variable>
# [LANGUAGE <language>])
#
# ::
#
# <struct> - the name of the struct or class you are interested in
# <member> - the member which existence you want to check
# <header> - the header(s) where the prototype should be declared
# <variable> - variable to store the result
# <language> - the compiler to use (C or CXX)
#
#
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ::
#
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
# CMAKE_REQUIRED_INCLUDES = list of include directories
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
# CMAKE_REQUIRED_QUIET = execute quietly without messages
#
#
#
# Example: CHECK_STRUCT_HAS_MEMBER("struct timeval" tv_sec sys/select.h
# HAVE_TIMEVAL_TV_SEC LANGUAGE C)
#[=======================================================================[.rst:
CheckStructHasMember
--------------------
Check if the given struct or class has the specified member variable
::
CHECK_STRUCT_HAS_MEMBER(<struct> <member> <header> <variable>
[LANGUAGE <language>])
::
<struct> - the name of the struct or class you are interested in
<member> - the member which existence you want to check
<header> - the header(s) where the prototype should be declared
<variable> - variable to store the result
<language> - the compiler to use (C or CXX)
The following variables may be set before calling this macro to modify
the way the check is run:
::
CMAKE_REQUIRED_FLAGS = string of compile command line flags
CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
CMAKE_REQUIRED_INCLUDES = list of include directories
CMAKE_REQUIRED_LIBRARIES = list of libraries to link
CMAKE_REQUIRED_QUIET = execute quietly without messages
Example: CHECK_STRUCT_HAS_MEMBER("struct timeval" tv_sec sys/select.h
HAVE_TIMEVAL_TV_SEC LANGUAGE C)
#]=======================================================================]
include_guard(GLOBAL)
include(CheckCSourceCompiles)

View File

@@ -1,72 +1,73 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckTypeSize
# -------------
#
# Check sizeof a type
#
# ::
#
# CHECK_TYPE_SIZE(TYPE VARIABLE [BUILTIN_TYPES_ONLY]
# [LANGUAGE <language>])
#
# Check if the type exists and determine its size. On return,
# "HAVE_${VARIABLE}" holds the existence of the type, and "${VARIABLE}"
# holds one of the following:
#
# ::
#
# <size> = type has non-zero size <size>
# "0" = type has arch-dependent size (see below)
# "" = type does not exist
#
# Both ``HAVE_${VARIABLE}`` and ``${VARIABLE}`` will be created as internal
# cache variables.
#
# Furthermore, the variable "${VARIABLE}_CODE" holds C preprocessor code
# to define the macro "${VARIABLE}" to the size of the type, or leave
# the macro undefined if the type does not exist.
#
# The variable "${VARIABLE}" may be "0" when CMAKE_OSX_ARCHITECTURES has
# multiple architectures for building OS X universal binaries. This
# indicates that the type size varies across architectures. In this
# case "${VARIABLE}_CODE" contains C preprocessor tests mapping from
# each architecture macro to the corresponding type size. The list of
# architecture macros is stored in "${VARIABLE}_KEYS", and the value for
# each key is stored in "${VARIABLE}-${KEY}".
#
# If the BUILTIN_TYPES_ONLY option is not given, the macro checks for
# headers <sys/types.h>, <stdint.h>, and <stddef.h>, and saves results
# in HAVE_SYS_TYPES_H, HAVE_STDINT_H, and HAVE_STDDEF_H. The type size
# check automatically includes the available headers, thus supporting
# checks of types defined in the headers.
#
# If LANGUAGE is set, the specified compiler will be used to perform the
# check. Acceptable values are C and CXX
#
# Despite the name of the macro you may use it to check the size of more
# complex expressions, too. To check e.g. for the size of a struct
# member you can do something like this:
#
# ::
#
# check_type_size("((struct something*)0)->member" SIZEOF_MEMBER)
#
#
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ::
#
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
# CMAKE_REQUIRED_INCLUDES = list of include directories
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
# CMAKE_REQUIRED_QUIET = execute quietly without messages
# CMAKE_EXTRA_INCLUDE_FILES = list of extra headers to include
#[=======================================================================[.rst:
CheckTypeSize
-------------
Check sizeof a type
::
CHECK_TYPE_SIZE(TYPE VARIABLE [BUILTIN_TYPES_ONLY]
[LANGUAGE <language>])
Check if the type exists and determine its size. On return,
"HAVE_${VARIABLE}" holds the existence of the type, and "${VARIABLE}"
holds one of the following:
::
<size> = type has non-zero size <size>
"0" = type has arch-dependent size (see below)
"" = type does not exist
Both ``HAVE_${VARIABLE}`` and ``${VARIABLE}`` will be created as internal
cache variables.
Furthermore, the variable "${VARIABLE}_CODE" holds C preprocessor code
to define the macro "${VARIABLE}" to the size of the type, or leave
the macro undefined if the type does not exist.
The variable "${VARIABLE}" may be "0" when CMAKE_OSX_ARCHITECTURES has
multiple architectures for building OS X universal binaries. This
indicates that the type size varies across architectures. In this
case "${VARIABLE}_CODE" contains C preprocessor tests mapping from
each architecture macro to the corresponding type size. The list of
architecture macros is stored in "${VARIABLE}_KEYS", and the value for
each key is stored in "${VARIABLE}-${KEY}".
If the BUILTIN_TYPES_ONLY option is not given, the macro checks for
headers <sys/types.h>, <stdint.h>, and <stddef.h>, and saves results
in HAVE_SYS_TYPES_H, HAVE_STDINT_H, and HAVE_STDDEF_H. The type size
check automatically includes the available headers, thus supporting
checks of types defined in the headers.
If LANGUAGE is set, the specified compiler will be used to perform the
check. Acceptable values are C and CXX
Despite the name of the macro you may use it to check the size of more
complex expressions, too. To check e.g. for the size of a struct
member you can do something like this:
::
check_type_size("((struct something*)0)->member" SIZEOF_MEMBER)
The following variables may be set before calling this macro to modify
the way the check is run:
::
CMAKE_REQUIRED_FLAGS = string of compile command line flags
CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
CMAKE_REQUIRED_INCLUDES = list of include directories
CMAKE_REQUIRED_LIBRARIES = list of libraries to link
CMAKE_REQUIRED_QUIET = execute quietly without messages
CMAKE_EXTRA_INCLUDE_FILES = list of extra headers to include
#]=======================================================================]
include(CheckIncludeFile)
include(CheckIncludeFileCXX)

View File

@@ -1,36 +1,37 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# CheckVariableExists
# -------------------
#
# Check if the variable exists.
#
# ::
#
# CHECK_VARIABLE_EXISTS(VAR VARIABLE)
#
#
#
# ::
#
# VAR - the name of the variable
# VARIABLE - variable to store the result
# Will be created as an internal cache variable.
#
#
# This macro is only for C variables.
#
# The following variables may be set before calling this macro to modify
# the way the check is run:
#
# ::
#
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
# CMAKE_REQUIRED_QUIET = execute quietly without messages
#[=======================================================================[.rst:
CheckVariableExists
-------------------
Check if the variable exists.
::
CHECK_VARIABLE_EXISTS(VAR VARIABLE)
::
VAR - the name of the variable
VARIABLE - variable to store the result
Will be created as an internal cache variable.
This macro is only for C variables.
The following variables may be set before calling this macro to modify
the way the check is run:
::
CMAKE_REQUIRED_FLAGS = string of compile command line flags
CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
CMAKE_REQUIRED_LIBRARIES = list of libraries to link
CMAKE_REQUIRED_QUIET = execute quietly without messages
#]=======================================================================]
include_guard(GLOBAL)

View File

@@ -1,27 +1,28 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# Dart
# ----
#
# Configure a project for testing with CTest or old Dart Tcl Client
#
# This file is the backwards-compatibility version of the CTest module.
# It supports using the old Dart 1 Tcl client for driving dashboard
# submissions as well as testing with CTest. This module should be
# included in the CMakeLists.txt file at the top of a project. Typical
# usage:
#
# ::
#
# include(Dart)
# if(BUILD_TESTING)
# # ... testing related CMake code ...
# endif()
#
# The BUILD_TESTING option is created by the Dart module to determine
# whether testing support should be enabled. The default is ON.
#[=======================================================================[.rst:
Dart
----
Configure a project for testing with CTest or old Dart Tcl Client
This file is the backwards-compatibility version of the CTest module.
It supports using the old Dart 1 Tcl client for driving dashboard
submissions as well as testing with CTest. This module should be
included in the CMakeLists.txt file at the top of a project. Typical
usage:
::
include(Dart)
if(BUILD_TESTING)
# ... testing related CMake code ...
endif()
The BUILD_TESTING option is created by the Dart module to determine
whether testing support should be enabled. The default is ON.
#]=======================================================================]
# This file configures a project to use the Dart testing/dashboard process.
# It is broken into 3 sections.

View File

@@ -1,14 +1,15 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# Documentation
# -------------
#
# DocumentationVTK.cmake
#
# This file provides support for the VTK documentation framework. It
# relies on several tools (Doxygen, Perl, etc).
#[=======================================================================[.rst:
Documentation
-------------
DocumentationVTK.cmake
This file provides support for the VTK documentation framework. It
relies on several tools (Doxygen, Perl, etc).
#]=======================================================================]
#
# Build the documentation ?

View File

@@ -1,44 +1,45 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindALSA
# --------
#
# Find alsa
#
# Find the alsa libraries (asound)
#
# IMPORTED Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines :prop_tgt:`IMPORTED` target ``ALSA::ALSA``, if
# ALSA has been found.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module defines the following variables:
#
# ``ALSA_FOUND``
# True if ALSA_INCLUDE_DIR & ALSA_LIBRARY are found
#
# ``ALSA_LIBRARIES``
# List of libraries when using ALSA.
#
# ``ALSA_INCLUDE_DIRS``
# Where to find the ALSA headers.
#
# Cache variables
# ^^^^^^^^^^^^^^^
#
# The following cache variables may also be set:
#
# ``ALSA_INCLUDE_DIR``
# the ALSA include directory
#
# ``ALSA_LIBRARY``
# the absolute path of the asound library
#[=======================================================================[.rst:
FindALSA
--------
Find alsa
Find the alsa libraries (asound)
IMPORTED Targets
^^^^^^^^^^^^^^^^
This module defines :prop_tgt:`IMPORTED` target ``ALSA::ALSA``, if
ALSA has been found.
Result Variables
^^^^^^^^^^^^^^^^
This module defines the following variables:
``ALSA_FOUND``
True if ALSA_INCLUDE_DIR & ALSA_LIBRARY are found
``ALSA_LIBRARIES``
List of libraries when using ALSA.
``ALSA_INCLUDE_DIRS``
Where to find the ALSA headers.
Cache variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``ALSA_INCLUDE_DIR``
the ALSA include directory
``ALSA_LIBRARY``
the absolute path of the asound library
#]=======================================================================]
find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h
DOC "The ALSA (asound) include directory"

View File

@@ -1,21 +1,22 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindASPELL
# ----------
#
# Try to find ASPELL
#
# Once done this will define
#
# ::
#
# ASPELL_FOUND - system has ASPELL
# ASPELL_EXECUTABLE - the ASPELL executable
# ASPELL_INCLUDE_DIR - the ASPELL include directory
# ASPELL_LIBRARIES - The libraries needed to use ASPELL
# ASPELL_DEFINITIONS - Compiler switches required for using ASPELL
#[=======================================================================[.rst:
FindASPELL
----------
Try to find ASPELL
Once done this will define
::
ASPELL_FOUND - system has ASPELL
ASPELL_EXECUTABLE - the ASPELL executable
ASPELL_INCLUDE_DIR - the ASPELL include directory
ASPELL_LIBRARIES - The libraries needed to use ASPELL
ASPELL_DEFINITIONS - Compiler switches required for using ASPELL
#]=======================================================================]
find_path(ASPELL_INCLUDE_DIR aspell.h )

View File

@@ -1,23 +1,24 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindAVIFile
# -----------
#
# Locate AVIFILE library and include paths
#
# AVIFILE (http://avifile.sourceforge.net/)is a set of libraries for
# i386 machines to use various AVI codecs. Support is limited beyond
# Linux. Windows provides native AVI support, and so doesn't need this
# library. This module defines
#
# ::
#
# AVIFILE_INCLUDE_DIR, where to find avifile.h , etc.
# AVIFILE_LIBRARIES, the libraries to link against
# AVIFILE_DEFINITIONS, definitions to use when compiling
# AVIFILE_FOUND, If false, don't try to use AVIFILE
#[=======================================================================[.rst:
FindAVIFile
-----------
Locate AVIFILE library and include paths
AVIFILE (http://avifile.sourceforge.net/)is a set of libraries for
i386 machines to use various AVI codecs. Support is limited beyond
Linux. Windows provides native AVI support, and so doesn't need this
library. This module defines
::
AVIFILE_INCLUDE_DIR, where to find avifile.h , etc.
AVIFILE_LIBRARIES, the libraries to link against
AVIFILE_DEFINITIONS, definitions to use when compiling
AVIFILE_FOUND, If false, don't try to use AVIFILE
#]=======================================================================]
if (UNIX)

View File

@@ -1,35 +1,36 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindArmadillo
# -------------
#
# Find Armadillo
#
# Find the Armadillo C++ library
#
# Using Armadillo:
#
# ::
#
# find_package(Armadillo REQUIRED)
# include_directories(${ARMADILLO_INCLUDE_DIRS})
# add_executable(foo foo.cc)
# target_link_libraries(foo ${ARMADILLO_LIBRARIES})
#
# This module sets the following variables:
#
# ::
#
# ARMADILLO_FOUND - set to true if the library is found
# ARMADILLO_INCLUDE_DIRS - list of required include directories
# ARMADILLO_LIBRARIES - list of libraries to be linked
# ARMADILLO_VERSION_MAJOR - major version number
# ARMADILLO_VERSION_MINOR - minor version number
# ARMADILLO_VERSION_PATCH - patch version number
# ARMADILLO_VERSION_STRING - version number as a string (ex: "1.0.4")
# ARMADILLO_VERSION_NAME - name of the version (ex: "Antipodean Antileech")
#[=======================================================================[.rst:
FindArmadillo
-------------
Find Armadillo
Find the Armadillo C++ library
Using Armadillo:
::
find_package(Armadillo REQUIRED)
include_directories(${ARMADILLO_INCLUDE_DIRS})
add_executable(foo foo.cc)
target_link_libraries(foo ${ARMADILLO_LIBRARIES})
This module sets the following variables:
::
ARMADILLO_FOUND - set to true if the library is found
ARMADILLO_INCLUDE_DIRS - list of required include directories
ARMADILLO_LIBRARIES - list of libraries to be linked
ARMADILLO_VERSION_MAJOR - major version number
ARMADILLO_VERSION_MINOR - minor version number
ARMADILLO_VERSION_PATCH - patch version number
ARMADILLO_VERSION_STRING - version number as a string (ex: "1.0.4")
ARMADILLO_VERSION_NAME - name of the version (ex: "Antipodean Antileech")
#]=======================================================================]
# UNIX paths are standard, no need to write.
find_library(ARMADILLO_LIBRARY

View File

@@ -1,85 +1,86 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindBISON
# ---------
#
# Find ``bison`` executable and provide a macro to generate custom build rules.
#
# The module defines the following variables:
#
# ``BISON_EXECUTABLE``
# path to the ``bison`` program
#
# ``BISON_VERSION``
# version of ``bison``
#
# ``BISON_FOUND``
# true if the program was found
#
# The minimum required version of ``bison`` can be specified using the
# standard CMake syntax, e.g. ``find_package(BISON 2.1.3)``.
#
# If ``bison`` is found, the module defines the macro::
#
# BISON_TARGET(<Name> <YaccInput> <CodeOutput>
# [COMPILE_FLAGS <flags>]
# [DEFINES_FILE <file>]
# [VERBOSE [<file>]]
# [REPORT_FILE <file>]
# )
#
# which will create a custom rule to generate a parser. ``<YaccInput>`` is
# the path to a yacc file. ``<CodeOutput>`` is the name of the source file
# generated by bison. A header file is also be generated, and contains
# the token list.
#
# The options are:
#
# ``COMPILE_FLAGS <flags>``
# Specify flags to be added to the ``bison`` command line.
#
# ``DEFINES_FILE <file>``
# Specify a non-default header ``<file>`` to be generated by ``bison``.
#
# ``VERBOSE [<file>]``
# Tell ``bison`` to write a report file of the grammar and parser.
# If ``<file>`` is given, it specifies path the report file is copied to.
# ``[<file>]`` is left for backward compatibility of this module.
# Use ``VERBOSE REPORT_FILE <file>``.
#
# ``REPORT_FILE <file>``
# Specify a non-default report ``<file>``, if generated.
#
# The macro defines the following variables:
#
# ``BISON_<Name>_DEFINED``
# true is the macro ran successfully
#
# ``BISON_<Name>_INPUT``
# The input source file, an alias for <YaccInput>
#
# ``BISON_<Name>_OUTPUT_SOURCE``
# The source file generated by bison
#
# ``BISON_<Name>_OUTPUT_HEADER``
# The header file generated by bison
#
# ``BISON_<Name>_OUTPUTS``
# All files generated by bison including the source, the header and the report
#
# ``BISON_<Name>_COMPILE_FLAGS``
# Options used in the ``bison`` command line
#
# Example usage:
#
# .. code-block:: cmake
#
# find_package(BISON)
# BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
# DEFINES_FILE ${CMAKE_CURRENT_BINARY_DIR}/parser.h)
# add_executable(Foo main.cpp ${BISON_MyParser_OUTPUTS})
#[=======================================================================[.rst:
FindBISON
---------
Find ``bison`` executable and provide a macro to generate custom build rules.
The module defines the following variables:
``BISON_EXECUTABLE``
path to the ``bison`` program
``BISON_VERSION``
version of ``bison``
``BISON_FOUND``
true if the program was found
The minimum required version of ``bison`` can be specified using the
standard CMake syntax, e.g. ``find_package(BISON 2.1.3)``.
If ``bison`` is found, the module defines the macro::
BISON_TARGET(<Name> <YaccInput> <CodeOutput>
[COMPILE_FLAGS <flags>]
[DEFINES_FILE <file>]
[VERBOSE [<file>]]
[REPORT_FILE <file>]
)
which will create a custom rule to generate a parser. ``<YaccInput>`` is
the path to a yacc file. ``<CodeOutput>`` is the name of the source file
generated by bison. A header file is also be generated, and contains
the token list.
The options are:
``COMPILE_FLAGS <flags>``
Specify flags to be added to the ``bison`` command line.
``DEFINES_FILE <file>``
Specify a non-default header ``<file>`` to be generated by ``bison``.
``VERBOSE [<file>]``
Tell ``bison`` to write a report file of the grammar and parser.
If ``<file>`` is given, it specifies path the report file is copied to.
``[<file>]`` is left for backward compatibility of this module.
Use ``VERBOSE REPORT_FILE <file>``.
``REPORT_FILE <file>``
Specify a non-default report ``<file>``, if generated.
The macro defines the following variables:
``BISON_<Name>_DEFINED``
true is the macro ran successfully
``BISON_<Name>_INPUT``
The input source file, an alias for <YaccInput>
``BISON_<Name>_OUTPUT_SOURCE``
The source file generated by bison
``BISON_<Name>_OUTPUT_HEADER``
The header file generated by bison
``BISON_<Name>_OUTPUTS``
All files generated by bison including the source, the header and the report
``BISON_<Name>_COMPILE_FLAGS``
Options used in the ``bison`` command line
Example usage:
.. code-block:: cmake
find_package(BISON)
BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
DEFINES_FILE ${CMAKE_CURRENT_BINARY_DIR}/parser.h)
add_executable(Foo main.cpp ${BISON_MyParser_OUTPUTS})
#]=======================================================================]
find_program(BISON_EXECUTABLE NAMES bison win_bison DOC "path to the bison executable")
mark_as_advanced(BISON_EXECUTABLE)

View File

@@ -1,74 +1,75 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindBLAS
# --------
#
# Find BLAS library
#
# This module finds an installed fortran library that implements the
# BLAS linear-algebra interface (see http://www.netlib.org/blas/). The
# list of libraries searched for is taken from the autoconf macro file,
# acx_blas.m4 (distributed at
# http://ac-archive.sourceforge.net/ac-archive/acx_blas.html).
#
# This module sets the following variables:
#
# ::
#
# BLAS_FOUND - set to true if a library implementing the BLAS interface
# is found
# BLAS_LINKER_FLAGS - uncached list of required linker flags (excluding -l
# and -L).
# BLAS_LIBRARIES - uncached list of libraries (using full path name) to
# link against to use BLAS (may be empty if compiler implicitly links
# BLAS)
# BLAS95_LIBRARIES - uncached list of libraries (using full path name)
# to link against to use BLAS95 interface
# BLAS95_FOUND - set to true if a library implementing the BLAS f95 interface
# is found
#
# The following variables can be used to control this module:
#
# ::
#
# BLA_STATIC if set on this determines what kind of linkage we do (static)
# BLA_VENDOR if set checks only the specified vendor, if not set checks
# all the possibilities
# BLA_F95 if set on tries to find the f95 interfaces for BLAS/LAPACK
# BLA_PREFER_PKGCONFIG if set pkg-config will be used to search for a BLAS
# library first and if one is found that is preferred
#
# List of vendors (BLA_VENDOR) valid in this module:
#
# * Goto
# * OpenBLAS
# * FLAME
# * ATLAS PhiPACK
# * CXML
# * DXML
# * SunPerf
# * SCSL
# * SGIMATH
# * IBMESSL
# * Intel10_32 (intel mkl v10 32 bit)
# * Intel10_64lp (intel mkl v10+ 64 bit, threaded code, lp64 model)
# * Intel10_64lp_seq (intel mkl v10+ 64 bit, sequential code, lp64 model)
# * Intel10_64ilp (intel mkl v10+ 64 bit, threaded code, ilp64 model)
# * Intel10_64ilp_seq (intel mkl v10+ 64 bit, sequential code, ilp64 model)
# * Intel (older versions of mkl 32 and 64 bit)
# * ACML
# * ACML_MP
# * ACML_GPU
# * Apple
# * NAS
# * Generic
#
# .. note::
#
# C/CXX should be enabled to use Intel mkl
#
#[=======================================================================[.rst:
FindBLAS
--------
Find BLAS library
This module finds an installed fortran library that implements the
BLAS linear-algebra interface (see http://www.netlib.org/blas/). The
list of libraries searched for is taken from the autoconf macro file,
acx_blas.m4 (distributed at
http://ac-archive.sourceforge.net/ac-archive/acx_blas.html).
This module sets the following variables:
::
BLAS_FOUND - set to true if a library implementing the BLAS interface
is found
BLAS_LINKER_FLAGS - uncached list of required linker flags (excluding -l
and -L).
BLAS_LIBRARIES - uncached list of libraries (using full path name) to
link against to use BLAS (may be empty if compiler implicitly links
BLAS)
BLAS95_LIBRARIES - uncached list of libraries (using full path name)
to link against to use BLAS95 interface
BLAS95_FOUND - set to true if a library implementing the BLAS f95 interface
is found
The following variables can be used to control this module:
::
BLA_STATIC if set on this determines what kind of linkage we do (static)
BLA_VENDOR if set checks only the specified vendor, if not set checks
all the possibilities
BLA_F95 if set on tries to find the f95 interfaces for BLAS/LAPACK
BLA_PREFER_PKGCONFIG if set pkg-config will be used to search for a BLAS
library first and if one is found that is preferred
List of vendors (BLA_VENDOR) valid in this module:
* Goto
* OpenBLAS
* FLAME
* ATLAS PhiPACK
* CXML
* DXML
* SunPerf
* SCSL
* SGIMATH
* IBMESSL
* Intel10_32 (intel mkl v10 32 bit)
* Intel10_64lp (intel mkl v10+ 64 bit, threaded code, lp64 model)
* Intel10_64lp_seq (intel mkl v10+ 64 bit, sequential code, lp64 model)
* Intel10_64ilp (intel mkl v10+ 64 bit, threaded code, ilp64 model)
* Intel10_64ilp_seq (intel mkl v10+ 64 bit, sequential code, ilp64 model)
* Intel (older versions of mkl 32 and 64 bit)
* ACML
* ACML_MP
* ACML_GPU
* Apple
* NAS
* Generic
.. note::
C/CXX should be enabled to use Intel mkl
#]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/CheckFunctionExists.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)

View File

@@ -1,41 +1,42 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindBZip2
# ---------
#
# Try to find BZip2
#
# IMPORTED Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines :prop_tgt:`IMPORTED` target ``BZip2::BZip2``, if
# BZip2 has been found.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module defines the following variables:
#
# ``BZIP2_FOUND``
# system has BZip2
# ``BZIP2_INCLUDE_DIRS``
# the BZip2 include directories
# ``BZIP2_LIBRARIES``
# Link these to use BZip2
# ``BZIP2_NEED_PREFIX``
# this is set if the functions are prefixed with ``BZ2_``
# ``BZIP2_VERSION_STRING``
# the version of BZip2 found
#
# Cache variables
# ^^^^^^^^^^^^^^^
#
# The following cache variables may also be set:
#
# ``BZIP2_INCLUDE_DIR``
# the BZip2 include directory
#[=======================================================================[.rst:
FindBZip2
---------
Try to find BZip2
IMPORTED Targets
^^^^^^^^^^^^^^^^
This module defines :prop_tgt:`IMPORTED` target ``BZip2::BZip2``, if
BZip2 has been found.
Result Variables
^^^^^^^^^^^^^^^^
This module defines the following variables:
``BZIP2_FOUND``
system has BZip2
``BZIP2_INCLUDE_DIRS``
the BZip2 include directories
``BZIP2_LIBRARIES``
Link these to use BZip2
``BZIP2_NEED_PREFIX``
this is set if the functions are prefixed with ``BZ2_``
``BZIP2_VERSION_STRING``
the version of BZip2 found
Cache variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``BZIP2_INCLUDE_DIR``
the BZip2 include directory
#]=======================================================================]
set(_BZIP2_PATHS PATHS
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Bzip2;InstallPath]"

View File

@@ -1,41 +1,42 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindBacktrace
# -------------
#
# Find provider for backtrace(3).
#
# Checks if OS supports backtrace(3) via either libc or custom library.
# This module defines the following variables:
#
# ``Backtrace_HEADER``
# The header file needed for backtrace(3). Cached.
# Could be forcibly set by user.
# ``Backtrace_INCLUDE_DIRS``
# The include directories needed to use backtrace(3) header.
# ``Backtrace_LIBRARIES``
# The libraries (linker flags) needed to use backtrace(3), if any.
# ``Backtrace_FOUND``
# Is set if and only if backtrace(3) support detected.
#
# The following cache variables are also available to set or use:
#
# ``Backtrace_LIBRARY``
# The external library providing backtrace, if any.
# ``Backtrace_INCLUDE_DIR``
# The directory holding the backtrace(3) header.
#
# Typical usage is to generate of header file using configure_file() with the
# contents like the following::
#
# #cmakedefine01 Backtrace_FOUND
# #if Backtrace_FOUND
# # include <${Backtrace_HEADER}>
# #endif
#
# And then reference that generated header file in actual source.
#[=======================================================================[.rst:
FindBacktrace
-------------
Find provider for backtrace(3).
Checks if OS supports backtrace(3) via either libc or custom library.
This module defines the following variables:
``Backtrace_HEADER``
The header file needed for backtrace(3). Cached.
Could be forcibly set by user.
``Backtrace_INCLUDE_DIRS``
The include directories needed to use backtrace(3) header.
``Backtrace_LIBRARIES``
The libraries (linker flags) needed to use backtrace(3), if any.
``Backtrace_FOUND``
Is set if and only if backtrace(3) support detected.
The following cache variables are also available to set or use:
``Backtrace_LIBRARY``
The external library providing backtrace, if any.
``Backtrace_INCLUDE_DIR``
The directory holding the backtrace(3) header.
Typical usage is to generate of header file using configure_file() with the
contents like the following::
#cmakedefine01 Backtrace_FOUND
#if Backtrace_FOUND
# include <${Backtrace_HEADER}>
#endif
And then reference that generated header file in actual source.
#]=======================================================================]
include(CMakePushCheckState)
include(CheckSymbolExists)

View File

@@ -1,237 +1,238 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindBoost
# ---------
#
# Find Boost include dirs and libraries
#
# Use this module by invoking find_package with the form::
#
# find_package(Boost
# [version] [EXACT] # Minimum or EXACT version e.g. 1.67.0
# [REQUIRED] # Fail with error if Boost is not found
# [COMPONENTS <libs>...] # Boost libraries by their canonical name
# # e.g. "date_time" for "libboost_date_time"
# [OPTIONAL_COMPONENTS <libs>...]
# # Optional Boost libraries by their canonical name)
# ) # e.g. "date_time" for "libboost_date_time"
#
# This module finds headers and requested component libraries OR a CMake
# package configuration file provided by a "Boost CMake" build. For the
# latter case skip to the "Boost CMake" section below. For the former
# case results are reported in variables::
#
# Boost_FOUND - True if headers and requested libraries were found
# Boost_INCLUDE_DIRS - Boost include directories
# Boost_LIBRARY_DIRS - Link directories for Boost libraries
# Boost_LIBRARIES - Boost component libraries to be linked
# Boost_<C>_FOUND - True if component <C> was found (<C> is upper-case)
# Boost_<C>_LIBRARY - Libraries to link for component <C> (may include
# target_link_libraries debug/optimized keywords)
# Boost_VERSION - BOOST_VERSION value from boost/version.hpp
# Boost_LIB_VERSION - Version string appended to library filenames
# Boost_MAJOR_VERSION - Boost major version number (X in X.y.z)
# Boost_MINOR_VERSION - Boost minor version number (Y in x.Y.z)
# Boost_SUBMINOR_VERSION - Boost subminor version number (Z in x.y.Z)
# Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows)
# - Pass to add_definitions() to have diagnostic
# information about Boost's automatic linking
# displayed during compilation
#
# Note that Boost Python components require a Python version suffix
# (Boost 1.67 and later), e.g. ``python36`` or ``python27`` for the
# versions built against Python 3.6 and 2.7, respectively. This also
# applies to additional components using Python including
# ``mpi_python`` and ``numpy``. Earlier Boost releases may use
# distribution-specific suffixes such as ``2``, ``3`` or ``2.7``.
# These may also be used as suffixes, but note that they are not
# portable.
#
# This module reads hints about search locations from variables::
#
# BOOST_ROOT - Preferred installation prefix
# (or BOOSTROOT)
# BOOST_INCLUDEDIR - Preferred include directory e.g. <prefix>/include
# BOOST_LIBRARYDIR - Preferred library directory e.g. <prefix>/lib
# Boost_NO_SYSTEM_PATHS - Set to ON to disable searching in locations not
# specified by these hint variables. Default is OFF.
# Boost_ADDITIONAL_VERSIONS
# - List of Boost versions not known to this module
# (Boost install locations may contain the version)
#
# and saves search results persistently in CMake cache entries::
#
# Boost_INCLUDE_DIR - Directory containing Boost headers
# Boost_LIBRARY_DIR_RELEASE - Directory containing release Boost libraries
# Boost_LIBRARY_DIR_DEBUG - Directory containing debug Boost libraries
# Boost_<C>_LIBRARY_DEBUG - Component <C> library debug variant
# Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant
#
# The following :prop_tgt:`IMPORTED` targets are also defined::
#
# Boost::boost - Target for header-only dependencies
# (Boost include directory)
# Boost::<C> - Target for specific component dependency
# (shared or static library); <C> is lower-
# case
# Boost::diagnostic_definitions - interface target to enable diagnostic
# information about Boost's automatic linking
# during compilation (adds BOOST_LIB_DIAGNOSTIC)
# Boost::disable_autolinking - interface target to disable automatic
# linking with MSVC (adds BOOST_ALL_NO_LIB)
# Boost::dynamic_linking - interface target to enable dynamic linking
# linking with MSVC (adds BOOST_ALL_DYN_LINK)
#
# Implicit dependencies such as Boost::filesystem requiring
# Boost::system will be automatically detected and satisfied, even
# if system is not specified when using find_package and if
# Boost::system is not added to target_link_libraries. If using
# Boost::thread, then Threads::Threads will also be added automatically.
#
# It is important to note that the imported targets behave differently
# than variables created by this module: multiple calls to
# find_package(Boost) in the same directory or sub-directories with
# different options (e.g. static or shared) will not override the
# values of the targets created by the first call.
#
# Users may set these hints or results as cache entries. Projects
# should not read these entries directly but instead use the above
# result variables. Note that some hint names start in upper-case
# "BOOST". One may specify these as environment variables if they are
# not specified as CMake variables or cache entries.
#
# This module first searches for the Boost header files using the above
# hint variables (excluding BOOST_LIBRARYDIR) and saves the result in
# Boost_INCLUDE_DIR. Then it searches for requested component libraries
# using the above hints (excluding BOOST_INCLUDEDIR and
# Boost_ADDITIONAL_VERSIONS), "lib" directories near Boost_INCLUDE_DIR,
# and the library name configuration settings below. It saves the
# library directories in Boost_LIBRARY_DIR_DEBUG and
# Boost_LIBRARY_DIR_RELEASE and individual library
# locations in Boost_<C>_LIBRARY_DEBUG and Boost_<C>_LIBRARY_RELEASE.
# When one changes settings used by previous searches in the same build
# tree (excluding environment variables) this module discards previous
# search results affected by the changes and searches again.
#
# Boost libraries come in many variants encoded in their file name.
# Users or projects may tell this module which variant to find by
# setting variables::
#
# Boost_USE_DEBUG_LIBS - Set to ON or OFF to specify whether to search
# and use the debug libraries. Default is ON.
# Boost_USE_RELEASE_LIBS - Set to ON or OFF to specify whether to search
# and use the release libraries. Default is ON.
# Boost_USE_MULTITHREADED - Set to OFF to use the non-multithreaded
# libraries ('mt' tag). Default is ON.
# Boost_USE_STATIC_LIBS - Set to ON to force the use of the static
# libraries. Default is OFF.
# Boost_USE_STATIC_RUNTIME - Set to ON or OFF to specify whether to use
# libraries linked statically to the C++ runtime
# ('s' tag). Default is platform dependent.
# Boost_USE_DEBUG_RUNTIME - Set to ON or OFF to specify whether to use
# libraries linked to the MS debug C++ runtime
# ('g' tag). Default is ON.
# Boost_USE_DEBUG_PYTHON - Set to ON to use libraries compiled with a
# debug Python build ('y' tag). Default is OFF.
# Boost_USE_STLPORT - Set to ON to use libraries compiled with
# STLPort ('p' tag). Default is OFF.
# Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS
# - Set to ON to use libraries compiled with
# STLPort deprecated "native iostreams"
# ('n' tag). Default is OFF.
# Boost_COMPILER - Set to the compiler-specific library suffix
# (e.g. "-gcc43"). Default is auto-computed
# for the C++ compiler in use. A list may be
# used if multiple compatible suffixes should
# be tested for, in decreasing order of
# preference.
# Boost_THREADAPI - Suffix for "thread" component library name,
# such as "pthread" or "win32". Names with
# and without this suffix will both be tried.
# Boost_NAMESPACE - Alternate namespace used to build boost with
# e.g. if set to "myboost", will search for
# myboost_thread instead of boost_thread.
#
# Other variables one may set to control this module are::
#
# Boost_DEBUG - Set to ON to enable debug output from FindBoost.
# Please enable this before filing any bug report.
# Boost_DETAILED_FAILURE_MSG
# - Set to ON to add detailed information to the
# failure message even when the REQUIRED option
# is not given to the find_package call.
# Boost_REALPATH - Set to ON to resolve symlinks for discovered
# libraries to assist with packaging. For example,
# the "system" component library may be resolved to
# "/usr/lib/libboost_system.so.1.67.0" instead of
# "/usr/lib/libboost_system.so". This does not
# affect linking and should not be enabled unless
# the user needs this information.
# Boost_LIBRARY_DIR - Default value for Boost_LIBRARY_DIR_RELEASE and
# Boost_LIBRARY_DIR_DEBUG.
#
# On Visual Studio and Borland compilers Boost headers request automatic
# linking to corresponding libraries. This requires matching libraries
# to be linked explicitly or available in the link library search path.
# In this case setting Boost_USE_STATIC_LIBS to OFF may not achieve
# dynamic linking. Boost automatic linking typically requests static
# libraries with a few exceptions (such as Boost.Python). Use::
#
# add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
#
# to ask Boost to report information about automatic linking requests.
#
# Example to find Boost headers only::
#
# find_package(Boost 1.36.0)
# if(Boost_FOUND)
# include_directories(${Boost_INCLUDE_DIRS})
# add_executable(foo foo.cc)
# endif()
#
# Example to find Boost libraries and use imported targets::
#
# find_package(Boost 1.56 REQUIRED COMPONENTS
# date_time filesystem iostreams)
# add_executable(foo foo.cc)
# target_link_libraries(foo Boost::date_time Boost::filesystem
# Boost::iostreams)
#
# Example to find Boost Python 3.6 libraries and use imported targets::
#
# find_package(Boost 1.67 REQUIRED COMPONENTS
# python36 numpy36)
# add_executable(foo foo.cc)
# target_link_libraries(foo Boost::python36 Boost::numpy36)
#
# Example to find Boost headers and some *static* (release only) libraries::
#
# set(Boost_USE_STATIC_LIBS ON) # only find static libs
# set(Boost_USE_DEBUG_LIBS OFF) # ignore debug libs and
# set(Boost_USE_RELEASE_LIBS ON) # only find release libs
# set(Boost_USE_MULTITHREADED ON)
# set(Boost_USE_STATIC_RUNTIME OFF)
# find_package(Boost 1.66.0 COMPONENTS date_time filesystem system ...)
# if(Boost_FOUND)
# include_directories(${Boost_INCLUDE_DIRS})
# add_executable(foo foo.cc)
# target_link_libraries(foo ${Boost_LIBRARIES})
# endif()
#
# Boost CMake
# ^^^^^^^^^^^
#
# If Boost was built using the boost-cmake project it provides a package
# configuration file for use with find_package's Config mode. This
# module looks for the package configuration file called
# BoostConfig.cmake or boost-config.cmake and stores the result in cache
# entry "Boost_DIR". If found, the package configuration file is loaded
# and this module returns with no further action. See documentation of
# the Boost CMake package configuration for details on what it provides.
#
# Set Boost_NO_BOOST_CMAKE to ON to disable the search for boost-cmake.
#[=======================================================================[.rst:
FindBoost
---------
Find Boost include dirs and libraries
Use this module by invoking find_package with the form::
find_package(Boost
[version] [EXACT] # Minimum or EXACT version e.g. 1.67.0
[REQUIRED] # Fail with error if Boost is not found
[COMPONENTS <libs>...] # Boost libraries by their canonical name
# e.g. "date_time" for "libboost_date_time"
[OPTIONAL_COMPONENTS <libs>...]
# Optional Boost libraries by their canonical name)
) # e.g. "date_time" for "libboost_date_time"
This module finds headers and requested component libraries OR a CMake
package configuration file provided by a "Boost CMake" build. For the
latter case skip to the "Boost CMake" section below. For the former
case results are reported in variables::
Boost_FOUND - True if headers and requested libraries were found
Boost_INCLUDE_DIRS - Boost include directories
Boost_LIBRARY_DIRS - Link directories for Boost libraries
Boost_LIBRARIES - Boost component libraries to be linked
Boost_<C>_FOUND - True if component <C> was found (<C> is upper-case)
Boost_<C>_LIBRARY - Libraries to link for component <C> (may include
target_link_libraries debug/optimized keywords)
Boost_VERSION - BOOST_VERSION value from boost/version.hpp
Boost_LIB_VERSION - Version string appended to library filenames
Boost_MAJOR_VERSION - Boost major version number (X in X.y.z)
Boost_MINOR_VERSION - Boost minor version number (Y in x.Y.z)
Boost_SUBMINOR_VERSION - Boost subminor version number (Z in x.y.Z)
Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows)
- Pass to add_definitions() to have diagnostic
information about Boost's automatic linking
displayed during compilation
Note that Boost Python components require a Python version suffix
(Boost 1.67 and later), e.g. ``python36`` or ``python27`` for the
versions built against Python 3.6 and 2.7, respectively. This also
applies to additional components using Python including
``mpi_python`` and ``numpy``. Earlier Boost releases may use
distribution-specific suffixes such as ``2``, ``3`` or ``2.7``.
These may also be used as suffixes, but note that they are not
portable.
This module reads hints about search locations from variables::
BOOST_ROOT - Preferred installation prefix
(or BOOSTROOT)
BOOST_INCLUDEDIR - Preferred include directory e.g. <prefix>/include
BOOST_LIBRARYDIR - Preferred library directory e.g. <prefix>/lib
Boost_NO_SYSTEM_PATHS - Set to ON to disable searching in locations not
specified by these hint variables. Default is OFF.
Boost_ADDITIONAL_VERSIONS
- List of Boost versions not known to this module
(Boost install locations may contain the version)
and saves search results persistently in CMake cache entries::
Boost_INCLUDE_DIR - Directory containing Boost headers
Boost_LIBRARY_DIR_RELEASE - Directory containing release Boost libraries
Boost_LIBRARY_DIR_DEBUG - Directory containing debug Boost libraries
Boost_<C>_LIBRARY_DEBUG - Component <C> library debug variant
Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant
The following :prop_tgt:`IMPORTED` targets are also defined::
Boost::boost - Target for header-only dependencies
(Boost include directory)
Boost::<C> - Target for specific component dependency
(shared or static library); <C> is lower-
case
Boost::diagnostic_definitions - interface target to enable diagnostic
information about Boost's automatic linking
during compilation (adds BOOST_LIB_DIAGNOSTIC)
Boost::disable_autolinking - interface target to disable automatic
linking with MSVC (adds BOOST_ALL_NO_LIB)
Boost::dynamic_linking - interface target to enable dynamic linking
linking with MSVC (adds BOOST_ALL_DYN_LINK)
Implicit dependencies such as Boost::filesystem requiring
Boost::system will be automatically detected and satisfied, even
if system is not specified when using find_package and if
Boost::system is not added to target_link_libraries. If using
Boost::thread, then Threads::Threads will also be added automatically.
It is important to note that the imported targets behave differently
than variables created by this module: multiple calls to
find_package(Boost) in the same directory or sub-directories with
different options (e.g. static or shared) will not override the
values of the targets created by the first call.
Users may set these hints or results as cache entries. Projects
should not read these entries directly but instead use the above
result variables. Note that some hint names start in upper-case
"BOOST". One may specify these as environment variables if they are
not specified as CMake variables or cache entries.
This module first searches for the Boost header files using the above
hint variables (excluding BOOST_LIBRARYDIR) and saves the result in
Boost_INCLUDE_DIR. Then it searches for requested component libraries
using the above hints (excluding BOOST_INCLUDEDIR and
Boost_ADDITIONAL_VERSIONS), "lib" directories near Boost_INCLUDE_DIR,
and the library name configuration settings below. It saves the
library directories in Boost_LIBRARY_DIR_DEBUG and
Boost_LIBRARY_DIR_RELEASE and individual library
locations in Boost_<C>_LIBRARY_DEBUG and Boost_<C>_LIBRARY_RELEASE.
When one changes settings used by previous searches in the same build
tree (excluding environment variables) this module discards previous
search results affected by the changes and searches again.
Boost libraries come in many variants encoded in their file name.
Users or projects may tell this module which variant to find by
setting variables::
Boost_USE_DEBUG_LIBS - Set to ON or OFF to specify whether to search
and use the debug libraries. Default is ON.
Boost_USE_RELEASE_LIBS - Set to ON or OFF to specify whether to search
and use the release libraries. Default is ON.
Boost_USE_MULTITHREADED - Set to OFF to use the non-multithreaded
libraries ('mt' tag). Default is ON.
Boost_USE_STATIC_LIBS - Set to ON to force the use of the static
libraries. Default is OFF.
Boost_USE_STATIC_RUNTIME - Set to ON or OFF to specify whether to use
libraries linked statically to the C++ runtime
('s' tag). Default is platform dependent.
Boost_USE_DEBUG_RUNTIME - Set to ON or OFF to specify whether to use
libraries linked to the MS debug C++ runtime
('g' tag). Default is ON.
Boost_USE_DEBUG_PYTHON - Set to ON to use libraries compiled with a
debug Python build ('y' tag). Default is OFF.
Boost_USE_STLPORT - Set to ON to use libraries compiled with
STLPort ('p' tag). Default is OFF.
Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS
- Set to ON to use libraries compiled with
STLPort deprecated "native iostreams"
('n' tag). Default is OFF.
Boost_COMPILER - Set to the compiler-specific library suffix
(e.g. "-gcc43"). Default is auto-computed
for the C++ compiler in use. A list may be
used if multiple compatible suffixes should
be tested for, in decreasing order of
preference.
Boost_THREADAPI - Suffix for "thread" component library name,
such as "pthread" or "win32". Names with
and without this suffix will both be tried.
Boost_NAMESPACE - Alternate namespace used to build boost with
e.g. if set to "myboost", will search for
myboost_thread instead of boost_thread.
Other variables one may set to control this module are::
Boost_DEBUG - Set to ON to enable debug output from FindBoost.
Please enable this before filing any bug report.
Boost_DETAILED_FAILURE_MSG
- Set to ON to add detailed information to the
failure message even when the REQUIRED option
is not given to the find_package call.
Boost_REALPATH - Set to ON to resolve symlinks for discovered
libraries to assist with packaging. For example,
the "system" component library may be resolved to
"/usr/lib/libboost_system.so.1.67.0" instead of
"/usr/lib/libboost_system.so". This does not
affect linking and should not be enabled unless
the user needs this information.
Boost_LIBRARY_DIR - Default value for Boost_LIBRARY_DIR_RELEASE and
Boost_LIBRARY_DIR_DEBUG.
On Visual Studio and Borland compilers Boost headers request automatic
linking to corresponding libraries. This requires matching libraries
to be linked explicitly or available in the link library search path.
In this case setting Boost_USE_STATIC_LIBS to OFF may not achieve
dynamic linking. Boost automatic linking typically requests static
libraries with a few exceptions (such as Boost.Python). Use::
add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
to ask Boost to report information about automatic linking requests.
Example to find Boost headers only::
find_package(Boost 1.36.0)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(foo foo.cc)
endif()
Example to find Boost libraries and use imported targets::
find_package(Boost 1.56 REQUIRED COMPONENTS
date_time filesystem iostreams)
add_executable(foo foo.cc)
target_link_libraries(foo Boost::date_time Boost::filesystem
Boost::iostreams)
Example to find Boost Python 3.6 libraries and use imported targets::
find_package(Boost 1.67 REQUIRED COMPONENTS
python36 numpy36)
add_executable(foo foo.cc)
target_link_libraries(foo Boost::python36 Boost::numpy36)
Example to find Boost headers and some *static* (release only) libraries::
set(Boost_USE_STATIC_LIBS ON) # only find static libs
set(Boost_USE_DEBUG_LIBS OFF) # ignore debug libs and
set(Boost_USE_RELEASE_LIBS ON) # only find release libs
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.66.0 COMPONENTS date_time filesystem system ...)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(foo foo.cc)
target_link_libraries(foo ${Boost_LIBRARIES})
endif()
Boost CMake
^^^^^^^^^^^
If Boost was built using the boost-cmake project it provides a package
configuration file for use with find_package's Config mode. This
module looks for the package configuration file called
BoostConfig.cmake or boost-config.cmake and stores the result in cache
entry "Boost_DIR". If found, the package configuration file is loaded
and this module returns with no further action. See documentation of
the Boost CMake package configuration for details on what it provides.
Set Boost_NO_BOOST_CMAKE to ON to disable the search for boost-cmake.
#]=======================================================================]
# Save project's policies
cmake_policy(PUSH)

View File

@@ -1,39 +1,40 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindBullet
# ----------
#
# Try to find the Bullet physics engine
#
#
#
# ::
#
# This module defines the following variables
#
#
#
# ::
#
# BULLET_FOUND - Was bullet found
# BULLET_INCLUDE_DIRS - the Bullet include directories
# BULLET_LIBRARIES - Link to this, by default it includes
# all bullet components (Dynamics,
# Collision, LinearMath, & SoftBody)
#
#
#
# ::
#
# This module accepts the following variables
#
#
#
# ::
#
# BULLET_ROOT - Can be set to bullet install path or Windows build path
#[=======================================================================[.rst:
FindBullet
----------
Try to find the Bullet physics engine
::
This module defines the following variables
::
BULLET_FOUND - Was bullet found
BULLET_INCLUDE_DIRS - the Bullet include directories
BULLET_LIBRARIES - Link to this, by default it includes
all bullet components (Dynamics,
Collision, LinearMath, & SoftBody)
::
This module accepts the following variables
::
BULLET_ROOT - Can be set to bullet install path or Windows build path
#]=======================================================================]
macro(_FIND_BULLET_LIBRARY _var)
find_library(${_var}

View File

@@ -1,27 +1,28 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCABLE
# ---------
#
# Find CABLE
#
# This module finds if CABLE is installed and determines where the
# include files and libraries are. This code sets the following
# variables:
#
# ::
#
# CABLE the path to the cable executable
# CABLE_TCL_LIBRARY the path to the Tcl wrapper library
# CABLE_INCLUDE_DIR the path to the include directory
#
#
#
# To build Tcl wrappers, you should add shared library and link it to
# ${CABLE_TCL_LIBRARY}. You should also add ${CABLE_INCLUDE_DIR} as an
# include directory.
#[=======================================================================[.rst:
FindCABLE
---------
Find CABLE
This module finds if CABLE is installed and determines where the
include files and libraries are. This code sets the following
variables:
::
CABLE the path to the cable executable
CABLE_TCL_LIBRARY the path to the Tcl wrapper library
CABLE_INCLUDE_DIR the path to the include directory
To build Tcl wrappers, you should add shared library and link it to
${CABLE_TCL_LIBRARY}. You should also add ${CABLE_INCLUDE_DIR} as an
include directory.
#]=======================================================================]
if(NOT CABLE)
find_path(CABLE_BUILD_DIR cableVersion.h)

View File

@@ -1,378 +1,379 @@
#.rst:
# FindCUDA
# --------
#
# .. note::
#
# The FindCUDA module has been superseded by first-class support
# for the CUDA language in CMake. It is no longer necessary to
# use this module or call ``find_package(CUDA)``. This module
# now exists only for compatibility with projects that have not
# been ported.
#
# Instead, list ``CUDA`` among the languages named in the top-level
# call to the :command:`project` command, or call the
# :command:`enable_language` command with ``CUDA``.
# Then one can add CUDA (``.cu``) sources to programs directly
# in calls to :command:`add_library` and :command:`add_executable`.
#
# Tools for building CUDA C files: libraries and build dependencies.
#
# This script locates the NVIDIA CUDA C tools. It should work on Linux,
# Windows, and macOS and should be reasonably up to date with CUDA C
# releases.
#
# This script makes use of the standard :command:`find_package` arguments of
# ``<VERSION>``, ``REQUIRED`` and ``QUIET``. ``CUDA_FOUND`` will report if an
# acceptable version of CUDA was found.
#
# The script will prompt the user to specify ``CUDA_TOOLKIT_ROOT_DIR`` if
# the prefix cannot be determined by the location of nvcc in the system
# path and ``REQUIRED`` is specified to :command:`find_package`. To use
# a different installed version of the toolkit set the environment variable
# ``CUDA_BIN_PATH`` before running cmake (e.g.
# ``CUDA_BIN_PATH=/usr/local/cuda1.0`` instead of the default
# ``/usr/local/cuda``) or set ``CUDA_TOOLKIT_ROOT_DIR`` after configuring. If
# you change the value of ``CUDA_TOOLKIT_ROOT_DIR``, various components that
# depend on the path will be relocated.
#
# It might be necessary to set ``CUDA_TOOLKIT_ROOT_DIR`` manually on certain
# platforms, or to use a CUDA runtime not installed in the default
# location. In newer versions of the toolkit the CUDA library is
# included with the graphics driver -- be sure that the driver version
# matches what is needed by the CUDA runtime version.
#
# The following variables affect the behavior of the macros in the
# script (in alphabetical order). Note that any of these flags can be
# changed multiple times in the same directory before calling
# ``CUDA_ADD_EXECUTABLE``, ``CUDA_ADD_LIBRARY``, ``CUDA_COMPILE``,
# ``CUDA_COMPILE_PTX``, ``CUDA_COMPILE_FATBIN``, ``CUDA_COMPILE_CUBIN``
# or ``CUDA_WRAP_SRCS``::
#
# CUDA_64_BIT_DEVICE_CODE (Default matches host bit size)
# -- Set to ON to compile for 64 bit device code, OFF for 32 bit device code.
# Note that making this different from the host code when generating object
# or C files from CUDA code just won't work, because size_t gets defined by
# nvcc in the generated source. If you compile to PTX and then load the
# file yourself, you can mix bit sizes between device and host.
#
# CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE (Default ON)
# -- Set to ON if you want the custom build rule to be attached to the source
# file in Visual Studio. Turn OFF if you add the same cuda file to multiple
# targets.
#
# This allows the user to build the target from the CUDA file; however, bad
# things can happen if the CUDA source file is added to multiple targets.
# When performing parallel builds it is possible for the custom build
# command to be run more than once and in parallel causing cryptic build
# errors. VS runs the rules for every source file in the target, and a
# source can have only one rule no matter how many projects it is added to.
# When the rule is run from multiple targets race conditions can occur on
# the generated file. Eventually everything will get built, but if the user
# is unaware of this behavior, there may be confusion. It would be nice if
# this script could detect the reuse of source files across multiple targets
# and turn the option off for the user, but no good solution could be found.
#
# CUDA_BUILD_CUBIN (Default OFF)
# -- Set to ON to enable and extra compilation pass with the -cubin option in
# Device mode. The output is parsed and register, shared memory usage is
# printed during build.
#
# CUDA_BUILD_EMULATION (Default OFF for device mode)
# -- Set to ON for Emulation mode. -D_DEVICEEMU is defined for CUDA C files
# when CUDA_BUILD_EMULATION is TRUE.
#
# CUDA_LINK_LIBRARIES_KEYWORD (Default "")
# -- The <PRIVATE|PUBLIC|INTERFACE> keyword to use for internal
# target_link_libraries calls. The default is to use no keyword which
# uses the old "plain" form of target_link_libraries. Note that is matters
# because whatever is used inside the FindCUDA module must also be used
# outside - the two forms of target_link_libraries cannot be mixed.
#
# CUDA_GENERATED_OUTPUT_DIR (Default CMAKE_CURRENT_BINARY_DIR)
# -- Set to the path you wish to have the generated files placed. If it is
# blank output files will be placed in CMAKE_CURRENT_BINARY_DIR.
# Intermediate files will always be placed in
# CMAKE_CURRENT_BINARY_DIR/CMakeFiles.
#
# CUDA_HOST_COMPILATION_CPP (Default ON)
# -- Set to OFF for C compilation of host code.
#
# CUDA_HOST_COMPILER (Default CMAKE_C_COMPILER)
# -- Set the host compiler to be used by nvcc. Ignored if -ccbin or
# --compiler-bindir is already present in the CUDA_NVCC_FLAGS or
# CUDA_NVCC_FLAGS_<CONFIG> variables. For Visual Studio targets,
# the host compiler is constructed with one or more visual studio macros
# such as $(VCInstallDir), that expands out to the path when
# the command is run from within VS.
# If the CUDAHOSTCXX environment variable is set it will
# be used as the default.
#
# CUDA_NVCC_FLAGS
# CUDA_NVCC_FLAGS_<CONFIG>
# -- Additional NVCC command line arguments. NOTE: multiple arguments must be
# semi-colon delimited (e.g. --compiler-options;-Wall)
#
# CUDA_PROPAGATE_HOST_FLAGS (Default ON)
# -- Set to ON to propagate CMAKE_{C,CXX}_FLAGS and their configuration
# dependent counterparts (e.g. CMAKE_C_FLAGS_DEBUG) automatically to the
# host compiler through nvcc's -Xcompiler flag. This helps make the
# generated host code match the rest of the system better. Sometimes
# certain flags give nvcc problems, and this will help you turn the flag
# propagation off. This does not affect the flags supplied directly to nvcc
# via CUDA_NVCC_FLAGS or through the OPTION flags specified through
# CUDA_ADD_LIBRARY, CUDA_ADD_EXECUTABLE, or CUDA_WRAP_SRCS. Flags used for
# shared library compilation are not affected by this flag.
#
# CUDA_SEPARABLE_COMPILATION (Default OFF)
# -- If set this will enable separable compilation for all CUDA runtime object
# files. If used outside of CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY
# (e.g. calling CUDA_WRAP_SRCS directly),
# CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME and
# CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS should be called.
#
# CUDA_SOURCE_PROPERTY_FORMAT
# -- If this source file property is set, it can override the format specified
# to CUDA_WRAP_SRCS (OBJ, PTX, CUBIN, or FATBIN). If an input source file
# is not a .cu file, setting this file will cause it to be treated as a .cu
# file. See documentation for set_source_files_properties on how to set
# this property.
#
# CUDA_USE_STATIC_CUDA_RUNTIME (Default ON)
# -- When enabled the static version of the CUDA runtime library will be used
# in CUDA_LIBRARIES. If the version of CUDA configured doesn't support
# this option, then it will be silently disabled.
#
# CUDA_VERBOSE_BUILD (Default OFF)
# -- Set to ON to see all the commands used when building the CUDA file. When
# using a Makefile generator the value defaults to VERBOSE (run make
# VERBOSE=1 to see output), although setting CUDA_VERBOSE_BUILD to ON will
# always print the output.
#
# The script creates the following macros (in alphabetical order)::
#
# CUDA_ADD_CUFFT_TO_TARGET( cuda_target )
# -- Adds the cufft library to the target (can be any target). Handles whether
# you are in emulation mode or not.
#
# CUDA_ADD_CUBLAS_TO_TARGET( cuda_target )
# -- Adds the cublas library to the target (can be any target). Handles
# whether you are in emulation mode or not.
#
# CUDA_ADD_EXECUTABLE( cuda_target file0 file1 ...
# [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
# -- Creates an executable "cuda_target" which is made up of the files
# specified. All of the non CUDA C files are compiled using the standard
# build rules specified by CMAKE and the cuda files are compiled to object
# files using nvcc and the host compiler. In addition CUDA_INCLUDE_DIRS is
# added automatically to include_directories(). Some standard CMake target
# calls can be used on the target after calling this macro
# (e.g. set_target_properties and target_link_libraries), but setting
# properties that adjust compilation flags will not affect code compiled by
# nvcc. Such flags should be modified before calling CUDA_ADD_EXECUTABLE,
# CUDA_ADD_LIBRARY or CUDA_WRAP_SRCS.
#
# CUDA_ADD_LIBRARY( cuda_target file0 file1 ...
# [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
# -- Same as CUDA_ADD_EXECUTABLE except that a library is created.
#
# CUDA_BUILD_CLEAN_TARGET()
# -- Creates a convenience target that deletes all the dependency files
# generated. You should make clean after running this target to ensure the
# dependency files get regenerated.
#
# CUDA_COMPILE( generated_files file0 file1 ... [STATIC | SHARED | MODULE]
# [OPTIONS ...] )
# -- Returns a list of generated files from the input source files to be used
# with ADD_LIBRARY or ADD_EXECUTABLE.
#
# CUDA_COMPILE_PTX( generated_files file0 file1 ... [OPTIONS ...] )
# -- Returns a list of PTX files generated from the input source files.
#
# CUDA_COMPILE_FATBIN( generated_files file0 file1 ... [OPTIONS ...] )
# -- Returns a list of FATBIN files generated from the input source files.
#
# CUDA_COMPILE_CUBIN( generated_files file0 file1 ... [OPTIONS ...] )
# -- Returns a list of CUBIN files generated from the input source files.
#
# CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME( output_file_var
# cuda_target
# object_files )
# -- Compute the name of the intermediate link file used for separable
# compilation. This file name is typically passed into
# CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS. output_file_var is produced
# based on cuda_target the list of objects files that need separable
# compilation as specified by object_files. If the object_files list is
# empty, then output_file_var will be empty. This function is called
# automatically for CUDA_ADD_LIBRARY and CUDA_ADD_EXECUTABLE. Note that
# this is a function and not a macro.
#
# CUDA_INCLUDE_DIRECTORIES( path0 path1 ... )
# -- Sets the directories that should be passed to nvcc
# (e.g. nvcc -Ipath0 -Ipath1 ... ). These paths usually contain other .cu
# files.
#
#
# CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS( output_file_var cuda_target
# nvcc_flags object_files)
# -- Generates the link object required by separable compilation from the given
# object files. This is called automatically for CUDA_ADD_EXECUTABLE and
# CUDA_ADD_LIBRARY, but can be called manually when using CUDA_WRAP_SRCS
# directly. When called from CUDA_ADD_LIBRARY or CUDA_ADD_EXECUTABLE the
# nvcc_flags passed in are the same as the flags passed in via the OPTIONS
# argument. The only nvcc flag added automatically is the bitness flag as
# specified by CUDA_64_BIT_DEVICE_CODE. Note that this is a function
# instead of a macro.
#
# CUDA_SELECT_NVCC_ARCH_FLAGS(out_variable [target_CUDA_architectures])
# -- Selects GPU arch flags for nvcc based on target_CUDA_architectures
# target_CUDA_architectures : Auto | Common | All | LIST(ARCH_AND_PTX ...)
# - "Auto" detects local machine GPU compute arch at runtime.
# - "Common" and "All" cover common and entire subsets of architectures
# ARCH_AND_PTX : NAME | NUM.NUM | NUM.NUM(NUM.NUM) | NUM.NUM+PTX
# NAME: Fermi Kepler Maxwell Kepler+Tegra Kepler+Tesla Maxwell+Tegra Pascal
# NUM: Any number. Only those pairs are currently accepted by NVCC though:
# 2.0 2.1 3.0 3.2 3.5 3.7 5.0 5.2 5.3 6.0 6.2
# Returns LIST of flags to be added to CUDA_NVCC_FLAGS in ${out_variable}
# Additionally, sets ${out_variable}_readable to the resulting numeric list
# Example:
# CUDA_SELECT_NVCC_ARCH_FLAGS(ARCH_FLAGS 3.0 3.5+PTX 5.2(5.0) Maxwell)
# LIST(APPEND CUDA_NVCC_FLAGS ${ARCH_FLAGS})
#
# More info on CUDA architectures: https://en.wikipedia.org/wiki/CUDA
# Note that this is a function instead of a macro.
#
# CUDA_WRAP_SRCS ( cuda_target format generated_files file0 file1 ...
# [STATIC | SHARED | MODULE] [OPTIONS ...] )
# -- This is where all the magic happens. CUDA_ADD_EXECUTABLE,
# CUDA_ADD_LIBRARY, CUDA_COMPILE, and CUDA_COMPILE_PTX all call this
# function under the hood.
#
# Given the list of files (file0 file1 ... fileN) this macro generates
# custom commands that generate either PTX or linkable objects (use "PTX" or
# "OBJ" for the format argument to switch). Files that don't end with .cu
# or have the HEADER_FILE_ONLY property are ignored.
#
# The arguments passed in after OPTIONS are extra command line options to
# give to nvcc. You can also specify per configuration options by
# specifying the name of the configuration followed by the options. General
# options must precede configuration specific options. Not all
# configurations need to be specified, only the ones provided will be used.
#
# OPTIONS -DFLAG=2 "-DFLAG_OTHER=space in flag"
# DEBUG -g
# RELEASE --use_fast_math
# RELWITHDEBINFO --use_fast_math;-g
# MINSIZEREL --use_fast_math
#
# For certain configurations (namely VS generating object files with
# CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE set to ON), no generated file will
# be produced for the given cuda file. This is because when you add the
# cuda file to Visual Studio it knows that this file produces an object file
# and will link in the resulting object file automatically.
#
# This script will also generate a separate cmake script that is used at
# build time to invoke nvcc. This is for several reasons.
#
# 1. nvcc can return negative numbers as return values which confuses
# Visual Studio into thinking that the command succeeded. The script now
# checks the error codes and produces errors when there was a problem.
#
# 2. nvcc has been known to not delete incomplete results when it
# encounters problems. This confuses build systems into thinking the
# target was generated when in fact an unusable file exists. The script
# now deletes the output files if there was an error.
#
# 3. By putting all the options that affect the build into a file and then
# make the build rule dependent on the file, the output files will be
# regenerated when the options change.
#
# This script also looks at optional arguments STATIC, SHARED, or MODULE to
# determine when to target the object compilation for a shared library.
# BUILD_SHARED_LIBS is ignored in CUDA_WRAP_SRCS, but it is respected in
# CUDA_ADD_LIBRARY. On some systems special flags are added for building
# objects intended for shared libraries. A preprocessor macro,
# <target_name>_EXPORTS is defined when a shared library compilation is
# detected.
#
# Flags passed into add_definitions with -D or /D are passed along to nvcc.
#
#
#
# The script defines the following variables::
#
# CUDA_VERSION_MAJOR -- The major version of cuda as reported by nvcc.
# CUDA_VERSION_MINOR -- The minor version.
# CUDA_VERSION
# CUDA_VERSION_STRING -- CUDA_VERSION_MAJOR.CUDA_VERSION_MINOR
# CUDA_HAS_FP16 -- Whether a short float (float16,fp16) is supported.
#
# CUDA_TOOLKIT_ROOT_DIR -- Path to the CUDA Toolkit (defined if not set).
# CUDA_SDK_ROOT_DIR -- Path to the CUDA SDK. Use this to find files in the
# SDK. This script will not directly support finding
# specific libraries or headers, as that isn't
# supported by NVIDIA. If you want to change
# libraries when the path changes see the
# FindCUDA.cmake script for an example of how to clear
# these variables. There are also examples of how to
# use the CUDA_SDK_ROOT_DIR to locate headers or
# libraries, if you so choose (at your own risk).
# CUDA_INCLUDE_DIRS -- Include directory for cuda headers. Added automatically
# for CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY.
# CUDA_LIBRARIES -- Cuda RT library.
# CUDA_CUFFT_LIBRARIES -- Device or emulation library for the Cuda FFT
# implementation (alternative to:
# CUDA_ADD_CUFFT_TO_TARGET macro)
# CUDA_CUBLAS_LIBRARIES -- Device or emulation library for the Cuda BLAS
# implementation (alternative to:
# CUDA_ADD_CUBLAS_TO_TARGET macro).
# CUDA_cudart_static_LIBRARY -- Statically linkable cuda runtime library.
# Only available for CUDA version 5.5+
# CUDA_cudadevrt_LIBRARY -- Device runtime library.
# Required for separable compilation.
# CUDA_cupti_LIBRARY -- CUDA Profiling Tools Interface library.
# Only available for CUDA version 4.0+.
# CUDA_curand_LIBRARY -- CUDA Random Number Generation library.
# Only available for CUDA version 3.2+.
# CUDA_cusolver_LIBRARY -- CUDA Direct Solver library.
# Only available for CUDA version 7.0+.
# CUDA_cusparse_LIBRARY -- CUDA Sparse Matrix library.
# Only available for CUDA version 3.2+.
# CUDA_npp_LIBRARY -- NVIDIA Performance Primitives lib.
# Only available for CUDA version 4.0+.
# CUDA_nppc_LIBRARY -- NVIDIA Performance Primitives lib (core).
# Only available for CUDA version 5.5+.
# CUDA_nppi_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 5.5 - 8.0.
# CUDA_nppial_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_nppicc_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_nppicom_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_nppidei_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_nppif_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_nppig_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_nppim_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_nppist_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_nppisu_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_nppitc_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
# Only available for CUDA version 9.0.
# CUDA_npps_LIBRARY -- NVIDIA Performance Primitives lib (signal processing).
# Only available for CUDA version 5.5+.
# CUDA_nvcuvenc_LIBRARY -- CUDA Video Encoder library.
# Only available for CUDA version 3.2+.
# Windows only.
# CUDA_nvcuvid_LIBRARY -- CUDA Video Decoder library.
# Only available for CUDA version 3.2+.
# Windows only.
#
#[=======================================================================[.rst:
FindCUDA
--------
.. note::
The FindCUDA module has been superseded by first-class support
for the CUDA language in CMake. It is no longer necessary to
use this module or call ``find_package(CUDA)``. This module
now exists only for compatibility with projects that have not
been ported.
Instead, list ``CUDA`` among the languages named in the top-level
call to the :command:`project` command, or call the
:command:`enable_language` command with ``CUDA``.
Then one can add CUDA (``.cu``) sources to programs directly
in calls to :command:`add_library` and :command:`add_executable`.
Tools for building CUDA C files: libraries and build dependencies.
This script locates the NVIDIA CUDA C tools. It should work on Linux,
Windows, and macOS and should be reasonably up to date with CUDA C
releases.
This script makes use of the standard :command:`find_package` arguments of
``<VERSION>``, ``REQUIRED`` and ``QUIET``. ``CUDA_FOUND`` will report if an
acceptable version of CUDA was found.
The script will prompt the user to specify ``CUDA_TOOLKIT_ROOT_DIR`` if
the prefix cannot be determined by the location of nvcc in the system
path and ``REQUIRED`` is specified to :command:`find_package`. To use
a different installed version of the toolkit set the environment variable
``CUDA_BIN_PATH`` before running cmake (e.g.
``CUDA_BIN_PATH=/usr/local/cuda1.0`` instead of the default
``/usr/local/cuda``) or set ``CUDA_TOOLKIT_ROOT_DIR`` after configuring. If
you change the value of ``CUDA_TOOLKIT_ROOT_DIR``, various components that
depend on the path will be relocated.
It might be necessary to set ``CUDA_TOOLKIT_ROOT_DIR`` manually on certain
platforms, or to use a CUDA runtime not installed in the default
location. In newer versions of the toolkit the CUDA library is
included with the graphics driver -- be sure that the driver version
matches what is needed by the CUDA runtime version.
The following variables affect the behavior of the macros in the
script (in alphabetical order). Note that any of these flags can be
changed multiple times in the same directory before calling
``CUDA_ADD_EXECUTABLE``, ``CUDA_ADD_LIBRARY``, ``CUDA_COMPILE``,
``CUDA_COMPILE_PTX``, ``CUDA_COMPILE_FATBIN``, ``CUDA_COMPILE_CUBIN``
or ``CUDA_WRAP_SRCS``::
CUDA_64_BIT_DEVICE_CODE (Default matches host bit size)
-- Set to ON to compile for 64 bit device code, OFF for 32 bit device code.
Note that making this different from the host code when generating object
or C files from CUDA code just won't work, because size_t gets defined by
nvcc in the generated source. If you compile to PTX and then load the
file yourself, you can mix bit sizes between device and host.
CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE (Default ON)
-- Set to ON if you want the custom build rule to be attached to the source
file in Visual Studio. Turn OFF if you add the same cuda file to multiple
targets.
This allows the user to build the target from the CUDA file; however, bad
things can happen if the CUDA source file is added to multiple targets.
When performing parallel builds it is possible for the custom build
command to be run more than once and in parallel causing cryptic build
errors. VS runs the rules for every source file in the target, and a
source can have only one rule no matter how many projects it is added to.
When the rule is run from multiple targets race conditions can occur on
the generated file. Eventually everything will get built, but if the user
is unaware of this behavior, there may be confusion. It would be nice if
this script could detect the reuse of source files across multiple targets
and turn the option off for the user, but no good solution could be found.
CUDA_BUILD_CUBIN (Default OFF)
-- Set to ON to enable and extra compilation pass with the -cubin option in
Device mode. The output is parsed and register, shared memory usage is
printed during build.
CUDA_BUILD_EMULATION (Default OFF for device mode)
-- Set to ON for Emulation mode. -D_DEVICEEMU is defined for CUDA C files
when CUDA_BUILD_EMULATION is TRUE.
CUDA_LINK_LIBRARIES_KEYWORD (Default "")
-- The <PRIVATE|PUBLIC|INTERFACE> keyword to use for internal
target_link_libraries calls. The default is to use no keyword which
uses the old "plain" form of target_link_libraries. Note that is matters
because whatever is used inside the FindCUDA module must also be used
outside - the two forms of target_link_libraries cannot be mixed.
CUDA_GENERATED_OUTPUT_DIR (Default CMAKE_CURRENT_BINARY_DIR)
-- Set to the path you wish to have the generated files placed. If it is
blank output files will be placed in CMAKE_CURRENT_BINARY_DIR.
Intermediate files will always be placed in
CMAKE_CURRENT_BINARY_DIR/CMakeFiles.
CUDA_HOST_COMPILATION_CPP (Default ON)
-- Set to OFF for C compilation of host code.
CUDA_HOST_COMPILER (Default CMAKE_C_COMPILER)
-- Set the host compiler to be used by nvcc. Ignored if -ccbin or
--compiler-bindir is already present in the CUDA_NVCC_FLAGS or
CUDA_NVCC_FLAGS_<CONFIG> variables. For Visual Studio targets,
the host compiler is constructed with one or more visual studio macros
such as $(VCInstallDir), that expands out to the path when
the command is run from within VS.
If the CUDAHOSTCXX environment variable is set it will
be used as the default.
CUDA_NVCC_FLAGS
CUDA_NVCC_FLAGS_<CONFIG>
-- Additional NVCC command line arguments. NOTE: multiple arguments must be
semi-colon delimited (e.g. --compiler-options;-Wall)
CUDA_PROPAGATE_HOST_FLAGS (Default ON)
-- Set to ON to propagate CMAKE_{C,CXX}_FLAGS and their configuration
dependent counterparts (e.g. CMAKE_C_FLAGS_DEBUG) automatically to the
host compiler through nvcc's -Xcompiler flag. This helps make the
generated host code match the rest of the system better. Sometimes
certain flags give nvcc problems, and this will help you turn the flag
propagation off. This does not affect the flags supplied directly to nvcc
via CUDA_NVCC_FLAGS or through the OPTION flags specified through
CUDA_ADD_LIBRARY, CUDA_ADD_EXECUTABLE, or CUDA_WRAP_SRCS. Flags used for
shared library compilation are not affected by this flag.
CUDA_SEPARABLE_COMPILATION (Default OFF)
-- If set this will enable separable compilation for all CUDA runtime object
files. If used outside of CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY
(e.g. calling CUDA_WRAP_SRCS directly),
CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME and
CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS should be called.
CUDA_SOURCE_PROPERTY_FORMAT
-- If this source file property is set, it can override the format specified
to CUDA_WRAP_SRCS (OBJ, PTX, CUBIN, or FATBIN). If an input source file
is not a .cu file, setting this file will cause it to be treated as a .cu
file. See documentation for set_source_files_properties on how to set
this property.
CUDA_USE_STATIC_CUDA_RUNTIME (Default ON)
-- When enabled the static version of the CUDA runtime library will be used
in CUDA_LIBRARIES. If the version of CUDA configured doesn't support
this option, then it will be silently disabled.
CUDA_VERBOSE_BUILD (Default OFF)
-- Set to ON to see all the commands used when building the CUDA file. When
using a Makefile generator the value defaults to VERBOSE (run make
VERBOSE=1 to see output), although setting CUDA_VERBOSE_BUILD to ON will
always print the output.
The script creates the following macros (in alphabetical order)::
CUDA_ADD_CUFFT_TO_TARGET( cuda_target )
-- Adds the cufft library to the target (can be any target). Handles whether
you are in emulation mode or not.
CUDA_ADD_CUBLAS_TO_TARGET( cuda_target )
-- Adds the cublas library to the target (can be any target). Handles
whether you are in emulation mode or not.
CUDA_ADD_EXECUTABLE( cuda_target file0 file1 ...
[WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
-- Creates an executable "cuda_target" which is made up of the files
specified. All of the non CUDA C files are compiled using the standard
build rules specified by CMAKE and the cuda files are compiled to object
files using nvcc and the host compiler. In addition CUDA_INCLUDE_DIRS is
added automatically to include_directories(). Some standard CMake target
calls can be used on the target after calling this macro
(e.g. set_target_properties and target_link_libraries), but setting
properties that adjust compilation flags will not affect code compiled by
nvcc. Such flags should be modified before calling CUDA_ADD_EXECUTABLE,
CUDA_ADD_LIBRARY or CUDA_WRAP_SRCS.
CUDA_ADD_LIBRARY( cuda_target file0 file1 ...
[STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
-- Same as CUDA_ADD_EXECUTABLE except that a library is created.
CUDA_BUILD_CLEAN_TARGET()
-- Creates a convenience target that deletes all the dependency files
generated. You should make clean after running this target to ensure the
dependency files get regenerated.
CUDA_COMPILE( generated_files file0 file1 ... [STATIC | SHARED | MODULE]
[OPTIONS ...] )
-- Returns a list of generated files from the input source files to be used
with ADD_LIBRARY or ADD_EXECUTABLE.
CUDA_COMPILE_PTX( generated_files file0 file1 ... [OPTIONS ...] )
-- Returns a list of PTX files generated from the input source files.
CUDA_COMPILE_FATBIN( generated_files file0 file1 ... [OPTIONS ...] )
-- Returns a list of FATBIN files generated from the input source files.
CUDA_COMPILE_CUBIN( generated_files file0 file1 ... [OPTIONS ...] )
-- Returns a list of CUBIN files generated from the input source files.
CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME( output_file_var
cuda_target
object_files )
-- Compute the name of the intermediate link file used for separable
compilation. This file name is typically passed into
CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS. output_file_var is produced
based on cuda_target the list of objects files that need separable
compilation as specified by object_files. If the object_files list is
empty, then output_file_var will be empty. This function is called
automatically for CUDA_ADD_LIBRARY and CUDA_ADD_EXECUTABLE. Note that
this is a function and not a macro.
CUDA_INCLUDE_DIRECTORIES( path0 path1 ... )
-- Sets the directories that should be passed to nvcc
(e.g. nvcc -Ipath0 -Ipath1 ... ). These paths usually contain other .cu
files.
CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS( output_file_var cuda_target
nvcc_flags object_files)
-- Generates the link object required by separable compilation from the given
object files. This is called automatically for CUDA_ADD_EXECUTABLE and
CUDA_ADD_LIBRARY, but can be called manually when using CUDA_WRAP_SRCS
directly. When called from CUDA_ADD_LIBRARY or CUDA_ADD_EXECUTABLE the
nvcc_flags passed in are the same as the flags passed in via the OPTIONS
argument. The only nvcc flag added automatically is the bitness flag as
specified by CUDA_64_BIT_DEVICE_CODE. Note that this is a function
instead of a macro.
CUDA_SELECT_NVCC_ARCH_FLAGS(out_variable [target_CUDA_architectures])
-- Selects GPU arch flags for nvcc based on target_CUDA_architectures
target_CUDA_architectures : Auto | Common | All | LIST(ARCH_AND_PTX ...)
- "Auto" detects local machine GPU compute arch at runtime.
- "Common" and "All" cover common and entire subsets of architectures
ARCH_AND_PTX : NAME | NUM.NUM | NUM.NUM(NUM.NUM) | NUM.NUM+PTX
NAME: Fermi Kepler Maxwell Kepler+Tegra Kepler+Tesla Maxwell+Tegra Pascal
NUM: Any number. Only those pairs are currently accepted by NVCC though:
2.0 2.1 3.0 3.2 3.5 3.7 5.0 5.2 5.3 6.0 6.2
Returns LIST of flags to be added to CUDA_NVCC_FLAGS in ${out_variable}
Additionally, sets ${out_variable}_readable to the resulting numeric list
Example:
CUDA_SELECT_NVCC_ARCH_FLAGS(ARCH_FLAGS 3.0 3.5+PTX 5.2(5.0) Maxwell)
LIST(APPEND CUDA_NVCC_FLAGS ${ARCH_FLAGS})
More info on CUDA architectures: https://en.wikipedia.org/wiki/CUDA
Note that this is a function instead of a macro.
CUDA_WRAP_SRCS ( cuda_target format generated_files file0 file1 ...
[STATIC | SHARED | MODULE] [OPTIONS ...] )
-- This is where all the magic happens. CUDA_ADD_EXECUTABLE,
CUDA_ADD_LIBRARY, CUDA_COMPILE, and CUDA_COMPILE_PTX all call this
function under the hood.
Given the list of files (file0 file1 ... fileN) this macro generates
custom commands that generate either PTX or linkable objects (use "PTX" or
"OBJ" for the format argument to switch). Files that don't end with .cu
or have the HEADER_FILE_ONLY property are ignored.
The arguments passed in after OPTIONS are extra command line options to
give to nvcc. You can also specify per configuration options by
specifying the name of the configuration followed by the options. General
options must precede configuration specific options. Not all
configurations need to be specified, only the ones provided will be used.
OPTIONS -DFLAG=2 "-DFLAG_OTHER=space in flag"
DEBUG -g
RELEASE --use_fast_math
RELWITHDEBINFO --use_fast_math;-g
MINSIZEREL --use_fast_math
For certain configurations (namely VS generating object files with
CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE set to ON), no generated file will
be produced for the given cuda file. This is because when you add the
cuda file to Visual Studio it knows that this file produces an object file
and will link in the resulting object file automatically.
This script will also generate a separate cmake script that is used at
build time to invoke nvcc. This is for several reasons.
1. nvcc can return negative numbers as return values which confuses
Visual Studio into thinking that the command succeeded. The script now
checks the error codes and produces errors when there was a problem.
2. nvcc has been known to not delete incomplete results when it
encounters problems. This confuses build systems into thinking the
target was generated when in fact an unusable file exists. The script
now deletes the output files if there was an error.
3. By putting all the options that affect the build into a file and then
make the build rule dependent on the file, the output files will be
regenerated when the options change.
This script also looks at optional arguments STATIC, SHARED, or MODULE to
determine when to target the object compilation for a shared library.
BUILD_SHARED_LIBS is ignored in CUDA_WRAP_SRCS, but it is respected in
CUDA_ADD_LIBRARY. On some systems special flags are added for building
objects intended for shared libraries. A preprocessor macro,
<target_name>_EXPORTS is defined when a shared library compilation is
detected.
Flags passed into add_definitions with -D or /D are passed along to nvcc.
The script defines the following variables::
CUDA_VERSION_MAJOR -- The major version of cuda as reported by nvcc.
CUDA_VERSION_MINOR -- The minor version.
CUDA_VERSION
CUDA_VERSION_STRING -- CUDA_VERSION_MAJOR.CUDA_VERSION_MINOR
CUDA_HAS_FP16 -- Whether a short float (float16,fp16) is supported.
CUDA_TOOLKIT_ROOT_DIR -- Path to the CUDA Toolkit (defined if not set).
CUDA_SDK_ROOT_DIR -- Path to the CUDA SDK. Use this to find files in the
SDK. This script will not directly support finding
specific libraries or headers, as that isn't
supported by NVIDIA. If you want to change
libraries when the path changes see the
FindCUDA.cmake script for an example of how to clear
these variables. There are also examples of how to
use the CUDA_SDK_ROOT_DIR to locate headers or
libraries, if you so choose (at your own risk).
CUDA_INCLUDE_DIRS -- Include directory for cuda headers. Added automatically
for CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY.
CUDA_LIBRARIES -- Cuda RT library.
CUDA_CUFFT_LIBRARIES -- Device or emulation library for the Cuda FFT
implementation (alternative to:
CUDA_ADD_CUFFT_TO_TARGET macro)
CUDA_CUBLAS_LIBRARIES -- Device or emulation library for the Cuda BLAS
implementation (alternative to:
CUDA_ADD_CUBLAS_TO_TARGET macro).
CUDA_cudart_static_LIBRARY -- Statically linkable cuda runtime library.
Only available for CUDA version 5.5+
CUDA_cudadevrt_LIBRARY -- Device runtime library.
Required for separable compilation.
CUDA_cupti_LIBRARY -- CUDA Profiling Tools Interface library.
Only available for CUDA version 4.0+.
CUDA_curand_LIBRARY -- CUDA Random Number Generation library.
Only available for CUDA version 3.2+.
CUDA_cusolver_LIBRARY -- CUDA Direct Solver library.
Only available for CUDA version 7.0+.
CUDA_cusparse_LIBRARY -- CUDA Sparse Matrix library.
Only available for CUDA version 3.2+.
CUDA_npp_LIBRARY -- NVIDIA Performance Primitives lib.
Only available for CUDA version 4.0+.
CUDA_nppc_LIBRARY -- NVIDIA Performance Primitives lib (core).
Only available for CUDA version 5.5+.
CUDA_nppi_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 5.5 - 8.0.
CUDA_nppial_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_nppicc_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_nppicom_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_nppidei_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_nppif_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_nppig_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_nppim_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_nppist_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_nppisu_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_nppitc_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
Only available for CUDA version 9.0.
CUDA_npps_LIBRARY -- NVIDIA Performance Primitives lib (signal processing).
Only available for CUDA version 5.5+.
CUDA_nvcuvenc_LIBRARY -- CUDA Video Encoder library.
Only available for CUDA version 3.2+.
Windows only.
CUDA_nvcuvid_LIBRARY -- CUDA Video Decoder library.
Only available for CUDA version 3.2+.
Windows only.
#]=======================================================================]
# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
# Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html

View File

@@ -1,34 +1,35 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCURL
# --------
#
# Find the native CURL headers and libraries.
#
# IMPORTED Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines :prop_tgt:`IMPORTED` target ``CURL::libcurl``, if
# curl has been found.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module defines the following variables:
#
# ``CURL_FOUND``
# True if curl found.
#
# ``CURL_INCLUDE_DIRS``
# where to find curl/curl.h, etc.
#
# ``CURL_LIBRARIES``
# List of libraries when using curl.
#
# ``CURL_VERSION_STRING``
# The version of curl found.
#[=======================================================================[.rst:
FindCURL
--------
Find the native CURL headers and libraries.
IMPORTED Targets
^^^^^^^^^^^^^^^^
This module defines :prop_tgt:`IMPORTED` target ``CURL::libcurl``, if
curl has been found.
Result Variables
^^^^^^^^^^^^^^^^
This module defines the following variables:
``CURL_FOUND``
True if curl found.
``CURL_INCLUDE_DIRS``
where to find curl/curl.h, etc.
``CURL_LIBRARIES``
List of libraries when using curl.
``CURL_VERSION_STRING``
The version of curl found.
#]=======================================================================]
# Look for the header file.
find_path(CURL_INCLUDE_DIR NAMES curl/curl.h)

View File

@@ -1,27 +1,28 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCVS
# -------
#
#
#
# The module defines the following variables:
#
# ::
#
# CVS_EXECUTABLE - path to cvs command line client
# CVS_FOUND - true if the command line client was found
#
# Example usage:
#
# ::
#
# find_package(CVS)
# if(CVS_FOUND)
# message("CVS found: ${CVS_EXECUTABLE}")
# endif()
#[=======================================================================[.rst:
FindCVS
-------
The module defines the following variables:
::
CVS_EXECUTABLE - path to cvs command line client
CVS_FOUND - true if the command line client was found
Example usage:
::
find_package(CVS)
if(CVS_FOUND)
message("CVS found: ${CVS_EXECUTABLE}")
endif()
#]=======================================================================]
# CVSNT

View File

@@ -1,22 +1,23 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCoin3D
# ----------
#
# Find Coin3D (Open Inventor)
#
# Coin3D is an implementation of the Open Inventor API. It provides
# data structures and algorithms for 3D visualization.
#
# This module defines the following variables
#
# ::
#
# COIN3D_FOUND - system has Coin3D - Open Inventor
# COIN3D_INCLUDE_DIRS - where the Inventor include directory can be found
# COIN3D_LIBRARIES - Link to this to use Coin3D
#[=======================================================================[.rst:
FindCoin3D
----------
Find Coin3D (Open Inventor)
Coin3D is an implementation of the Open Inventor API. It provides
data structures and algorithms for 3D visualization.
This module defines the following variables
::
COIN3D_FOUND - system has Coin3D - Open Inventor
COIN3D_INCLUDE_DIRS - where the Inventor include directory can be found
COIN3D_LIBRARIES - Link to this to use Coin3D
#]=======================================================================]
if (WIN32)
if (CYGWIN)

View File

@@ -1,22 +1,23 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCups
# --------
#
# Try to find the Cups printing system
#
# Once done this will define
#
# ::
#
# CUPS_FOUND - system has Cups
# CUPS_INCLUDE_DIR - the Cups include directory
# CUPS_LIBRARIES - Libraries needed to use Cups
# CUPS_VERSION_STRING - version of Cups found (since CMake 2.8.8)
# Set CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE to TRUE if you need a version which
# features this function (i.e. at least 1.1.19)
#[=======================================================================[.rst:
FindCups
--------
Try to find the Cups printing system
Once done this will define
::
CUPS_FOUND - system has Cups
CUPS_INCLUDE_DIR - the Cups include directory
CUPS_LIBRARIES - Libraries needed to use Cups
CUPS_VERSION_STRING - version of Cups found (since CMake 2.8.8)
Set CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE to TRUE if you need a version which
features this function (i.e. at least 1.1.19)
#]=======================================================================]
find_path(CUPS_INCLUDE_DIR cups/cups.h )

View File

@@ -1,46 +1,47 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCurses
# ----------
#
# Find the curses or ncurses include file and library.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module defines the following variables:
#
# ``CURSES_FOUND``
# True if Curses is found.
# ``CURSES_INCLUDE_DIRS``
# The include directories needed to use Curses.
# ``CURSES_LIBRARIES``
# The libraries needed to use Curses.
# ``CURSES_HAVE_CURSES_H``
# True if curses.h is available.
# ``CURSES_HAVE_NCURSES_H``
# True if ncurses.h is available.
# ``CURSES_HAVE_NCURSES_NCURSES_H``
# True if ``ncurses/ncurses.h`` is available.
# ``CURSES_HAVE_NCURSES_CURSES_H``
# True if ``ncurses/curses.h`` is available.
#
# Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the
# ``find_package(Curses)`` call if NCurses functionality is required.
# Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the
# ``find_package(Curses)`` call if unicode functionality is required.
#
# Backward Compatibility
# ^^^^^^^^^^^^^^^^^^^^^^
#
# The following variable are provided for backward compatibility:
#
# ``CURSES_INCLUDE_DIR``
# Path to Curses include. Use ``CURSES_INCLUDE_DIRS`` instead.
# ``CURSES_LIBRARY``
# Path to Curses library. Use ``CURSES_LIBRARIES`` instead.
#[=======================================================================[.rst:
FindCurses
----------
Find the curses or ncurses include file and library.
Result Variables
^^^^^^^^^^^^^^^^
This module defines the following variables:
``CURSES_FOUND``
True if Curses is found.
``CURSES_INCLUDE_DIRS``
The include directories needed to use Curses.
``CURSES_LIBRARIES``
The libraries needed to use Curses.
``CURSES_HAVE_CURSES_H``
True if curses.h is available.
``CURSES_HAVE_NCURSES_H``
True if ncurses.h is available.
``CURSES_HAVE_NCURSES_NCURSES_H``
True if ``ncurses/ncurses.h`` is available.
``CURSES_HAVE_NCURSES_CURSES_H``
True if ``ncurses/curses.h`` is available.
Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the
``find_package(Curses)`` call if NCurses functionality is required.
Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the
``find_package(Curses)`` call if unicode functionality is required.
Backward Compatibility
^^^^^^^^^^^^^^^^^^^^^^
The following variable are provided for backward compatibility:
``CURSES_INCLUDE_DIR``
Path to Curses include. Use ``CURSES_INCLUDE_DIRS`` instead.
``CURSES_LIBRARY``
Path to Curses library. Use ``CURSES_LIBRARIES`` instead.
#]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake)

View File

@@ -1,142 +1,143 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCxxTest
# -----------
#
# Find CxxTest
#
# Find the CxxTest suite and declare a helper macro for creating unit
# tests and integrating them with CTest. For more details on CxxTest
# see http://cxxtest.tigris.org
#
# INPUT Variables
#
# ::
#
# CXXTEST_USE_PYTHON [deprecated since 1.3]
# Only used in the case both Python & Perl
# are detected on the system to control
# which CxxTest code generator is used.
# Valid only for CxxTest version 3.
#
#
#
# ::
#
# NOTE: In older versions of this Find Module,
# this variable controlled if the Python test
# generator was used instead of the Perl one,
# regardless of which scripting language the
# user had installed.
#
#
#
# ::
#
# CXXTEST_TESTGEN_ARGS (since CMake 2.8.3)
# Specify a list of options to pass to the CxxTest code
# generator. If not defined, --error-printer is
# passed.
#
#
#
# OUTPUT Variables
#
# ::
#
# CXXTEST_FOUND
# True if the CxxTest framework was found
# CXXTEST_INCLUDE_DIRS
# Where to find the CxxTest include directory
# CXXTEST_PERL_TESTGEN_EXECUTABLE
# The perl-based test generator
# CXXTEST_PYTHON_TESTGEN_EXECUTABLE
# The python-based test generator
# CXXTEST_TESTGEN_EXECUTABLE (since CMake 2.8.3)
# The test generator that is actually used (chosen using user preferences
# and interpreters found in the system)
# CXXTEST_TESTGEN_INTERPRETER (since CMake 2.8.3)
# The full path to the Perl or Python executable on the system, on
# platforms where the script cannot be executed using its shebang line.
#
#
#
# MACROS for optional use by CMake users:
#
# ::
#
# CXXTEST_ADD_TEST(<test_name> <gen_source_file> <input_files_to_testgen...>)
# Creates a CxxTest runner and adds it to the CTest testing suite
# Parameters:
# test_name The name of the test
# gen_source_file The generated source filename to be
# generated by CxxTest
# input_files_to_testgen The list of header files containing the
# CxxTest::TestSuite's to be included in
# this runner
#
#
#
# ::
#
# #==============
# Example Usage:
#
#
#
# ::
#
# find_package(CxxTest)
# if(CXXTEST_FOUND)
# include_directories(${CXXTEST_INCLUDE_DIR})
# enable_testing()
#
#
#
# ::
#
# CXXTEST_ADD_TEST(unittest_foo foo_test.cc
# ${CMAKE_CURRENT_SOURCE_DIR}/foo_test.h)
# target_link_libraries(unittest_foo foo) # as needed
# endif()
#
#
#
# ::
#
# This will (if CxxTest is found):
# 1. Invoke the testgen executable to autogenerate foo_test.cc in the
# binary tree from "foo_test.h" in the current source directory.
# 2. Create an executable and test called unittest_foo.
#
#
#
# ::
#
# #=============
# Example foo_test.h:
#
#
#
# ::
#
# #include <cxxtest/TestSuite.h>
#
#
#
# ::
#
# class MyTestSuite : public CxxTest::TestSuite
# {
# public:
# void testAddition( void )
# {
# TS_ASSERT( 1 + 1 > 1 );
# TS_ASSERT_EQUALS( 1 + 1, 2 );
# }
# };
#[=======================================================================[.rst:
FindCxxTest
-----------
Find CxxTest
Find the CxxTest suite and declare a helper macro for creating unit
tests and integrating them with CTest. For more details on CxxTest
see http://cxxtest.tigris.org
INPUT Variables
::
CXXTEST_USE_PYTHON [deprecated since 1.3]
Only used in the case both Python & Perl
are detected on the system to control
which CxxTest code generator is used.
Valid only for CxxTest version 3.
::
NOTE: In older versions of this Find Module,
this variable controlled if the Python test
generator was used instead of the Perl one,
regardless of which scripting language the
user had installed.
::
CXXTEST_TESTGEN_ARGS (since CMake 2.8.3)
Specify a list of options to pass to the CxxTest code
generator. If not defined, --error-printer is
passed.
OUTPUT Variables
::
CXXTEST_FOUND
True if the CxxTest framework was found
CXXTEST_INCLUDE_DIRS
Where to find the CxxTest include directory
CXXTEST_PERL_TESTGEN_EXECUTABLE
The perl-based test generator
CXXTEST_PYTHON_TESTGEN_EXECUTABLE
The python-based test generator
CXXTEST_TESTGEN_EXECUTABLE (since CMake 2.8.3)
The test generator that is actually used (chosen using user preferences
and interpreters found in the system)
CXXTEST_TESTGEN_INTERPRETER (since CMake 2.8.3)
The full path to the Perl or Python executable on the system, on
platforms where the script cannot be executed using its shebang line.
MACROS for optional use by CMake users:
::
CXXTEST_ADD_TEST(<test_name> <gen_source_file> <input_files_to_testgen...>)
Creates a CxxTest runner and adds it to the CTest testing suite
Parameters:
test_name The name of the test
gen_source_file The generated source filename to be
generated by CxxTest
input_files_to_testgen The list of header files containing the
CxxTest::TestSuite's to be included in
this runner
::
#==============
Example Usage:
::
find_package(CxxTest)
if(CXXTEST_FOUND)
include_directories(${CXXTEST_INCLUDE_DIR})
enable_testing()
::
CXXTEST_ADD_TEST(unittest_foo foo_test.cc
${CMAKE_CURRENT_SOURCE_DIR}/foo_test.h)
target_link_libraries(unittest_foo foo) # as needed
endif()
::
This will (if CxxTest is found):
1. Invoke the testgen executable to autogenerate foo_test.cc in the
binary tree from "foo_test.h" in the current source directory.
2. Create an executable and test called unittest_foo.
::
#=============
Example foo_test.h:
::
#include <cxxtest/TestSuite.h>
::
class MyTestSuite : public CxxTest::TestSuite
{
public:
void testAddition( void )
{
TS_ASSERT( 1 + 1 > 1 );
TS_ASSERT_EQUALS( 1 + 1, 2 );
}
};
#]=======================================================================]
# Version 1.4 (11/18/10) (CMake 2.8.4)
# Issue 11384: Added support to the CXX_ADD_TEST macro so header

View File

@@ -1,11 +1,12 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCygwin
# ----------
#
# this module looks for Cygwin
#[=======================================================================[.rst:
FindCygwin
----------
this module looks for Cygwin
#]=======================================================================]
if (WIN32)
if(CYGWIN_INSTALL_PATH)

View File

@@ -1,82 +1,83 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindDCMTK
# ---------
#
# Find DCMTK libraries and applications
#
# The module defines the following variables::
#
# DCMTK_INCLUDE_DIRS - Directories to include to use DCMTK
# DCMTK_LIBRARIES - Files to link against to use DCMTK
# DCMTK_FOUND - If false, don't try to use DCMTK
# DCMTK_DIR - (optional) Source directory for DCMTK
#
# Compatibility
# ^^^^^^^^^^^^^
#
# This module is able to find a version of DCMTK that does or does not export
# a *DCMTKConfig.cmake* file. It applies a two step process:
#
# * Step 1: Attempt to find DCMTK version providing a *DCMTKConfig.cmake* file.
# * Step 2: If step 1 failed, rely on *FindDCMTK.cmake* to set `DCMTK_*` variables details below.
#
#
# `Recent DCMTK
# <http://git.dcmtk.org/web?p=dcmtk.git;a=commit;h=662ae187c493c6b9a73dd5e3875372cebd0c11fe>`_
# provides a *DCMTKConfig.cmake* :manual:`package configuration file
# <cmake-packages(7)>`. To exclusively use the package configuration file
# (recommended when possible), pass the `NO_MODULE` option to
# :command:`find_package`. For example, `find_package(DCMTK NO_MODULE)`.
# This requires official DCMTK snapshot *3.6.1_20140617* or newer.
#
#
# Until all clients update to the more recent DCMTK, build systems will need
# to support different versions of DCMTK.
#
# On any given system, the following combinations of DCMTK versions could be
# considered:
#
# +--------+---------------------+-----------------------+-------------------+
# | | SYSTEM DCMTK | LOCAL DCMTK | Supported ? |
# +--------+---------------------+-----------------------+-------------------+
# | Case A | NA | [ ] DCMTKConfig | YES |
# +--------+---------------------+-----------------------+-------------------+
# | Case B | NA | [X] DCMTKConfig | YES |
# +--------+---------------------+-----------------------+-------------------+
# | Case C | [ ] DCMTKConfig | NA | YES |
# +--------+---------------------+-----------------------+-------------------+
# | Case D | [X] DCMTKConfig | NA | YES |
# +--------+---------------------+-----------------------+-------------------+
# | Case E | [ ] DCMTKConfig | [ ] DCMTKConfig | YES (*) |
# +--------+---------------------+-----------------------+-------------------+
# | Case F | [X] DCMTKConfig | [ ] DCMTKConfig | NO |
# +--------+---------------------+-----------------------+-------------------+
# | Case G | [ ] DCMTKConfig | [X] DCMTKConfig | YES |
# +--------+---------------------+-----------------------+-------------------+
# | Case H | [X] DCMTKConfig | [X] DCMTKConfig | YES |
# +--------+---------------------+-----------------------+-------------------+
#
# (*) See Troubleshooting section.
#
# Legend:
#
# NA ...............: Means that no System or Local DCMTK is available
#
# [ ] DCMTKConfig ..: Means that the version of DCMTK does NOT export a DCMTKConfig.cmake file.
#
# [X] DCMTKConfig ..: Means that the version of DCMTK exports a DCMTKConfig.cmake file.
#
#
# Troubleshooting
# ^^^^^^^^^^^^^^^
#
# What to do if my project finds a different version of DCMTK?
#
# Remove DCMTK entry from the CMake cache per :command:`find_package`
# documentation.
#[=======================================================================[.rst:
FindDCMTK
---------
Find DCMTK libraries and applications
The module defines the following variables::
DCMTK_INCLUDE_DIRS - Directories to include to use DCMTK
DCMTK_LIBRARIES - Files to link against to use DCMTK
DCMTK_FOUND - If false, don't try to use DCMTK
DCMTK_DIR - (optional) Source directory for DCMTK
Compatibility
^^^^^^^^^^^^^
This module is able to find a version of DCMTK that does or does not export
a *DCMTKConfig.cmake* file. It applies a two step process:
* Step 1: Attempt to find DCMTK version providing a *DCMTKConfig.cmake* file.
* Step 2: If step 1 failed, rely on *FindDCMTK.cmake* to set `DCMTK_*` variables details below.
`Recent DCMTK
<http://git.dcmtk.org/web?p=dcmtk.git;a=commit;h=662ae187c493c6b9a73dd5e3875372cebd0c11fe>`_
provides a *DCMTKConfig.cmake* :manual:`package configuration file
<cmake-packages(7)>`. To exclusively use the package configuration file
(recommended when possible), pass the `NO_MODULE` option to
:command:`find_package`. For example, `find_package(DCMTK NO_MODULE)`.
This requires official DCMTK snapshot *3.6.1_20140617* or newer.
Until all clients update to the more recent DCMTK, build systems will need
to support different versions of DCMTK.
On any given system, the following combinations of DCMTK versions could be
considered:
+--------+---------------------+-----------------------+-------------------+
| | SYSTEM DCMTK | LOCAL DCMTK | Supported ? |
+--------+---------------------+-----------------------+-------------------+
| Case A | NA | [ ] DCMTKConfig | YES |
+--------+---------------------+-----------------------+-------------------+
| Case B | NA | [X] DCMTKConfig | YES |
+--------+---------------------+-----------------------+-------------------+
| Case C | [ ] DCMTKConfig | NA | YES |
+--------+---------------------+-----------------------+-------------------+
| Case D | [X] DCMTKConfig | NA | YES |
+--------+---------------------+-----------------------+-------------------+
| Case E | [ ] DCMTKConfig | [ ] DCMTKConfig | YES (*) |
+--------+---------------------+-----------------------+-------------------+
| Case F | [X] DCMTKConfig | [ ] DCMTKConfig | NO |
+--------+---------------------+-----------------------+-------------------+
| Case G | [ ] DCMTKConfig | [X] DCMTKConfig | YES |
+--------+---------------------+-----------------------+-------------------+
| Case H | [X] DCMTKConfig | [X] DCMTKConfig | YES |
+--------+---------------------+-----------------------+-------------------+
(*) See Troubleshooting section.
Legend:
NA ...............: Means that no System or Local DCMTK is available
[ ] DCMTKConfig ..: Means that the version of DCMTK does NOT export a DCMTKConfig.cmake file.
[X] DCMTKConfig ..: Means that the version of DCMTK exports a DCMTKConfig.cmake file.
Troubleshooting
^^^^^^^^^^^^^^^
What to do if my project finds a different version of DCMTK?
Remove DCMTK entry from the CMake cache per :command:`find_package`
documentation.
#]=======================================================================]
#
# Written for VXL by Amitha Perera.

View File

@@ -1,14 +1,15 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindDart
# --------
#
# Find DART
#
# This module looks for the dart testing software and sets DART_ROOT to
# point to where it found it.
#[=======================================================================[.rst:
FindDart
--------
Find DART
This module looks for the dart testing software and sets DART_ROOT to
point to where it found it.
#]=======================================================================]
find_path(DART_ROOT README.INSTALL
HINTS

View File

@@ -1,35 +1,36 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindDevIL
# ---------
#
#
#
# This module locates the developer's image library.
# http://openil.sourceforge.net/
#
# This module sets:
#
# ::
#
# IL_LIBRARIES - the name of the IL library. These include the full path to
# the core DevIL library. This one has to be linked into the
# application.
# ILU_LIBRARIES - the name of the ILU library. Again, the full path. This
# library is for filters and effects, not actual loading. It
# doesn't have to be linked if the functionality it provides
# is not used.
# ILUT_LIBRARIES - the name of the ILUT library. Full path. This part of the
# library interfaces with OpenGL. It is not strictly needed
# in applications.
# IL_INCLUDE_DIR - where to find the il.h, ilu.h and ilut.h files.
# DevIL_FOUND - this is set to TRUE if all the above variables were set.
# This will be set to false if ILU or ILUT are not found,
# even if they are not needed. In most systems, if one
# library is found all the others are as well. That's the
# way the DevIL developers release it.
#[=======================================================================[.rst:
FindDevIL
---------
This module locates the developer's image library.
http://openil.sourceforge.net/
This module sets:
::
IL_LIBRARIES - the name of the IL library. These include the full path to
the core DevIL library. This one has to be linked into the
application.
ILU_LIBRARIES - the name of the ILU library. Again, the full path. This
library is for filters and effects, not actual loading. It
doesn't have to be linked if the functionality it provides
is not used.
ILUT_LIBRARIES - the name of the ILUT library. Full path. This part of the
library interfaces with OpenGL. It is not strictly needed
in applications.
IL_INCLUDE_DIR - where to find the il.h, ilu.h and ilut.h files.
DevIL_FOUND - this is set to TRUE if all the above variables were set.
This will be set to false if ILU or ILUT are not found,
even if they are not needed. In most systems, if one
library is found all the others are as well. That's the
way the DevIL developers release it.
#]=======================================================================]
# TODO: Add version support.
# Tested under Linux and Windows (MSVC)

View File

@@ -1,32 +1,33 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindEXPAT
# ---------
#
# Find the native Expat headers and library.
#
# Imported Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the following :prop_tgt:`IMPORTED` targets:
#
# ``EXPAT::EXPAT``
# The Expat ``expat`` library, if found.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project:
#
# ``EXPAT_INCLUDE_DIRS``
# where to find expat.h, etc.
# ``EXPAT_LIBRARIES``
# the libraries to link against to use Expat.
# ``EXPAT_FOUND``
# true if the Expat headers and libraries were found.
#
#[=======================================================================[.rst:
FindEXPAT
---------
Find the native Expat headers and library.
Imported Targets
^^^^^^^^^^^^^^^^
This module defines the following :prop_tgt:`IMPORTED` targets:
``EXPAT::EXPAT``
The Expat ``expat`` library, if found.
Result Variables
^^^^^^^^^^^^^^^^
This module will set the following variables in your project:
``EXPAT_INCLUDE_DIRS``
where to find expat.h, etc.
``EXPAT_LIBRARIES``
the libraries to link against to use Expat.
``EXPAT_FOUND``
true if the Expat headers and libraries were found.
#]=======================================================================]
find_package(PkgConfig QUIET)

View File

@@ -1,100 +1,101 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindFLEX
# --------
#
# Find flex executable and provides a macro to generate custom build rules
#
#
#
# The module defines the following variables:
#
# ::
#
# FLEX_FOUND - true is flex executable is found
# FLEX_EXECUTABLE - the path to the flex executable
# FLEX_VERSION - the version of flex
# FLEX_LIBRARIES - The flex libraries
# FLEX_INCLUDE_DIRS - The path to the flex headers
#
#
#
# The minimum required version of flex can be specified using the
# standard syntax, e.g. find_package(FLEX 2.5.13)
#
#
#
# If flex is found on the system, the module provides the macro:
#
# ::
#
# FLEX_TARGET(Name FlexInput FlexOutput
# [COMPILE_FLAGS <string>]
# [DEFINES_FILE <string>]
# )
#
# which creates a custom command to generate the <FlexOutput> file from
# the <FlexInput> file. If COMPILE_FLAGS option is specified, the next
# parameter is added to the flex command line. If flex is configured to
# output a header file, the DEFINES_FILE option may be used to specify its
# name. Name is an alias used to get details of this custom command.
# Indeed the macro defines the following variables:
#
# ::
#
# FLEX_${Name}_DEFINED - true is the macro ran successfully
# FLEX_${Name}_OUTPUTS - the source file generated by the custom rule, an
# alias for FlexOutput
# FLEX_${Name}_INPUT - the flex source file, an alias for ${FlexInput}
# FLEX_${Name}_OUTPUT_HEADER - the header flex output, if any.
#
#
#
# Flex scanners often use tokens defined by Bison: the code generated
# by Flex depends of the header generated by Bison. This module also
# defines a macro:
#
# ::
#
# ADD_FLEX_BISON_DEPENDENCY(FlexTarget BisonTarget)
#
# which adds the required dependency between a scanner and a parser
# where <FlexTarget> and <BisonTarget> are the first parameters of
# respectively FLEX_TARGET and BISON_TARGET macros.
#
# ::
#
# ====================================================================
# Example:
#
#
#
# ::
#
# find_package(BISON)
# find_package(FLEX)
#
#
#
# ::
#
# BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)
# FLEX_TARGET(MyScanner lexer.l ${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp)
# ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser)
#
#
#
# ::
#
# include_directories(${CMAKE_CURRENT_BINARY_DIR})
# add_executable(Foo
# Foo.cc
# ${BISON_MyParser_OUTPUTS}
# ${FLEX_MyScanner_OUTPUTS}
# )
# ====================================================================
#[=======================================================================[.rst:
FindFLEX
--------
Find flex executable and provides a macro to generate custom build rules
The module defines the following variables:
::
FLEX_FOUND - true is flex executable is found
FLEX_EXECUTABLE - the path to the flex executable
FLEX_VERSION - the version of flex
FLEX_LIBRARIES - The flex libraries
FLEX_INCLUDE_DIRS - The path to the flex headers
The minimum required version of flex can be specified using the
standard syntax, e.g. find_package(FLEX 2.5.13)
If flex is found on the system, the module provides the macro:
::
FLEX_TARGET(Name FlexInput FlexOutput
[COMPILE_FLAGS <string>]
[DEFINES_FILE <string>]
)
which creates a custom command to generate the <FlexOutput> file from
the <FlexInput> file. If COMPILE_FLAGS option is specified, the next
parameter is added to the flex command line. If flex is configured to
output a header file, the DEFINES_FILE option may be used to specify its
name. Name is an alias used to get details of this custom command.
Indeed the macro defines the following variables:
::
FLEX_${Name}_DEFINED - true is the macro ran successfully
FLEX_${Name}_OUTPUTS - the source file generated by the custom rule, an
alias for FlexOutput
FLEX_${Name}_INPUT - the flex source file, an alias for ${FlexInput}
FLEX_${Name}_OUTPUT_HEADER - the header flex output, if any.
Flex scanners often use tokens defined by Bison: the code generated
by Flex depends of the header generated by Bison. This module also
defines a macro:
::
ADD_FLEX_BISON_DEPENDENCY(FlexTarget BisonTarget)
which adds the required dependency between a scanner and a parser
where <FlexTarget> and <BisonTarget> are the first parameters of
respectively FLEX_TARGET and BISON_TARGET macros.
::
====================================================================
Example:
::
find_package(BISON)
find_package(FLEX)
::
BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)
FLEX_TARGET(MyScanner lexer.l ${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp)
ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser)
::
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_executable(Foo
Foo.cc
${BISON_MyParser_OUTPUTS}
${FLEX_MyScanner_OUTPUTS}
)
====================================================================
#]=======================================================================]
find_program(FLEX_EXECUTABLE NAMES flex win_flex DOC "path to the flex executable")
mark_as_advanced(FLEX_EXECUTABLE)

View File

@@ -1,82 +1,83 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindFLTK
# --------
#
# Find the FLTK library
#
# Input Variables
# ^^^^^^^^^^^^^^^
#
# By default this module will search for all of the FLTK components and
# add them to the FLTK_LIBRARIES variable. You can limit the components
# which get placed in FLTK_LIBRARIES by defining one or more of the
# following three options:
#
# ``FLTK_SKIP_OPENGL``
# Set to true to disable searching for the FLTK GL library
#
# ``FLTK_SKIP_FORMS``
# Set to true to disable searching for the FLTK Forms library
#
# ``FLTK_SKIP_IMAGES``
# Set to true to disable searching for the FLTK Images library
#
# FLTK is composed also by a binary tool. You can set the following option:
#
# ``FLTK_SKIP_FLUID``
# Set to true to not look for the FLUID binary
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# The following variables will be defined:
#
# ``FLTK_FOUND``
# True if all components not skipped were found
#
# ``FLTK_INCLUDE_DIR``
# Path to the include directory for FLTK header files
#
# ``FLTK_LIBRARIES``
# List of the FLTK libraries found
#
# ``FLTK_FLUID_EXECUTABLE``
# Path to the FLUID binary tool
#
# ``FLTK_WRAP_UI``
# True if FLUID is found, used to enable the FLTK_WRAP_UI command
#
# Cache Variables
# ^^^^^^^^^^^^^^^
#
# The following cache variables are also available to set or use:
#
# ``FLTK_BASE_LIBRARY_RELEASE``
# The FLTK base library (optimized)
#
# ``FLTK_BASE_LIBRARY_DEBUG``
# The FLTK base library (debug)
#
# ``FLTK_GL_LIBRARY_RELEASE``
# The FLTK GL library (optimized)
#
# ``FLTK_GL_LIBRARY_DEBUG``
# The FLTK GL library (debug)
#
# ``FLTK_FORMS_LIBRARY_RELEASE``
# The FLTK Forms library (optimized)
#
# ``FLTK_FORMS_LIBRARY_DEBUG``
# The FLTK Forms library (debug)
#
# ``FLTK_IMAGES_LIBRARY_RELEASE``
# The FLTK Images protobuf library (optimized)
#
# ``FLTK_IMAGES_LIBRARY_DEBUG``
# The FLTK Images library (debug)
#[=======================================================================[.rst:
FindFLTK
--------
Find the FLTK library
Input Variables
^^^^^^^^^^^^^^^
By default this module will search for all of the FLTK components and
add them to the FLTK_LIBRARIES variable. You can limit the components
which get placed in FLTK_LIBRARIES by defining one or more of the
following three options:
``FLTK_SKIP_OPENGL``
Set to true to disable searching for the FLTK GL library
``FLTK_SKIP_FORMS``
Set to true to disable searching for the FLTK Forms library
``FLTK_SKIP_IMAGES``
Set to true to disable searching for the FLTK Images library
FLTK is composed also by a binary tool. You can set the following option:
``FLTK_SKIP_FLUID``
Set to true to not look for the FLUID binary
Result Variables
^^^^^^^^^^^^^^^^
The following variables will be defined:
``FLTK_FOUND``
True if all components not skipped were found
``FLTK_INCLUDE_DIR``
Path to the include directory for FLTK header files
``FLTK_LIBRARIES``
List of the FLTK libraries found
``FLTK_FLUID_EXECUTABLE``
Path to the FLUID binary tool
``FLTK_WRAP_UI``
True if FLUID is found, used to enable the FLTK_WRAP_UI command
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables are also available to set or use:
``FLTK_BASE_LIBRARY_RELEASE``
The FLTK base library (optimized)
``FLTK_BASE_LIBRARY_DEBUG``
The FLTK base library (debug)
``FLTK_GL_LIBRARY_RELEASE``
The FLTK GL library (optimized)
``FLTK_GL_LIBRARY_DEBUG``
The FLTK GL library (debug)
``FLTK_FORMS_LIBRARY_RELEASE``
The FLTK Forms library (optimized)
``FLTK_FORMS_LIBRARY_DEBUG``
The FLTK Forms library (debug)
``FLTK_IMAGES_LIBRARY_RELEASE``
The FLTK Images protobuf library (optimized)
``FLTK_IMAGES_LIBRARY_DEBUG``
The FLTK Images library (debug)
#]=======================================================================]
if(NOT FLTK_SKIP_OPENGL)
find_package(OpenGL)

View File

@@ -1,29 +1,30 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindFLTK2
# ---------
#
# Find the native FLTK2 includes and library
#
# The following settings are defined
#
# ::
#
# FLTK2_FLUID_EXECUTABLE, where to find the Fluid tool
# FLTK2_WRAP_UI, This enables the FLTK2_WRAP_UI command
# FLTK2_INCLUDE_DIR, where to find include files
# FLTK2_LIBRARIES, list of fltk2 libraries
# FLTK2_FOUND, Don't use FLTK2 if false.
#
# The following settings should not be used in general.
#
# ::
#
# FLTK2_BASE_LIBRARY = the full path to fltk2.lib
# FLTK2_GL_LIBRARY = the full path to fltk2_gl.lib
# FLTK2_IMAGES_LIBRARY = the full path to fltk2_images.lib
#[=======================================================================[.rst:
FindFLTK2
---------
Find the native FLTK2 includes and library
The following settings are defined
::
FLTK2_FLUID_EXECUTABLE, where to find the Fluid tool
FLTK2_WRAP_UI, This enables the FLTK2_WRAP_UI command
FLTK2_INCLUDE_DIR, where to find include files
FLTK2_LIBRARIES, list of fltk2 libraries
FLTK2_FOUND, Don't use FLTK2 if false.
The following settings should not be used in general.
::
FLTK2_BASE_LIBRARY = the full path to fltk2.lib
FLTK2_GL_LIBRARY = the full path to fltk2_gl.lib
FLTK2_IMAGES_LIBRARY = the full path to fltk2_images.lib
#]=======================================================================]
set (FLTK2_DIR $ENV{FLTK2_DIR} )

View File

@@ -1,45 +1,46 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindFreetype
# ------------
#
# Find the FreeType font renderer includes and library.
#
# Imported Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the following :prop_tgt:`IMPORTED` target:
#
# ``Freetype::Freetype``
# The Freetype ``freetype`` library, if found
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project:
#
# ``FREETYPE_FOUND``
# true if the Freetype headers and libraries were found
# ``FREETYPE_INCLUDE_DIRS``
# directories containing the Freetype headers. This is the
# concatenation of the variables:
#
# ``FREETYPE_INCLUDE_DIR_ft2build``
# directory holding the main Freetype API configuration header
# ``FREETYPE_INCLUDE_DIR_freetype2``
# directory holding Freetype public headers
# ``FREETYPE_LIBRARIES``
# the library to link against
# ``FREETYPE_VERSION_STRING``
# the version of freetype found (since CMake 2.8.8)
#
# Hints
# ^^^^^
#
# The user may set the environment variable ``FREETYPE_DIR`` to the root
# directory of a Freetype installation.
#[=======================================================================[.rst:
FindFreetype
------------
Find the FreeType font renderer includes and library.
Imported Targets
^^^^^^^^^^^^^^^^
This module defines the following :prop_tgt:`IMPORTED` target:
``Freetype::Freetype``
The Freetype ``freetype`` library, if found
Result Variables
^^^^^^^^^^^^^^^^
This module will set the following variables in your project:
``FREETYPE_FOUND``
true if the Freetype headers and libraries were found
``FREETYPE_INCLUDE_DIRS``
directories containing the Freetype headers. This is the
concatenation of the variables:
``FREETYPE_INCLUDE_DIR_ft2build``
directory holding the main Freetype API configuration header
``FREETYPE_INCLUDE_DIR_freetype2``
directory holding Freetype public headers
``FREETYPE_LIBRARIES``
the library to link against
``FREETYPE_VERSION_STRING``
the version of freetype found (since CMake 2.8.8)
Hints
^^^^^
The user may set the environment variable ``FREETYPE_DIR`` to the root
directory of a Freetype installation.
#]=======================================================================]
# Created by Eric Wing.
# Modifications by Alexander Neundorf.

View File

@@ -1,19 +1,20 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGCCXML
# ----------
#
# Find the GCC-XML front-end executable.
#
#
#
# This module will define the following variables:
#
# ::
#
# GCCXML - the GCC-XML front-end executable.
#[=======================================================================[.rst:
FindGCCXML
----------
Find the GCC-XML front-end executable.
This module will define the following variables:
::
GCCXML - the GCC-XML front-end executable.
#]=======================================================================]
find_program(GCCXML
NAMES gccxml

View File

@@ -1,29 +1,30 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGDAL
# --------
#
#
#
# Locate gdal
#
# This module accepts the following environment variables:
#
# ::
#
# GDAL_DIR or GDAL_ROOT - Specify the location of GDAL
#
#
#
# This module defines the following CMake variables:
#
# ::
#
# GDAL_FOUND - True if libgdal is found
# GDAL_LIBRARY - A variable pointing to the GDAL library
# GDAL_INCLUDE_DIR - Where to find the headers
#[=======================================================================[.rst:
FindGDAL
--------
Locate gdal
This module accepts the following environment variables:
::
GDAL_DIR or GDAL_ROOT - Specify the location of GDAL
This module defines the following CMake variables:
::
GDAL_FOUND - True if libgdal is found
GDAL_LIBRARY - A variable pointing to the GDAL library
GDAL_INCLUDE_DIR - Where to find the headers
#]=======================================================================]
#
# $GDALDIR is an environment variable that would

View File

@@ -1,28 +1,29 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGIF
# -------
#
# This finds the GIF library (giflib)
#
# The module defines the following variables:
#
# ``GIF_FOUND``
# True if giflib was found
# ``GIF_LIBRARIES``
# Libraries to link to in order to use giflib
# ``GIF_INCLUDE_DIR``
# where to find the headers
# ``GIF_VERSION``
# 3, 4 or a full version string (eg 5.1.4) for versions >= 4.1.6
#
# The minimum required version of giflib can be specified using the
# standard syntax, e.g. find_package(GIF 4)
#
# $GIF_DIR is an environment variable that would correspond to the
# ./configure --prefix=$GIF_DIR
#[=======================================================================[.rst:
FindGIF
-------
This finds the GIF library (giflib)
The module defines the following variables:
``GIF_FOUND``
True if giflib was found
``GIF_LIBRARIES``
Libraries to link to in order to use giflib
``GIF_INCLUDE_DIR``
where to find the headers
``GIF_VERSION``
3, 4 or a full version string (eg 5.1.4) for versions >= 4.1.6
The minimum required version of giflib can be specified using the
standard syntax, e.g. find_package(GIF 4)
$GIF_DIR is an environment variable that would correspond to the
./configure --prefix=$GIF_DIR
#]=======================================================================]
# Created by Eric Wing.
# Modifications by Alexander Neundorf, Ben Campbell

View File

@@ -1,28 +1,29 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGLEW
# --------
#
# Find the OpenGL Extension Wrangler Library (GLEW)
#
# IMPORTED Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the :prop_tgt:`IMPORTED` target ``GLEW::GLEW``,
# if GLEW has been found.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module defines the following variables:
#
# ::
#
# GLEW_INCLUDE_DIRS - include directories for GLEW
# GLEW_LIBRARIES - libraries to link against GLEW
# GLEW_FOUND - true if GLEW has been found and can be used
#[=======================================================================[.rst:
FindGLEW
--------
Find the OpenGL Extension Wrangler Library (GLEW)
IMPORTED Targets
^^^^^^^^^^^^^^^^
This module defines the :prop_tgt:`IMPORTED` target ``GLEW::GLEW``,
if GLEW has been found.
Result Variables
^^^^^^^^^^^^^^^^
This module defines the following variables:
::
GLEW_INCLUDE_DIRS - include directories for GLEW
GLEW_LIBRARIES - libraries to link against GLEW
GLEW_FOUND - true if GLEW has been found and can be used
#]=======================================================================]
find_path(GLEW_INCLUDE_DIR GL/glew.h)

View File

@@ -1,38 +1,39 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGLUT
# --------
#
# try to find glut library and include files.
#
# IMPORTED Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the :prop_tgt:`IMPORTED` targets:
#
# ``GLUT::GLUT``
# Defined if the system has GLUT.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module sets the following variables:
#
# ::
#
# GLUT_INCLUDE_DIR, where to find GL/glut.h, etc.
# GLUT_LIBRARIES, the libraries to link against
# GLUT_FOUND, If false, do not try to use GLUT.
#
# Also defined, but not for general use are:
#
# ::
#
# GLUT_glut_LIBRARY = the full path to the glut library.
# GLUT_Xmu_LIBRARY = the full path to the Xmu library.
# GLUT_Xi_LIBRARY = the full path to the Xi Library.
#[=======================================================================[.rst:
FindGLUT
--------
try to find glut library and include files.
IMPORTED Targets
^^^^^^^^^^^^^^^^
This module defines the :prop_tgt:`IMPORTED` targets:
``GLUT::GLUT``
Defined if the system has GLUT.
Result Variables
^^^^^^^^^^^^^^^^
This module sets the following variables:
::
GLUT_INCLUDE_DIR, where to find GL/glut.h, etc.
GLUT_LIBRARIES, the libraries to link against
GLUT_FOUND, If false, do not try to use GLUT.
Also defined, but not for general use are:
::
GLUT_glut_LIBRARY = the full path to the glut library.
GLUT_Xmu_LIBRARY = the full path to the Xmu library.
GLUT_Xi_LIBRARY = the full path to the Xi Library.
#]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)

View File

@@ -1,60 +1,61 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGSL
# --------
#
# Find the native GSL includes and libraries.
#
# The GNU Scientific Library (GSL) is a numerical library for C and C++
# programmers. It is free software under the GNU General Public
# License.
#
# Imported Targets
# ^^^^^^^^^^^^^^^^
#
# If GSL is found, this module defines the following :prop_tgt:`IMPORTED`
# targets::
#
# GSL::gsl - The main GSL library.
# GSL::gslcblas - The CBLAS support library used by GSL.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project::
#
# GSL_FOUND - True if GSL found on the local system
# GSL_INCLUDE_DIRS - Location of GSL header files.
# GSL_LIBRARIES - The GSL libraries.
# GSL_VERSION - The version of the discovered GSL install.
#
# Hints
# ^^^^^
#
# Set ``GSL_ROOT_DIR`` to a directory that contains a GSL installation.
#
# This script expects to find libraries at ``$GSL_ROOT_DIR/lib`` and the GSL
# headers at ``$GSL_ROOT_DIR/include/gsl``. The library directory may
# optionally provide Release and Debug folders. If available, the libraries
# named ``gsld``, ``gslblasd`` or ``cblasd`` are recognized as debug libraries.
# For Unix-like systems, this script will use ``$GSL_ROOT_DIR/bin/gsl-config``
# (if found) to aid in the discovery of GSL.
#
# Cache Variables
# ^^^^^^^^^^^^^^^
#
# This module may set the following variables depending on platform and type
# of GSL installation discovered. These variables may optionally be set to
# help this module find the correct files::
#
# GSL_CBLAS_LIBRARY - Location of the GSL CBLAS library.
# GSL_CBLAS_LIBRARY_DEBUG - Location of the debug GSL CBLAS library (if any).
# GSL_CONFIG_EXECUTABLE - Location of the ``gsl-config`` script (if any).
# GSL_LIBRARY - Location of the GSL library.
# GSL_LIBRARY_DEBUG - Location of the debug GSL library (if any).
#
#[=======================================================================[.rst:
FindGSL
--------
Find the native GSL includes and libraries.
The GNU Scientific Library (GSL) is a numerical library for C and C++
programmers. It is free software under the GNU General Public
License.
Imported Targets
^^^^^^^^^^^^^^^^
If GSL is found, this module defines the following :prop_tgt:`IMPORTED`
targets::
GSL::gsl - The main GSL library.
GSL::gslcblas - The CBLAS support library used by GSL.
Result Variables
^^^^^^^^^^^^^^^^
This module will set the following variables in your project::
GSL_FOUND - True if GSL found on the local system
GSL_INCLUDE_DIRS - Location of GSL header files.
GSL_LIBRARIES - The GSL libraries.
GSL_VERSION - The version of the discovered GSL install.
Hints
^^^^^
Set ``GSL_ROOT_DIR`` to a directory that contains a GSL installation.
This script expects to find libraries at ``$GSL_ROOT_DIR/lib`` and the GSL
headers at ``$GSL_ROOT_DIR/include/gsl``. The library directory may
optionally provide Release and Debug folders. If available, the libraries
named ``gsld``, ``gslblasd`` or ``cblasd`` are recognized as debug libraries.
For Unix-like systems, this script will use ``$GSL_ROOT_DIR/bin/gsl-config``
(if found) to aid in the discovery of GSL.
Cache Variables
^^^^^^^^^^^^^^^
This module may set the following variables depending on platform and type
of GSL installation discovered. These variables may optionally be set to
help this module find the correct files::
GSL_CBLAS_LIBRARY - Location of the GSL CBLAS library.
GSL_CBLAS_LIBRARY_DEBUG - Location of the debug GSL CBLAS library (if any).
GSL_CONFIG_EXECUTABLE - Location of the ``gsl-config`` script (if any).
GSL_LIBRARY - Location of the GSL library.
GSL_LIBRARY_DEBUG - Location of the debug GSL library (if any).
#]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)

View File

@@ -1,18 +1,19 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGTK
# -------
#
# try to find GTK (and glib) and GTKGLArea
#
# ::
#
# GTK_INCLUDE_DIR - Directories to include to use GTK
# GTK_LIBRARIES - Files to link against to use GTK
# GTK_FOUND - GTK was found
# GTK_GL_FOUND - GTK's GL features were found
#[=======================================================================[.rst:
FindGTK
-------
try to find GTK (and glib) and GTKGLArea
::
GTK_INCLUDE_DIR - Directories to include to use GTK
GTK_LIBRARIES - Files to link against to use GTK
GTK_FOUND - GTK was found
GTK_GL_FOUND - GTK's GL features were found
#]=======================================================================]
# don't even bother under WIN32
if(UNIX)

View File

@@ -1,102 +1,103 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGTK2
# --------
#
# FindGTK2.cmake
#
# This module can find the GTK2 widget libraries and several of its
# other optional components like gtkmm, glade, and glademm.
#
# NOTE: If you intend to use version checking, CMake 2.6.2 or later is
#
# ::
#
# required.
#
#
#
# Specify one or more of the following components as you call this find
# module. See example below.
#
# ::
#
# gtk
# gtkmm
# glade
# glademm
#
#
#
# The following variables will be defined for your use
#
# ::
#
# GTK2_FOUND - Were all of your specified components found?
# GTK2_INCLUDE_DIRS - All include directories
# GTK2_LIBRARIES - All libraries
# GTK2_TARGETS - All imported targets
# GTK2_DEFINITIONS - Additional compiler flags
#
#
#
# ::
#
# GTK2_VERSION - The version of GTK2 found (x.y.z)
# GTK2_MAJOR_VERSION - The major version of GTK2
# GTK2_MINOR_VERSION - The minor version of GTK2
# GTK2_PATCH_VERSION - The patch version of GTK2
#
#
#
# Optional variables you can define prior to calling this module:
#
# ::
#
# GTK2_DEBUG - Enables verbose debugging of the module
# GTK2_ADDITIONAL_SUFFIXES - Allows defining additional directories to
# search for include files
#
#
#
# ================= Example Usage:
#
# ::
#
# Call find_package() once, here are some examples to pick from:
#
#
#
# ::
#
# Require GTK 2.6 or later
# find_package(GTK2 2.6 REQUIRED gtk)
#
#
#
# ::
#
# Require GTK 2.10 or later and Glade
# find_package(GTK2 2.10 REQUIRED gtk glade)
#
#
#
# ::
#
# Search for GTK/GTKMM 2.8 or later
# find_package(GTK2 2.8 COMPONENTS gtk gtkmm)
#
#
#
# ::
#
# if(GTK2_FOUND)
# include_directories(${GTK2_INCLUDE_DIRS})
# add_executable(mygui mygui.cc)
# target_link_libraries(mygui ${GTK2_LIBRARIES})
# endif()
#[=======================================================================[.rst:
FindGTK2
--------
FindGTK2.cmake
This module can find the GTK2 widget libraries and several of its
other optional components like gtkmm, glade, and glademm.
NOTE: If you intend to use version checking, CMake 2.6.2 or later is
::
required.
Specify one or more of the following components as you call this find
module. See example below.
::
gtk
gtkmm
glade
glademm
The following variables will be defined for your use
::
GTK2_FOUND - Were all of your specified components found?
GTK2_INCLUDE_DIRS - All include directories
GTK2_LIBRARIES - All libraries
GTK2_TARGETS - All imported targets
GTK2_DEFINITIONS - Additional compiler flags
::
GTK2_VERSION - The version of GTK2 found (x.y.z)
GTK2_MAJOR_VERSION - The major version of GTK2
GTK2_MINOR_VERSION - The minor version of GTK2
GTK2_PATCH_VERSION - The patch version of GTK2
Optional variables you can define prior to calling this module:
::
GTK2_DEBUG - Enables verbose debugging of the module
GTK2_ADDITIONAL_SUFFIXES - Allows defining additional directories to
search for include files
================= Example Usage:
::
Call find_package() once, here are some examples to pick from:
::
Require GTK 2.6 or later
find_package(GTK2 2.6 REQUIRED gtk)
::
Require GTK 2.10 or later and Glade
find_package(GTK2 2.10 REQUIRED gtk glade)
::
Search for GTK/GTKMM 2.8 or later
find_package(GTK2 2.8 COMPONENTS gtk gtkmm)
::
if(GTK2_FOUND)
include_directories(${GTK2_INCLUDE_DIRS})
add_executable(mygui mygui.cc)
target_link_libraries(mygui ${GTK2_LIBRARIES})
endif()
#]=======================================================================]
# Version 1.6 (CMake 3.0)
# * Create targets for each library

View File

@@ -1,77 +1,78 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGTest
# ---------
#
# Locate the Google C++ Testing Framework.
#
# Imported targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the following :prop_tgt:`IMPORTED` targets:
#
# ``GTest::GTest``
# The Google Test ``gtest`` library, if found; adds Thread::Thread
# automatically
# ``GTest::Main``
# The Google Test ``gtest_main`` library, if found
#
#
# Result variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project:
#
# ``GTEST_FOUND``
# Found the Google Testing framework
# ``GTEST_INCLUDE_DIRS``
# the directory containing the Google Test headers
#
# The library variables below are set as normal variables. These
# contain debug/optimized keywords when a debugging library is found.
#
# ``GTEST_LIBRARIES``
# The Google Test ``gtest`` library; note it also requires linking
# with an appropriate thread library
# ``GTEST_MAIN_LIBRARIES``
# The Google Test ``gtest_main`` library
# ``GTEST_BOTH_LIBRARIES``
# Both ``gtest`` and ``gtest_main``
#
# Cache variables
# ^^^^^^^^^^^^^^^
#
# The following cache variables may also be set:
#
# ``GTEST_ROOT``
# The root directory of the Google Test installation (may also be
# set as an environment variable)
# ``GTEST_MSVC_SEARCH``
# If compiling with MSVC, this variable can be set to ``MT`` or
# ``MD`` (the default) to enable searching a GTest build tree
#
#
# Example usage
# ^^^^^^^^^^^^^
#
# ::
#
# enable_testing()
# find_package(GTest REQUIRED)
#
# add_executable(foo foo.cc)
# target_link_libraries(foo GTest::GTest GTest::Main)
#
# add_test(AllTestsInFoo foo)
#
#
# Deeper integration with CTest
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#
# See :module:`GoogleTest` for information on the :command:`gtest_add_tests`
# and :command:`gtest_discover_tests` commands.
#[=======================================================================[.rst:
FindGTest
---------
Locate the Google C++ Testing Framework.
Imported targets
^^^^^^^^^^^^^^^^
This module defines the following :prop_tgt:`IMPORTED` targets:
``GTest::GTest``
The Google Test ``gtest`` library, if found; adds Thread::Thread
automatically
``GTest::Main``
The Google Test ``gtest_main`` library, if found
Result variables
^^^^^^^^^^^^^^^^
This module will set the following variables in your project:
``GTEST_FOUND``
Found the Google Testing framework
``GTEST_INCLUDE_DIRS``
the directory containing the Google Test headers
The library variables below are set as normal variables. These
contain debug/optimized keywords when a debugging library is found.
``GTEST_LIBRARIES``
The Google Test ``gtest`` library; note it also requires linking
with an appropriate thread library
``GTEST_MAIN_LIBRARIES``
The Google Test ``gtest_main`` library
``GTEST_BOTH_LIBRARIES``
Both ``gtest`` and ``gtest_main``
Cache variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``GTEST_ROOT``
The root directory of the Google Test installation (may also be
set as an environment variable)
``GTEST_MSVC_SEARCH``
If compiling with MSVC, this variable can be set to ``MT`` or
``MD`` (the default) to enable searching a GTest build tree
Example usage
^^^^^^^^^^^^^
::
enable_testing()
find_package(GTest REQUIRED)
add_executable(foo foo.cc)
target_link_libraries(foo GTest::GTest GTest::Main)
add_test(AllTestsInFoo foo)
Deeper integration with CTest
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
See :module:`GoogleTest` for information on the :command:`gtest_add_tests`
and :command:`gtest_discover_tests` commands.
#]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/GoogleTest.cmake)

View File

@@ -1,61 +1,62 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGettext
# -----------
#
# Find GNU gettext tools
#
# This module looks for the GNU gettext tools. This module defines the
# following values:
#
# ::
#
# GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool.
# GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool.
# GETTEXT_FOUND: True if gettext has been found.
# GETTEXT_VERSION_STRING: the version of gettext found (since CMake 2.8.8)
#
#
#
# Additionally it provides the following macros:
#
# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN )
#
# ::
#
# This will create a target "translations" which will convert the
# given input po files into the binary output mo file. If the
# ALL option is used, the translations will also be created when
# building the default target.
#
# GETTEXT_PROCESS_POT_FILE( <potfile> [ALL] [INSTALL_DESTINATION <destdir>]
# LANGUAGES <lang1> <lang2> ... )
#
# ::
#
# Process the given pot file to mo files.
# If INSTALL_DESTINATION is given then automatically install rules will
# be created, the language subdirectory will be taken into account
# (by default use share/locale/).
# If ALL is specified, the pot file is processed when building the all traget.
# It creates a custom target "potfile".
#
# GETTEXT_PROCESS_PO_FILES( <lang> [ALL] [INSTALL_DESTINATION <dir>]
# PO_FILES <po1> <po2> ... )
#
# ::
#
# Process the given po files to mo files for the given language.
# If INSTALL_DESTINATION is given then automatically install rules will
# be created, the language subdirectory will be taken into account
# (by default use share/locale/).
# If ALL is specified, the po files are processed when building the all traget.
# It creates a custom target "pofiles".
#
# .. note::
# If you wish to use the Gettext library (libintl), use :module:`FindIntl`.
#[=======================================================================[.rst:
FindGettext
-----------
Find GNU gettext tools
This module looks for the GNU gettext tools. This module defines the
following values:
::
GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool.
GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool.
GETTEXT_FOUND: True if gettext has been found.
GETTEXT_VERSION_STRING: the version of gettext found (since CMake 2.8.8)
Additionally it provides the following macros:
GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN )
::
This will create a target "translations" which will convert the
given input po files into the binary output mo file. If the
ALL option is used, the translations will also be created when
building the default target.
GETTEXT_PROCESS_POT_FILE( <potfile> [ALL] [INSTALL_DESTINATION <destdir>]
LANGUAGES <lang1> <lang2> ... )
::
Process the given pot file to mo files.
If INSTALL_DESTINATION is given then automatically install rules will
be created, the language subdirectory will be taken into account
(by default use share/locale/).
If ALL is specified, the pot file is processed when building the all traget.
It creates a custom target "potfile".
GETTEXT_PROCESS_PO_FILES( <lang> [ALL] [INSTALL_DESTINATION <dir>]
PO_FILES <po1> <po2> ... )
::
Process the given po files to mo files for the given language.
If INSTALL_DESTINATION is given then automatically install rules will
be created, the language subdirectory will be taken into account
(by default use share/locale/).
If ALL is specified, the po files are processed when building the all traget.
It creates a custom target "pofiles".
.. note::
If you wish to use the Gettext library (libintl), use :module:`FindIntl`.
#]=======================================================================]
find_program(GETTEXT_MSGMERGE_EXECUTABLE msgmerge)

View File

@@ -1,27 +1,28 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGit
# -------
#
# The module defines the following variables:
#
# ``GIT_EXECUTABLE``
# Path to Git command-line client.
# ``Git_FOUND``, ``GIT_FOUND``
# True if the Git command-line client was found.
# ``GIT_VERSION_STRING``
# The version of Git found.
#
# Example usage:
#
# .. code-block:: cmake
#
# find_package(Git)
# if(Git_FOUND)
# message("Git found: ${GIT_EXECUTABLE}")
# endif()
#[=======================================================================[.rst:
FindGit
-------
The module defines the following variables:
``GIT_EXECUTABLE``
Path to Git command-line client.
``Git_FOUND``, ``GIT_FOUND``
True if the Git command-line client was found.
``GIT_VERSION_STRING``
The version of Git found.
Example usage:
.. code-block:: cmake
find_package(Git)
if(Git_FOUND)
message("Git found: ${GIT_EXECUTABLE}")
endif()
#]=======================================================================]
# Look for 'git' or 'eg' (easy git)
#

View File

@@ -1,22 +1,23 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGnuTLS
# ----------
#
# Try to find the GNU Transport Layer Security library (gnutls)
#
#
#
# Once done this will define
#
# ::
#
# GNUTLS_FOUND - System has gnutls
# GNUTLS_INCLUDE_DIR - The gnutls include directory
# GNUTLS_LIBRARIES - The libraries needed to use gnutls
# GNUTLS_DEFINITIONS - Compiler switches required for using gnutls
#[=======================================================================[.rst:
FindGnuTLS
----------
Try to find the GNU Transport Layer Security library (gnutls)
Once done this will define
::
GNUTLS_FOUND - System has gnutls
GNUTLS_INCLUDE_DIR - The gnutls include directory
GNUTLS_LIBRARIES - The libraries needed to use gnutls
GNUTLS_DEFINITIONS - Compiler switches required for using gnutls
#]=======================================================================]
# Note that this doesn't try to find the gnutls-extra package.

View File

@@ -1,25 +1,26 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindGnuplot
# -----------
#
# this module looks for gnuplot
#
#
#
# Once done this will define
#
# ::
#
# GNUPLOT_FOUND - system has Gnuplot
# GNUPLOT_EXECUTABLE - the Gnuplot executable
# GNUPLOT_VERSION_STRING - the version of Gnuplot found (since CMake 2.8.8)
#
#
#
# GNUPLOT_VERSION_STRING will not work for old versions like 3.7.1.
#[=======================================================================[.rst:
FindGnuplot
-----------
this module looks for gnuplot
Once done this will define
::
GNUPLOT_FOUND - system has Gnuplot
GNUPLOT_EXECUTABLE - the Gnuplot executable
GNUPLOT_VERSION_STRING - the version of Gnuplot found (since CMake 2.8.8)
GNUPLOT_VERSION_STRING will not work for old versions like 3.7.1.
#]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake)

View File

@@ -1,109 +1,110 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindHDF5
# --------
#
# Find HDF5, a library for reading and writing self describing array data.
#
#
#
# This module invokes the HDF5 wrapper compiler that should be installed
# alongside HDF5. Depending upon the HDF5 Configuration, the wrapper
# compiler is called either h5cc or h5pcc. If this succeeds, the module
# will then call the compiler with the -show argument to see what flags
# are used when compiling an HDF5 client application.
#
# The module will optionally accept the COMPONENTS argument. If no
# COMPONENTS are specified, then the find module will default to finding
# only the HDF5 C library. If one or more COMPONENTS are specified, the
# module will attempt to find the language bindings for the specified
# components. The only valid components are C, CXX, Fortran, HL, and
# Fortran_HL. If the COMPONENTS argument is not given, the module will
# attempt to find only the C bindings.
#
# This module will read the variable
# HDF5_USE_STATIC_LIBRARIES to determine whether or not to prefer a
# static link to a dynamic link for HDF5 and all of it's dependencies.
# To use this feature, make sure that the HDF5_USE_STATIC_LIBRARIES
# variable is set before the call to find_package.
#
# To provide the module with a hint about where to find your HDF5
# installation, you can set the environment variable HDF5_ROOT. The
# Find module will then look in this path when searching for HDF5
# executables, paths, and libraries.
#
# Both the serial and parallel HDF5 wrappers are considered and the first
# directory to contain either one will be used. In the event that both appear
# in the same directory the serial version is preferentially selected. This
# behavior can be reversed by setting the variable HDF5_PREFER_PARALLEL to
# true.
#
# In addition to finding the includes and libraries required to compile
# an HDF5 client application, this module also makes an effort to find
# tools that come with the HDF5 distribution that may be useful for
# regression testing.
#
# This module will define the following variables:
#
# ::
#
# HDF5_FOUND - true if HDF5 was found on the system
# HDF5_VERSION - HDF5 version in format Major.Minor.Release
# HDF5_INCLUDE_DIRS - Location of the hdf5 includes
# HDF5_INCLUDE_DIR - Location of the hdf5 includes (deprecated)
# HDF5_DEFINITIONS - Required compiler definitions for HDF5
# HDF5_LIBRARIES - Required libraries for all requested bindings
# HDF5_HL_LIBRARIES - Required libraries for the HDF5 high level API for all
# bindings, if the HL component is enabled
#
# Available components are: C CXX Fortran and HL. For each enabled language
# binding, a corresponding HDF5_${LANG}_LIBRARIES variable, and potentially
# HDF5_${LANG}_DEFINITIONS, will be defined.
# If the HL component is enabled, then an HDF5_${LANG}_HL_LIBRARIES will
# also be defined. With all components enabled, the following variables will be defined:
#
# ::
#
# HDF5_C_DEFINITIONS -- Required compiler definitions for HDF5 C bindings
# HDF5_CXX_DEFINITIONS -- Required compiler definitions for HDF5 C++ bindings
# HDF5_Fortran_DEFINITIONS -- Required compiler definitions for HDF5 Fortran bindings
# HDF5_C_INCLUDE_DIRS -- Required include directories for HDF5 C bindings
# HDF5_CXX_INCLUDE_DIRS -- Required include directories for HDF5 C++ bindings
# HDF5_Fortran_INCLUDE_DIRS -- Required include directories for HDF5 Fortran bindings
# HDF5_C_LIBRARIES - Required libraries for the HDF5 C bindings
# HDF5_CXX_LIBRARIES - Required libraries for the HDF5 C++ bindings
# HDF5_Fortran_LIBRARIES - Required libraries for the HDF5 Fortran bindings
# HDF5_C_HL_LIBRARIES - Required libraries for the high level C bindings
# HDF5_CXX_HL_LIBRARIES - Required libraries for the high level C++ bindings
# HDF5_Fortran_HL_LIBRARIES - Required libraries for the high level Fortran
# bindings.
#
# HDF5_IS_PARALLEL - Whether or not HDF5 was found with parallel IO support
# HDF5_C_COMPILER_EXECUTABLE - the path to the HDF5 C wrapper compiler
# HDF5_CXX_COMPILER_EXECUTABLE - the path to the HDF5 C++ wrapper compiler
# HDF5_Fortran_COMPILER_EXECUTABLE - the path to the HDF5 Fortran wrapper compiler
# HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE - path to the primary C compiler
# which is also the HDF5 wrapper
# HDF5_CXX_COMPILER_EXECUTABLE_NO_INTERROGATE - path to the primary C++
# compiler which is also
# the HDF5 wrapper
# HDF5_Fortran_COMPILER_EXECUTABLE_NO_INTERROGATE - path to the primary
# Fortran compiler which
# is also the HDF5 wrapper
# HDF5_DIFF_EXECUTABLE - the path to the HDF5 dataset comparison tool
#
# The following variable can be set to guide the search for HDF5 libraries and includes:
#
# ``HDF5_ROOT``
# Specify the path to the HDF5 installation to use.
#
# ``HDF5_FIND_DEBUG``
# Set to a true value to get some extra debugging output.
#
# ``HDF5_NO_FIND_PACKAGE_CONFIG_FILE``
# Set to a true value to skip trying to find ``hdf5-config.cmake``.
#[=======================================================================[.rst:
FindHDF5
--------
Find HDF5, a library for reading and writing self describing array data.
This module invokes the HDF5 wrapper compiler that should be installed
alongside HDF5. Depending upon the HDF5 Configuration, the wrapper
compiler is called either h5cc or h5pcc. If this succeeds, the module
will then call the compiler with the -show argument to see what flags
are used when compiling an HDF5 client application.
The module will optionally accept the COMPONENTS argument. If no
COMPONENTS are specified, then the find module will default to finding
only the HDF5 C library. If one or more COMPONENTS are specified, the
module will attempt to find the language bindings for the specified
components. The only valid components are C, CXX, Fortran, HL, and
Fortran_HL. If the COMPONENTS argument is not given, the module will
attempt to find only the C bindings.
This module will read the variable
HDF5_USE_STATIC_LIBRARIES to determine whether or not to prefer a
static link to a dynamic link for HDF5 and all of it's dependencies.
To use this feature, make sure that the HDF5_USE_STATIC_LIBRARIES
variable is set before the call to find_package.
To provide the module with a hint about where to find your HDF5
installation, you can set the environment variable HDF5_ROOT. The
Find module will then look in this path when searching for HDF5
executables, paths, and libraries.
Both the serial and parallel HDF5 wrappers are considered and the first
directory to contain either one will be used. In the event that both appear
in the same directory the serial version is preferentially selected. This
behavior can be reversed by setting the variable HDF5_PREFER_PARALLEL to
true.
In addition to finding the includes and libraries required to compile
an HDF5 client application, this module also makes an effort to find
tools that come with the HDF5 distribution that may be useful for
regression testing.
This module will define the following variables:
::
HDF5_FOUND - true if HDF5 was found on the system
HDF5_VERSION - HDF5 version in format Major.Minor.Release
HDF5_INCLUDE_DIRS - Location of the hdf5 includes
HDF5_INCLUDE_DIR - Location of the hdf5 includes (deprecated)
HDF5_DEFINITIONS - Required compiler definitions for HDF5
HDF5_LIBRARIES - Required libraries for all requested bindings
HDF5_HL_LIBRARIES - Required libraries for the HDF5 high level API for all
bindings, if the HL component is enabled
Available components are: C CXX Fortran and HL. For each enabled language
binding, a corresponding HDF5_${LANG}_LIBRARIES variable, and potentially
HDF5_${LANG}_DEFINITIONS, will be defined.
If the HL component is enabled, then an HDF5_${LANG}_HL_LIBRARIES will
also be defined. With all components enabled, the following variables will be defined:
::
HDF5_C_DEFINITIONS -- Required compiler definitions for HDF5 C bindings
HDF5_CXX_DEFINITIONS -- Required compiler definitions for HDF5 C++ bindings
HDF5_Fortran_DEFINITIONS -- Required compiler definitions for HDF5 Fortran bindings
HDF5_C_INCLUDE_DIRS -- Required include directories for HDF5 C bindings
HDF5_CXX_INCLUDE_DIRS -- Required include directories for HDF5 C++ bindings
HDF5_Fortran_INCLUDE_DIRS -- Required include directories for HDF5 Fortran bindings
HDF5_C_LIBRARIES - Required libraries for the HDF5 C bindings
HDF5_CXX_LIBRARIES - Required libraries for the HDF5 C++ bindings
HDF5_Fortran_LIBRARIES - Required libraries for the HDF5 Fortran bindings
HDF5_C_HL_LIBRARIES - Required libraries for the high level C bindings
HDF5_CXX_HL_LIBRARIES - Required libraries for the high level C++ bindings
HDF5_Fortran_HL_LIBRARIES - Required libraries for the high level Fortran
bindings.
HDF5_IS_PARALLEL - Whether or not HDF5 was found with parallel IO support
HDF5_C_COMPILER_EXECUTABLE - the path to the HDF5 C wrapper compiler
HDF5_CXX_COMPILER_EXECUTABLE - the path to the HDF5 C++ wrapper compiler
HDF5_Fortran_COMPILER_EXECUTABLE - the path to the HDF5 Fortran wrapper compiler
HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE - path to the primary C compiler
which is also the HDF5 wrapper
HDF5_CXX_COMPILER_EXECUTABLE_NO_INTERROGATE - path to the primary C++
compiler which is also
the HDF5 wrapper
HDF5_Fortran_COMPILER_EXECUTABLE_NO_INTERROGATE - path to the primary
Fortran compiler which
is also the HDF5 wrapper
HDF5_DIFF_EXECUTABLE - the path to the HDF5 dataset comparison tool
The following variable can be set to guide the search for HDF5 libraries and includes:
``HDF5_ROOT``
Specify the path to the HDF5 installation to use.
``HDF5_FIND_DEBUG``
Set to a true value to get some extra debugging output.
``HDF5_NO_FIND_PACKAGE_CONFIG_FILE``
Set to a true value to skip trying to find ``hdf5-config.cmake``.
#]=======================================================================]
# This module is maintained by Will Dicharry <wdicharry@stellarscience.com>.

View File

@@ -1,28 +1,29 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindHSPELL
# ----------
#
# Try to find Hspell
#
# Once done this will define
#
# ::
#
# HSPELL_FOUND - system has Hspell
# HSPELL_INCLUDE_DIR - the Hspell include directory
# HSPELL_LIBRARIES - The libraries needed to use Hspell
# HSPELL_DEFINITIONS - Compiler switches required for using Hspell
#
#
#
# ::
#
# HSPELL_VERSION_STRING - The version of Hspell found (x.y)
# HSPELL_MAJOR_VERSION - the major version of Hspell
# HSPELL_MINOR_VERSION - The minor version of Hspell
#[=======================================================================[.rst:
FindHSPELL
----------
Try to find Hspell
Once done this will define
::
HSPELL_FOUND - system has Hspell
HSPELL_INCLUDE_DIR - the Hspell include directory
HSPELL_LIBRARIES - The libraries needed to use Hspell
HSPELL_DEFINITIONS - Compiler switches required for using Hspell
::
HSPELL_VERSION_STRING - The version of Hspell found (x.y)
HSPELL_MAJOR_VERSION - the major version of Hspell
HSPELL_MINOR_VERSION - The minor version of Hspell
#]=======================================================================]
find_path(HSPELL_INCLUDE_DIR hspell.h)

View File

@@ -1,19 +1,20 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindHTMLHelp
# ------------
#
# This module looks for Microsoft HTML Help Compiler
#
# It defines:
#
# ::
#
# HTML_HELP_COMPILER : full path to the Compiler (hhc.exe)
# HTML_HELP_INCLUDE_PATH : include path to the API (htmlhelp.h)
# HTML_HELP_LIBRARY : full path to the library (htmlhelp.lib)
#[=======================================================================[.rst:
FindHTMLHelp
------------
This module looks for Microsoft HTML Help Compiler
It defines:
::
HTML_HELP_COMPILER : full path to the Compiler (hhc.exe)
HTML_HELP_INCLUDE_PATH : include path to the API (htmlhelp.h)
HTML_HELP_LIBRARY : full path to the library (htmlhelp.lib)
#]=======================================================================]
if(WIN32)

View File

@@ -1,45 +1,46 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindHg
# ------
#
# Extract information from a mercurial working copy.
#
# The module defines the following variables:
#
# ::
#
# HG_EXECUTABLE - path to mercurial command line client (hg)
# HG_FOUND - true if the command line client was found
# HG_VERSION_STRING - the version of mercurial found
#
# If the command line client executable is found the following macro is defined:
#
# ::
#
# HG_WC_INFO(<dir> <var-prefix>)
#
# Hg_WC_INFO extracts information of a mercurial working copy
# at a given location. This macro defines the following variables:
#
# ::
#
# <var-prefix>_WC_CHANGESET - current changeset
# <var-prefix>_WC_REVISION - current revision
#
# Example usage:
#
# ::
#
# find_package(Hg)
# if(HG_FOUND)
# message("hg found: ${HG_EXECUTABLE}")
# HG_WC_INFO(${PROJECT_SOURCE_DIR} Project)
# message("Current revision is ${Project_WC_REVISION}")
# message("Current changeset is ${Project_WC_CHANGESET}")
# endif()
#[=======================================================================[.rst:
FindHg
------
Extract information from a mercurial working copy.
The module defines the following variables:
::
HG_EXECUTABLE - path to mercurial command line client (hg)
HG_FOUND - true if the command line client was found
HG_VERSION_STRING - the version of mercurial found
If the command line client executable is found the following macro is defined:
::
HG_WC_INFO(<dir> <var-prefix>)
Hg_WC_INFO extracts information of a mercurial working copy
at a given location. This macro defines the following variables:
::
<var-prefix>_WC_CHANGESET - current changeset
<var-prefix>_WC_REVISION - current revision
Example usage:
::
find_package(Hg)
if(HG_FOUND)
message("hg found: ${HG_EXECUTABLE}")
HG_WC_INFO(${PROJECT_SOURCE_DIR} Project)
message("Current revision is ${Project_WC_REVISION}")
message("Current changeset is ${Project_WC_CHANGESET}")
endif()
#]=======================================================================]
find_program(HG_EXECUTABLE
NAMES hg

View File

@@ -1,89 +1,90 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindICU
# -------
#
# Find the International Components for Unicode (ICU) libraries and
# programs.
#
# This module supports multiple components.
# Components can include any of: ``data``, ``i18n``, ``io``, ``le``,
# ``lx``, ``test``, ``tu`` and ``uc``.
#
# Note that on Windows ``data`` is named ``dt`` and ``i18n`` is named
# ``in``; any of the names may be used, and the appropriate
# platform-specific library name will be automatically selected.
#
# This module reports information about the ICU installation in
# several variables. General variables::
#
# ICU_VERSION - ICU release version
# ICU_FOUND - true if the main programs and libraries were found
# ICU_LIBRARIES - component libraries to be linked
# ICU_INCLUDE_DIRS - the directories containing the ICU headers
#
# Imported targets::
#
# ICU::<C>
#
# Where ``<C>`` is the name of an ICU component, for example
# ``ICU::i18n``.
#
# ICU programs are reported in::
#
# ICU_GENCNVAL_EXECUTABLE - path to gencnval executable
# ICU_ICUINFO_EXECUTABLE - path to icuinfo executable
# ICU_GENBRK_EXECUTABLE - path to genbrk executable
# ICU_ICU-CONFIG_EXECUTABLE - path to icu-config executable
# ICU_GENRB_EXECUTABLE - path to genrb executable
# ICU_GENDICT_EXECUTABLE - path to gendict executable
# ICU_DERB_EXECUTABLE - path to derb executable
# ICU_PKGDATA_EXECUTABLE - path to pkgdata executable
# ICU_UCONV_EXECUTABLE - path to uconv executable
# ICU_GENCFU_EXECUTABLE - path to gencfu executable
# ICU_MAKECONV_EXECUTABLE - path to makeconv executable
# ICU_GENNORM2_EXECUTABLE - path to gennorm2 executable
# ICU_GENCCODE_EXECUTABLE - path to genccode executable
# ICU_GENSPREP_EXECUTABLE - path to gensprep executable
# ICU_ICUPKG_EXECUTABLE - path to icupkg executable
# ICU_GENCMN_EXECUTABLE - path to gencmn executable
#
# ICU component libraries are reported in::
#
# ICU_<C>_FOUND - ON if component was found
# ICU_<C>_LIBRARIES - libraries for component
#
# ICU datafiles are reported in::
#
# ICU_MAKEFILE_INC - Makefile.inc
# ICU_PKGDATA_INC - pkgdata.inc
#
# Note that ``<C>`` is the uppercased name of the component.
#
# This module reads hints about search results from::
#
# ICU_ROOT - the root of the ICU installation
#
# The environment variable ``ICU_ROOT`` may also be used; the
# ICU_ROOT variable takes precedence.
#
# The following cache variables may also be set::
#
# ICU_<P>_EXECUTABLE - the path to executable <P>
# ICU_INCLUDE_DIR - the directory containing the ICU headers
# ICU_<C>_LIBRARY - the library for component <C>
#
# .. note::
#
# In most cases none of the above variables will require setting,
# unless multiple ICU versions are available and a specific version
# is required.
#
# Other variables one may set to control this module are::
#
# ICU_DEBUG - Set to ON to enable debug output from FindICU.
#[=======================================================================[.rst:
FindICU
-------
Find the International Components for Unicode (ICU) libraries and
programs.
This module supports multiple components.
Components can include any of: ``data``, ``i18n``, ``io``, ``le``,
``lx``, ``test``, ``tu`` and ``uc``.
Note that on Windows ``data`` is named ``dt`` and ``i18n`` is named
``in``; any of the names may be used, and the appropriate
platform-specific library name will be automatically selected.
This module reports information about the ICU installation in
several variables. General variables::
ICU_VERSION - ICU release version
ICU_FOUND - true if the main programs and libraries were found
ICU_LIBRARIES - component libraries to be linked
ICU_INCLUDE_DIRS - the directories containing the ICU headers
Imported targets::
ICU::<C>
Where ``<C>`` is the name of an ICU component, for example
``ICU::i18n``.
ICU programs are reported in::
ICU_GENCNVAL_EXECUTABLE - path to gencnval executable
ICU_ICUINFO_EXECUTABLE - path to icuinfo executable
ICU_GENBRK_EXECUTABLE - path to genbrk executable
ICU_ICU-CONFIG_EXECUTABLE - path to icu-config executable
ICU_GENRB_EXECUTABLE - path to genrb executable
ICU_GENDICT_EXECUTABLE - path to gendict executable
ICU_DERB_EXECUTABLE - path to derb executable
ICU_PKGDATA_EXECUTABLE - path to pkgdata executable
ICU_UCONV_EXECUTABLE - path to uconv executable
ICU_GENCFU_EXECUTABLE - path to gencfu executable
ICU_MAKECONV_EXECUTABLE - path to makeconv executable
ICU_GENNORM2_EXECUTABLE - path to gennorm2 executable
ICU_GENCCODE_EXECUTABLE - path to genccode executable
ICU_GENSPREP_EXECUTABLE - path to gensprep executable
ICU_ICUPKG_EXECUTABLE - path to icupkg executable
ICU_GENCMN_EXECUTABLE - path to gencmn executable
ICU component libraries are reported in::
ICU_<C>_FOUND - ON if component was found
ICU_<C>_LIBRARIES - libraries for component
ICU datafiles are reported in::
ICU_MAKEFILE_INC - Makefile.inc
ICU_PKGDATA_INC - pkgdata.inc
Note that ``<C>`` is the uppercased name of the component.
This module reads hints about search results from::
ICU_ROOT - the root of the ICU installation
The environment variable ``ICU_ROOT`` may also be used; the
ICU_ROOT variable takes precedence.
The following cache variables may also be set::
ICU_<P>_EXECUTABLE - the path to executable <P>
ICU_INCLUDE_DIR - the directory containing the ICU headers
ICU_<C>_LIBRARY - the library for component <C>
.. note::
In most cases none of the above variables will require setting,
unless multiple ICU versions are available and a specific version
is required.
Other variables one may set to control this module are::
ICU_DEBUG - Set to ON to enable debug output from FindICU.
#]=======================================================================]
# Written by Roger Leigh <rleigh@codelibre.net>

View File

@@ -1,146 +1,147 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindIce
# -------
#
# Find the ZeroC Internet Communication Engine (ICE) programs,
# libraries and datafiles.
#
# This module supports multiple components.
# Components can include any of: ``Freeze``, ``Glacier2``, ``Ice``,
# ``IceBox``, ``IceDB``, ``IceDiscovery``, ``IceGrid``,
# ``IceLocatorDiscovery``, ``IcePatch``, ``IceSSL``, ``IceStorm``,
# ``IceUtil``, ``IceXML``, or ``Slice``.
#
# Ice 3.7 and later also include C++11-specific components:
# ``Glacier2++11``, ``Ice++11``, ``IceBox++11``, ``IceDiscovery++11``
# ``IceGrid``, ``IceLocatorDiscovery++11``, ``IceSSL++11``,
# ``IceStorm++11``
#
# Note that the set of supported components is Ice version-specific.
#
# This module reports information about the Ice installation in
# several variables. General variables::
#
# Ice_VERSION - Ice release version
# Ice_FOUND - true if the main programs and libraries were found
# Ice_LIBRARIES - component libraries to be linked
# Ice_INCLUDE_DIRS - the directories containing the Ice headers
# Ice_SLICE_DIRS - the directories containing the Ice slice interface
# definitions
#
# Imported targets::
#
# Ice::<C>
#
# Where ``<C>`` is the name of an Ice component, for example
# ``Ice::Glacier2`` or ``Ice++11``.
#
# Ice slice programs are reported in::
#
# Ice_SLICE2CPP_EXECUTABLE - path to slice2cpp executable
# Ice_SLICE2CS_EXECUTABLE - path to slice2cs executable
# Ice_SLICE2FREEZEJ_EXECUTABLE - path to slice2freezej executable
# Ice_SLICE2FREEZE_EXECUTABLE - path to slice2freeze executable
# Ice_SLICE2HTML_EXECUTABLE - path to slice2html executable
# Ice_SLICE2JAVA_EXECUTABLE - path to slice2java executable
# Ice_SLICE2JS_EXECUTABLE - path to slice2js executable
# Ice_SLICE2OBJC_EXECUTABLE - path to slice2objc executable
# Ice_SLICE2PHP_EXECUTABLE - path to slice2php executable
# Ice_SLICE2PY_EXECUTABLE - path to slice2py executable
# Ice_SLICE2RB_EXECUTABLE - path to slice2rb executable
#
# Ice programs are reported in::
#
# Ice_GLACIER2ROUTER_EXECUTABLE - path to glacier2router executable
# Ice_ICEBOX_EXECUTABLE - path to icebox executable
# Ice_ICEBOXXX11_EXECUTABLE - path to icebox++11 executable
# Ice_ICEBOXADMIN_EXECUTABLE - path to iceboxadmin executable
# Ice_ICEBOXD_EXECUTABLE - path to iceboxd executable
# Ice_ICEBOXNET_EXECUTABLE - path to iceboxnet executable
# Ice_ICEBRIDGE_EXECUTABLE - path to icebridge executable
# Ice_ICEGRIDADMIN_EXECUTABLE - path to icegridadmin executable
# Ice_ICEGRIDDB_EXECUTABLE - path to icegriddb executable
# Ice_ICEGRIDNODE_EXECUTABLE - path to icegridnode executable
# Ice_ICEGRIDNODED_EXECUTABLE - path to icegridnoded executable
# Ice_ICEGRIDREGISTRY_EXECUTABLE - path to icegridregistry executable
# Ice_ICEGRIDREGISTRYD_EXECUTABLE - path to icegridregistryd executable
# Ice_ICEPATCH2CALC_EXECUTABLE - path to icepatch2calc executable
# Ice_ICEPATCH2CLIENT_EXECUTABLE - path to icepatch2client executable
# Ice_ICEPATCH2SERVER_EXECUTABLE - path to icepatch2server executable
# Ice_ICESERVICEINSTALL_EXECUTABLE - path to iceserviceinstall executable
# Ice_ICESTORMADMIN_EXECUTABLE - path to icestormadmin executable
# Ice_ICESTORMDB_EXECUTABLE - path to icestormdb executable
# Ice_ICESTORMMIGRATE_EXECUTABLE - path to icestormmigrate executable
#
# Ice db programs (Windows only; standard system versions on all other
# platforms) are reported in::
#
# Ice_DB_ARCHIVE_EXECUTABLE - path to db_archive executable
# Ice_DB_CHECKPOINT_EXECUTABLE - path to db_checkpoint executable
# Ice_DB_DEADLOCK_EXECUTABLE - path to db_deadlock executable
# Ice_DB_DUMP_EXECUTABLE - path to db_dump executable
# Ice_DB_HOTBACKUP_EXECUTABLE - path to db_hotbackup executable
# Ice_DB_LOAD_EXECUTABLE - path to db_load executable
# Ice_DB_LOG_VERIFY_EXECUTABLE - path to db_log_verify executable
# Ice_DB_PRINTLOG_EXECUTABLE - path to db_printlog executable
# Ice_DB_RECOVER_EXECUTABLE - path to db_recover executable
# Ice_DB_STAT_EXECUTABLE - path to db_stat executable
# Ice_DB_TUNER_EXECUTABLE - path to db_tuner executable
# Ice_DB_UPGRADE_EXECUTABLE - path to db_upgrade executable
# Ice_DB_VERIFY_EXECUTABLE - path to db_verify executable
# Ice_DUMPDB_EXECUTABLE - path to dumpdb executable
# Ice_TRANSFORMDB_EXECUTABLE - path to transformdb executable
#
# Ice component libraries are reported in::
#
# Ice_<C>_FOUND - ON if component was found
# Ice_<C>_LIBRARIES - libraries for component
#
# Note that ``<C>`` is the uppercased name of the component.
#
# This module reads hints about search results from::
#
# Ice_HOME - the root of the Ice installation
#
# The environment variable ``ICE_HOME`` may also be used; the
# Ice_HOME variable takes precedence.
#
# .. note::
# On Windows, Ice 3.7.0 and later provide libraries via the NuGet
# package manager. Appropriate NuGet packages will be searched for
# using ``CMAKE_PREFIX_PATH``, or alternatively ``Ice_HOME`` may be
# set to the location of a specific NuGet package to restrict the
# search.
#
# The following cache variables may also be set::
#
# Ice_<P>_EXECUTABLE - the path to executable <P>
# Ice_INCLUDE_DIR - the directory containing the Ice headers
# Ice_SLICE_DIR - the directory containing the Ice slice interface
# definitions
# Ice_<C>_LIBRARY - the library for component <C>
#
# .. note::
#
# In most cases none of the above variables will require setting,
# unless multiple Ice versions are available and a specific version
# is required. On Windows, the most recent version of Ice will be
# found through the registry. On Unix, the programs, headers and
# libraries will usually be in standard locations, but Ice_SLICE_DIRS
# might not be automatically detected (commonly known locations are
# searched). All the other variables are defaulted using Ice_HOME,
# if set. It's possible to set Ice_HOME and selectively specify
# alternative locations for the other components; this might be
# required for e.g. newer versions of Visual Studio if the
# heuristics are not sufficient to identify the correct programs and
# libraries for the specific Visual Studio version.
#
# Other variables one may set to control this module are::
#
# Ice_DEBUG - Set to ON to enable debug output from FindIce.
#[=======================================================================[.rst:
FindIce
-------
Find the ZeroC Internet Communication Engine (ICE) programs,
libraries and datafiles.
This module supports multiple components.
Components can include any of: ``Freeze``, ``Glacier2``, ``Ice``,
``IceBox``, ``IceDB``, ``IceDiscovery``, ``IceGrid``,
``IceLocatorDiscovery``, ``IcePatch``, ``IceSSL``, ``IceStorm``,
``IceUtil``, ``IceXML``, or ``Slice``.
Ice 3.7 and later also include C++11-specific components:
``Glacier2++11``, ``Ice++11``, ``IceBox++11``, ``IceDiscovery++11``
``IceGrid``, ``IceLocatorDiscovery++11``, ``IceSSL++11``,
``IceStorm++11``
Note that the set of supported components is Ice version-specific.
This module reports information about the Ice installation in
several variables. General variables::
Ice_VERSION - Ice release version
Ice_FOUND - true if the main programs and libraries were found
Ice_LIBRARIES - component libraries to be linked
Ice_INCLUDE_DIRS - the directories containing the Ice headers
Ice_SLICE_DIRS - the directories containing the Ice slice interface
definitions
Imported targets::
Ice::<C>
Where ``<C>`` is the name of an Ice component, for example
``Ice::Glacier2`` or ``Ice++11``.
Ice slice programs are reported in::
Ice_SLICE2CPP_EXECUTABLE - path to slice2cpp executable
Ice_SLICE2CS_EXECUTABLE - path to slice2cs executable
Ice_SLICE2FREEZEJ_EXECUTABLE - path to slice2freezej executable
Ice_SLICE2FREEZE_EXECUTABLE - path to slice2freeze executable
Ice_SLICE2HTML_EXECUTABLE - path to slice2html executable
Ice_SLICE2JAVA_EXECUTABLE - path to slice2java executable
Ice_SLICE2JS_EXECUTABLE - path to slice2js executable
Ice_SLICE2OBJC_EXECUTABLE - path to slice2objc executable
Ice_SLICE2PHP_EXECUTABLE - path to slice2php executable
Ice_SLICE2PY_EXECUTABLE - path to slice2py executable
Ice_SLICE2RB_EXECUTABLE - path to slice2rb executable
Ice programs are reported in::
Ice_GLACIER2ROUTER_EXECUTABLE - path to glacier2router executable
Ice_ICEBOX_EXECUTABLE - path to icebox executable
Ice_ICEBOXXX11_EXECUTABLE - path to icebox++11 executable
Ice_ICEBOXADMIN_EXECUTABLE - path to iceboxadmin executable
Ice_ICEBOXD_EXECUTABLE - path to iceboxd executable
Ice_ICEBOXNET_EXECUTABLE - path to iceboxnet executable
Ice_ICEBRIDGE_EXECUTABLE - path to icebridge executable
Ice_ICEGRIDADMIN_EXECUTABLE - path to icegridadmin executable
Ice_ICEGRIDDB_EXECUTABLE - path to icegriddb executable
Ice_ICEGRIDNODE_EXECUTABLE - path to icegridnode executable
Ice_ICEGRIDNODED_EXECUTABLE - path to icegridnoded executable
Ice_ICEGRIDREGISTRY_EXECUTABLE - path to icegridregistry executable
Ice_ICEGRIDREGISTRYD_EXECUTABLE - path to icegridregistryd executable
Ice_ICEPATCH2CALC_EXECUTABLE - path to icepatch2calc executable
Ice_ICEPATCH2CLIENT_EXECUTABLE - path to icepatch2client executable
Ice_ICEPATCH2SERVER_EXECUTABLE - path to icepatch2server executable
Ice_ICESERVICEINSTALL_EXECUTABLE - path to iceserviceinstall executable
Ice_ICESTORMADMIN_EXECUTABLE - path to icestormadmin executable
Ice_ICESTORMDB_EXECUTABLE - path to icestormdb executable
Ice_ICESTORMMIGRATE_EXECUTABLE - path to icestormmigrate executable
Ice db programs (Windows only; standard system versions on all other
platforms) are reported in::
Ice_DB_ARCHIVE_EXECUTABLE - path to db_archive executable
Ice_DB_CHECKPOINT_EXECUTABLE - path to db_checkpoint executable
Ice_DB_DEADLOCK_EXECUTABLE - path to db_deadlock executable
Ice_DB_DUMP_EXECUTABLE - path to db_dump executable
Ice_DB_HOTBACKUP_EXECUTABLE - path to db_hotbackup executable
Ice_DB_LOAD_EXECUTABLE - path to db_load executable
Ice_DB_LOG_VERIFY_EXECUTABLE - path to db_log_verify executable
Ice_DB_PRINTLOG_EXECUTABLE - path to db_printlog executable
Ice_DB_RECOVER_EXECUTABLE - path to db_recover executable
Ice_DB_STAT_EXECUTABLE - path to db_stat executable
Ice_DB_TUNER_EXECUTABLE - path to db_tuner executable
Ice_DB_UPGRADE_EXECUTABLE - path to db_upgrade executable
Ice_DB_VERIFY_EXECUTABLE - path to db_verify executable
Ice_DUMPDB_EXECUTABLE - path to dumpdb executable
Ice_TRANSFORMDB_EXECUTABLE - path to transformdb executable
Ice component libraries are reported in::
Ice_<C>_FOUND - ON if component was found
Ice_<C>_LIBRARIES - libraries for component
Note that ``<C>`` is the uppercased name of the component.
This module reads hints about search results from::
Ice_HOME - the root of the Ice installation
The environment variable ``ICE_HOME`` may also be used; the
Ice_HOME variable takes precedence.
.. note::
On Windows, Ice 3.7.0 and later provide libraries via the NuGet
package manager. Appropriate NuGet packages will be searched for
using ``CMAKE_PREFIX_PATH``, or alternatively ``Ice_HOME`` may be
set to the location of a specific NuGet package to restrict the
search.
The following cache variables may also be set::
Ice_<P>_EXECUTABLE - the path to executable <P>
Ice_INCLUDE_DIR - the directory containing the Ice headers
Ice_SLICE_DIR - the directory containing the Ice slice interface
definitions
Ice_<C>_LIBRARY - the library for component <C>
.. note::
In most cases none of the above variables will require setting,
unless multiple Ice versions are available and a specific version
is required. On Windows, the most recent version of Ice will be
found through the registry. On Unix, the programs, headers and
libraries will usually be in standard locations, but Ice_SLICE_DIRS
might not be automatically detected (commonly known locations are
searched). All the other variables are defaulted using Ice_HOME,
if set. It's possible to set Ice_HOME and selectively specify
alternative locations for the other components; this might be
required for e.g. newer versions of Visual Studio if the
heuristics are not sufficient to identify the correct programs and
libraries for the specific Visual Studio version.
Other variables one may set to control this module are::
Ice_DEBUG - Set to ON to enable debug output from FindIce.
#]=======================================================================]
# Written by Roger Leigh <rleigh@codelibre.net>

View File

@@ -1,20 +1,21 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindIcotool
# -----------
#
# Find icotool
#
# This module looks for icotool. This module defines the following
# values:
#
# ::
#
# ICOTOOL_EXECUTABLE: the full path to the icotool tool.
# ICOTOOL_FOUND: True if icotool has been found.
# ICOTOOL_VERSION_STRING: the version of icotool found.
#[=======================================================================[.rst:
FindIcotool
-----------
Find icotool
This module looks for icotool. This module defines the following
values:
::
ICOTOOL_EXECUTABLE: the full path to the icotool tool.
ICOTOOL_FOUND: True if icotool has been found.
ICOTOOL_VERSION_STRING: the version of icotool found.
#]=======================================================================]
find_program(ICOTOOL_EXECUTABLE
icotool

View File

@@ -1,87 +1,88 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindImageMagick
# ---------------
#
# Find the ImageMagick binary suite.
#
# This module will search for a set of ImageMagick tools specified as
# components in the FIND_PACKAGE call. Typical components include, but
# are not limited to (future versions of ImageMagick might have
# additional components not listed here):
#
# ::
#
# animate
# compare
# composite
# conjure
# convert
# display
# identify
# import
# mogrify
# montage
# stream
#
#
#
# If no component is specified in the FIND_PACKAGE call, then it only
# searches for the ImageMagick executable directory. This code defines
# the following variables:
#
# ::
#
# ImageMagick_FOUND - TRUE if all components are found.
# ImageMagick_EXECUTABLE_DIR - Full path to executables directory.
# ImageMagick_<component>_FOUND - TRUE if <component> is found.
# ImageMagick_<component>_EXECUTABLE - Full path to <component> executable.
# ImageMagick_VERSION_STRING - the version of ImageMagick found
# (since CMake 2.8.8)
#
#
#
# ImageMagick_VERSION_STRING will not work for old versions like 5.2.3.
#
# There are also components for the following ImageMagick APIs:
#
# ::
#
# Magick++
# MagickWand
# MagickCore
#
#
#
# For these components the following variables are set:
#
# ::
#
# ImageMagick_FOUND - TRUE if all components are found.
# ImageMagick_INCLUDE_DIRS - Full paths to all include dirs.
# ImageMagick_LIBRARIES - Full paths to all libraries.
# ImageMagick_<component>_FOUND - TRUE if <component> is found.
# ImageMagick_<component>_INCLUDE_DIRS - Full path to <component> include dirs.
# ImageMagick_<component>_LIBRARIES - Full path to <component> libraries.
#
#
#
# Example Usages:
#
# ::
#
# find_package(ImageMagick)
# find_package(ImageMagick COMPONENTS convert)
# find_package(ImageMagick COMPONENTS convert mogrify display)
# find_package(ImageMagick COMPONENTS Magick++)
# find_package(ImageMagick COMPONENTS Magick++ convert)
#
#
#
# Note that the standard FIND_PACKAGE features are supported (i.e.,
# QUIET, REQUIRED, etc.).
#[=======================================================================[.rst:
FindImageMagick
---------------
Find the ImageMagick binary suite.
This module will search for a set of ImageMagick tools specified as
components in the FIND_PACKAGE call. Typical components include, but
are not limited to (future versions of ImageMagick might have
additional components not listed here):
::
animate
compare
composite
conjure
convert
display
identify
import
mogrify
montage
stream
If no component is specified in the FIND_PACKAGE call, then it only
searches for the ImageMagick executable directory. This code defines
the following variables:
::
ImageMagick_FOUND - TRUE if all components are found.
ImageMagick_EXECUTABLE_DIR - Full path to executables directory.
ImageMagick_<component>_FOUND - TRUE if <component> is found.
ImageMagick_<component>_EXECUTABLE - Full path to <component> executable.
ImageMagick_VERSION_STRING - the version of ImageMagick found
(since CMake 2.8.8)
ImageMagick_VERSION_STRING will not work for old versions like 5.2.3.
There are also components for the following ImageMagick APIs:
::
Magick++
MagickWand
MagickCore
For these components the following variables are set:
::
ImageMagick_FOUND - TRUE if all components are found.
ImageMagick_INCLUDE_DIRS - Full paths to all include dirs.
ImageMagick_LIBRARIES - Full paths to all libraries.
ImageMagick_<component>_FOUND - TRUE if <component> is found.
ImageMagick_<component>_INCLUDE_DIRS - Full path to <component> include dirs.
ImageMagick_<component>_LIBRARIES - Full path to <component> libraries.
Example Usages:
::
find_package(ImageMagick)
find_package(ImageMagick COMPONENTS convert)
find_package(ImageMagick COMPONENTS convert mogrify display)
find_package(ImageMagick COMPONENTS Magick++)
find_package(ImageMagick COMPONENTS Magick++ convert)
Note that the standard FIND_PACKAGE features are supported (i.e.,
QUIET, REQUIRED, etc.).
#]=======================================================================]
find_package(PkgConfig QUIET)

View File

@@ -1,33 +1,34 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindIntl
# --------
#
# Find the Gettext libintl headers and libraries.
#
# This module reports information about the Gettext libintl
# installation in several variables. General variables::
#
# Intl_FOUND - true if the libintl headers and libraries were found
# Intl_INCLUDE_DIRS - the directory containing the libintl headers
# Intl_LIBRARIES - libintl libraries to be linked
#
# The following cache variables may also be set::
#
# Intl_INCLUDE_DIR - the directory containing the libintl headers
# Intl_LIBRARY - the libintl library (if any)
#
# .. note::
# On some platforms, such as Linux with GNU libc, the gettext
# functions are present in the C standard library and libintl
# is not required. ``Intl_LIBRARIES`` will be empty in this
# case.
#
# .. note::
# If you wish to use the Gettext tools (``msgmerge``,
# ``msgfmt``, etc.), use :module:`FindGettext`.
#[=======================================================================[.rst:
FindIntl
--------
Find the Gettext libintl headers and libraries.
This module reports information about the Gettext libintl
installation in several variables. General variables::
Intl_FOUND - true if the libintl headers and libraries were found
Intl_INCLUDE_DIRS - the directory containing the libintl headers
Intl_LIBRARIES - libintl libraries to be linked
The following cache variables may also be set::
Intl_INCLUDE_DIR - the directory containing the libintl headers
Intl_LIBRARY - the libintl library (if any)
.. note::
On some platforms, such as Linux with GNU libc, the gettext
functions are present in the C standard library and libintl
is not required. ``Intl_LIBRARIES`` will be empty in this
case.
.. note::
If you wish to use the Gettext tools (``msgmerge``,
``msgfmt``, etc.), use :module:`FindGettext`.
#]=======================================================================]
# Written by Roger Leigh <rleigh@codelibre.net>

View File

@@ -1,53 +1,54 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindJPEG
# --------
#
# Find the JPEG library (libjpeg)
#
# Imported targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the following :prop_tgt:`IMPORTED` targets:
#
# ``JPEG::JPEG``
# The JPEG library, if found.
#
# Result variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project:
#
# ``JPEG_FOUND``
# If false, do not try to use JPEG.
# ``JPEG_INCLUDE_DIRS``
# where to find jpeglib.h, etc.
# ``JPEG_LIBRARIES``
# the libraries needed to use JPEG.
# ``JPEG_VERSION``
# the version of the JPEG library found
#
# Cache variables
# ^^^^^^^^^^^^^^^
#
# The following cache variables may also be set:
#
# ``JPEG_INCLUDE_DIRS``
# where to find jpeglib.h, etc.
# ``JPEG_LIBRARY_RELEASE``
# where to find the JPEG library (optimized).
# ``JPEG_LIBRARY_DEBUG``
# where to find the JPEG library (debug).
#
# Obsolete variables
# ^^^^^^^^^^^^^^^^^^
#
# ``JPEG_INCLUDE_DIR``
# where to find jpeglib.h, etc. (same as JPEG_INCLUDE_DIRS)
# ``JPEG_LIBRARY``
# where to find the JPEG library.
#[=======================================================================[.rst:
FindJPEG
--------
Find the JPEG library (libjpeg)
Imported targets
^^^^^^^^^^^^^^^^
This module defines the following :prop_tgt:`IMPORTED` targets:
``JPEG::JPEG``
The JPEG library, if found.
Result variables
^^^^^^^^^^^^^^^^
This module will set the following variables in your project:
``JPEG_FOUND``
If false, do not try to use JPEG.
``JPEG_INCLUDE_DIRS``
where to find jpeglib.h, etc.
``JPEG_LIBRARIES``
the libraries needed to use JPEG.
``JPEG_VERSION``
the version of the JPEG library found
Cache variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``JPEG_INCLUDE_DIRS``
where to find jpeglib.h, etc.
``JPEG_LIBRARY_RELEASE``
where to find the JPEG library (optimized).
``JPEG_LIBRARY_DEBUG``
where to find the JPEG library (debug).
Obsolete variables
^^^^^^^^^^^^^^^^^^
``JPEG_INCLUDE_DIR``
where to find jpeglib.h, etc. (same as JPEG_INCLUDE_DIRS)
``JPEG_LIBRARY``
where to find the JPEG library.
#]=======================================================================]
find_path(JPEG_INCLUDE_DIR jpeglib.h)

View File

@@ -1,20 +1,21 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindJasper
# ----------
#
# Try to find the Jasper JPEG2000 library
#
# Once done this will define
#
# ::
#
# JASPER_FOUND - system has Jasper
# JASPER_INCLUDE_DIR - the Jasper include directory
# JASPER_LIBRARIES - the libraries needed to use Jasper
# JASPER_VERSION_STRING - the version of Jasper found (since CMake 2.8.8)
#[=======================================================================[.rst:
FindJasper
----------
Try to find the Jasper JPEG2000 library
Once done this will define
::
JASPER_FOUND - system has Jasper
JASPER_INCLUDE_DIR - the Jasper include directory
JASPER_LIBRARIES - the libraries needed to use Jasper
JASPER_VERSION_STRING - the version of Jasper found (since CMake 2.8.8)
#]=======================================================================]
find_path(JASPER_INCLUDE_DIR jasper/jasper.h)

View File

@@ -1,79 +1,80 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindJava
# --------
#
# Find Java
#
# This module finds if Java is installed and determines where the
# include files and libraries are. The caller may set variable ``JAVA_HOME``
# to specify a Java installation prefix explicitly.
#
# See also the :module:`FindJNI` module to find Java Native Interface (JNI).
#
# Specify one or more of the following components as you call this find module. See example below.
#
# ::
#
# Runtime = Java Runtime Environment used to execute Java byte-compiled applications
# Development = Development tools (java, javac, javah, jar and javadoc), includes Runtime component
# IdlJ = Interface Description Language (IDL) to Java compiler
# JarSigner = Signer and verifier tool for Java Archive (JAR) files
#
#
# This module sets the following result variables:
#
# ::
#
# Java_JAVA_EXECUTABLE = the full path to the Java runtime
# Java_JAVAC_EXECUTABLE = the full path to the Java compiler
# Java_JAVAH_EXECUTABLE = the full path to the Java header generator
# Java_JAVADOC_EXECUTABLE = the full path to the Java documentation generator
# Java_IDLJ_EXECUTABLE = the full path to the Java idl compiler
# Java_JAR_EXECUTABLE = the full path to the Java archiver
# Java_JARSIGNER_EXECUTABLE = the full path to the Java jar signer
# Java_VERSION_STRING = Version of java found, eg. 1.6.0_12
# Java_VERSION_MAJOR = The major version of the package found.
# Java_VERSION_MINOR = The minor version of the package found.
# Java_VERSION_PATCH = The patch version of the package found.
# Java_VERSION_TWEAK = The tweak version of the package found (after '_')
# Java_VERSION = This is set to: $major[.$minor[.$patch[.$tweak]]]
#
#
#
# The minimum required version of Java can be specified using the
# :command:`find_package` syntax, e.g.
#
# .. code-block:: cmake
#
# find_package(Java 1.8)
#
# NOTE: ``${Java_VERSION}`` and ``${Java_VERSION_STRING}`` are not guaranteed to
# be identical. For example some java version may return:
# ``Java_VERSION_STRING = 1.8.0_17`` and ``Java_VERSION = 1.8.0.17``
#
# another example is the Java OEM, with: ``Java_VERSION_STRING = 1.8.0-oem``
# and ``Java_VERSION = 1.8.0``
#
# For these components the following variables are set:
#
# ::
#
# Java_FOUND - TRUE if all components are found.
# Java_<component>_FOUND - TRUE if <component> is found.
#
#
#
# Example Usages:
#
# ::
#
# find_package(Java)
# find_package(Java 1.8 REQUIRED)
# find_package(Java COMPONENTS Runtime)
# find_package(Java COMPONENTS Development)
#[=======================================================================[.rst:
FindJava
--------
Find Java
This module finds if Java is installed and determines where the
include files and libraries are. The caller may set variable ``JAVA_HOME``
to specify a Java installation prefix explicitly.
See also the :module:`FindJNI` module to find Java Native Interface (JNI).
Specify one or more of the following components as you call this find module. See example below.
::
Runtime = Java Runtime Environment used to execute Java byte-compiled applications
Development = Development tools (java, javac, javah, jar and javadoc), includes Runtime component
IdlJ = Interface Description Language (IDL) to Java compiler
JarSigner = Signer and verifier tool for Java Archive (JAR) files
This module sets the following result variables:
::
Java_JAVA_EXECUTABLE = the full path to the Java runtime
Java_JAVAC_EXECUTABLE = the full path to the Java compiler
Java_JAVAH_EXECUTABLE = the full path to the Java header generator
Java_JAVADOC_EXECUTABLE = the full path to the Java documentation generator
Java_IDLJ_EXECUTABLE = the full path to the Java idl compiler
Java_JAR_EXECUTABLE = the full path to the Java archiver
Java_JARSIGNER_EXECUTABLE = the full path to the Java jar signer
Java_VERSION_STRING = Version of java found, eg. 1.6.0_12
Java_VERSION_MAJOR = The major version of the package found.
Java_VERSION_MINOR = The minor version of the package found.
Java_VERSION_PATCH = The patch version of the package found.
Java_VERSION_TWEAK = The tweak version of the package found (after '_')
Java_VERSION = This is set to: $major[.$minor[.$patch[.$tweak]]]
The minimum required version of Java can be specified using the
:command:`find_package` syntax, e.g.
.. code-block:: cmake
find_package(Java 1.8)
NOTE: ``${Java_VERSION}`` and ``${Java_VERSION_STRING}`` are not guaranteed to
be identical. For example some java version may return:
``Java_VERSION_STRING = 1.8.0_17`` and ``Java_VERSION = 1.8.0.17``
another example is the Java OEM, with: ``Java_VERSION_STRING = 1.8.0-oem``
and ``Java_VERSION = 1.8.0``
For these components the following variables are set:
::
Java_FOUND - TRUE if all components are found.
Java_<component>_FOUND - TRUE if <component> is found.
Example Usages:
::
find_package(Java)
find_package(Java 1.8 REQUIRED)
find_package(Java COMPONENTS Runtime)
find_package(Java COMPONENTS Development)
#]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindJavaCommon.cmake)

View File

@@ -1,141 +1,142 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindKDE3
# --------
#
# Find the KDE3 include and library dirs, KDE preprocessors and define a some macros
#
#
#
# This module defines the following variables:
#
# ``KDE3_DEFINITIONS``
# compiler definitions required for compiling KDE software
# ``KDE3_INCLUDE_DIR``
# the KDE include directory
# ``KDE3_INCLUDE_DIRS``
# the KDE and the Qt include directory, for use with include_directories()
# ``KDE3_LIB_DIR``
# the directory where the KDE libraries are installed, for use with link_directories()
# ``QT_AND_KDECORE_LIBS``
# this contains both the Qt and the kdecore library
# ``KDE3_DCOPIDL_EXECUTABLE``
# the dcopidl executable
# ``KDE3_DCOPIDL2CPP_EXECUTABLE``
# the dcopidl2cpp executable
# ``KDE3_KCFGC_EXECUTABLE``
# the kconfig_compiler executable
# ``KDE3_FOUND``
# set to TRUE if all of the above has been found
#
# The following user adjustable options are provided:
#
# ``KDE3_BUILD_TESTS``
# enable this to build KDE testcases
#
# It also adds the following macros (from KDE3Macros.cmake) SRCS_VAR is
# always the variable which contains the list of source files for your
# application or library.
#
# KDE3_AUTOMOC(file1 ... fileN)
#
# ::
#
# Call this if you want to have automatic moc file handling.
# This means if you include "foo.moc" in the source file foo.cpp
# a moc file for the header foo.h will be created automatically.
# You can set the property SKIP_AUTOMAKE using set_source_files_properties()
# to exclude some files in the list from being processed.
#
#
#
# KDE3_ADD_MOC_FILES(SRCS_VAR file1 ... fileN )
#
# ::
#
# If you don't use the KDE3_AUTOMOC() macro, for the files
# listed here moc files will be created (named "foo.moc.cpp")
#
#
#
# KDE3_ADD_DCOP_SKELS(SRCS_VAR header1.h ... headerN.h )
#
# ::
#
# Use this to generate DCOP skeletions from the listed headers.
#
#
#
# KDE3_ADD_DCOP_STUBS(SRCS_VAR header1.h ... headerN.h )
#
# ::
#
# Use this to generate DCOP stubs from the listed headers.
#
#
#
# KDE3_ADD_UI_FILES(SRCS_VAR file1.ui ... fileN.ui )
#
# ::
#
# Use this to add the Qt designer ui files to your application/library.
#
#
#
# KDE3_ADD_KCFG_FILES(SRCS_VAR file1.kcfgc ... fileN.kcfgc )
#
# ::
#
# Use this to add KDE kconfig compiler files to your application/library.
#
#
#
# KDE3_INSTALL_LIBTOOL_FILE(target)
#
# ::
#
# This will create and install a simple libtool file for the given target.
#
#
#
# KDE3_ADD_EXECUTABLE(name file1 ... fileN )
#
# ::
#
# Currently identical to add_executable(), may provide some advanced
# features in the future.
#
#
#
# KDE3_ADD_KPART(name [WITH_PREFIX] file1 ... fileN )
#
# ::
#
# Create a KDE plugin (KPart, kioslave, etc.) from the given source files.
# If WITH_PREFIX is given, the resulting plugin will have the prefix "lib",
# otherwise it won't.
# It creates and installs an appropriate libtool la-file.
#
#
#
# KDE3_ADD_KDEINIT_EXECUTABLE(name file1 ... fileN )
#
# ::
#
# Create a KDE application in the form of a module loadable via kdeinit.
# A library named kdeinit_<name> will be created and a small executable
# which links to it.
#
#
#
# The option KDE3_ENABLE_FINAL to enable all-in-one compilation is no
# longer supported.
#
#
#
# Author: Alexander Neundorf <neundorf@kde.org>
#[=======================================================================[.rst:
FindKDE3
--------
Find the KDE3 include and library dirs, KDE preprocessors and define a some macros
This module defines the following variables:
``KDE3_DEFINITIONS``
compiler definitions required for compiling KDE software
``KDE3_INCLUDE_DIR``
the KDE include directory
``KDE3_INCLUDE_DIRS``
the KDE and the Qt include directory, for use with include_directories()
``KDE3_LIB_DIR``
the directory where the KDE libraries are installed, for use with link_directories()
``QT_AND_KDECORE_LIBS``
this contains both the Qt and the kdecore library
``KDE3_DCOPIDL_EXECUTABLE``
the dcopidl executable
``KDE3_DCOPIDL2CPP_EXECUTABLE``
the dcopidl2cpp executable
``KDE3_KCFGC_EXECUTABLE``
the kconfig_compiler executable
``KDE3_FOUND``
set to TRUE if all of the above has been found
The following user adjustable options are provided:
``KDE3_BUILD_TESTS``
enable this to build KDE testcases
It also adds the following macros (from KDE3Macros.cmake) SRCS_VAR is
always the variable which contains the list of source files for your
application or library.
KDE3_AUTOMOC(file1 ... fileN)
::
Call this if you want to have automatic moc file handling.
This means if you include "foo.moc" in the source file foo.cpp
a moc file for the header foo.h will be created automatically.
You can set the property SKIP_AUTOMAKE using set_source_files_properties()
to exclude some files in the list from being processed.
KDE3_ADD_MOC_FILES(SRCS_VAR file1 ... fileN )
::
If you don't use the KDE3_AUTOMOC() macro, for the files
listed here moc files will be created (named "foo.moc.cpp")
KDE3_ADD_DCOP_SKELS(SRCS_VAR header1.h ... headerN.h )
::
Use this to generate DCOP skeletions from the listed headers.
KDE3_ADD_DCOP_STUBS(SRCS_VAR header1.h ... headerN.h )
::
Use this to generate DCOP stubs from the listed headers.
KDE3_ADD_UI_FILES(SRCS_VAR file1.ui ... fileN.ui )
::
Use this to add the Qt designer ui files to your application/library.
KDE3_ADD_KCFG_FILES(SRCS_VAR file1.kcfgc ... fileN.kcfgc )
::
Use this to add KDE kconfig compiler files to your application/library.
KDE3_INSTALL_LIBTOOL_FILE(target)
::
This will create and install a simple libtool file for the given target.
KDE3_ADD_EXECUTABLE(name file1 ... fileN )
::
Currently identical to add_executable(), may provide some advanced
features in the future.
KDE3_ADD_KPART(name [WITH_PREFIX] file1 ... fileN )
::
Create a KDE plugin (KPart, kioslave, etc.) from the given source files.
If WITH_PREFIX is given, the resulting plugin will have the prefix "lib",
otherwise it won't.
It creates and installs an appropriate libtool la-file.
KDE3_ADD_KDEINIT_EXECUTABLE(name file1 ... fileN )
::
Create a KDE application in the form of a module loadable via kdeinit.
A library named kdeinit_<name> will be created and a small executable
which links to it.
The option KDE3_ENABLE_FINAL to enable all-in-one compilation is no
longer supported.
Author: Alexander Neundorf <neundorf@kde.org>
#]=======================================================================]
if(NOT UNIX AND KDE3_FIND_REQUIRED)
message(FATAL_ERROR "Compiling KDE3 applications and libraries under Windows is not supported")

View File

@@ -1,29 +1,30 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindKDE4
# --------
#
#
#
# Find KDE4 and provide all necessary variables and macros to compile
# software for it. It looks for KDE 4 in the following directories in
# the given order:
#
# ::
#
# CMAKE_INSTALL_PREFIX
# KDEDIRS
# /opt/kde4
#
#
#
# Please look in FindKDE4Internal.cmake and KDE4Macros.cmake for more
# information. They are installed with the KDE 4 libraries in
# $KDEDIRS/share/apps/cmake/modules/.
#
# Author: Alexander Neundorf <neundorf@kde.org>
#[=======================================================================[.rst:
FindKDE4
--------
Find KDE4 and provide all necessary variables and macros to compile
software for it. It looks for KDE 4 in the following directories in
the given order:
::
CMAKE_INSTALL_PREFIX
KDEDIRS
/opt/kde4
Please look in FindKDE4Internal.cmake and KDE4Macros.cmake for more
information. They are installed with the KDE 4 libraries in
$KDEDIRS/share/apps/cmake/modules/.
Author: Alexander Neundorf <neundorf@kde.org>
#]=======================================================================]
# If Qt3 has already been found, fail.
if(QT_QT_LIBRARY)

View File

@@ -1,48 +1,49 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLAPACK
# ----------
#
# Find LAPACK library
#
# This module finds an installed fortran library that implements the
# LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).
#
# The approach follows that taken for the autoconf macro file,
# acx_lapack.m4 (distributed at
# http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).
#
# This module sets the following variables:
#
# ::
#
# LAPACK_FOUND - set to true if a library implementing the LAPACK interface
# is found
# LAPACK_LINKER_FLAGS - uncached list of required linker flags (excluding -l
# and -L).
# LAPACK_LIBRARIES - uncached list of libraries (using full path name) to
# link against to use LAPACK
# LAPACK95_LIBRARIES - uncached list of libraries (using full path name) to
# link against to use LAPACK95
# LAPACK95_FOUND - set to true if a library implementing the LAPACK f95
# interface is found
# BLA_STATIC if set on this determines what kind of linkage we do (static)
# BLA_VENDOR if set checks only the specified vendor, if not set checks
# all the possibilities
# BLA_F95 if set on tries to find the f95 interfaces for BLAS/LAPACK
#
# List of vendors (BLA_VENDOR) valid in this module:
#
# * Intel(mkl)
# * OpenBLAS
# * FLAME
# * ACML
# * Apple
# * NAS
# * Generic
#
#[=======================================================================[.rst:
FindLAPACK
----------
Find LAPACK library
This module finds an installed fortran library that implements the
LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).
The approach follows that taken for the autoconf macro file,
acx_lapack.m4 (distributed at
http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).
This module sets the following variables:
::
LAPACK_FOUND - set to true if a library implementing the LAPACK interface
is found
LAPACK_LINKER_FLAGS - uncached list of required linker flags (excluding -l
and -L).
LAPACK_LIBRARIES - uncached list of libraries (using full path name) to
link against to use LAPACK
LAPACK95_LIBRARIES - uncached list of libraries (using full path name) to
link against to use LAPACK95
LAPACK95_FOUND - set to true if a library implementing the LAPACK f95
interface is found
BLA_STATIC if set on this determines what kind of linkage we do (static)
BLA_VENDOR if set checks only the specified vendor, if not set checks
all the possibilities
BLA_F95 if set on tries to find the f95 interfaces for BLAS/LAPACK
List of vendors (BLA_VENDOR) valid in this module:
* Intel(mkl)
* OpenBLAS
* FLAME
* ACML
* Apple
* NAS
* Generic
#]=======================================================================]
set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})

View File

@@ -1,56 +1,57 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLATEX
# ---------
#
# Find Latex
#
# This module finds an installed Latex and determines the location
# of the compiler. Additionally the module looks for Latex-related
# software like BibTeX.
#
# This module sets the following result variables::
#
# LATEX_FOUND: whether found Latex and requested components
# LATEX_<component>_FOUND: whether found <component>
# LATEX_COMPILER: path to the LaTeX compiler
# PDFLATEX_COMPILER: path to the PdfLaTeX compiler
# XELATEX_COMPILER: path to the XeLaTeX compiler
# LUALATEX_COMPILER: path to the LuaLaTeX compiler
# BIBTEX_COMPILER: path to the BibTeX compiler
# BIBER_COMPILER: path to the Biber compiler
# MAKEINDEX_COMPILER: path to the MakeIndex compiler
# XINDY_COMPILER: path to the xindy compiler
# DVIPS_CONVERTER: path to the DVIPS converter
# DVIPDF_CONVERTER: path to the DVIPDF converter
# PS2PDF_CONVERTER: path to the PS2PDF converter
# PDFTOPS_CONVERTER: path to the pdftops converter
# LATEX2HTML_CONVERTER: path to the LaTeX2Html converter
# HTLATEX_COMPILER: path to the htlatex compiler
#
# Possible components are::
#
# PDFLATEX
# XELATEX
# LUALATEX
# BIBTEX
# BIBER
# MAKEINDEX
# XINDY
# DVIPS
# DVIPDF
# PS2PDF
# PDFTOPS
# LATEX2HTML
# HTLATEX
#
# Example Usages::
#
# find_package(LATEX)
# find_package(LATEX COMPONENTS PDFLATEX)
# find_package(LATEX COMPONENTS BIBTEX PS2PDF)
#[=======================================================================[.rst:
FindLATEX
---------
Find Latex
This module finds an installed Latex and determines the location
of the compiler. Additionally the module looks for Latex-related
software like BibTeX.
This module sets the following result variables::
LATEX_FOUND: whether found Latex and requested components
LATEX_<component>_FOUND: whether found <component>
LATEX_COMPILER: path to the LaTeX compiler
PDFLATEX_COMPILER: path to the PdfLaTeX compiler
XELATEX_COMPILER: path to the XeLaTeX compiler
LUALATEX_COMPILER: path to the LuaLaTeX compiler
BIBTEX_COMPILER: path to the BibTeX compiler
BIBER_COMPILER: path to the Biber compiler
MAKEINDEX_COMPILER: path to the MakeIndex compiler
XINDY_COMPILER: path to the xindy compiler
DVIPS_CONVERTER: path to the DVIPS converter
DVIPDF_CONVERTER: path to the DVIPDF converter
PS2PDF_CONVERTER: path to the PS2PDF converter
PDFTOPS_CONVERTER: path to the pdftops converter
LATEX2HTML_CONVERTER: path to the LaTeX2Html converter
HTLATEX_COMPILER: path to the htlatex compiler
Possible components are::
PDFLATEX
XELATEX
LUALATEX
BIBTEX
BIBER
MAKEINDEX
XINDY
DVIPS
DVIPDF
PS2PDF
PDFTOPS
LATEX2HTML
HTLATEX
Example Usages::
find_package(LATEX)
find_package(LATEX COMPONENTS PDFLATEX)
find_package(LATEX COMPONENTS BIBTEX PS2PDF)
#]=======================================================================]
if (WIN32)
# Try to find the MikTex binary path (look for its package manager).

View File

@@ -1,37 +1,38 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLTTngUST
# ------------
#
# This module finds the `LTTng-UST <http://lttng.org/>`__ library.
#
# Imported target
# ^^^^^^^^^^^^^^^
#
# This module defines the following :prop_tgt:`IMPORTED` target:
#
# ``LTTng::UST``
# The LTTng-UST library, if found
#
# Result variables
# ^^^^^^^^^^^^^^^^
#
# This module sets the following
#
# ``LTTNGUST_FOUND``
# ``TRUE`` if system has LTTng-UST
# ``LTTNGUST_INCLUDE_DIRS``
# The LTTng-UST include directories
# ``LTTNGUST_LIBRARIES``
# The libraries needed to use LTTng-UST
# ``LTTNGUST_VERSION_STRING``
# The LTTng-UST version
# ``LTTNGUST_HAS_TRACEF``
# ``TRUE`` if the ``tracef()`` API is available in the system's LTTng-UST
# ``LTTNGUST_HAS_TRACELOG``
# ``TRUE`` if the ``tracelog()`` API is available in the system's LTTng-UST
#[=======================================================================[.rst:
FindLTTngUST
------------
This module finds the `LTTng-UST <http://lttng.org/>`__ library.
Imported target
^^^^^^^^^^^^^^^
This module defines the following :prop_tgt:`IMPORTED` target:
``LTTng::UST``
The LTTng-UST library, if found
Result variables
^^^^^^^^^^^^^^^^
This module sets the following
``LTTNGUST_FOUND``
``TRUE`` if system has LTTng-UST
``LTTNGUST_INCLUDE_DIRS``
The LTTng-UST include directories
``LTTNGUST_LIBRARIES``
The libraries needed to use LTTng-UST
``LTTNGUST_VERSION_STRING``
The LTTng-UST version
``LTTNGUST_HAS_TRACEF``
``TRUE`` if the ``tracef()`` API is available in the system's LTTng-UST
``LTTNGUST_HAS_TRACELOG``
``TRUE`` if the ``tracelog()`` API is available in the system's LTTng-UST
#]=======================================================================]
find_path(LTTNGUST_INCLUDE_DIRS NAMES lttng/tracepoint.h)
find_library(LTTNGUST_LIBRARIES NAMES lttng-ust)

View File

@@ -1,20 +1,21 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLibArchive
# --------------
#
# Find libarchive library and headers
#
# The module defines the following variables:
#
# ::
#
# LibArchive_FOUND - true if libarchive was found
# LibArchive_INCLUDE_DIRS - include search path
# LibArchive_LIBRARIES - libraries to link
# LibArchive_VERSION - libarchive 3-component version number
#[=======================================================================[.rst:
FindLibArchive
--------------
Find libarchive library and headers
The module defines the following variables:
::
LibArchive_FOUND - true if libarchive was found
LibArchive_INCLUDE_DIRS - include search path
LibArchive_LIBRARIES - libraries to link
LibArchive_VERSION - libarchive 3-component version number
#]=======================================================================]
find_path(LibArchive_INCLUDE_DIR
NAMES archive.h

View File

@@ -1,26 +1,27 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLibLZMA
# -----------
#
# Find LibLZMA
#
# Find LibLZMA headers and library
#
# ::
#
# LIBLZMA_FOUND - True if liblzma is found.
# LIBLZMA_INCLUDE_DIRS - Directory where liblzma headers are located.
# LIBLZMA_LIBRARIES - Lzma libraries to link against.
# LIBLZMA_HAS_AUTO_DECODER - True if lzma_auto_decoder() is found (required).
# LIBLZMA_HAS_EASY_ENCODER - True if lzma_easy_encoder() is found (required).
# LIBLZMA_HAS_LZMA_PRESET - True if lzma_lzma_preset() is found (required).
# LIBLZMA_VERSION_MAJOR - The major version of lzma
# LIBLZMA_VERSION_MINOR - The minor version of lzma
# LIBLZMA_VERSION_PATCH - The patch version of lzma
# LIBLZMA_VERSION_STRING - version number as a string (ex: "5.0.3")
#[=======================================================================[.rst:
FindLibLZMA
-----------
Find LibLZMA
Find LibLZMA headers and library
::
LIBLZMA_FOUND - True if liblzma is found.
LIBLZMA_INCLUDE_DIRS - Directory where liblzma headers are located.
LIBLZMA_LIBRARIES - Lzma libraries to link against.
LIBLZMA_HAS_AUTO_DECODER - True if lzma_auto_decoder() is found (required).
LIBLZMA_HAS_EASY_ENCODER - True if lzma_easy_encoder() is found (required).
LIBLZMA_HAS_LZMA_PRESET - True if lzma_lzma_preset() is found (required).
LIBLZMA_VERSION_MAJOR - The major version of lzma
LIBLZMA_VERSION_MINOR - The minor version of lzma
LIBLZMA_VERSION_PATCH - The patch version of lzma
LIBLZMA_VERSION_STRING - version number as a string (ex: "5.0.3")
#]=======================================================================]
find_path(LIBLZMA_INCLUDE_DIR lzma.h )
find_library(LIBLZMA_LIBRARY NAMES lzma liblzma)

View File

@@ -1,47 +1,48 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLibXml2
# -----------
#
# Find the XML processing library (libxml2).
#
# IMPORTED Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines :prop_tgt:`IMPORTED` target ``LibXml2::LibXml2``, if
# libxml2 has been found.
#
# Result variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project:
#
# ``LIBXML2_FOUND``
# true if libxml2 headers and libraries were found
# ``LIBXML2_INCLUDE_DIR``
# the directory containing LibXml2 headers
# ``LIBXML2_INCLUDE_DIRS``
# list of the include directories needed to use LibXml2
# ``LIBXML2_LIBRARIES``
# LibXml2 libraries to be linked
# ``LIBXML2_DEFINITIONS``
# the compiler switches required for using LibXml2
# ``LIBXML2_XMLLINT_EXECUTABLE``
# path to the XML checking tool xmllint coming with LibXml2
# ``LIBXML2_VERSION_STRING``
# the version of LibXml2 found (since CMake 2.8.8)
#
# Cache variables
# ^^^^^^^^^^^^^^^
#
# The following cache variables may also be set:
#
# ``LIBXML2_INCLUDE_DIR``
# the directory containing LibXml2 headers
# ``LIBXML2_LIBRARY``
# path to the LibXml2 library
#[=======================================================================[.rst:
FindLibXml2
-----------
Find the XML processing library (libxml2).
IMPORTED Targets
^^^^^^^^^^^^^^^^
This module defines :prop_tgt:`IMPORTED` target ``LibXml2::LibXml2``, if
libxml2 has been found.
Result variables
^^^^^^^^^^^^^^^^
This module will set the following variables in your project:
``LIBXML2_FOUND``
true if libxml2 headers and libraries were found
``LIBXML2_INCLUDE_DIR``
the directory containing LibXml2 headers
``LIBXML2_INCLUDE_DIRS``
list of the include directories needed to use LibXml2
``LIBXML2_LIBRARIES``
LibXml2 libraries to be linked
``LIBXML2_DEFINITIONS``
the compiler switches required for using LibXml2
``LIBXML2_XMLLINT_EXECUTABLE``
path to the XML checking tool xmllint coming with LibXml2
``LIBXML2_VERSION_STRING``
the version of LibXml2 found (since CMake 2.8.8)
Cache variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``LIBXML2_INCLUDE_DIR``
the directory containing LibXml2 headers
``LIBXML2_LIBRARY``
path to the LibXml2 library
#]=======================================================================]
# use pkg-config to get the directories and then use these values
# in the find_path() and find_library() calls

View File

@@ -1,29 +1,30 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLibXslt
# -----------
#
# Try to find the LibXslt library
#
# Once done this will define
#
# ::
#
# LIBXSLT_FOUND - system has LibXslt
# LIBXSLT_INCLUDE_DIR - the LibXslt include directory
# LIBXSLT_LIBRARIES - Link these to LibXslt
# LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt
# LIBXSLT_VERSION_STRING - version of LibXslt found (since CMake 2.8.8)
#
# Additionally, the following two variables are set (but not required
# for using xslt):
#
# ``LIBXSLT_EXSLT_LIBRARIES``
# Link to these if you need to link against the exslt library.
# ``LIBXSLT_XSLTPROC_EXECUTABLE``
# Contains the full path to the xsltproc executable if found.
#[=======================================================================[.rst:
FindLibXslt
-----------
Try to find the LibXslt library
Once done this will define
::
LIBXSLT_FOUND - system has LibXslt
LIBXSLT_INCLUDE_DIR - the LibXslt include directory
LIBXSLT_LIBRARIES - Link these to LibXslt
LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt
LIBXSLT_VERSION_STRING - version of LibXslt found (since CMake 2.8.8)
Additionally, the following two variables are set (but not required
for using xslt):
``LIBXSLT_EXSLT_LIBRARIES``
Link to these if you need to link against the exslt library.
``LIBXSLT_XSLTPROC_EXECUTABLE``
Contains the full path to the xsltproc executable if found.
#]=======================================================================]
# use pkg-config to get the directories and then use these values
# in the find_path() and find_library() calls

View File

@@ -1,40 +1,41 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLua
# -------
#
#
#
# Locate Lua library This module defines
#
# ::
#
# LUA_FOUND - if false, do not try to link to Lua
# LUA_LIBRARIES - both lua and lualib
# LUA_INCLUDE_DIR - where to find lua.h
# LUA_VERSION_STRING - the version of Lua found
# LUA_VERSION_MAJOR - the major version of Lua
# LUA_VERSION_MINOR - the minor version of Lua
# LUA_VERSION_PATCH - the patch version of Lua
#
#
#
# Note that the expected include convention is
#
# ::
#
# #include "lua.h"
#
# and not
#
# ::
#
# #include <lua/lua.h>
#
# This is because, the lua location is not standardized and may exist in
# locations other than lua/
#[=======================================================================[.rst:
FindLua
-------
Locate Lua library This module defines
::
LUA_FOUND - if false, do not try to link to Lua
LUA_LIBRARIES - both lua and lualib
LUA_INCLUDE_DIR - where to find lua.h
LUA_VERSION_STRING - the version of Lua found
LUA_VERSION_MAJOR - the major version of Lua
LUA_VERSION_MINOR - the minor version of Lua
LUA_VERSION_PATCH - the patch version of Lua
Note that the expected include convention is
::
#include "lua.h"
and not
::
#include <lua/lua.h>
This is because, the lua location is not standardized and may exist in
locations other than lua/
#]=======================================================================]
cmake_policy(PUSH) # Policies apply to functions at definition-time
cmake_policy(SET CMP0012 NEW) # For while(TRUE)

View File

@@ -1,36 +1,37 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLua50
# ---------
#
#
#
# Locate Lua library This module defines
#
# ::
#
# LUA50_FOUND, if false, do not try to link to Lua
# LUA_LIBRARIES, both lua and lualib
# LUA_INCLUDE_DIR, where to find lua.h and lualib.h (and probably lauxlib.h)
#
#
#
# Note that the expected include convention is
#
# ::
#
# #include "lua.h"
#
# and not
#
# ::
#
# #include <lua/lua.h>
#
# This is because, the lua location is not standardized and may exist in
# locations other than lua/
#[=======================================================================[.rst:
FindLua50
---------
Locate Lua library This module defines
::
LUA50_FOUND, if false, do not try to link to Lua
LUA_LIBRARIES, both lua and lualib
LUA_INCLUDE_DIR, where to find lua.h and lualib.h (and probably lauxlib.h)
Note that the expected include convention is
::
#include "lua.h"
and not
::
#include <lua/lua.h>
This is because, the lua location is not standardized and may exist in
locations other than lua/
#]=======================================================================]
find_path(LUA_INCLUDE_DIR lua.h
HINTS

View File

@@ -1,37 +1,38 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLua51
# ---------
#
#
#
# Locate Lua library This module defines
#
# ::
#
# LUA51_FOUND, if false, do not try to link to Lua
# LUA_LIBRARIES
# LUA_INCLUDE_DIR, where to find lua.h
# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
#
#
#
# Note that the expected include convention is
#
# ::
#
# #include "lua.h"
#
# and not
#
# ::
#
# #include <lua/lua.h>
#
# This is because, the lua location is not standardized and may exist in
# locations other than lua/
#[=======================================================================[.rst:
FindLua51
---------
Locate Lua library This module defines
::
LUA51_FOUND, if false, do not try to link to Lua
LUA_LIBRARIES
LUA_INCLUDE_DIR, where to find lua.h
LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
Note that the expected include convention is
::
#include "lua.h"
and not
::
#include <lua/lua.h>
This is because, the lua location is not standardized and may exist in
locations other than lua/
#]=======================================================================]
find_path(LUA_INCLUDE_DIR lua.h
HINTS

View File

@@ -1,20 +1,21 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindMFC
# -------
#
# Find MFC on Windows
#
# Find the native MFC - i.e. decide if an application can link to the
# MFC libraries.
#
# ::
#
# MFC_FOUND - Was MFC support found
#
# You don't need to include anything or link anything to use it.
#[=======================================================================[.rst:
FindMFC
-------
Find MFC on Windows
Find the native MFC - i.e. decide if an application can link to the
MFC libraries.
::
MFC_FOUND - Was MFC support found
You don't need to include anything or link anything to use it.
#]=======================================================================]
# Assume no MFC support
set(MFC_FOUND "NO")

Some files were not shown because too many files have changed in this diff Show More