On 13/02/2014 18:10, Bill Somerville wrote:
Hi,

I have a CMake script that runs on Windows with MinGW Makefiles that builds the install target OK. It is a Qt GUI application and uses BundleUtilities::fixup_bundle to pull in and link/rpath prerequisites.

When I build the package target with an NSIS packager it looks like the fixup_bundle stage breaks in some way. I get several of the following message box pop up in the install phase.

---------------------------
link.exe - System Error
---------------------------
The program can't start because mspdb80.dll is missing from your computer. Try reinstalling the program to fix this problem.
---------------------------
OK
---------------------------

If I dismiss them all the build finishes without error but none of the prerequisite libraries or Qt plugins are in the install kit (they go in /w the install target as expected).

I suspect a PATH problem but have no idea how to debug this further.
OK, so I have progressed a bit. This is something to do with the MS tool dumpbin which is used to analyse binaries for prerequisites as part of BundleUtilities::fixup_bundle.

It looks for a suitable tool and on Windows prefers dumpbin over MinGW objdump. In my case even though I am using MinGW for builds, I have MSVC installed too.

So for the install target dumpbin seems to work ok to analyse the binaries. I still don't understand why the package target goes wrong as described in the OP.

Looking at the GetPrerequisites.cmake module I see that I can force the choice of binary analysis tool by defining the variable gp_tool. So I define it to "objdump" before executing fixup_bundle and it seems to work. the only problem is that it takes about 15 minutes (on i7 processor!) to complete a package generation that takes less than a minute when dumpbin is used :(

I would really like to know why it is going wrong with dumpbin in package generation because using objtool is too slow!

TIA
Bill.
Regards
Bill.
--

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://www.cmake.org/mailman/listinfo/cmake

Reply via email to