diff options
author | Brad King <brad.king@kitware.com> | 2019-09-25 18:09:43 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-09-30 14:30:28 (GMT) |
commit | 0733a94f648d63e8492fbcff3413cef461cb18d8 (patch) | |
tree | 516ebdb91a4fa5e832c9e3f89fd22d7bea22315d /Source/cmGlobalUnixMakefileGenerator3.cxx | |
parent | 11fb377eb96e6a90ea96126a2d22739f6983182a (diff) | |
download | CMake-0733a94f648d63e8492fbcff3413cef461cb18d8.zip CMake-0733a94f648d63e8492fbcff3413cef461cb18d8.tar.gz CMake-0733a94f648d63e8492fbcff3413cef461cb18d8.tar.bz2 |
Ninja,Makefile: Fix subdir "all" with nested EXCLUDE_FROM_ALL subdir
The "all" target defined for a subdirectory (e.g. `cd sub; make` or
`ninja sub/all`) should not include the "all" targets from nested
subdirectories (e.g. `sub/sub`) that are marked as `EXCLUDE_FROM_ALL`.
Fix this and add a test case.
Issue: #19753
Co-Author: Sebastian Holtermann <sebholt@xwmw.org>
Diffstat (limited to 'Source/cmGlobalUnixMakefileGenerator3.cxx')
-rw-r--r-- | Source/cmGlobalUnixMakefileGenerator3.cxx | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx index 4ce3d5e..df4673d 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.cxx +++ b/Source/cmGlobalUnixMakefileGenerator3.cxx @@ -429,6 +429,9 @@ void cmGlobalUnixMakefileGenerator3::WriteDirectoryRule2( // The directory-level rule should depend on the directory-level // rules of the subdirectories. for (cmStateSnapshot const& c : lg->GetStateSnapshot().GetChildren()) { + if (check_all && c.GetDirectory().GetPropertyAsBool("EXCLUDE_FROM_ALL")) { + continue; + } std::string subdir = cmStrCat(c.GetDirectory().GetCurrentBinary(), '/', pass); depends.push_back(std::move(subdir)); |