On Thursday 02 January 2014 11:35:43 David Faure wrote:
> See attached patch.

I forgot to attach the corresponding patch for ECM.

Tested on KParts too, with the addition of a "PREFIX" variable.

MODULE_NAME = KParts or KIOCore .. the include dir under KF5, always titlecase
PREFIX = KParts or KIO, the subdir inside MODULE_NAME for namespaced headers, 
gets lowercased for lowercase headers.

include/KF5/KParts/KParts/BrowserExtension
include/KF5/KParts/kparts/browserextension.h

Awaiting for green light.

-- 
David Faure, fa...@kde.org, http://www.davidfaure.fr
Working on KDE, in particular KDE Frameworks 5
diff --git a/modules/ECMGenerateHeaders.cmake b/modules/ECMGenerateHeaders.cmake
index 7fac164..4e1923b 100644
--- a/modules/ECMGenerateHeaders.cmake
+++ b/modules/ECMGenerateHeaders.cmake
@@ -13,11 +13,14 @@
 # ECM_GENERATE_HEADERS( ClassA ClassB ...
 #     [MODULE_NAME name]
 #     [OUTPUT_DIR path]
+#     [PREFIX prefix]
 #     [REQUIRED_HEADERS variable])
 #
 # The MODULE_NAME argument is used to provide information about where the
-# directories will be generated. By default, PROJECT_NAME will be used in both
-# CamelCase and lowercase version.
+# directories will be generated. By default, PROJECT_NAME will be used.
+#
+# The optional PREFIX will be prepended to the filenames, e.g. PREFIX KParts
+# will generate KParts/Part and kparts/part.h
 #
 # The OUTPUT_DIR argument specifies where the files will be generated; this
 # should be within the build directory. By default, CMAKE_CURRENT_BINARY_DIR
@@ -40,7 +43,7 @@
 include(CMakeParseArguments)
 
 function(ECM_GENERATE_HEADERS)
-    set(oneValueArgs MODULE_NAME OUTPUT_DIR REQUIRED_HEADERS RELATIVE)
+    set(oneValueArgs MODULE_NAME OUTPUT_DIR PREFIX REQUIRED_HEADERS RELATIVE)
     cmake_parse_arguments(EGH "" "${oneValueArgs}" "" ${ARGN})
     if(NOT EGH_MODULE_NAME)
         set(EGH_MODULE_NAME ${PROJECT_NAME})
@@ -50,11 +53,13 @@ function(ECM_GENERATE_HEADERS)
         set(EGH_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
     endif()
 
-    string(TOLOWER ${EGH_MODULE_NAME} lowercasemodule)
+    if (EGH_PREFIX)
+         string(TOLOWER ${EGH_PREFIX} lowercaseprefix)
+    endif()
     foreach(_CLASSNAME ${EGH_UNPARSED_ARGUMENTS})
         string(TOLOWER ${_CLASSNAME} lowercaseclassname)
-        set(REGULAR_HEADER_NAME ${EGH_OUTPUT_DIR}/${lowercasemodule}/${lowercaseclassname}.h)
-        set(FANCY_HEADER_NAME ${EGH_OUTPUT_DIR}/${EGH_MODULE_NAME}/${_CLASSNAME})
+        set(REGULAR_HEADER_NAME ${EGH_OUTPUT_DIR}/${EGH_MODULE_NAME}/${lowercaseprefix}/${lowercaseclassname}.h)
+        set(FANCY_HEADER_NAME ${EGH_OUTPUT_DIR}/${EGH_MODULE_NAME}/${EGH_PREFIX}/${_CLASSNAME})
         set(_actualheader "${CMAKE_CURRENT_SOURCE_DIR}/${EGH_RELATIVE}/${lowercaseclassname}.h")
         if (NOT EXISTS ${_actualheader})
             message(FATAL_ERROR "Could not find \"${_actualheader}\"")
@@ -63,7 +68,7 @@ function(ECM_GENERATE_HEADERS)
             file(WRITE ${REGULAR_HEADER_NAME} "#include \"${_actualheader}\"\n")
         endif()
         if (NOT EXISTS ${FANCY_HEADER_NAME})
-            file(WRITE ${FANCY_HEADER_NAME} "#include \"${lowercasemodule}/${lowercaseclassname}.h\"\n")
+            file(WRITE ${FANCY_HEADER_NAME} "#include \"${lowercaseprefix}/${lowercaseclassname}.h\"\n")
         endif()
         list(APPEND REQUIRED_HEADERS "${_actualheader}")
     endforeach()
_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to