diff options
Diffstat (limited to 'modules/ECMGenerateHeaders.cmake')
-rw-r--r-- | modules/ECMGenerateHeaders.cmake | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/modules/ECMGenerateHeaders.cmake b/modules/ECMGenerateHeaders.cmake index 255662d1..13edd92d 100644 --- a/modules/ECMGenerateHeaders.cmake +++ b/modules/ECMGenerateHeaders.cmake @@ -9,6 +9,7 @@ # 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>] @@ -16,7 +17,8 @@ # [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`` appended. +# 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. @@ -28,6 +30,9 @@ # 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 @@ -138,7 +143,7 @@ include(CMakeParseArguments) function(ECM_GENERATE_HEADERS camelcase_forwarding_headers_var) set(options) - set(oneValueArgs ORIGINAL OUTPUT_DIR PREFIX REQUIRED_HEADERS COMMON_HEADER RELATIVE) + set(oneValueArgs ORIGINAL HEADER_EXTENSION OUTPUT_DIR PREFIX REQUIRED_HEADERS COMMON_HEADER RELATIVE) set(multiValueArgs HEADER_NAMES) cmake_parse_arguments(EGH "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) @@ -158,6 +163,10 @@ function(ECM_GENERATE_HEADERS camelcase_forwarding_headers_var) message(FATAL_ERROR "Unexpected value for original argument to ECM_GENERATE_HEADERS: ${EGH_ORIGINAL}") endif() + if(NOT EGH_HEADER_EXTENSION) + set(EGH_HEADER_EXTENSION "h") + endif() + if(NOT EGH_OUTPUT_DIR) set(EGH_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}") endif() @@ -188,7 +197,7 @@ function(ECM_GENERATE_HEADERS camelcase_forwarding_headers_var) string(TOLOWER "${_baseclass}" originalbasename) endif() - set(_actualheader "${CMAKE_CURRENT_SOURCE_DIR}/${EGH_RELATIVE}${originalbasename}.h") + set(_actualheader "${CMAKE_CURRENT_SOURCE_DIR}/${EGH_RELATIVE}${originalbasename}.${EGH_HEADER_EXTENSION}") if (NOT EXISTS ${_actualheader}) message(FATAL_ERROR "Could not find \"${_actualheader}\"") endif() @@ -196,7 +205,7 @@ function(ECM_GENERATE_HEADERS camelcase_forwarding_headers_var) foreach(_CLASSNAME ${_classnames}) set(FANCY_HEADER_FILE "${EGH_OUTPUT_DIR}/${EGH_PREFIX}${_CLASSNAME}") if (NOT EXISTS ${FANCY_HEADER_FILE}) - file(WRITE ${FANCY_HEADER_FILE} "#include \"${originalprefix}${originalbasename}.h\"\n") + file(WRITE ${FANCY_HEADER_FILE} "#include \"${originalprefix}${originalbasename}.${EGH_HEADER_EXTENSION}\"\n") endif() list(APPEND ${camelcase_forwarding_headers_var} "${FANCY_HEADER_FILE}") if (EGH_PREFIX) @@ -206,7 +215,7 @@ function(ECM_GENERATE_HEADERS camelcase_forwarding_headers_var) else() string(TOLOWER "${_CLASSNAME}" originalclassname) endif() - set(REGULAR_HEADER_NAME ${EGH_OUTPUT_DIR}/${originalprefix}${originalclassname}.h) + set(REGULAR_HEADER_NAME ${EGH_OUTPUT_DIR}/${originalprefix}${originalclassname}.${EGH_HEADER_EXTENSION}) if (NOT EXISTS ${REGULAR_HEADER_NAME}) file(WRITE ${REGULAR_HEADER_NAME} "#include \"${_actualheader}\"\n") endif() |