aboutsummaryrefslogtreecommitdiff
path: root/modules/ECMGenerateHeaders.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/ECMGenerateHeaders.cmake')
-rw-r--r--modules/ECMGenerateHeaders.cmake228
1 files changed, 114 insertions, 114 deletions
diff --git a/modules/ECMGenerateHeaders.cmake b/modules/ECMGenerateHeaders.cmake
index d5332e58..9099cb5a 100644
--- a/modules/ECMGenerateHeaders.cmake
+++ b/modules/ECMGenerateHeaders.cmake
@@ -1,123 +1,123 @@
-#.rst:
-# ECMGenerateHeaders
-# ------------------
-#
-# Generate C/C++ CamelCase forwarding headers.
-#
-# ::
-#
-# ecm_generate_headers(<camelcase_forwarding_headers_var>
-# HEADER_NAMES <CamelCaseName> [<CamelCaseName> [...]]
-# [ORIGINAL <CAMELCASE|LOWERCASE>]
-# [HEADER_EXTENSION <header_extension>]
-# [OUTPUT_DIR <output_dir>]
-# [PREFIX <prefix>]
-# [REQUIRED_HEADERS <variable>]
-# [COMMON_HEADER <HeaderName>]
-# [RELATIVE <relative_path>])
-#
-# For each CamelCase header name passed to HEADER_NAMES, a file of that name
-# will be generated that will include a version with ``.h`` or, if set,
-# ``.<header_extension>`` appended.
-# For example, the generated header ``ClassA`` will include ``classa.h`` (or
-# ``ClassA.h``, see ORIGINAL).
-# If a CamelCaseName consists of multiple comma-separated files, e.g.
-# ``ClassA,ClassB,ClassC``, then multiple camelcase header files will be
-# generated which are redirects to the first header file.
-# The file locations of these generated headers will be stored in
-# <camelcase_forwarding_headers_var>.
-#
-# ORIGINAL specifies how the name of the original header is written: lowercased
-# or also camelcased. The default is LOWERCASE. Since 1.8.0.
-#
-# HEADER_EXTENSION specifies what file name extension is used for the header
-# files. The default is "h". Since 5.48.0.
-#
-# PREFIX places the generated headers in subdirectories. This should be a
-# CamelCase name like ``KParts``, which will cause the CamelCase forwarding
-# headers to be placed in the ``KParts`` directory (e.g. ``KParts/Part``). It
-# will also, for the convenience of code in the source distribution, generate
-# forwarding headers based on the original names (e.g. ``kparts/part.h``). This
-# allows includes like ``"#include <kparts/part.h>"`` to be used before
-# installation, as long as the include_directories are set appropriately.
-#
-# OUTPUT_DIR specifies where the files will be generated; this should be within
-# the build directory. By default, ``${CMAKE_CURRENT_BINARY_DIR}`` will be used.
-# This option can be used to avoid file conflicts.
-#
-# REQUIRED_HEADERS specifies an output variable name where all the required
-# headers will be appended so that they can be installed together with the
-# generated ones. This is mostly intended as a convenience so that adding a new
-# header to a project only requires specifying the CamelCase variant in the
-# CMakeLists.txt file; the original variant will then be added to this
-# variable.
-#
-# COMMON_HEADER generates an additional convenience header which includes all
-# other header files.
-#
-# The RELATIVE argument indicates where the original headers can be found
-# relative to CMAKE_CURRENT_SOURCE_DIR. It does not affect the generated
-# CamelCase forwarding files, but ecm_generate_headers() uses it when checking
-# that the original header exists, and to generate originally named forwarding
-# headers when PREFIX is set.
-#
-# To allow other parts of the source distribution (eg: tests) to use the
-# generated headers before installation, it may be desirable to set the
-# INCLUDE_DIRECTORIES property for the library target to output_dir. For
-# example, if OUTPUT_DIR is CMAKE_CURRENT_BINARY_DIR (the default), you could do
-#
-# .. code-block:: cmake
-#
-# target_include_directories(MyLib PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>")
-#
-# Example usage (without PREFIX):
-#
-# .. code-block:: cmake
-#
-# ecm_generate_headers(
-# MyLib_FORWARDING_HEADERS
-# HEADERS
-# MLFoo
-# MLBar
-# # etc
-# REQUIRED_HEADERS MyLib_HEADERS
-# COMMON_HEADER MLGeneral
-# )
-# install(FILES ${MyLib_FORWARDING_HEADERS} ${MyLib_HEADERS}
-# DESTINATION ${CMAKE_INSTALL_PREFIX}/include
-# COMPONENT Devel)
-#
-# Example usage (with PREFIX):
-#
-# .. code-block:: cmake
-#
-# ecm_generate_headers(
-# MyLib_FORWARDING_HEADERS
-# HEADERS
-# Foo
-# # several classes are contained in bar.h, so generate
-# # additional files
-# Bar,BarList
-# # etc
-# PREFIX MyLib
-# REQUIRED_HEADERS MyLib_HEADERS
-# )
-# install(FILES ${MyLib_FORWARDING_HEADERS}
-# DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MyLib
-# COMPONENT Devel)
-# install(FILES ${MyLib_HEADERS}
-# DESTINATION ${CMAKE_INSTALL_PREFIX}/include/mylib
-# COMPONENT Devel)
-#
-# Since pre-1.0.0.
-
-#=============================================================================
# SPDX-FileCopyrightText: 2013 Aleix Pol Gonzalez <aleixpol@blue-systems.com>
# SPDX-FileCopyrightText: 2014 Alex Merry <alex.merry@kdemail.net>
# SPDX-FileCopyrightText: 2015 Patrick Spendrin <patrick.spendrin@kdab.com>
#
# SPDX-License-Identifier: BSD-3-Clause
+#[=======================================================================[.rst:
+ECMGenerateHeaders
+------------------
+
+Generate C/C++ CamelCase forwarding headers.
+
+::
+
+ ecm_generate_headers(<camelcase_forwarding_headers_var>
+ HEADER_NAMES <CamelCaseName> [<CamelCaseName> [...]]
+ [ORIGINAL <CAMELCASE|LOWERCASE>]
+ [HEADER_EXTENSION <header_extension>]
+ [OUTPUT_DIR <output_dir>]
+ [PREFIX <prefix>]
+ [REQUIRED_HEADERS <variable>]
+ [COMMON_HEADER <HeaderName>]
+ [RELATIVE <relative_path>])
+
+For each CamelCase header name passed to HEADER_NAMES, a file of that name
+will be generated that will include a version with ``.h`` or, if set,
+``.<header_extension>`` appended.
+For example, the generated header ``ClassA`` will include ``classa.h`` (or
+``ClassA.h``, see ORIGINAL).
+If a CamelCaseName consists of multiple comma-separated files, e.g.
+``ClassA,ClassB,ClassC``, then multiple camelcase header files will be
+generated which are redirects to the first header file.
+The file locations of these generated headers will be stored in
+<camelcase_forwarding_headers_var>.
+
+ORIGINAL specifies how the name of the original header is written: lowercased
+or also camelcased. The default is LOWERCASE. Since 1.8.0.
+
+HEADER_EXTENSION specifies what file name extension is used for the header
+files. The default is "h". Since 5.48.0.
+
+PREFIX places the generated headers in subdirectories. This should be a
+CamelCase name like ``KParts``, which will cause the CamelCase forwarding
+headers to be placed in the ``KParts`` directory (e.g. ``KParts/Part``). It
+will also, for the convenience of code in the source distribution, generate
+forwarding headers based on the original names (e.g. ``kparts/part.h``). This
+allows includes like ``"#include <kparts/part.h>"`` to be used before
+installation, as long as the include_directories are set appropriately.
+
+OUTPUT_DIR specifies where the files will be generated; this should be within
+the build directory. By default, ``${CMAKE_CURRENT_BINARY_DIR}`` will be used.
+This option can be used to avoid file conflicts.
+
+REQUIRED_HEADERS specifies an output variable name where all the required
+headers will be appended so that they can be installed together with the
+generated ones. This is mostly intended as a convenience so that adding a new
+header to a project only requires specifying the CamelCase variant in the
+CMakeLists.txt file; the original variant will then be added to this
+variable.
+
+COMMON_HEADER generates an additional convenience header which includes all
+other header files.
+
+The RELATIVE argument indicates where the original headers can be found
+relative to CMAKE_CURRENT_SOURCE_DIR. It does not affect the generated
+CamelCase forwarding files, but ecm_generate_headers() uses it when checking
+that the original header exists, and to generate originally named forwarding
+headers when PREFIX is set.
+
+To allow other parts of the source distribution (eg: tests) to use the
+generated headers before installation, it may be desirable to set the
+INCLUDE_DIRECTORIES property for the library target to output_dir. For
+example, if OUTPUT_DIR is CMAKE_CURRENT_BINARY_DIR (the default), you could do
+
+.. code-block:: cmake
+
+ target_include_directories(MyLib PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>")
+
+Example usage (without PREFIX):
+
+.. code-block:: cmake
+
+ ecm_generate_headers(
+ MyLib_FORWARDING_HEADERS
+ HEADERS
+ MLFoo
+ MLBar
+ # etc
+ REQUIRED_HEADERS MyLib_HEADERS
+ COMMON_HEADER MLGeneral
+ )
+ install(FILES ${MyLib_FORWARDING_HEADERS} ${MyLib_HEADERS}
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/include
+ COMPONENT Devel)
+
+Example usage (with PREFIX):
+
+.. code-block:: cmake
+
+ ecm_generate_headers(
+ MyLib_FORWARDING_HEADERS
+ HEADERS
+ Foo
+ # several classes are contained in bar.h, so generate
+ # additional files
+ Bar,BarList
+ # etc
+ PREFIX MyLib
+ REQUIRED_HEADERS MyLib_HEADERS
+ )
+ install(FILES ${MyLib_FORWARDING_HEADERS}
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MyLib
+ COMPONENT Devel)
+ install(FILES ${MyLib_HEADERS}
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/mylib
+ COMPONENT Devel)
+
+Since pre-1.0.0.
+#]=======================================================================]
+
include(CMakeParseArguments)
function(ECM_GENERATE_HEADERS camelcase_forwarding_headers_var)