So far we have used the default settings stored in
~/.conan/profiles/default and defined as command line arguments.
However, configurations can be large, settings can be very different, and we might want to switch easily between different configurations with different settings, options, etc. The best way to do it is using profiles.
A profile file contains a predefined set of
environment variables, and
build_requires and has this
[settings] setting=value [options] MyLib:shared=True [env] env_var=value [build_requires] Tool1/0.1@user/channel Tool2/0.1@user/channel, Tool3/0.1@user/channel *: Tool4/0.1@user/channel
Options allow definition with wildcards, to apply same option value to many packages:
They would contain the desired configuration, for example:
[settings] os=Macos arch=x86_64 compiler=clang compiler.version=3.5 compiler.libcxx=libstdc++11 build_type=Release [env] CC=/usr/bin/clang CXX=/usr/bin/clang++
You can store them in the default profile folder or anywhere in you project and you can use it instead of command line arguments:
$ conan create demo/testing -pr=clang_3.5
If we continue with the example of Poco, we could have a handy profile to help us build our project with the desired configuration and avoid the usage of all the command line arguments when installing the dependency packages.
A profile to install dependencies as shared and in debug mode will look like this:
include(default) [settings] build_type=Debug [options] Poco:shared=True Poco:enable_apacheconnector=False OpenSSL:shared=True
With this we could just install using the profile:
$ conan install . -pr=debug_shared
We could also create a new profile to use a different compiler version and store it in our project directory:
include(clang_3.5) [options] Poco:shared=True Poco:enable_apacheconnector=False OpenSSL:shared=True
Installation will be as easy as:
$ conan install . -pr=./poco_clang_3.5
Read more about Profiles for full reference.