[CMake] Cmake Frameworks and Bitcode

Cameron Palmer cameron at promon.no
Mon Mar 26 04:24:56 EDT 2018


Quite possible I’m misunderstanding something, but…

As you said, I really don’t care much at this point about the RPATH.

However, setting the property BUILD_WITH_INSTALL_RPATH on or off doesn’t change anything as far as I can tell. The target is still linked with -headerpad_max_install_names and the linker still complains. Also, looking at policy 68 and working with the INSTALL_NAME, which is the one thing you do care about, you cannot set the directory to @rpath which seems silly. Most frameworks I’m familiar with have the install name set to @rpath/My.framwork/my. I use add_custom_command to correctly set it, but still seems like this is broken.

The library I’ve been testing is iperf, it is relatively straightforward, so it makes a good test case. I’ve added CMake and it is at https://github.com/palmerc/iperf. 

Cameron.


> On 19 Mar 2018, at 12:54, Brad King <brad.king at kitware.com> wrote:
> 
> On 03/12/2018 10:36 AM, Cameron Palmer wrote:
>> So after a bit of hacking it seems that Cmake should provide something like:
>> 
>> CMAKE_OSX_BITCODE_ENABLE
> 
> For reference, this refers to a previous post:
> 
>    Bitcode and CMake
>    https://cmake.org/pipermail/cmake/2018-March/067191.html
> 
> with the goal of using `-fembed-bitcode` while avoiding a warning:
> 
>    ld: warning: -headerpad_max_install_names is ignored when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES)
> 
>> Which would pass -fembed-bitcode to the compiler and linker and remove
>> the option in Darwin.cmake for -Wl,-headerpad_max_install_names in
>> CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS.
> 
> One may avoid the `-headerpad_max_install_names` option with this:
> 
>    https://cmake.org/cmake/help/v3.11/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.html
> 
> There is no reason to build with any rpath set for the build tree
> when one cannot run the binaries on the macOS host anyway.
> 
> -Brad



More information about the CMake mailing list