Skip to content
rubenvb edited this page Sep 28, 2012 · 2 revisions

Definition

CONFIG contains all the information needed to describe the build configuration. Toolchain independent options for debugging symbols, warning options, etc. are defined here.

Remarks

  • You can only add CONFIG options that are used outside of a target scope (for example to make a target conditional for some configuration) in the [[global]] section.
  • Targets can overwrite CONFIG values added in [[global]].

List of values and their effect

Values that can be set in [[global]]

Values that cannot be set in [[global]]

General

  • windows, linux, mac: target OS. Only one will be present.
  • amd64, x86: target architecture. Only one will be present.
  • gcc, clang, icc, msvc: build toolchain. Only one will be present.
  • Combinations of the above: windows-x86, linux-amd64-gcc, windows-amd64-clang, etc...
  • debug, release, release_debug: build configuration. Can differ per target, depending on how you were invoking Ambrosia. These options can modify optimization options, but these are superceded by any specific optimization options added to CONFIG. Ambrosia tries to be smart and prevents several arguments of the same type passed to the toolchain programs (for example: -O1 -O3 should not be passed to the compiler).
  • noinstall: the contents of this target will not be installed when running Ambrosia [[install]].

Values specific to [[app]]

  • [[build_tool]]: this is for a build tool not meant to be executed on the build OS.
  • [[target_tool]]: this is for a build tool meant to be executed on the target OS.

Values specific to [[lib]]

Clone this wiki locally