[
https://issues.apache.org/jira/browse/MESOS-7935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16203458#comment-16203458
]
Damien Gerard edited comment on MESOS-7935 at 10/13/17 12:05 PM:
-
Maybe undocumented by many projects rely on that for years now, and promoted
many times on the CMake mailing list. Those options are unlikely to disappear
tomorrow. There are additionnal checks that you will have difficulties to
mimic, like checking that CMake does not override one way or the other the
sources (itself or via Makefile).
Anyway, I don't see why searching for custom and more complex alternatives
would be a good thing. Assuming those options disappear one day, you may
consider at that time to eventually find alternatives.
was (Author: milipili):
Maybe undocumented by many projects rely on that for years now, and promoted
many times on the CMake mailing list. Those options are unlikely to disappear
tomorrow. There are additionnal checks that you will have difficulties to
mimic, like checking that CMake does not override one way or the other the
sources (itself or via Makefile).
Anyway, I don't see why searching for custom and more complex alternatives
would be a good things. Assuming those options disappear one day, you may
consider at that time to eventually find alternatives.
> CMake build should fail immediately for in-source builds
>
>
> Key: MESOS-7935
> URL: https://issues.apache.org/jira/browse/MESOS-7935
> Project: Mesos
> Issue Type: Improvement
> Components: cmake
> Environment: macOS 10.12
> GNU/Linux Debian Stretch
>Reporter: Damien Gerard
>Assignee: Nathan Jackson
> Labels: build
>
> In-source builds are neither recommended or supported. It is simple enough
> to add a check to fail the build immediately.
> ---
> In-source build of master branch was broken with:
> {noformat}
> cd /Users/damien.gerard/projects/acp/mesos/src &&
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
> -DBUILD_FLAGS=\"\" -DBUILD_JAVA_JVM_LIBRARY=\"\" -DHAS_AUTHENTICATION=1
> -DLIBDIR=\"/usr/local/libmesos\" -DPICOJSON_USE_INT64
> -DPKGDATADIR=\"/usr/local/share/mesos\"
> -DPKGLIBEXECDIR=\"/usr/local/libexec/mesos\" -DUSE_CMAKE_BUILD_CONFIG
> -DUSE_STATIC_LIB -DVERSION=\"1.4.0\" -D__STDC_FORMAT_MACROS
> -Dmesos_1_4_0_EXPORTS -I/Users/damien.gerard/projects/acp/mesos/include
> -I/Users/damien.gerard/projects/acp/mesos/include/mesos
> -I/Users/damien.gerard/projects/acp/mesos/src -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/protobuf-3.3.0/src/protobuf-3.3.0-lib/lib/include
> -isystem /Users/damien.gerard/projects/acp/mesos/3rdparty/libprocess/include
> -isystem /usr/local/opt/apr/libexec/include/apr-1 -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/boost-1.53.0/src/boost-1.53.0
> -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/elfio-3.2/src/elfio-3.2
> -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/glog-0.3.3/src/glog-0.3.3-lib/lib/include
> -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/nvml-352.79/src/nvml-352.79
> -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/picojson-1.3.0/src/picojson-1.3.0
> -isystem /usr/local/include/subversion-1 -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/stout/include -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/http_parser-2.6.2/src/http_parser-2.6.2
> -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/concurrentqueue-1.0.0-beta/src/concurrentqueue-1.0.0-beta
> -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/libev-4.22/src/libev-4.22
> -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/zookeeper-3.4.8/src/zookeeper-3.4.8/src/c/include
> -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/zookeeper-3.4.8/src/zookeeper-3.4.8/src/c/generated
> -isystem
> /Users/damien.gerard/projects/acp/mesos/3rdparty/leveldb-1.19/src/leveldb-1.19/include
> -std=c++11 -fPIC -o
> CMakeFiles/mesos-1.4.0.dir/slave/containerizer/mesos/provisioner/backends/copy.cpp.o
> -c
> /Users/damien.gerard/projects/acp/mesos/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
> /Users/damien.gerard/projects/acp/mesos/src/slave/containerizer/mesos/provisioner/appc/store.cpp:132:46:
> error: no member named 'fetcher' in namespace 'mesos::uri'; did you mean
> 'Fetcher'?
> Try uriFetcher = uri::fetcher::create();
> ~^~~
> Fetcher
> /Users/damien.gerard/projects/acp/mesos/include/mesos/uri/fetcher.hpp:46:7:
> note: 'Fetcher' declared here
> class Fetcher
> ^
>