Benjamin Bannier created MESOS-5656:
---------------------------------------

             Summary: Incomplete modelling of 3rdparty dependencies in cmake 
build
                 Key: MESOS-5656
                 URL: https://issues.apache.org/jira/browse/MESOS-5656
             Project: Mesos
          Issue Type: Bug
          Components: build, cmake
    Affects Versions: 1.0.0
            Reporter: Benjamin Bannier


The cmake build incompletely models dependencies on 3rdparty components. This 
leads to incomplete and unusable build files generated for e.g., ninja.

When generating a build file for ninja the build fails to start
{code}
% ninja
ninja: error: 
'3rdparty/zookeeper-3.4.8/src/zookeeper-3.4.8/src/c/lib/libzookeeper_mt.a', 
needed by 'src/slave/mesos-agent', missing and no known rule to make it
{code}

An identical problem exists with leveldb (apparent after working around the 
zookeeper dep issue)
{code}
% ninja
ninja: error: '3rdparty/leveldb-1.4/src/leveldb-1.4/libleveldb.a', needed by 
'src/slave/mesos-agent', missing and no known rule to make it
{code}

The problem here is that a number of targets depend on library files produced 
implicitly via some {{ExternalProject}} library (via {{AGENT_LIBS}}), but we 
fail to declare rules for these targets (I could imagine: via e.g., 
{{add_library}} with {{IMPORTED}}). This appears to be no problem for build 
files generate for {{make}} as it doesn't require rules for all dependency 
nodes.

It appears that one should be able to use {{ExternalProject_Add}}'s 
{{BUILD_BYPRODUCTS}}, e.g.,
{code}
ExternalProject_Add(
   ${ZOOKEEPER_TARGET}
   BUILD_BYPRODUCTS  ${ZOOKEEPER_LIB}/lib/libzookeeper_mt.a
   PREFIX            ${ZOOKEEPER_CMAKE_ROOT}
   PATCH_COMMAND     ${ZOOKEEPER_PATCH_CMD}
   CONFIGURE_COMMAND ${ZOOKEEPER_CONFIG_CMD}
   ...
{code}
to declare rules for these files, but this was only added in cmake-3.2 while we 
at least formally require only cmake-2.8,
{code}
cmake_minimum_required(VERSION 2.8)
{code}




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

Reply via email to