View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0015679 | CMake | CMake | public | 2015-08-04 12:45 | 2016-01-04 11:52 | ||||
Reporter | Chris | ||||||||
Assigned To | |||||||||
Priority | normal | Severity | feature | Reproducibility | N/A | ||||
Status | closed | Resolution | suspended | ||||||
Platform | Apple Mac | OS | OS X | OS Version | 10.10.4 | ||||
Product Version | CMake 3.3 | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0015679: ExternalProject with Ninja generator should import sub-project's build.ninja into the parent project | ||||||||
Description | Ninja's scheduling works best if it has a full picture of what you're building. Doing that in projects that extensively use ExternalProject can be tricky. To make this work I believe CMake needs to do 3 things that it doesn't do today. (1) ExternalProject needs to prefix all the rules and targets in the ninja file it generates so that they don't conflict with the parent project's rules or targets (2) ExternalProject calls to CMake need to be marked as Generator rules in Ninja so that Ninja will re-exec itself after running CMake (3) ExternalProject needs to generate Ninja includes in the parent project. | ||||||||
Additional Information | This request is coming out of the LLVM developer community. As we're moving more actively to CMake we are leveraging ExternalProject more and more for generating cross-compiled targets, bootstrapping the compiler and generating test targets. We believe these improvements to ExternalProject will make for a better developer experience on our end. Thanks, -Chris | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0039230) Chandler Carruth (reporter) 2015-08-04 12:57 |
Just wanted to say that this would be truly amazing for us when working on LLVM and related projects. I'm really hoping it can happen. |
(0039241) Brad King (manager) 2015-08-05 10:55 |
I'd like to help LLVM achieve a more monolithic and efficient build system with CMake and Ninja. I invite you to come to our developer's list to discuss possible approaches. However, I do not think ExternalProject is a good fit for this. Its intended purpose is to isolate an external project builds from each other and from that of the encompassing project. Also the semantics defined by ExternalProject mean that the other projects may not even yet have a source tree available at the time the outer build system is generated. This makes generating a single monolithic build system across multiple ExternalProject uses ill-defined. |
(0040129) Robert Maynard (manager) 2016-01-04 11:52 |
Closing resolved issues that have not been updated in more than 4 months. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2015-08-04 12:45 | Chris | New Issue | |
2015-08-04 12:57 | Chandler Carruth | Note Added: 0039230 | |
2015-08-05 10:55 | Brad King | Note Added: 0039241 | |
2015-08-05 10:55 | Brad King | Status | new => resolved |
2015-08-05 10:55 | Brad King | Resolution | open => suspended |
2016-01-04 11:52 | Robert Maynard | Note Added: 0040129 | |
2016-01-04 11:52 | Robert Maynard | Status | resolved => closed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |