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

Benjamin Ballet bballet at ivsweb.com
Fri Mar 4 08:15:30 EST 2016


Indeed I was lucky : It worked with 3.3.1 but not anymore with 3.4.3..
I've got a strang bug with one .NET dll generated near a tool :

CMake Error at C:/Program Files
(x86)/CMake/share/cmake-3.4/Modules/GetPrerequisites.cmake:798 (message):
106>    C:/Program Files (x86)/Microsoft Visual Studio
12.0/VC/bin/dumpbin.exe
106>    failed: 1181

I'm digging



2016-03-03 21:02 GMT+01:00 David Cole <DLRdave at aol.com>:

> 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
>



-- 
*Benjamin BALLET*
Ingénieur R&D

*ACTIVISU*
19, rue Klock - 92110 Clichy
*> Standard Tél* :  01 44 69 37 37
*>* www.activisu.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20160304/6c2d140e/attachment.html>


More information about the CMake mailing list