On 08/07/2017 05:27 PM, Eric Wing wrote:
> I think that would be a mistake because it seems that the only purpose
> of this change would be so you could bypass CMake and try to directly
> invoke some kind of command line invocation on the dynamic library
> inside the .framework bundle.

The ld(1) man page on macOS says that "-framework foo" tells the
linker to search for "foo.framework/foo".  For linking this is very
similar to "-lfoo" searching for "libfoo.so" and "libfoo.a" in the
linker search path.  We discourage the latter because it is hard to
ensure that the proper library will be found.  I think framework
libraries should be linked by absolute path too.

For example, say one has these libraries in frameworks:

    /path/A/foo.framework/foo  # want this one
    /path/A/bar.framework/bar
    /path/B/foo.framework/foo
    /path/B/bar.framework/bar  # want this one

How does one achieve this case with Xcode's abstractions or with
the "-framework foo" flag?  CMake with imported targets already
achieves this, and links via absolute path to each library file.

> be treating the framework bundle as a whole because all parts of it
> are designed to be useful.

In cases where that is needed it is still possible to detect that
a library file is part of a framework.

> The bundle assets like any .nib files and
> the Info.plist are sometimes critical components of the framework. So
> things like copying the whole framework and embedding them in the app
> bundle are important things to do.
[snip]
> But if you did decide to change this, I think it should only happen in
> conjunction of solving the rest of the needed functionality for
> dealing with frameworks, i.e. copying the entire framework bundle into
> the app bundle, codesigning the framework in the app bundle,

We already have ways of doing those things at installation and
packaging time.  Linking the build-tree copy is too early.

-Brad
-- 

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

Reply via email to