[CMake] fixup_bundle on Windows : issue with multiple exe applications

David Cole DLRdave at aol.com
Thu Mar 3 15:02:59 EST 2016


It was designed originally with the assumption that all the
executables in a bundle are in the same directory. If you violate that
assumption, I don't think you can count on it to do the right thing
100% of the time.

If it works for you calling it multiple times with deepest first, then
maybe you can get lucky...

I would definitely dig into it and understand exactly what it's doing,
though, if you want to make sure it's going to continue working for
your scenario.


HTH,
David C.


On Thu, Mar 3, 2016 at 1:43 PM, Benjamin Ballet <bballet at ivsweb.com> wrote:
> Hello
>
> I'd like to discuss a problem I encountered today with the very useful
> module BundleUtilities
>
> We have an application on Windows with one main exe file in the top folder
> and a few other exe in subdirectories, like that :
>
> applicationfolder  \
>                           | main.exe
>                           | toolsfolder \
>                                             | supertoolfolder \
>                                                                     |
> supertool.exe
>                                             | toptoolfolder \
>                                                                  |
> toptool.exe
>
> But if I simply call
> fixup_bundle("applicationfolder/main.exe" plugins libs)
>
> the verify_app will fails.
>
> Just a reminder that there is no rpath on Windows : dll must be either in
> PATH or in the same folder or in the working directory.
>
> We expected fixup_bundle to copy the required dll for main.exe in
> applicationfolder, the required dll for supertool.exe in supertoolfolder and
> the required dll for toptool.exe in toptoolfolder, but it acually didn't
> copied anything in supertoolfolder and toptoolfolder.
>
> I worked around this issue by calling fixup_bundle multiple time with the
> following order : (the deepest exes first)
>
> fixup_bundle("applicationfolder/toolsfolder/supertoolfolder/supertool.exe"
> plugins libs)
> fixup_bundle("applicationfolder/toolsfolder/toptoolfolder/toptool.exe"
> plugins libs)
> fixup_bundle("applicationfolder/main.exe" plugins libs)
>
>
> --
> Benjamin BALLET
> Ingénieur R&D
>
> ACTIVISU
> 19, rue Klock - 92110 Clichy
>> Standard Tél :  01 44 69 37 37
>> www.activisu.com
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake


More information about the CMake mailing list