Skip to content
  • David Cole's avatar
    BundleUtilities: error if fixup_bundle_item called on non-embedded item · c2895f48
    David Cole authored
    Also, improve the documentation of the fixup_bundle and fixup_bundle_item
    functions to clarify that plugin type "libs" need to be copied into
    the bundle *before* calling fixup_bundle.
    
    Commit e93a4b4d changed the way that
    the libs parameter to fixup_bundle is interpreted. Before the commit,
    the libs were copied into the bundle first and then fixed up. After
    the commit, the copy was skipped, assuming the libs were in the bundle
    in the first place, and then the fixups occurred as before.
    
    However, before the commit, it was possible to name a lib from outside
    the bundle, and have it copied in and then fixed up. Its resolved
    embedded name was always inside the bundle before. After, its resolved
    embedded name was just the same as its resolved name, which is in its
    original location, and not necessarily inside the bundle.
    
    This manifested itself as a problem with the ParaView call to
    fixup_bundle and its many plugins. Previously, ParaView had simply
    passed in the list of plugin file names as they existed in the build
    tree, and left the copying into the bundle up to the fixup_bundle
    function. When built with CMake 2.8.3 (the first version to contain
    the above named commit) the fixup_bundle call would inadventently
    fixup libraries in the build tree, not libraries that were in the
    bundle. Furthermore, the plugins would not be in the final bundle.
    
    This points out the fact that the fix for the bugs made by the above
    commit was a backwards-incompatible change in behavior.
    
    This commit makes it an error to try to fixup an item that is not
    already inside the bundle to make the change in behavior apparent
    to folks who were depending on the prior copy-in behavior: now,
    they should get an error, and hopefully, reading the new and
    improved documentation, should be able to resolve it in their
    projects by adding code to install or copy in such libraries prior
    to calling fixup_bundle.
    
    Whew.
    c2895f48