MantisBT - CMake
View Issue Details
0008471CMakeCMakepublic2009-02-04 21:582016-06-10 14:30
CHristian Goetze 
Kitware Robot 
normalfeatureN/A
closedmoved 
 
 
0008471: Introduce the concept of a build artifact
This is one of the outstanding features of the Maven build system for java.

The idea is to define deliverable build artifacts, and describe the dependencies between them.

A build artifact can be mapped to a "project" or a "package". In java, it is usually mapped to a .jar file;
in C/C++, this would usually be a set of header files and a set of library files.

The main point of having this high level first class object is to be able to define multiple methods for procuring one. Cmake should try, in the following order:

* build locally
* use locally installed version
* download and install it

The point of this approach is to provide a consistent way to deal with third party artifacts and, for large projects, modules and artifacts of your own making. For example, you could divide your team into a server team, a client team and a support team, each treating the other like third parties, producing new versions of their artifacts and leaving it up to the other teams to choose to use them, or not.

Another good effect of this setup is that one can cleanly distinguish between internal dependencies (the typical "makedepend" style dependencies) and external dependencies (usually discovered via auto-conf style scripts). The internal dependencies can be hidden, but the external dependencies can become part of the artifact metadata, allowing transitive dependency information to be collected.

No tags attached.
Issue History
2009-02-04 21:58CHristian GoetzeNew Issue
2009-02-05 19:55Bill HoffmanStatusnew => assigned
2009-02-05 19:55Bill HoffmanAssigned To => Bill Hoffman
2009-04-01 16:53CHristian GoetzeNote Added: 0015890
2009-04-01 22:07Bill HoffmanAssigned ToBill Hoffman => Brad King
2011-03-03 09:06XU LiangNote Added: 0025632
2011-03-03 09:43Brad KingNote Added: 0025633
2011-03-03 09:43Brad KingAssigned ToBrad King =>
2011-03-03 09:43Brad KingStatusassigned => backlog
2016-06-10 14:27Kitware RobotNote Added: 0041498
2016-06-10 14:27Kitware RobotStatusbacklog => resolved
2016-06-10 14:27Kitware RobotResolutionopen => moved
2016-06-10 14:27Kitware RobotAssigned To => Kitware Robot
2016-06-10 14:30Kitware RobotStatusresolved => closed

Notes
(0015890)
CHristian Goetze   
2009-04-01 16:53   
See specification draft at:
https://wiki.secondlife.com/wiki/CMake_Build_Artifact_Management_Specification [^]
(0025632)
XU Liang   
2011-03-03 09:06   
I like this idea. What is the newest status? Have some module implement it?
Maybe I can try it.
(0025633)
Brad King   
2011-03-03 09:43   
There is no active development on this feature request. The concept is more of a package manager than a build system and does not fall under CMake's original design goals.

Moving to inactive backlog.
(0041498)
Kitware Robot   
2016-06-10 14:27   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.