diff --git a/reference/commands/config.rst b/reference/commands/config.rst index ea811ec9b882..39b749f0bb2f 100644 --- a/reference/commands/config.rst +++ b/reference/commands/config.rst @@ -101,6 +101,12 @@ You can force certain files to be copied over by using the ``!`` negation syntax $ conan config install http://github.com/user/conan_config/.git --type git +- Install the configuration from a specific Git branch: + + .. code-block:: text + + $ conan config install http://github.com/user/conan_config/.git --args="--branch mybranch" + - Install from a URL skipping SSL verification: .. code-block:: text @@ -144,7 +150,7 @@ The packages containing configuration follow some special rules: - They cannot contain ``requires`` to other packages - The configuration packages are created with ``conan create`` and ``conan export-pkg`` as other packages, and uploaded to the servers with ``conan upload`` -To install configuration from a Conan configuration package, it is possible: +To install a configuration from a Conan configuration package, it is possible: - To generate a lockfile file with ``--lockfile-out``. This lockfile file can be passed to ``conan config install-pkg --lockfile`` (it will automatically loaded it if is named ``conan.lock`` and found in the current directory) in the future to guarantee the same exact version. - Version ranges can be used ``conan config install-pkg "myconf/[>=1.0 <2]"`` is correct, and it will install the latest one in that range. @@ -189,7 +195,7 @@ And if they had a layout with different ``global.conf`` for the different platfo nix/global.conf -They, they could create and upload their configuration package as: +They could create and upload their configuration package as: .. code-block:: bash diff --git a/reference/config_files/profiles.rst b/reference/config_files/profiles.rst index b8962e151182..380ed59d4341 100644 --- a/reference/config_files/profiles.rst +++ b/reference/config_files/profiles.rst @@ -285,8 +285,8 @@ the prefix of the variable. It is useful to automatically get the append/prepend # Prepend another PATH to "MyPath1" MyPath1=+(path)/other path/path12 - # Unset the variable "MyPath1" - MyPath1=! + # Unset the variable "MyPath2" + MyPath2=! Then, the result of applying this profile is: @@ -295,7 +295,7 @@ Then, the result of applying this profile is: * ``MyPath1``: * Unix: ``/other path/path12:/some/path11`` * Windows: ``/other path/path12;/some/path11`` -* ``mypkg*:PATH``: ``None`` +* ``MyPath2``: if system environment had defined ``MyPath2``, this will be unset by Conan .. warning:: @@ -309,6 +309,17 @@ Then, the result of applying this profile is: - This section allows to use patterns to limit which packages are affected by the buildenv. See :ref:`this section ` for more details. + For example: + + .. code-block:: text + + [buildenv] + MyPath=MyValue + mypkg/*:MyPath=MyOtherValue + + This will result in ``MyPath=MyValue`` for all the packages, and ``MyPath=MyOtherValue`` only for the ``mypkg`` package. + + .. _reference_config_files_profiles_runenv: @@ -653,7 +664,7 @@ Some of the capabilities of the profile templates are: .. code-block:: jinja :caption: *profile_vars* - {% set version = subprocess.check_output(['clang++', "-dumpversion]).strip() %} + {% set version = subprocess.check_output(['clang++', "-dumpversion"]).strip() %} [settings] compiler.version={{ version }} diff --git a/reference/config_files/settings.rst b/reference/config_files/settings.rst index a877bc1e6ef1..5a46234ade51 100644 --- a/reference/config_files/settings.rst +++ b/reference/config_files/settings.rst @@ -153,7 +153,8 @@ Here you can find a brief explanation of each of the architectures defined as `` - **asm.js**: The subset of JavaScript that can be used as low-level target for compilers, not really a processor architecture, it's produced by Emscripten. Conan treats it as an architecture to align with build systems design (e.g. GNU auto tools and CMake). - **wasm**: The Web Assembly, not really a processor architecture, but byte-code format for Web, it's produced by Emscripten. Conan treats it - as an architecture to align with build systems design (e.g. GNU auto tools and CMake). + as an architecture to align with build systems design (e.g. GNU auto tools, CMake, etc). +- **wasm64**: The Web Assembly 64 bit, same as **wasm** but for 64 bit. Conan will add the necessary flags to the compiler to produce 64 bit Web Assembly code. - **sh4le**: The Hitachi SH-4 SuperH architecture. - **e2k-v2**: The Elbrus 2000 v2 512 bit VLIW (Very Long Instruction Word) architecture (Elbrus 2CM, Elbrus 2C+ CPUs) originally developed by MCST (Moscow Center of SPARC Technologies). - **e2k-v3**: The Elbrus 2000 v3 512 bit VLIW (Very Long Instruction Word) architecture (Elbrus 2S, aka Elbrus 4C, CPU) originally developed by MCST (Moscow Center of SPARC Technologies). @@ -172,17 +173,17 @@ C++ standard libraries (aka compiler.libcxx) ``compiler.libcxx`` sub-setting defines C++ standard libraries implementation to be used. The sub-setting applies only to certain compilers, e.g. it applies to *clang*, *apple-clang* and *gcc*, but doesn't apply to *Visual Studio*. -- **libstdc++** (gcc, clang, apple-clang, sun-cc): `The GNU C++ Library `__. NOTE that this implicitly +- **libstdc++** (gcc, clang, apple-clang, sun-cc, intel-cc, mcst-lcc, emcc): `The GNU C++ Library `__. NOTE that this implicitly defines **_GLIBCXX_USE_CXX11_ABI=0** to use old ABI. Might be a wise choice for old systems, such as CentOS 6. On Linux systems, you may need to install `libstdc++-dev `_ (package name could be different in various distros) in order to use the standard library. NOTE that on Apple systems usage of **libstdc++** has been deprecated. -- **libstdc++11** (gcc, clang, apple-clang): `The GNU C++ Library `__. NOTE that this implicitly +- **libstdc++11** (gcc, clang, intel-cc, mcst-lcc, emcc): `The GNU C++ Library `__. NOTE that this implicitly defines **_GLIBCXX_USE_CXX11_ABI=1** to use new ABI. Might be a wise choice for newer systems, such as Ubuntu 20. On Linux systems, you may need to install `libstdc++-dev `_ (package name could be different in various distros) in order to use the standard library. NOTE that on Apple systems usage of **libstdc++** has been deprecated. -- **libc++** (clang, apple-clang): `LLVM libc++ `__. On Linux systems, you may need to install `libc++-dev `_ +- **libc++** (clang, apple-clang, intel-cc, emcc): `LLVM libc++ `__. On Linux systems, you may need to install `libc++-dev `_ (package name could be different in various distros) in order to use the standard library. - **c++_shared** (clang, Android only): use `LLVM libc++ `__ as a shared library. Refer to the `C++ Library Support `__ for the