Review Request 117012: Place KJsEmbed headers directly under ${INCLUDE_INSTALL_DIR}/KJsEmbed instead of under ${INCLUDE_INSTALL_DIR}/KJsEmbed/kjsembed [was: Place KJsEmbed camelcase header under ${INCLUDE_INSTALL_DIR}/KJsEmbed/kjsembed]

David Faure faure at kde.org
Wed Apr 23 17:09:10 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/117012/#review56306
-----------------------------------------------------------


The reason I did it this way was because existing application code uses

#include <kjsembed/kjsembed.h>
#include <kjsembed/qobject_binding.h>
etc.
See e.g. http://lxr.kde.org/source/kde/kdelibs/kross/kjs/kjsscript.cpp?v=stable-qt4

So I picked the "namespaced framework" setup, where lowercase headers go to include/KF5/FrameworkName/lower/lower.h and forwarding headers go to include/KF5/FrameworkName/Camelcase/Camelcase. KParts does the same, for instance, with e.g. include/KF5/KParts/kparts/event.h and include/KF5/KParts/KParts/Event.

So why is this a problem for kjsembed and not for kparts? Ah, I see. The forwarding header is supposed to go under a camelcase subdir (like it does in kparts). KParts/KParts/Event looks confusing, but a better example where the framework name differs from the namespace is KIOCore/KIO/Job. 

So this should be the fix you need:

-install(FILES ${KJsEmbed_CamelCase_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/KJsEmbed COMPONENT Devel)
+install(FILES ${KJsEmbed_CamelCase_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/KJsEmbed/KJsEmbed COMPONENT Devel)


- David Faure


On April 21, 2014, 1:59 a.m., Andrius da Costa Ribas wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/117012/
> -----------------------------------------------------------
> 
> (Updated April 21, 2014, 1:59 a.m.)
> 
> 
> Review request for KDE Frameworks and kdewin.
> 
> 
> Repository: kjsembed
> 
> 
> Description
> -------
> 
> Currently kjsembed CMake file tries to install both ${INCLUDE_INSTALL_DIR}/KJsEmbed/kjsembed (directory) and ${INCLUDE_INSTALL_DIR}/KJsEmbed/KJsEmbed (camel case header). This is not allowed in a case-insensitive filesystem, causing the install step to fail on Windows.
> 
> 
> Diffs
> -----
> 
>   src/kjsembed/CMakeLists.txt e0ab74c 
> 
> Diff: https://git.reviewboard.kde.org/r/117012/diff/
> 
> 
> Testing
> -------
> 
> Tested using MSVC 2013
> 
> 
> Thanks,
> 
> Andrius da Costa Ribas
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20140423/1afab3ab/attachment.html>


More information about the Kde-frameworks-devel mailing list