Hi,

I am suffering issues with BundleUtilities fixup_bundle() when used on Windows with MinGW. The issue is because the underlying GetPrerequisites module uses the MS dumpbin.exe utility to find dependent libraries of executables. This is a problem because it crashes on many libraries and executables from later MinGW tools, for example the GNU Fortran library libgfortran-3.dll. I believe the crash is due to the DLL having no symbols.

The problem is exacerbated by GetPrequisites having very little error checking so it silently fails and doesn't install the dependent libraries.

GetPrerequisites can use objdump if dumpbin is not available but this has another issue. The output from 'objdump -p <executable>' can be very long, over 10000+ lines for a large Qt library for example, and this causes GetPrerequsites to run exceedingly slowly as it uses execute_process() to capture the output into a CMake variable then parses it with string(REGEX REPLACE ...) and a loop doing an if(... MATCHES <regexp>) on every line.

So I have a choice of broken or too slow for practical use :(

Is BundleUtilities.cmake and GetPrerequisites.cmake maintained, if so who by? I can suggest a few improvements, the main one being to filter the command output used to get prerequisites in a pipeline (execute_command() with multiple commands using grep) and better error checking. Also perhaps dumpbin should only be used if objdump is not available.

Regards
Bill Somerville.
--

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

Reply via email to