[ https://issues.apache.org/jira/browse/MESOS-5656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Bannier updated MESOS-5656: ------------------------------------ Assignee: (was: Benjamin Bannier) > 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 > Labels: mesosphere > > 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} > {{git bisect}} points to the recent > {{6e199cc255cbf561fac575568b0594ac2b2c14f9}} for surfacing this. -- This message was sent by Atlassian JIRA (v6.3.4#6332)