cmkr icon indicating copy to clipboard operation
cmkr copied to clipboard

Implement seamless packaging

Open mrexodia opened this issue 3 years ago • 1 comments

Ideally writing

[project]
name = "example"
version = "1.0"

[find-package]
fmt = {}

[target.mylib]
type = "static"
sources = ["..."]
link-libraries = ["fmt::fmt"]

[target.otherlib]
type = "static"
sources = ["..."]

[target.mytool]
type = "static"
sources = ["..."]
link-libraries = ["mylib", "otherlib"]

[package]
targets = ["mylib", "otherlib", "mytool"]
dependency-packages = ["fmt"]

Should automatically generate a modern CMake example (project.name) package with a exampleConfig.cmake file that has IMPORTED targets, versioning and the relevant find_package calls. This library can then be consumed with:

[find-package]
example = { version = "1.0" }

Perhaps this could be used? https://github.com/TheLartians/PackageProject.cmake

mrexodia avatar May 03 '21 13:05 mrexodia

WIP branch: https://github.com/build-cpp/cmkr/tree/package

mrexodia avatar Jul 12 '22 21:07 mrexodia