2012/4/3 Jonatan Wallmander <jona...@vovoid.com>:
> Hi,
>
> I'm on cmake version 2.8.5
>
> I looked in the changelog and couldn't find this, so here goes:
>
>
> From what I can tell, NSIS with CPACK_PACKAGE_EXECUTABLES and giving
> parameters to the executable isn't supported.
>
> CMakeLists.txt:
> set(CPACK_PACKAGE_EXECUTABLES "my_executable -f;My Executable")
>
> Resulting row in the cpack NSIS cache file:
>
> CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\My Executable.lnk"
> "$INSTDIR\.\my_executable -f.exe"
>
> I propose 2 possible solutions:
>
> 1. (best option IMO)
>
> Add support for a 3rd parameter for flags, like so:
> set(CPACK_PACKAGE_EXECUTABLES "my_executable;My Executable;-f")
>
> Since executables actually CAN have spaces in them, this would be best.

The trouble is the "S" of CPACK_PACKAGE_EXECUTABLES means you can
currently give something like:

set(CPACK_PACKAGE_EXECUTABLES "my_exe1;My Exe1;my_exe2;My Exe2")

so that it will be hard to maintain backward compatibility with option1.

> 2. (secondary option)
> Add support for parsing the executable on spaces, everything after the first
> space goes last in the call.
>
> I.e. set(CPACK_PACKAGE_EXECUTABLES "my_executable -f;My Executable")

Then I may suggest a 3rd option

set(CPACK_PACKAGE_EXECUTABLES "my_executable;my_executable_ARGS -f;My
Executable")

that way we can check from the value right after "executable" that
ARGS are provided for
the preceding executable, so that the new pattern would be:

set(CPACK_PACKAGE_EXECUTABLES
"<exeName>;[<exeName>_ARGS<space><args>;]<someString>")

Beware of the fact that currently NSIS generator is not the only CPack
generator that uses
CPACK_PACKAGE_EXECUTABLES OSXX11 uses it as well.

Moreover the (in-source) code comment seems outdated or partially
wrong since ones can read:

cmCPackLogger(cmCPackLog::LOG_ERROR,
        "CPACK_PACKAGE_EXECUTABLES should contain pairs of <executable> and "
        "<icon name>." << std::endl);

AFAIK, there is no "icon" here just the name of the menu entry?

-- 
Erk
Le gouvernement représentatif n'est pas la démocratie --
http://www.le-message.org
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to