[ 
https://issues.apache.org/jira/browse/THRIFT-3090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14491487#comment-14491487
 ] 

Marco Molteni commented on THRIFT-3090:
---------------------------------------

Now I think that the linking problem might be related to the fact that I am 
using a cmake version >= 3.0 on Mac OS X.

When running cmake, I get:

{noformat}
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   thrift
   thrift_c_glib
   thriftqt
   thriftz
{noformat}

and looking at http://www.cmake.org/cmake/help/v3.0/policy/CMP0042.html it says:

{quote}
MACOSX_RPATH is enabled by default.

CMake 2.8.12 and newer has support for using @rpath in a target’s install name. 
This was enabled by setting the target property MACOSX_RPATH. The @rpath in an 
install name is a more flexible and powerful mechanism than @executable_path or 
@loader_path for locating shared libraries.

CMake 3.0 and later prefer this property to be ON by default. Projects wanting 
@rpath in a target’s install name may remove any setting of the 
INSTALL_NAME_DIR and CMAKE_INSTALL_NAME_DIR variables.

This policy was introduced in CMake version 3.0. CMake version 3.0.2 warns when 
the policy is not set and uses OLD behavior. Use the cmake_policy command to 
set it to OLD or NEW explicitly.
{quote}

Is bumping the minimum required cmake version for Thrift to 3.0 OK (what I 
would suggest) or do we have to explicitly set the old policy?

> cmake build is broken
> ---------------------
>
>                 Key: THRIFT-3090
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3090
>             Project: Thrift
>          Issue Type: Bug
>         Environment: Mac OS X 10.10.3
> C++ compiler: Apple system compiler (clang), Apple LLVM version 6.0 
> (clang-600.0.57) (based on LLVM 3.5svn)
> boost 1.57
> cmake 3.2.1
>            Reporter: Marco Molteni
>
> A current version of apache/thrift on github as of 2015-04-10 doesn't build 
> with cmake due to multiple errors:
> - some C++ targets fail to link with missing symbols, because they do not 
> link against the `thrift` library
> - the c_glib test targets fail to build because the reference to `shared_ptr` 
> is considered ambiguous by the compiler (it resolves to both boost and stdlib 
> shared_ptr)
> See pull request https://github.com/apache/thrift/pull/434



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to