Build policiesļ
By default, conan install command will search for a binary package (corresponding to our settings and defined options) in a remote, if itās not present the install command will fail.
As previously demonstrated, we can use the ābuild option to change the default conan install behaviour:
--build some_package will build only āsome_packageā.
--build missing will build only the missing requires.
--build will build all requirements from sources.
--build outdated will try to build from code if the binary is not built with the current recipe or when missing binary package.
With the build_policy
attribute the package creator can change the default conanās build behavior. The allowed build_policy values are:
missing
: If no binary package is found, conan will build it without the need of invoke conan install with --build missing option.always
: The package will be built always, retrieving each time the source code executing the āsourceā method.
class PocoTimerConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
requires = "Poco/1.7.8p3@pocoproject/stable" # comma-separated list of requirements
generators = "cmake", "gcc", "txt"
default_options = "Poco:shared=True", "OpenSSL:shared=True"
build_policy = "always" # "missing"
These build policies are especially useful if the package creator doesnāt want to provide binary package, for example, with header only libraries.
The always
policy, will retrieve the sources each time the package is installed so it can be useful for providing a ālatestā mechanism
or ignoring the uploaded binary packages.