On Tue, Apr 3, 2012 at 11:45 AM, Eric Noulard <eric.noul...@gmail.com> wrote: > 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
Correct: "<icon name>" should be "<text displayed near icon in the Start menu>" But we cannot easily change the meaning of CPACK_PACKAGE_EXECUTABLES. -- 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