[ https://issues.apache.org/jira/browse/MESOS-7935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16203458#comment-16203458 ]
Damien Gerard commented on MESOS-7935: -------------------------------------- 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<Owned<uri::Fetcher>> uriFetcher = uri::fetcher::create(); > ~~~~~^~~~~~~ > Fetcher > /Users/damien.gerard/projects/acp/mesos/include/mesos/uri/fetcher.hpp:46:7: > note: 'Fetcher' declared here > class Fetcher > ^ > /Users/damien.gerard/projects/acp/mesos/src/slave/containerizer/mesos/provisioner/appc/store.cpp:132:55: > error: no member named 'create' in 'mesos::uri::Fetcher' > Try<Owned<uri::Fetcher>> uriFetcher = uri::fetcher::create(); > {noformat} > Both Linux & macOS, not tested elsewhere, on {{master}} and tag 1.4.0-rc3 -- This message was sent by Atlassian JIRA (v6.4.14#64029)