Review Request 121448: Introduce ECMAddAppIcon.

Ralf Habacker ralf.habacker at freenet.de
Fri Jan 16 12:11:25 UTC 2015



> On Dez. 12, 2014, 3:08 nachm., Alex Merry wrote:
> > modules/ECMAddAppIcon.cmake, line 15
> > <https://git.reviewboard.kde.org/r/121448/diff/1/?file=332663#file332663line15>
> >
> >     Would this actually work? The code looks to me like pattern_rx would just be the filename again, so fn would be empty, and the icon would never be appended to _list.
> 
> Ralf Habacker wrote:
>     The doc in the origin cmake macro file seems to be out of sync with the official doc located in FindKDE4Internals.cmake, which is: 
>     
>     ---------------------------------------------------
>     #  adds an application icon to target source list.
>     #  Make sure you have a 128x128 icon, or the icon won't display on Mac OS X.
>     #  Mac OSX notes : the application icon is added to a Mac OS X bundle so that Finder and friends show the right thing.
>     #  Win32 notes: the application icon(s) are compiled into the application
>     #  There is some workaround in kde4_add_kdeinit_executable to make it possible for those applications as well.
>     # Parameters:
>     #  SRCS_VAR  - specifies the list of source files
>     #  pattern   - regular expression for searching application icons
>     #  Example: KDE4_ADD_APP_ICON( myapp_SOURCES "pics/cr*-myapp.png")
>     #  Example: KDE4_ADD_APP_ICON( myapp_KDEINIT_SRCS "icons/oxygen/*/apps/myapp.png")
>     ---------------------------------------------------
>     
>     normal file mode is not documentated and does not work
> 
> Alex Merry wrote:
>     I would still much prefer an API to match ecm_add_icons, as I noted at the start of this review. Would you be willing to do that? If not, I can probably find some time over Christmas to look at it.
> 
> Ralf Habacker wrote:
>     Just one question: As it turns out that the macro used in KDE4 only supports a "simple pattern" style and no single files, what is different or has been extended with KDE5 to require this now ?
> 
> Alex Merry wrote:
>     Best CMake practices include listing all source files in the CMakeLists.txt file, rather than globbing them. That way, CMake knows when a file has been added (or removed), because the CMakeLists.txt file will change, and so it will automatically reconfigure when you run `make`. The icon installation function (`ecm_add_icons`) was changed to support and encourage that approach, and I think this function should also change to match it.
>     
>     Additionally, I would like consistency between interfaces. Having ecm_add_app_icon behave completely differently to ecm_add_icons just makes things that much harder for users of e-c-m. They should use the same file naming scheme (or compatible schemes, at least), and similar arguments, in so far as they need similar information.
>     
>     I'll admit it makes porting a little harder, but it should be possible to create a porting script without too much difficulty.
> 
> Jeremy Whiting wrote:
>     Ralf any updates on this patch?

@Alex, you wrote
> The icon installation function (ecm_add_icons) 

you are refering to ecm_install_icons ? 

>was changed to support and encourage that approach, and I think this function should also change to match it.

What could be matched ? As far as I can see only the ICONS parameter, all other parameter do not match by design. :-(

Merging the ICONS parameter with recent ecm_add_app_icon parameter list will have the following syntax: 
  
1.  ecm_add_app_icon(<source_var> ICONS <icon> [<icon> [...]])

the additional mentioned syntax forms are not supported by ecm_install_icons so we are free to choose what we like. 

According to http://www.cmake.org/cmake/help/v3.0/command/install.html the mentioned term 'PATTERN' only supports '*' at the end of files and therefore does not fit into the recent implementation. 

So the term 'GLOB' which is defined in the cmake file command http://www.cmake.org/cmake/help/v3.0/command/file.html remains and fit into what is implemented in the patch

2.   ecm_add_app_icons(<source_var> GLOB <icon-glob-expression>) [1]

and

3.    ecm_add_app_icon(<source_var< <icon-glob-expression>) [1]

because ecm_install_icons also have a compatibility mode to support old style parameter list: 

" From https://projects.kde.org/projects/kdesupport/extra-cmake-modules/repository/revisions/master/entry/modules/ECMInstallIcons.cmake
An old form of arguments will also be accepted::
#   ecm_install_icons(<icon_install_dir> [<l10n_code>])
"

syntax 3 is what is already implemented by the recent patch. 

Can we agree ? 

@Jeremey:
1. Syntax 3 is already implemented and need only a few spelling fixed before commit. 
2. Currently I do not have any access to a Mac/OSX development machine, so I can only cover the windows part. Is there anyone having access to a Mac OSX development machine ?
3. If not I would remove the Mac OSX support for now.


- Ralf


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


On Dez. 15, 2014, 9:01 vorm., Ralf Habacker wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/121448/
> -----------------------------------------------------------
> 
> (Updated Dez. 15, 2014, 9:01 vorm.)
> 
> 
> Review request for Extra Cmake Modules, KDE Frameworks and Laurent Navet.
> 
> 
> Repository: extra-cmake-modules
> 
> 
> Description
> -------
> 
> This module, which has been migrated from the related KDE4 macto kde4_app_app_icon,
> supports platform specific application icon for Windows and Mac OSX.
> 
> On Windows this function depends on the external tool png2ico, which is
> provided by the kdewin-tools binary package. Sources are available at
> https://projects.kde.org/projects/kdesupport/kdewin.
> 
> 
> Diffs
> -----
> 
>   modules/ECMAddAppIcon.cmake PRE-CREATION 
> 
> Diff: https://git.reviewboard.kde.org/r/121448/diff/
> 
> 
> Testing
> -------
> 
> 
> File Attachments
> ----------------
> 
> ECMAddAppIcon.cmake
>   https://git.reviewboard.kde.org/media/uploaded/files/2014/12/12/a05ee2b5-64e3-4e44-ae34-4e1b7110e5f1__ECMAddAppIcon.cmake
> ECMAddAppIcon.cmake
>   https://git.reviewboard.kde.org/media/uploaded/files/2014/12/15/8b3e226f-a70b-4998-983a-813730a436bf__ECMAddAppIcon.cmake
> ECMAddAppIcon.cmake
>   https://git.reviewboard.kde.org/media/uploaded/files/2014/12/15/8433995f-b88f-426d-af54-46aba635ae1e__ECMAddAppIcon.cmake
> 
> 
> Thanks,
> 
> Ralf Habacker
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-buildsystem/attachments/20150116/8a1e81e3/attachment.html>


More information about the Kde-buildsystem mailing list