mesos-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joseph Wu (JIRA)" <j...@apache.org>
Subject [jira] [Assigned] (MESOS-5656) Incomplete modelling of 3rdparty dependencies in cmake build
Date Tue, 08 Aug 2017 00:22:00 GMT

     [ https://issues.apache.org/jira/browse/MESOS-5656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Joseph Wu reassigned MESOS-5656:
--------------------------------

    Assignee: Andrew Schwartzmeyer

> 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
>            Assignee: Andrew Schwartzmeyer
>              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.4.14#64029)

Mime
View raw message