Title here
Summary here
Cross-platform Build System for Modern C++
Getting Starteddef configure(project):
project.program(name='hi', source='src')golem configure --clangd
golem build# define a program, library, dependency or export
task = project.program(...)
# apply compiler flags only for gcc
task.when(compiler='gcc',
cxxflags=['-fstack-protector-all'])# triggers the recipe mechanism
project.dependency(
name='json',
repository='https://github.com/nlohmann/json.git',
version='^3.0.0', # Resolves to v3.12.0
shallow=True
)
# link the dependency
project.program(..., deps=['json'])# golem configure --qtdir=<path>
project.program(
name='hello-qt',
source=['src'],
moc=['src'],
features=['QT6CORE'] # QT6WIDGETS, etc.
)# define the library
project.library(name='mylib', ...)
# export the library
project.export(name='mylib',
includes='mylib/include')
# link the library
project.program(..., use=['mylib'])# all my compiler flags
# can be extracted into a dependency
task = project.export(name='global',
cxxflags=['...'])
task.when(variant='debug',
cxxflags=['...'])
# my targets
project.library(..., use=['global'])
project.program(..., use=['global'])# dependencies can be customized too
task = project.dependency(...,
version='main' # Follow branch 'main'
variant='release', # Force release
link='static', # Force static linking
cxxflags=['...'] # Add compiler flags
)
task.when(osystem='windows',
defines=['FOO_BAR'])pipx install golemcpppip install golemcpp