Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0008471 [CMake] CMake feature N/A 2009-02-04 21:58 2009-04-01 22:07
Reporter CHristian Goetze View Status public  
Assigned To Brad King
Priority normal Resolution open  
Status assigned   Product Version
Summary 0008471: Introduce the concept of a build artifact
Description 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.

Additional Information
Tags No tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]

-  Notes
(0015890)
CHristian Goetze (reporter)
2009-04-01 16:53

See specification draft at:
https://wiki.secondlife.com/wiki/CMake_Build_Artifact_Management_Specification [^]

- Issue History
Date Modified Username Field Change
2009-02-04 21:58 CHristian Goetze New Issue
2009-02-05 19:55 Bill Hoffman Status new => assigned
2009-02-05 19:55 Bill Hoffman Assigned To => Bill Hoffman
2009-04-01 16:53 CHristian Goetze Note Added: 0015890
2009-04-01 22:07 Bill Hoffman Assigned To Bill Hoffman => Brad King


Mantis 1.1.4[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker