Check https://github.com/conan-io/conan for issues and more details about development, contributors, etc.
Important
Conan 1.60 shouldn’t break any existing 1.0 recipe or command line invocation. If it does, please submit a report on GitHub. Read more about the Conan stability commitment .
tool_requires("pkg/<host_version>")
to get the host requirement version (Backport of 2.0
https://github.com/conan-io/conan/pull/13712
).
#13719
. Docs
here
move_folder_contents()
file helper to re-arrange repos folders.
#13509
. Docs
here
conan_version
in profile.jinja and global.conf jinja templating.
#13377
. Docs
here
conan
search
pkg/*@
and
conan
upload
pkg/*@
, to filter packages without user/channel.
#13173
Git.fetch_commit
method, for a faster alternative than clone.
#13096
. Docs
here
CMakeToolchain
generates preset files with more than 1 configure preset.
#13004
cmake_layout
for single-config configurations when defining
build_folder_vars
.
#12925
tools.microsoft.msbuild:installation_path
#12882
. Docs
here
c++2a
for gcc 12, replace with
c++20
.
#12796
remove_broken_symlinks
failing at relative paths symlinks.
#12876
cmake_layout
to use single-config folder for generated files.
#12829
. Docs
here
compatibility()
for lockfiles.
#12778
CMakeDeps
when a
tool_requires
needs to be built from source and it has transitive dependencies that are regular
requires
.
#12736
NMakeDeps
generator.
#12599
. Docs
here
editable
env-vars via
layouts.xxx.buildenv_info
and
layouts.xxx.runenv_info
and conf via
layouts.xxx.conf_info
.
#12598
. Docs
here
XCRun().settings
read attribute.
#12486
. Docs
here
usr/bin
folder where
bash.exe
is to the PATH.
#12457
settings.compiler
is not defined for
MesonToolchain
.
#12623
-s
from default build_type compiler flags, added to modern
AutotoolsToolchain
.
#12518
package_folder=None
for
MSBuildDeps
in editable mode.
#12529
included_files()
method in
from
conan.tools.scm
import
Git
.
#12295
. Docs
here
conanfile.win_bash_run
and
tools.microsoft.bash:active
config for better Windows bash management.
#12178
. Docs
here
default_cppstd()
import error
#12446
tools.env.environment:auto_use=True
is enabled and no
generate()
method.
#12386
VirtualBuildEnv
and
VirtualRunEnv
generators problems with dots in architecture or config.
#12294
[runenv]
section in the Profile, to define the runtime environment.
#12230
. Docs
here
MSBuildToolchain.properties
to define extra properties.
#12147
. Docs
here
source_folder
in test_package when
layout()
is defined.
#12075
cpp_info.libdir|bindir|includedir
interface to access
cpp_info.libdirs[0]
in recipes
#12030
. Docs
here
conan
search
dep/1.0
--table
message when a binary is missing.
#12184
-
while trying to avoid wrong XML formats.
#12141
test_requires
to
CMakeToolchain
directories/folders to find cmake files inside them.
#12081
libcxx
support in
MesonToolchain
.
#12156
MSBuild().build(..,
targets=["target1"])
argument to new
MSBuild
.
#11968
. Docs
here
is_msvc(...,
build_context=False)
argument.
#11949
. Docs
here
cmake_layout(...,
build_folder="build)
build folder argument.
#11889
. Docs
here
ConanFileInterface
for
self.dependencies
access.
#11868
. Docs
here
self.folders.subproject
for
layout()
to be able to define layouts that goes up to the parent or siblings folders, together with the
self.folders.root
=
".."
.
#11556
. Docs
here
msys2_ucrt64
,
msys2_mingw64
,
msys2_clang64
subsystems in
os.subsystem
for Windows.
#11530
conan_message()
in
CMakeDeps
.
#11625
LocalDebuggerEnv
overflows in
MSBuildDeps
due to addition of PATH env-var.
#11631
VirtualBuildEnv
and
VirtualRunEnv
always generate files, even if empty.
#11536
VirtualRunEnv
for undefined variables when
set
-e
is defined.
#11361
PkgConfigDeps
for
editable
packages, not raising an error cause
package_folder
is None.
#11440
conanfile.txt
file now accepts a
[layout]
that can be filled with 3 predefined layouts:
cmake_layout
,
vs_layout
and
bazel_layout
.
#11348
. Docs
here
copy_symlink_folders
of the
conan.tool.files.copy
function and now, any symlink file pointing to a folder will be treated as a regular file.
#11330
. Docs
here
check_min_vs()
checker that will work for both
Visual
Studio
and
msvc
to allow migration from 1.X to 2.0
#11292
. Docs
here
tools.cmake.cmaketoolchain:toolset_arch
to define VS toolset x64 or x86 architecture
#11147
. Docs
here
--require-override
over conditional
requirements()
method.
#11209
conan_server
to use
pyjwt>=2.4.0
to solve a known vulnerability.
#11350
cpp_info.objects
first in
CMakeDeps
generator, as they can have dependencies to
system_libs
that need to be after them in some platforms to correctly link.
#11272
apple-clang
13.0 compatibility.
#11231
tools.env.virtualenv:powershell
conf to opt-in to generate and use powershell scripts instead of .bat ones.
#11061
. Docs
here
Version(self.settings.compiler.version)
to work for
new
tools.scm.Version``.
#11119
BazelDeps
to find a library when a directory with the same name exists.
#11090
msvc
compiler older versions.
#10808
from
conan.errors
import
XXX
new namespace to be ready for 2.0.
#10734
. Docs
here
clang
to
msvc_runtime_flag()
. It requires defining
compiler.runtime
=
static/dynamic
definition, same as modern
msvc
compiler setting.
#10898
. Docs
here
clion_layout
.
#10760
. Docs
here
validate()
method raises
ConanInvalidConfiguration
.
#10725
build
scope.
#10904
self.folders.root
apply at package
conan
install
.
too.
#10842
build_policy=never
bug when
conan
export-pkg
--force
and there already exists a package in the cache.
#10738
conan
search
<ref>
) stored in remote repos that were created with Conan 2.0.
#10692
self.base_source_folder
for
exports_sources
explicit layouts.
#10654
. Docs
here
root
to layout model to allow conanfile.py in subfolders.
#10654
. Docs
here
compiler.version
12 for GCC in settings.
#10595
conan.tools.scm.Git
helper, for direct use in
export()
method to capture git url and commit, and to be used in
source()
method to clone and checkout a git repo.
#10594
. Docs
here
from
conan.tools.files
import
update_conandata()
helper to add data to
conandata.yml
in the
export()
method.
#10586
. Docs
here
conan.tools.cmake.CMake
helper.
#10573
. Docs
here
recipe_folder
to pylint plugin.
#10527
layout()
is defined, the
exports
will not be considered sources anymore, but only the
exports_sources
. The
exports
are used exclusively by the recipe, but not as package source.
#10625
source()
method run inside the
self.source_folder
, in the same way
build()
runs in
self.build_folder
. But only for recipes that define the
layout()
method, to not break unless using
layout()
.
#10612
. Docs
here
--source-folder
new argument to
install
and
editable
, not necessary at the moment.
#10590
. Docs
here
CMakeToolchain
message to use
CMAKE_CURRENT_LIST_FILE
.
#10552
MesonToolchain
extra quotes in
cpp_std
#10707
system_libs
management in
AutotoolsDeps
.
#10681
conan_server
circular import do to
conan.tools
namespace.
#10635
meson_layout()
issue with shared folders.
#10600
SystemPackageTool
when
mode=verify
, it was still installing packages.
#10596
self.build_folder
not being computed even if
layout()
method is defined in local
conan install
. Close
https://github.com/conan-io/conan/issues/10566
#10567
[tool_requires]
section to profiles.
#10462
meson_lib
and
meson_exe
,
conan new
templates.
#10460
. Docs
here
AutotoolsToolchain
.
#10429
--source-folder
and
--output-folder
to
conan
editable
and
conan install
to work with
layout()
.
#10274
. Docs
here
settings.yml
. Needed for emsdk package in Conan Center Index.
#10269
MesonToolchain
, including some cross-building functionality.
#10174
msvc
compiler, detect it as
Visual
Studio
version
17
.
#10457
. Docs
here
conan
config
install
results in a bad filename that could fail.
#10423
pathlib
as hidden-import to pyinstaller.py, so it is bundled with the installer.
#10386
cmake
generator checks for Visual Studio 2022.
#10361
[buildenv]
profile definition.
#10343
-debug
to
LDFLAGS
in
AutotoolsToolchain
when necessary.
#10339
CMakeToolchain
generated code, so it doesnt fail for
-Werror
--warn-uninitialized
.
#10292
find_file
,
find_path
and
find_program
commands allowing better cross-build scenarios and better differentiation of the right context where to get, for example, executables (build vs host).
#10186
. Docs
here
BazelDeps
using absolute
glob
paths instead of relative.
#10478
AttributeError:
'PackageEditableLayout'
object
has
no
attribute
'package_lock'
that happened when sing
package_revision_mode
with
editable
packages (and lockfiles).
#10416
package_id
errors when using
compatible_packages
of repeated references (which can happen if using
private
dependencies).
#10266
conanfile.xxxx_folder
=
yyy
only used for testing.
#10153
Git.version
property to check the current git version, aligned with
SVN.version
.
#10114
. Docs
here
generator
argument from
cpp_info.set_property()
method.
#10214
. Docs
here
cmake_build_modules
property the legacy
cpp_info.build_modules
.
#10208
CMakeToolchain
and
AutotoolsToolchain
. Define it only to
D_GLIBCXX_USE_CXX11_ABI=0
for new compilers, assuming that the default is already 1.
#10165
os=baremetal
in
settings.yml
to represent platforms without OS “bare metal”.
#10067
. Docs
here
tools.gnu.PkgConfig
to supersede legacy
tools.PkgConfig
. Includes management of
PKG_CONFIG_PATH
and mapping to a
cpp_info
structure
#10065
. Docs
here
test_requires()
for 2.0 migration of force_host_context.
#10027
. Docs
here
from
conan
import
ConanFile
to prepare for future namespace.
#10016
. Docs
here
parallel
definition in new
conf
, leaving only
tools.build:jobs
. Use max number of CPUs by default to build in parallel.
#10068
. Docs
here
msvc
version model, which is comparison broken with the “main” 19.3 version < 19.22.
#10057
. Docs
here
conan
info
--paths
when there are editables in the graph.
#9944
CMakeToolchainBlock
custom Blocks in
CMakeToolchain
.
#10026
. Docs
here
Premake
generator.
#10008
user_toolchain
properly included and path quoted in
CMakeToolchain
.
#9916
msvc
compiler not defined in settings.yml file.
#9954
MSBuildTolchain
ResourceCompile.
#9843
conf["tools.microsoft.msbuild:install_path"]
for the MSBuild toolchain and remove generation of intel_vars files by
VCVars
.
#9827
. Docs
here
Environment
as an abstract environment representation (do not depend on conanfile), and
EnvVars
, as the specialization for a given conanfile, settings/settings_build, and
win_bash
.
#9755
. Docs
here
requests
version from
User-Agent
header, it can be problematic sometimes and adds no value.
#9861
MesonToolchain
to define
preprocessor_definitions
as
[constant]
, because Meson 0.60 now raises errors on it defined in
[built-in
options]
.
#9858
ConanFileInterface.new_cpp_info
to
ConanFileInterface.cpp_info
(being it a
NewCppInfo
object). The
ConanFileInterface
object is only used when accessing
self.dependencies
in a conanfile, so we can make sure that the new develop generators use the final
cpp_info
name.
#9800
. Docs
here
group
argument in
Environment
classes to
scope
, that can get “build” and “run” values.
#9755
. Docs
here
win_bash
behavior failed for dual profile, the new computation of subsystem paths completely depend now on defined settings, but not on
platform.system()
or auto-detection.
#9755
. Docs
here
compatible_packages
. Close
https://github.com/conan-io/conan/issues/9591
#9890
-vcvars
argument for VS<=2015. Close
https://github.com/conan-io/conan/issues/9888
#9889
sys.dont_write_bytecode
.
#9865
validate()
method raise that error and results in an invalid
package_id
.
#9818
build_policy="never"
even for
--build=missing
cli argument.
#9817
CMakeToolchain
for custom generator when compiler is not defined.
#9801
conan.tools.files
download,
get,
ftp_download
for adoption.
#9715
. Docs
here
MSBuildDeps
generator learned how to handle
build_requires
to use executables from them.
#9686
. Docs
here
PkgConfig
helper now honors
PKG_CONFIG
environment variable.
#9627
activate
scripts will generate
deactivate
scripts by default.
#9539
conan
config
install
.
#9530
layout()
with generators folder.
#9674
future
dependency from Python
requirements.txt
.
#9563
VirtualBuildEnv
and
VirtualRunEnv
independent.
#9543
. Docs
here
generator_folder
was using the
cwd
instead of a relative folder to the conanfile, producing layout errors.
#9668
conan.tools.files.patch
bug with
strip
argument.
#9653
requests>=2.25
in requirements.txt to make it compatible with latest upgrade of
urllib3
to 1.26.6
#9562
--template=cmake_lib
and
--template=cmake_exe
.
#9516
. Docs
here
[conf]
core:default_build_profile
to enable the usage of the build profile as default, and to allow definition of the host profile default in new
[conf]
core:default_profile
.
#9468
. Docs
here
[buildenv]
section, necessary for lockfiles, and specially stdout printing.
#9320
-o
&:option=value
wildcard for consumer, too, same it was done for settings in 1.39
#9316
. Docs
here
visible
trait compatible with 2.0 for new
CMakeDeps
and
MSBuildDeps
.
#9517
deprecation
pip dependency
#9478
distro
dependency to allow 1.6.0
#9462
-r=remote
is defined and revisions are activated and binary is not found in the defined remote.
#9355
python_requires
information in the
conan info
output.
#9290
requires
=
"pkg/(alias)"
syntax to be able to disambiguate alias requirements and resolve them earlier in the flow, solving some limitations of the previous alias definition. This approach is intended to be the one in Conan 2.0 (issue backported from
https://github.com/conan-io/tribe/pull/25
).
#9217
. Docs
here
-require-override
argument to define dependency overrides directly on command line.
#9195
. Docs
here
bindirs
definition to
cmake_layout()
.
#9276
conan
search
<ref>
a package in editable mode.
#9262
options
to
conanfile.dependencies
model.
#9258
workspace
install
when conanfile has
imports()
.
#9281
qbs.architecture
KeyError.
#9192
vcvars_ver
instead.
#9187
build_requires
in host context, like gtest, are being propagated downstream by generators in the
dependencies
model.
#9171
. Docs
here
PkgConfigDeps
generator.
#9152
. Docs
here
context
information to
conan info
output both to stdout and json outputs.
#9137
. Docs
here
CMakeToolchain
with definition of
CMAKE_SYSTEM_NAME
,
CMAKE_SYSTEM_PROCESSOR
and
CMAKE_SYSTEM_VERSION
, deduced from
self.settings_build
(only using the 2 profiles) and from new
[conf]
items.
#9115
. Docs
here
CMakeToolchain
blocks.
#9109
. Docs
here
conanfile.dependencies
model, using a dict {requirement: ConanFileInterface} to prepare for Conan 2.0.
#9062
. Docs
here
requires
=
"pkg..#recipe_revision"
to update cache revision without
--update
.
#9058
. Docs
here
cmake_layout()
layout helper to define a multi-platform CMake layout that will work for different generators (ninja, xcode, visual, unix), and is multi-config.
#9057
. Docs
here
CMakeToolchain
to generate OSX and Apple config for non Apple builds.
#9107
ConanFileDependencies.build["dep"]
was retrieving the
host
dependency if existing, or failing otherwise, because the default requires was hardcoded to fetch the host (build=False) dependency.
#9148
. Docs
here
--lockfile
with the
conan test
command.
#9089
conan
new
...
-m=v2_cmake
template to start using the new
layout()
basic info.
#9053
CMakeDeps
when there are
build_requires
with same name as host requires, unless
build_context_activated
is enabled for those and a different suffix has not been defined.
#9046
MSBuildToolchain.preprocessor_definitions
#9056
CMAKE_SKIP_RPATHS
by default to True in
CMakeToolchain
, it is not necessary by default, users can opt-in, and new test validates shared libs will work with
VirtualEnv
generator
conanrunenv
.
#9024
. Docs
here
CMakeToolchain
with only 1 category of blocks, made
try-compile
template code as another block, and reordered blocks so relevant flags for try-compile are taken into account.
#9009
. Docs
here
conan.tools.google
Bazel integration with
BazelDeps
,
BazelToolchain
and
Bazel
.
#8991
. Docs
here
build_policy=never
for
conan export-pkg
packages that cannot be rebuilt with
--build=xxx
.
#8946
. Docs
here
[conf]
for defining the user toolchain for
CMakeToolchain
, both for injecting a user toolchain in the
CMakeToolchain
generated
conan_toolchain.cmake
and for completely replacing
conan_toolchain.cmake
.
#8945
. Docs
here
conan
install
<ref>
--build-require
and
conan
create
<path>
--build-require
(when not using
test_package
) arguments to explicitly define that the installed or created package has to be a
build-require
, receiving the build profile instead of the host one.
#8627
. Docs
here
MSBuildDeps
to correctly process packages with dots in the package name.
#9012
package_id
mismatch in lockfiles when using
compatible_packages
feature.
#9008
vcvars
commands in new toolchains.
#8899
tools.cmake.CMake
for Ninja toolchain defined with
CMakeToolchain
.
#8887
CMakeToolchain
generates a
conanbuild.json
file with the generator to be used in the
CMake
command line later, so it is not necessary to duplicate logic, and is explicit what generator should be used.
#8815
. Docs
here
CMakeToolchain
learned to build with different toolsets, down to the minor compiler version, for the
msvc
compiler.
#8815
. Docs
here
CMakeToolchain
defining
CMAKE_GENERATOR_TOOLSET
for msvc version different than the default.
#8800
test_build_require
in
test_package/conanfile.py
recipes, so build_requires can be tested as such.
#8787
. Docs
here
.dependencies
.
#8765
CMakeToolchain
customization and extensibility mechanism with blocks of components instead of inheritance.
#8749
. Docs
here
CMakeToolchain
will generate
conanvcvars.bat
for Ninja builds for
msvc
.
#8005
tools.gnu.MakeToolchain
, superseded by
tools.gnu.AutotoolsToolchain
.
#8880
. Docs
here
conancvvars.bat
Visual toolchain file.
#8847
Ninja
Multi-Config
as a CMake multi-configuration generator.
#8814
CMakeDeps
generator.
#8767
. Docs
here
build_requires
for a package belonging to a lockfile.
#8793
/
by
-
in
cpp_info.xxxxlinkflags
in _CMake_ generators because it can break passing objects and other paths that start with
/
.
#8812
conanfile.__init__
.
#8746
MSBuildDeps
generator uses new visitor model and handles conditional requirements correctly.
#8733
. Docs
here
conan
lock
bundle
clean-modified
command.
#8726
. Docs
here
conancvvars.bat
file for Meson toolchain
#8719
preprocessor_definitions
in
CMakeToolchain
.
#8645
Environment
model for recipes and profiles
#8630
. Docs
here
conan
lock
install
that can install a lockfile in the cache, all the binaries or only the recipes with
--recipes
, intended for CI flows.
#8021
. Docs
here
default_user
and
default_channel
in
export
.
#8732
lock
create
providing a path instead of full path with filename.
#8695
CMakeDeps
generator to remove legacy code.
#8666
cmake_find_package_multi
and
CMakeDeps
to be aliases for
cpp_info.names
and
cpp_info.filenames
to allow easy migration.
#8568
conan
lock
bundle
build-order
.
#8579
scm
output in
conan info
command.
#8380
cmake_find_package_multi
into
CMakeDeps
, to allow evolution without breaking.
#8371
generate_toolchain_files()
calls (use new imports and
generate()
calls.
#8361
build_requires
, including conflicting versions in profile composition or inclusion that repeats
[build_requires]
values.
#8463
generators
=
"CMakeDeps"
#8416
[conf]
section in profiles that allows a more systematic configuration management for recipes and helpers (build helpers, toolchains). Introducing a new
conan_conf.txt
cache configuration file that contains configuration definition with the same syntax as in profiles.
#8266
. Docs
here
msvc
compiler in
MSBuild
tools
#8238
. Docs
here
msvc
compiler setting and preliminary support in
conan.tools.cmake
generator and toolchain.
#8201
. Docs
here
CMakeDeps
now takes values for configurations from
settings.yml
.
#8194
. Docs
here
ConanXXXRootFolder
in
MSBuildDeps
generator.
#8177
CMakeDeps
generator (at the moment is the
cmake_find_package_multi
, that allows custom configurations, like
ReleaseShared
.
#8024
. Docs
here
MSBuildToolchain
custom configurations in
generate()
method.
#7754
. Docs
here
CMakeToolchain
file unless the CMake generator is “Visual Studio”. Fix
https://github.com/conan-io/conan/issues/7485
#8333
algorithms
argument.
#8267
cmake_paths
generator for
CMakeToolchain
, to allow start using the toolchain for users that depend on that generator.
#8230
build_requires
in the global
conandeps.props
file generated by MSBuildDeps.
#8186
conan_deps.props
to
conandeps.props
to avoid collision with a package named “deps”.
#8186
package_folder
in the
test_package
folder (defaulting to “package”), so the test recipe can execute
cmake.install()
in its
build()
method.
#8117
assert
node.package_id
!=
PACKAGE_ID_UNKNOWN
assertion that happened when using
build_requires
that also exist in
requires
, and using
package_revision_mode
and
full_transitive_package_id=1
#8358
ROOT
variables in
MakeGenerator
.
#8301
armv8
(from returned
arm64
).
#8262
conan
info
--paths
and
short_paths=True
in Windows, due to creation of empty folders in the short-paths storage.
#8181
conan
new
<pkg-name>/version
-t
wrong include when not using
-s
(using the hardcoded git repo).
#8175
excludes
pattern case-insensitive in non Windows platforms.
#8155
toolchain()
in favor of more generic
generate()
method. Deprecate toolchains
write_toolchain_files()
to new
generate()
method.
#8101
. Docs
here
CMakeToolchain
and new
CMake
experimental helpers to the new
from
conan.tools.cmake
import.
#8096
. Docs
here
MSBuildToolchain
and new
MSBuild
experimental helpers to the new
from
conan.tools.microsoft
import.
#8096
. Docs
here
MakeToolchain
experimental helper to the new
from
conan.tools.gnu
import.
#8096
. Docs
here
conan
remote
list_ref
--no-remote
to list recipes without a remote defined.
#8094
. Docs
here
conan
remote
list_pref
--no-remote
to list packages without a remote defined.
#8094
. Docs
here
--lockfile-node-id
argument to
conan
install
--lockfile
so it can target different packages with same reference (different binary, this can happen with private requirements).
#8077
. Docs
here
python_requires
can be used (as a workaround) to affect the
package_id
of consumers of
build_requires
that otherwise will not be rebuilt based on changes.
#8076
. Docs
here
general.keep_python_files
to allow packaging of Python .pyc files.
#8070
. Docs
here
msbuild
generator.
#8014
msbuild
generator to
MSBuildDeps
and use the new
generate()
method.
#8014
conan
new
bye/0.1
-s
-t
to provide variable filenames and messages that include the package name and version, instead of a hardcoded “hello” one.
#7989
__init__.py
in the root of the repo, which was useless, without a purpose, but caused issues with other projects importing Conan Python code.
#8132
CMakeToolchain
cache variables, so they can define directly values defined in
CMakeLists.txt
.
#8124
MSBuildToolchain
to
conantoolchain.props
so it doesn’t collide with a potential
toolchain
package name and the
msbuild
generator.
#8073
. Docs
here
msbuild
generator importing multiple times the same .props file due to transitive dependencies.
#8072
config_options
and
configure
to compute different options as long as the final evaluated values match the locked ones.
#7993
conan
new
--pure_c
pure C template to remove both
compiler.libcxx
and
compiler.cppstd
settings, as described in the docs.
#7989
os.rename
crash when using
short_paths
with a short path storage located in another Windows drive unit.
#8103
LocalDebuggerEnvironment
in
msbuild
generator.
#8040
liburl3
1.26 library updates is breaking the constraints in Conan
requirements.txt
as
requests
2.24 has a limitation for
liburl3
. This PR constrains
liburl3
version to be less than 1.26, so it does not break with requests 2.24.
#8042
init()
function not being called when the recipe loader uses some cached data, which can happen when using lockfiles and with
python_requires
.
#8018
self.copy()
incorrectly handling
ignore_case
.
#8009
ignore_case
default in
[imports]
section of
conanfile.txt
.
#8009
MSBuildCmd
helper class that encapsulates calling MSBuild.
#7941
. Docs
here
conan_export.tgz
and
conan_source.tgz
in the cache, so they are not affected by different Operating Systems compression and de-compression and uploading is way more efficient.
#7938
conan
config
install
of a single file
#7840
. Docs
here
AutootoolsBuildEnvironment
with the value of
os_version
, unless the values are already defined in environment variables
CFLAGS
or
CXXFLAGS
.
#7862
msbuild
generator and
MSBuildToolchain
.
#7825
cpp_info.names
and
cpp_info.filenames
.
#7867
inspect
--remote
forcing to retrieve the remote for evaluation, overwriting what is in the local cache.
#7749
imports
failing to match subfolders in Windows due to backslash differences.
#7861
intel_
because they are now exposed via tools. Fixes
https://github.com/conan-io/conan/issues/7820
.
#7821
. Docs
here
CMakeToolchain
with multiple variables definitions.
#7833
CMake
build helper.
#7827
compiler.libcxx
value for
gcc
compiler. Only enabled in
CONAN_V2_MODE
, otherwise it would be breaking.
#7776
MSBuildToolchain
to generate
conan_toolchain.props
files (it is multi-config, will generate one specific toolchain file per configuration) for more transparent integration and better developer experience with Visual Studio.
#7674
. Docs
here
self.cpp_info.requires
attribute.
#7644
. Docs
here
armv5hf
and
armv5el
to the Android ABI architectures.
#7730
system_requirements
when using
python_requires
.
#7721
pkg_config
generator adding to .pc files empty include and lib dirs.
#7703
tools.remove_files_by_mask
.
#7700
qbs
generator.
#7619
tools.rename
function to rename a file or folder to avoid ‘Access is denied’ on Windows.
#6774
. Docs
here
conanbuildinfo_xxx.cmake
files in
cmake_multi
generator.
#7376
conan
lock
update
and
package_revision_mode
.
#7592
six.moves.collections_abc
non existing for some six versions.
#7622
deps_cpp_info
incorrectly adding directories when reading from
conanbuildinfo.txt
file.
#7599
build_requires
defined in a profile that is passed as
profile_host
, it was not being applied to
build_requires
that live in the host context (with
force_host_context=True
).
#7500
cmake_find_package_multi
when using components, as different configurations were being resolved to the same name, overwriting each other.
#7492
init()
method to unconditionally initialize class attributes like
license
or
description
.
#7404
. Docs
here
conan.conf
user configuration of paths to client certificate and key, outside of the Conan cache.
#7398
. Docs
here
required_conan_version
in
conanfile.py
, will raise if the current Conan version does not match the defined version range.
#7360
. Docs
here
recipe_folder
attribute pointing to the folder containing
conanfile.py
#7314
. Docs
here
pluginbase
requirement to
pluginbase>=0.5
, including latest 1.0.0 .
#7441
toolchain()
helpers, so the method can be used to save custom files.
#7435
. Docs
here
msbuild
generator to not raise in Linux.
#7361
__contains__
method, so checking
if
"myoption"
in
self.info.options
is possible in
package_id()
.
#7303
conan_sources.tgz
created using
export_sources()
method.
#7380
package_id
when using
package_revision_mode
, and also incorrectly using installed binaries and reporting them installed after the re-computation of
package_id
resolved to a different binary.
#7353
system_libs
to
scons
generator.
#7302
conan
config
install
--list
and
conan
config
install
--remove=index
arguments to display and remove conan config install origins.
#7263
. Docs
here
--build=Pkg/0.1@
to match the
Pkg/0.1
package, so the
conan
install
Pkg/0.1@
--build=Pkg/0.1@
also works.
#7219
conan_toolchain.cmake
file, not in the project-include file.
#7160
python_requires_extend
from packages that contain “.” dots in the package name.
#7262
scm
definitions from
python_requires
base classes.
#7238
scm_to_conandata
and revisions marked as stable. Docs
here
toolchain()
recipe method, as a new paradigm for integrating build systems, and simplifying developer flows.
#7076
. Docs
here
msvc
generator that generates a .props file per dependency and is also multi-configuration.
#7035
. Docs
here
export()
and
export_sources()
methods, that provide the
self.copy()
helper to add files to recipe or sources in the same way as the corresponding attributes.
#6945
. Docs
here
self.name
and
self.version
in
set_name()
and
set_version()
methods.
#6940
. Docs
here
pkg_config
generator.
#7059
conan
config
install
can overwrite read-only files and won’t copy permissions.
#7004
self.deps_user_info["dep"]
now raise
AttributeError
instead of a (wrong)
KeyError
, enabling
hasattr()
and correct
getattr()
behaviors.
#7131
package_id
of a package when different
package_id_mode
are mixed and include
package_revision_mode
.
#7051
cmake
generators.
#6976
cpp_std
option in meson project, even if
cppstd
option was not set in conan profile. Now it sets the option only if
cppstd
profile option has a concrete value.
#7047
AutoToolsBuildEnvironment
when a profile:build is defined.
#7032
Content-Length
header that doesn’t match the real content length.
#6996
shared_linker_flags
to CMake
MODULE
targets too in
cmake
generators, not only to
SHARED_LIBRARIES
.
#6983
cpp_info.components
.
#6966
settings_build
to get the value of the OS and arch from the
build
machine (only when
--profile:build
is provided).
#6916
. Docs
here
cpp_info.components
dependencies.
#6871
. Docs
here
--profile:build
).
#6769
. Docs
here
[options]
are not specified correctly in conanfile.txt.
#6794
tools.vcvars_command()
in
MSBuild()
build helper.
#6928
build_id()
method.
#6917
cmake_find_package_multi
generator for multi-config packages.
#6914
init()
method to
conanfile.py
recipes that can be used to add extra logic when inheriting from
python_requires
classes.
#6614
. Docs
here
conan
config
install
to avoid permission issues.
#6601
sun-cc
compiler when it outputs
Studio
12.5
Sun
C
.
#6757
definitions
passed to
MSBuild
build helper which values are not None (0, False…).
#6730
conanbuildinfo.txt
, so it is available in
self.deps_cpp_info["dep"].version
and
self.deps_cpp_info["dep"].name
, so it can be used in
conan build
and in
test_package/conanfile.py
.
#6723
. Docs
here
tools.vcvars_command()
that is also used internally by
MSBuild
helper.
#6675
virtualenv
generators.
#6670
cmake
generator local flow when the
package_id()
method changes values.
#6659
general.parallel_download=<num
threads>
configuration, for parallel installation of binaries, to speed up populating packages in a cache.
#6632
. Docs
here
test_package/conanfile.py
has other requirements, as they will not be part of the lockfile.
#6457
. Docs
here
MSBuild
argument
targets
is not a list, instead of splitting a string passed as argument instead of a list.
#6555
self.develop=True
attribute for recipes when they are used with
conan export-pkg
, in all methods, it was previously only setting it for the
package()
method.
#6585
python_requires
and
build_id()
.
#6618
six
version to allow more modern releases.
#6509
dirty
state of the cache package folder with
conan export-pkg
.
#6498
system_libs
to
premake
generator.
#6495
virtualenv
scripts, so they don’t crash in pure sh shells.
#6265
MSBuild
build helper.
#6374
. Docs
here
storage.download_cache
in
conan.conf
.
#6287
. Docs
here
requires
and
build-requires
. Better
status
field, with explicit
exported
,
built
values.
#6237
imports
functionality can import from “symbolic” names, preceded with @, like @bindirs, @libdirs, etc. This allows importing files from variable package layouts, including custom
package_info()
layouts (like
cpp_info.bindirs
=
["mybin"]
can be used with
src="@bindirs"
), and editable package layouts
#6208
. Docs
here
vcvars_append
variable (defaulting to
False
) to
CMake
and
Meson
build helpers constructors, so when they need to activate the Visual Studio environment via
vcvars
(for Ninja and NMake generators), the
vcvars
environment is appended at the end, giving precedence to the environment previously defined.
#6000
. Docs
here
LD_LIBRARY_PATH
environment in
SCM
commands for “pyinstaller” installations, as SSL can fail due to using old SSL stuff from Conan instead from git/svn.
#6380
bufsize=1
#6333
-G
Visual
Studio
15
ARM
for
armv8
architectures.
#6312
tools.vcvars()
management when the environment is already set.
#6296
conan
user
myuser
-p=mypass
-r=remote
is used, the user-password are send in HttpBasic so it can be used for completely protected servers that do not expose the ping endpoint.
#6254
tools.get()
.
#6204
options
to packages, which produced incorrect evaluation of
requirements()
method.
#6395
system_libs
information in autotools build helper.
#6309
environment_append()
helper does not modify the argument anymore, which caused problems if the argument was reused.
#6285
conan
graph
build-order
, as they need to be processed in that order.
#6251
build-requires
that are also in the
requires
.
#6236
set_name()
and
set_version()
methods.
#6214
system_libs
to
premake
generator.
#6496
tools.download()
gets a 403 and it is not providing an
auth
field.
#6317
python_requires
declared as Conanfile class attributes. Includes extension of base class, they affect the binary packageID with
minor_mode
default mode. They are also locked in lockfiles.
#5804
. Docs
here
cmake_find_package
generator.
#6166
compatible_packages
feature to follow the
--build=missing
build policy. Packages that find a compatible binary will not fire a binary build with the “missing” build policy.
#6134
. Docs
here
SystemPackageTool.installed(package_name)
as described in the documentation.
#6198
set_version()
runs in the
conanfile.py
folder, not in the current folder, so relative paths are not broken if executing from a different location.
#6130
. Docs
here
set_name()
and
set_version()
member methods to dynamically obtain the name and version (at export time).
#5881
. Docs
here
package_id()
an ordered list of binary package variants that would be binary compatible with the default one. These variants will be checked in order if the main package ID is not found (missing), and the first one will be installed and used.
#5837
. Docs
here
--scm-dirty
argument is specified. The recipe in the local cache will be kept with
revision=auto
.
#5543
. Docs
here
conan
search
--query
in the server, do them always in the client.
#5960
conan
remove
--help
message for
--packages
#5899
conanfile.txt
instead of
conanfile.py
.
#5894
deps_cpp_info
.
#5886
conan
search
--query
queries to be resolved always in the client to avoid servers failures due to unsupported syntax
#5970
cpp_info.name
not used in cmake find generators for dependencies
#5973
self.info.shared_library_package_id()
to better manage shared libraries package-ID, specially when they depend on static libraries
#5893
. Docs
here
conan
install
pkg/[*]@user/channel
resolving to a reference, not a path.
#5908
visual_studio
generator adding a
<Lib>
task.
#5846
. Docs
here
name/version:package_id
should work
#5824
install_folder
#5569
package_id
should be used for
recipe_revision_mode
#5729
. Docs
here
--skip-auth
for the
conan user
command to avoid trying to authenticate when the client already has credentials stored.
#5532
. Docs
here
conan
graph
clean-modified
command, it is automatic and no longer necessary.
#5533
. Docs
here
qbs
generator.
#5452
. Docs
here
conan
info
<ref>
command, incorrectly reading the graph_info.json and lockfiles
#5481
rm
-rf
~/.conan/data/pkg_name
#5480
recipe_revision_mode
and
package_revision_mode
, that take into account the revisions. The second one will use all the information from dependencies, resulting in fully deterministic and complete package IDs: if some dependency change, it will be necessary to build a new binary of consumers
#5363
. Docs
here
conan
copy|download|upload
<ref>
-p=ID
, use
conan
....
<pref>
instead
#5293
. Docs
here
tools.patch
with
strip>0
#5334
conan
config
get
storage.path
return an absolute, resolved path
#5350
typed-ast
(required by astroid) in python3.4, as they stopped releasing wheels, and it fails to build in some Windows platforms with older SDKs.
#5324
conan
new
--template=mytemplate
to initialize recipes with your own templates
#5189
. Docs
here
retry
and
retry-wait
and
CONAN_RETRY
and
CONAN_RETRY_WAIT
to configure all retries for all transfers, including upload, download, and
tools.download()
.
#5174
. Docs
here
root
field.
#5156
. Docs
here
--update
was not updating
python_requires
using version ranges.
#5265
visual_studio
generator only adds “.lib” extension for lib names without extension, otherwise (like “.a”) respect it.
#5254
--recipe
argument, which should only skip download binaries, not the sources.
#5194
urllib.request.getproxies()
, they are broken.
#5162
--update
if using version-ranges.
#5266
conan
remote
update
--insert
using the same URL it had before
#5110
deploy
generator to export files from a dependency graph to an installation folder
#4972
. Docs
here
tools.get()
and
tools.unzip()
now handle also
.gz
compressed files
#4883
. Docs
here
visual_studio
generator instead of forward slashes
#5003
conan
upload
--force
force also the upload of package binaries, not only recipes
#5088
build_folder
in the layout, but not used in a workspace
#5070
python-requires
#4979
--keep-build
#4918
private
requirements
#4987
build-requires
and
private
requirements that resolve to a dependency that is already in the graph won’t span a new node, nor will be
build-requires
or
private
. They can conflict too.
#4937
null
revisions in package metadata
#4934
conan
config
install
for Conan versions 1.9 and older
#4870
--source-folder
and
--target-folder
to
conan
config
install
command to select subfolder to install from the source origin, and also the destination folder within the cache.
#4709
. Docs
here
--update
argument for
python-requires
too.
#4660
reference
object in workspaces in templates for out of source builds
#4812
. Docs
here
vswhere
in
PATH
when using
tools.vswhere()
#4805
package()
method
#4748
. Docs
here
--package-folder
#4834
conan_basic_setup()
for the
cmake_multi
generator
#4721
. Docs
here
add_subdirectories()
for workspaces build-requires
#4783
package_id
mode.
#4644
. Docs
here
module.__file__
=
None
#4669
upload
-p=id
command.
#4615
virtualbuildenv
generator
#4583
str(self.settings.xxx)
crash when the value is None.
#4571
. Docs
here
MSBuild
helper, incorrectly ignoring the
conan_build.props
file because of using a relative path instead of absolute one.
#4488
graph_info.json
files raises KeyError over “root”.
#4458
get_tag()
methods to
tools.Git()
and
tools.SVN()
helpers.
#4306
. Docs
here
conan
install
--build
#4305
. Docs
here
tools.build_sln_command()
)
#4239
. Docs
here
reference
argument in
conan
install
<path>
<reference>
, where
reference
can be a partial reference too (identical to what is passed to
conan create
or
conan export
. This allows defining all pkg,version,user,channel fields of the recipe for the local flow.
#4197
. Docs
here
ppc32
#4195
. Docs
here
armv8.3
#4195
. Docs
here
armv8_32
#4195
. Docs
here
virtualenv
generator
#4396
cpp_info.cppflags
to
CONAN_CXXFLAGS
in
make
generator.
#4349
. Docs
here
*_DIRS
instead of
*_PATHS
ending for variables generated by the
make
generator:
INCLUDE_DIRS
,
LIB_DIRS
,
BIN_DIRS
,
BUILD_DIRS
and
RES_DIRS
#4349
. Docs
here
get_branch()
method of
tools.SVN()
helper now returns only the branch name, not the tag when present.
#4306
. Docs
here
yaml.safe_load
instead of
load
#4285
project()
LANGUAGE is None, but the user defines
CONAN_DISABLE_CHECK_COMPILER
.
#4276
verify_ssl
argument in
conan config install
#4158
. Docs
here
--graph=file.html
html output using local
vis.min.js
and
vis.min.css
resources if they are found in the local cache (can be deployed via
conan config install
)
#4133
. Docs
here
conan
export
.
version@user/channel
and
conan
create
.
version@user/channel
#4062
. Docs
here
ConfigParser
with
%
in values, like in path names containing % (jenkins)
#4122
MSBuild()
is now generated in the
build_folder
instead of a temporary folder to allow more reproducible builds.
#4113
. Docs
here
ftp.login()
with empty args. This causes ftp lib to login again with empty credentials and throwing exception because authentication is required by server.
#4092
os_build
and
arch_build
for search queries.
#4061
CONAN_CMAKE_SILENT_OUTPUT
#4042
make
generator.
#4003
make
generator test
#4018
conan
new
--help
#3999
pkg/version@user/channel
, avoids bugs for conanfile in 4 nested folders and
conan
install
path/to/the/file
#4044
compiler_args
generated “mytool.lib.lib” for Visual Studio libraries that were defined with the
.lib
extension in the
self.cpp_info.libs
field of
package_info()
.
#3976
amd64_x86
when no
arch_build
is defined.
#3918
sudo
--askpass
breaks CentOS 6 package installation. The sudo version on CentOS 6 is 1.8.6. The option of
askpass
for sudo version 1.8.7 or older is
sudo -A
.
#3885
srcdirs
in
package_info()
. Packages can package sources, and specify their location, which will be propagated to consumers. Includes support for CMake generator.
#3857
--json
output to
conan
export_pkg
command
#3809
install
and
create
commands at package level.
#3717
topics
attribute to the
ConanFile
to specify topics (a.k.a tags, a.k.a keywords) to the recipe.
#3702
exports_sources
) in recipes used as
python_requires()
.
#3661
MSBuild()
build helper doesn’t adjust the compiler flags for the build_type anymore because they are adjusted by the project itself.
#3860
neon
as linux distro for SystemPackageTools
#3845
cppstd
setting.
#3844
conan
download
<ref-without-wildcards>
#3843
arch
nor
arch_build
in autodetected profile if
platform.machine
returns an empty string.
#3841
build_id()
method.
#3834
vcvars
is also called in the
CMake()
build helper when
clang
compiler is used, not only with
Visual Studio`compiler. `#3832
SVN::excluded_files
function.
#3830
tqdm
requirement to
>=4.28.0
#3823
vcvars
is also called in the
CMake()
build helper when using
Ninja
or
NMake
generators.
#3803
link_flags
management in
MSBuild
build helper
#3791
--profile
argument (and settings, options, env, too) to
conan export-pkg
, so it is able to correctly compute the binary package_id in case the information captured in the installed conaninfo.txt in previous
conan install
does not contain all information to reconstruct the graph.
#3768
tqdm
to >=4.27: solves issue with weakref assertion.
#3763
--show-item
is not available).
#3757
-r
argument in
svn
status
, so functionality
SVN::is_pristine
won’t be available.
#3757
--askpass
argument to
sudo
if it is not an interactive terminal
#3727
yum
update
needs user’s confirmation, which breaks system update in CentOS non-interactive terminal.
#3747
tqdm
dependency to a temporarily forked removing the “man” directory write permissions issue installing the
pip
package.
#3802
default_user
and
default_channel
that can be declared in a conanfile to specify the
user
and
channel
for conan local methods when neither
CONAN_USERNAME
and
CONAN_CHANNEL
environment variables exist.
#3758
conanfile.py
with shebang and encoding header lines was failing in python 2. This fix also allows non-ascii chars in
conanfile.py
if proper encoding is declared.
#3750
tools.collect_libs()
#3718
--sbindir
and
--libexecdir
in AutoTools build helper.
#3715
python_requires()
, both in linter and due to Python2.
#3706
DATAROOTDIR
in CMake and AutoTools build helpers.
#3705
-r=remote
repos too, and is able to produce
--json
output.
#3634
AutotoolsBuildEnvironment
and
CMake
build helpers now adjust default for the GNU standard installation directories:
bindir
,
sbin
,
libexec
,
includedir
,
oldincludedir
,
datarootdir
#3599
use_default_install_dirs
in
AutotoolsBuildEnvironment.configure()
to opt-out from the defaulted installation dirs.
#3599
PATH
when
vcvars
is run, mitigating the max size of the env var issues.
#3598
vcvars
to run if
clang-cl
compiler is detected.
#3574
O(n2)
to
O(n)
.
#3528
ConanInvalidConfiguration
as the standard way to indicate that a specific configuration is not valid for the current package. e.g library not compatible with Windows.
#3517
libtool()
function to the
tools.XCRun()
tool to locate the system
libtool
.
#3515
tools.collect_libs()
now search into each folder declared in
self.cpp_info.libdirs
.
#3503
CMAKE_OSX_DEPLOYMENT_TARGET
to the
CMake
build helper following the
os.version
setting for
Macos
.
#3486
tool.replace_path_in_file
to replace Windows paths in a file doing case-insensitive comparison and indistinct path separators comparison: “/” == “"
#3399
None
option value was not being propagated upstream in the dependency graph
#3684
system_requirements()
always on install, in case the folder was removed.
#3647
bottle
package in the development requirements
#3646
Git
scm class avoiding to replace any character in the
get_branch()
function.
#3496
CMake().patch_config_files()
.
#3399
python_requires
overwritten when using more than one of them in a recipe
#3628
system_requirements()
have to be executed even when the package is retrieved from the local cache.
#3616
CONAN_TRACE_FILE
log file.
#3613
os
(reserved symbol) parameter to
os_
in the
get_gnu_triplet
tool.
#3603
short
paths
.
#3600
scm
replacement of the variable when exporting a conanfile.
#3576
export_sources
excluded patterns containing symlinks.
#3537
get_cased_path
crashed when the path didn’t exist.
#3516
python_requires
function that allows you to reuse Python code by “requiring” it in Conan packages, even to extend the
ConanFile
class. See:
Python requires: reusing python code in recipes
CMake
method
patch_config_paths
replaces absolute paths to a Conan package’s dependencies as well as to the Conan package itself.
MSBuild
and
VisualStudioBuildEnvironment
build helpers adjust the
/MP
flag to build code in parallel using multiple
cores.
print_errors
parameter to
tools.PkgConfig()
helper.
virtualenv
/
virtualbuildenv
/
virtualrunenv
generators now create bash scripts in Windows for use in subsystems.
tools.vcvars_dict(only_diff=True)
including a “list” return type that can be used with
tools.environment_append()
.
AutoToolsBuildEnvironment
build helper now keeps the
PKG_CONFIG_PATHS
variable previously set in the environment.
.git
folder during the copy of a local directory to the local cache.
MSBuild
build helper arguments using quotes.
vcvars_command
and
MSBuild
build helper use the
amd64_x86
parameter when Visual Studio > 12 and when cross building for x86.
-c
init.TemplateDir
in
conan config install
from a Git repository.
cmake
generator.
qmake
generator hyphen.
scm
attribute.
default_options
without value, e.g.
default_options
=
"config="
. Now it will throw an exception.
virtualenv
generator causes PS1 to go unset.
alias
packages when the name of the package (excluded the version) was different from the aliased package. Now it is limited in the
conan alias
command.
self.run(...,
run_environment=True)
argument, that automatically applies
PATH
,
LD_LIBRARY_PATH
and
DYLD_LIBRARY_PATH
environment variables from the dependencies, to the execution of the current command.
tools.run_environment()
method as a shortcut to using
tools.environment_append
and
RunEnvironment()
together.
self.run(...,
ignore_errors=True)
argument that represses launching an exception if the commands fails, so user can
capture the return code.
tools.Git
to allow capturing the current branch and enabling the export of a package whose version is based on the branch and commit.
json
generator now outputs settings and options
conan
config
install
$(USERPROFILE)
macro.
filename
parameter to
tools.get()
in case it cannot be deduced from the URL.
keep_permissions
and
pattern
parameters from
tools.get()
to
tools.unzip()
.
unzip()
. This will only work in Python 3 with lzma support enabled, otherwise, and error is produced.
FRAMEWORK_SEARCH_PATHS
var to the Xcode generator to support packaging Apple Frameworks. Read more
here
.
should_configure
attribute to control the test stage. Read more
here
.
http://...
git urls.
LLVM
toolsets to the base
settings.yml
(Visual Studio).
deb
installer to guarantee that it runs correctly in Debian 9 and other distros.
SystemPackageTool
when calling to update with
sudo
is not enabled and
mode=verify
.
pyinstaller
shared libraries from the linker environment for any Conan subprocess.
YumTool
now calls
yum
update
instead of
yum
check-update
.
--manifest
parameter with
conan create
caused the deletion of information in the dependency graph.
build
method of the
Version
model was not showing the version build field correctly .
build_requires
are represented in the graph (visible in
conan info`
, also in the
HTML graph).
conan install
and
conan info
commands shows extended information of the binaries status (represented in
colors in HTML graph). The dependencies declaration order in recipes is respected (as long as it doesn’t break the dependency graph order).
pattern
argument to
tools.unzip()
and
tools.untargz
functions, that allow efficient extraction of certain files
only.
SystemPackageTools
.
Macos
version
subsetting in the default
settings.yml
file, to account for the “min OSX version” configuration.
exports
and
exports_sources
, manage symlinks, and do not copy files that
are
.gitignored
. Also, works better in the local development flow.
Conan/1.5.0
(Python
2.7.1)
CMake()
helper now doesn’t require a compiler input to deduce the default generator.
vswhere
tool outputs invalid non utf-8 text.
winsdk
and
vcvars_ver
to MSBuild and
vcvars_command
for VS 14 too.
build_requires
.
CMake()
helper now defines by default
CMAKE_EXPORT_NO_PACKAGE_REGISTRY
.
cmake_minimum_required()
is now before
project()
in templates and examples.
CONAN_SYSREQUIRES_MODE=Disabled
now doesn’t try to update the system packages registry.
-std
flag in CMake < 3 or when the standard is not yet supported by
CMAKE_CXX_STANDARD
.
scm
attribute to avoid breaking recipes with already defined one.
self.copy
.
scm
conanfile attribute, to easily clone/checkout from remote repositories and
to capture the remote and commit in the exported recipe when the recipe and the sources lives in the same repository.
Read more in “
Recipe and sources in a different repo
” and “
Recipe and sources in the same repo
”.
cmake_paths
generator to create a file setting
CMAKE_MODULE_PATH
and
CMAKE_PREFIX_PATH
to the packages folders.
It can be used as a CMake toolchain to perform a transparent CMake usage, without include any line of cmake code related to Conan.
Read more
here
.
cmake_find_package
generator that generates one
FindXXX.cmake
file per each dependency both with classic CMake approach and modern
using transitive CMake targets. Read more
here
.
PKG_CONFIG_PATH
automatically and receives new parameter
pkg_config_paths
to override it.
fPIC
option in AutoTools build helper.
tools.vcvars_command()
and
tools.vcvars_dict()
now take
vcvars_ver
and
winsdk_version
as parameters.
tools.vcvars_dict()
gets only the env vars set by vcvars with new parameter
only_diff=True
.
virtualbuildenv
now sets Visual Studio env vars via
tool.vcvars_dict()
.
short_paths=True
now shows package ID.
tools.vcvars_dict()
failing to create dictionary due to newlines in vcvars command output.
tools.which()
returning directories instead of only files.
short_paths=True
.
CONAN_PASSWORD
when
CONAN_NON_INTERACTIVE=True
.
default_options
not supporting
=
in value when specified as tuple.
pkg_config_paths
parameter now sets paths relative to the install folder or absolute
ones if provided.
run_in_windows_bash
due to wrong argument.
VisualStudioBuildEnvironment
when toolset was not defined.
conan
download
-p=wrong_id
command
AutoToolsBuildEnvironment
build helper that raised exception with not supported architectures during the calculation of the GNU triplet.
pkg_config
generator, previously crashing when there was no library directories in the requirements.
conanfile.run()
with
win_bash=True
quoting the paths correctly.
tools.save
function.
package_id()
method using
del
self.info.options.<option>
settings.yml
:
RelWithDebInfo
and
MinSizeRel
.
Compiler flags will be automatically defined in build helpers that do not understand them (
MSBuild
,
AutotoolsBuildEnvironment
)
fPIC
and
shared
when present.
CONAN_COLOR_DISPLAY=1
environment variable.
If
CONAN_COLOR_DISPLAY
is not set rely on tty detection for colored output.
use_env
to the
MSBuild().build()
build helper method to control the
/p:UseEnv
msbuild argument.
--prefix
to
self.package_folder
.
tools.get_gnu_triplet()
cmake_multi
generated files.
self.copy()
doesn’t copy files in the
package()
method.
None
is now a possible value for settings with nested subsettings in
settings.yml
.
vcvars_command
is called and Visual is not found, raise an error instead of warning.
self.env_info.paths
and
self.env_info.PATHS
both map now to PATHS env-var.
pkg_config
when there are absolute paths (not use prefix)
"="
character in conaninfo.txt files.
upload
--no-overwrite
failed when the remote package didn’t exist.
detect_windows_subsystem
doesn’t detect a subsystem.
--configure,
--build,
--install
arguments to control the different stages of the
build()
method.
package()
method. It assumes the package has been locally created with a previous
conan package
or with a
conan build
using a
cmake.install()
or equivalent feature.
json
generator, generates a json file with machine readable information from dependencies.
no_proxy_match
configuration variable.
source_folder
when doing
conan source
.
tools.vcvars()
context manager has no effect if platform is different from Windows.
CONAN_NON_INTERACTIVE
environment variable to disable interactive prompts.
MSbuild()
build helper using
vcvars()
and generating property file to adjust the runtime automatically.
New method
get_command()
with the call to
msbuild
tool. Deprecates
tools.build_sln_command()
and
tools.msvc_build_command()
.
ycm
generator to show json dependencies.
--json
parameter for
conan install
and
conan create
to generate a JSON file with install information.
self.user
and
self.channel
available in test_package.
deploy()
or
imports()
when
CONAN_READ_ONLY_CACHE`
/
general.read_only_cache
environment/config variable is
True
.
cpp_info
object in
deploy()
method.
package_info()
.
cmake
generator.
[env]
section.
build_sln_command()
and
msvc_build_command()
receive a new optional parameter
platforms
to match the definition of the
.sln
Visual Studio project architecture. (Typically Win32 vs x86 problem).
AutoToolsBuildEnvironment()
build helper
AutoToolsBuildEnvironment()
build helper now adjust the correct build flag, not using eabi suffix, for architecture x86.
cppstd
to manage the C++ standard. Also improved build helpers to adjust the standard automatically when the user activates the setting.
AutoToolsBuildEnvironment()
,
CMake()
,
MSBuild()
and
VisualStudioBuildEnvironment()
.
compiler_args
generator, for directly calling the compiler from command line, for multiple compilers: VS, gcc, clang.
sysrequires_mode
variable (
CONAN_SYSREQUIRES_MODE
env-var) with values
enabled,
verify,
disabled
to control the installation of system dependencies via
SystemPackageTool
typically used in
system_requirements()
.
pythonpath
environment variable for dependencies containing python code to be reused to recipe
source()
,
build()
,
package()
methods.
CMake
new
patch_config_paths()
methods that will replace absolute paths to conan package path variables, so cmake find scripts are relocatable.
temp_test_folder
and environment variable
CONAN_TEMP_TEST_FOLDER
, that if set to True will automatically clean the test_package build folder after running.
CONAN_SKIP_VS_PROJECTS_UPGRADE
environment variable to skip the upgrade of Visual Studio project when using
tools.build_sln_command() [DEPRECATED]
, the
msvc_build_command
and the
MSBuild()
build helper.
CONAN_VS_INSTALLATION_PREFERENCE
env-var and
vs_installation_preference
conan.conf variable.
keep_path
parameter to
self.copy()
within the
imports()
method.
[build_requires]
section to
conanfile.txt
.
target
parameter to
AutoToolsBuildEnvironment.make
method, allowing to select build target on running make
CONAN_MAKE_PROGRAM
environment variable now it is used by the
CMake()
build helper to set a custom make program.
tools.get_env()
helper method to automatically convert environment variables to python types.
libcxx
compatibility and the detected one for the default profile.
visual_studio
generator added missing
ResourceCompile
information.
CMake()
helper do not require settings if
CONAN_CMAKE_GENERATOR
is defined.
AutoToolsBuildEnvironment
build_id()
logic does not apply unless the
build_id
is effectively changed.
self.install_folder
was not correctly set in all necessary cases.
self.develop=True
for
export-pkg
command.
config
section update for sequential calls over the python API.
self.develop
set to
False
for
conan create
with
test_package
.
sysroot
in
conanbuildinfo.txt
affecting
conan build
and
test_package
.
CMake
build helper have been fixed
-o
*:shared=True
not working for consuming package)
-o
*:shared=True
-o
Pkg:other=False
was not applying
shared
value to Pkg)
filter_known_paths=False
as default to
vcvars_dict()
helper.
configure()
remove some setting.
os
and
os_build
settings.
arch_build
setting.
os_build
) settings by default. They make only sense for dev-tools used as
build_requires
remove_from_path
due to Windows path backslash
-r
myremote
self.run()
when stderr outputs large tests, due to full pipe.
run_in_windows_bash
accepts a dict of environment variables to be prioritized inside the bash shell, mainly intended to control the priority of the tools in the path. Use with
vcvars
context manager and
vcvars_dict
, that returns the PATH environment variable only with the Visual Studio related directories
arch_target
os_build
and
arch_build
settings
CMake
helper to account for
os_build
and
arch_build
new settings
include(default)
)
build_requirements()
for
conan install .
.
build_requires
with transitive dependencies to other build_requires
os_build
,
arch_build
,
os_target
,
arch_target
.
package()
will not warn of not copied files for known use cases.
cpp_info
,
env_info
,
user_info
attributes to
package_info()
method, to avoid unexpected errors.
source
,
package
and
export-pkg
commands
self.copy_headers
and family for the
package()
method
self.conanfile_directory
attribute.
This is a beta release, shouldn’t be installed unless you do it explicitly
$ pip install conan==1.0.0b2 –upgrade
Breaking changes
self.copy_headers
,
self.copy_libs
, methods for
package()
. Use
self.copy()
instead.
self.conanfile_directory
attribute. Use
self.source_folder
,
self.build_folder
, etc.
instead
CMake()
and
Meson()
build helpers to keep old behavior.
CMake()
and
Meson()
build helpers and relative directories regression.
ycm
generator, removed the access of
cpp_info
to generators, keeping the access to
deps_cpp_info
.
VisualStudioBuildEnvironment
has added more compilation and link flags.
MSBuild()
build helper that wraps the call to
msvc_build_command()
with the correct application of environment
variables with the improved
VisualStudioBuildEnvironment
CMake
and
Meson
build helpers got a new
cache_build_dir
argument for
configure(cache_build_dir=None)
that will be used to define a build directory while the package is being built in local cache, but not when built locally
conanfiles
got a new
apply_env
attribute, defaulted to
True
. If false, the environment variables from
dependencies will not be automatically applied. Useful if you don’t want some dependency adding itself to the PATH by default,
for example
conanbuildinfo.cmake
now has
KEEP_RPATHS
as argument to keep the RPATHS, as opposed to old SKIP_RPATH which
was confusing. Also, it uses set(CMAKE_INSTALL_NAME_DIR “”) to keep the old behavior even for CMake >= 3.9
tools.unix_path
support MSYS, Cygwin, WSL path flavors
destination
folder argument to
tools.get()
function
SystemPackageTool
for apt-get now uses
--no-install-recommends
automatically.
visual_studio_multi
generator now uses toolsets instead of IDE version to identify files.
short_paths
feature is active by default in Windows. If you want to opt-out, you can use
CONAN_USER_HOME_SHORT=None
SystemPackageTool
doesn’t use sudo in Windows
conanfile_directory`
shouldn't
be
used
anymore
in
recipes.
Use
``source_folder
,
build_folder
, etc.
Breaking changes
scopes
have been completely removed. You can use environment variables, or the
conanfile.develop
or
conanfile.in_local_cache
attributes instead.
werror
behavior is now by default. Dependencies conflicts will now error, and have to be fixed.
short_paths
feature is again active by default in Windows, even with Py3.6 and system LongPathsEnabled.
ConfigureEnvironment
and
GCC
build helpers have been completely removed
psutil
dependency
boost-build
generator for generic bjam (not only Boost)
tools.PkgConfig
helper to parse pkg-config (.pc) files.
self.develop
conanfile variable. It is true for
conan create
packages and for local development.
self.keep_imports
to avoid removal of imported files in the
build()
method. Convenient for re-packaging.
SystemPackageTool
AutoToolsBuildEnvironment
now auto-loads
pkg_config_path
(to use with
pkg_config
generator)
profiles
folder, will be searched for locally. Use
./myprofile
to force local search only.
if
"something"
in
self.options.myoption
exports_sources
is not longer done if such attribute is not defined
cmake
generator for RelWithDebInfo and MinSizeRel configs
CMake.test()
for the Ninja generator
build_policy="always"
CMake(self)
)
conan_info()
method, that was superseded by
package_id()
Breaking changes
conan_basic_setup()
, it will send shared libraries .so
to the
lib
folder in Linux systems. Right now it was undefined.
-pr=myprofile
, such profile will be searched both in the default folder
and in the local one if not existing. Use
-pr=./myprofile
to force local search only.
CMake(self)
syntax.
conan_info()
, replace it with
package_id()
.
CONAN_CMAKE_TOOLSET
, now the toolset can be specified as a subsetting of Visual Studio compiler or specified in the build helpers.
tools.download
) of files with
content-encoding=gzip
were raising an exception
because the downloaded content length didn’t match the http header
content-length
This is a big release, with many important and core changes. Also with a huge number of community contributions, thanks very much!
install-folder
,
source-folder
,
build-folder
,
package-folder
.
deploy()
method, useful for installing binaries from conan packages
-o
*:myoption=myvalue
applies to all packages
pc
generator that generates files from dependencies for
pkg-config
Meson
helper, similar to
CMake
for Meson build system. Works well with
pc
generator.
CONAN_READ_ONLY_CACHE
environment variable
visual_studio_multi
generator to load Debug/Release, 32/64 configs at once
tools.which
helper to locate executables
vcvars_command
-p
argument
PacManTool
for
system_requirements()
for ArchLinux
CMake
constructor and from environment variable CONAN_CMAKE_TOOLSET
werror
argument
AutoToolsBuildEnvironment
can use
CONAN_MAKE_PROGRAM
env-var to define make program
short_paths
in Windows 10 with Py3.6 and long path support is automatic
sudo
for system requirements if already running as root
tools.download
able to use headers/auth
build_sln_command
for VS
tools.get()
now has arguments for hash checking
Pkg/*
tools.patch
now support adding/removal of files
default
profile is no longer taken as a base and merged with user profile.
Use explicit
include(default)
instead.
tools.unzip
removed unnecessary long-paths check in Windows
package_info()
is no longer executed at install for the consumer conanfile.py
CMAKE_C_FLAGS_DEBUG
definition in
cmake
generator
CMAKE_SYSTEM_NAME
is now Darwin for iOS, watchOS and tvOS
xcode
generator fixed handling of compiler flags
Breaking changes
This is an important release towards stabilizing conan and moving out of beta. Some breaking changes have been done, but mostly to command line arguments, so they should be easy to fix. Package recipes or existing packages shouldn’t break. Please update , it is very important to ease the transition of future stable releases. Do not hesitate to ask questions, or for help if you need it. This is a possibly not complete list of things to take into account:
cwd
anymore, to change the directory where the generator
files are written, use the
--install-folder
parameter.
conanfile.py
(optional before)
package()
method.
-d,
--dest
anymore, use
--imports-folder
parameter instead.
include
to keep the old behavior.
cpp_info
(include, lib, etc), so some build systems don’t complain about them.
visual_studio
generator
visual_studio_legacy
generator for Visual Studio 2008
replace_in_file
now raises error if replacement is not done (opt-out parameter)
[proxies]
section
no_proxy=url1,url2
configuration (to skip proxying for those URLs), as well as
http=None
and
https=None
to explicitly disable them.
self.in_local_cache
attribute for conditional logic to apply in user folders local commands
CONAN_USER_HOME_SHORT=None
can disable the usage of
short_paths
in Windows, for modern Windows that enable long paths at the system level
if
"arm"
in
self.settings.arch
is now a valid check (without casting to str(self.settings.arch))
collect_libs
moved to the
tools
module
deps_cpp_info
causing issues with dots and dashes in package names
dev_requires
have been removed (it was not documented, but accessible via the
requires(dev=True)
parameter. Superseded by
build_requires
.
update
,
new
,
remove
subcommands, with detect``, to allow creation, edition and management of profiles.
package()
method if build_folder`` or source_folder`` arguments are defined
MD
or
MDd
is now automatic based on build type, not necessary to default in profile.
SystemExit
to return user error codes to the system with
sys.exit(code)
conan_basic_setup()
function
vs150comntools
variable, and using
vswhere.exe
conan_basic_setup()
function
export
command is now able to export recipes without name or version, specifying the full reference.
tools.replace_prefix_in_pc_file()
function to help with .pc files.
pkgutil
on Solaris
verbose
definition to
CMake
helper.
Pkg/*@user/channel
package_files
command now works with
short_paths
too.
vcvars_command
for custom VS paths defined via env-vars
ExecutablePath
assignment has been removed from the
visual_studio
generator.
export_source
folder containing exported code, fix issues with read-only files and keeps cache consistency better.
DYLD_LIBRARY_PATH
variable for virtual environments
FileCopier
had a bug that affected
self.copy()
commands, changing base reference directory.
This release introduces a new layout for the local cache, with dedicated
export_source
folder to store the source code exported with
exports_sources
feature, which is much cleaner than the old
.c_src
subfolder. A migration is included to remove from the local cache packages with the old layout.
requires
[settings_default]
in
conan.conf
and augments it, allowing to define more things like env-vars, options, build_requires, etc.
self.user_info
member that can be used in
package_info()
to define custom user variables, that will be translated to general purpose variables by generators.
CMAKE_TOOLCHAIN_FILE
in
CMake
helper for cross-building.
conan_api
, a python API interface to conan functionality.
cmake.install()
method of
CMake
helper.
short_paths
feature now applies also to
exports_sources
SystemPackageTool
now supports
FreeBSD
system packages
build_requires
now manage options too, also default options in package recipes
CMake
helper now defines by default
CMAKE_INSTALL_PREFIX
pointing to the current package_folder, so
cmake.install()
can transparently execute the packaging.
VisualStudioBuildEnvironment
MinRelSize
and
RelWithDebInfo
management in
CMake
helper.
mkdir
,
rmdir
,
relative_dirs
available for import from
conans
module.
package_files
now allows symlinks
exports
and
exports_sources
fields
include()
and variable declaration
RelWithDebInfo/MinRelSize
to cmake generators
tools.ftp_download()
function for FTP retrieval
SCons
generator
tools
now are using global
requests
and
output
instances. Proxies will work for
tools.download()
build_order
.
outdated
from
recipe
also for remotes
configure_dir
of
AutoToolsBuildEnvironment
new
with very short names, now errors earlier.
Conanfile.py
letter case.
build_requires
and crashing
build_requires
field and
build_requirements()
in package recipes
no_copy_source
attribute in recipes to avoid the copy of source code from “source” to “build folder”. Created new
self.source_folder
,
self.build_folder
,
self.package_folder
for recipes to use.
qmake
generator with multi-config support, resource directories
tools.sha256()
method
set_find_paths()
to
cmake-multi
, to set CMake FindXXX.cmake paths. This will work only for single-config build-systems.
configure()
,
requirements()
and
test()
methods
pylintrc
environment variable in
conan.conf
to define a PYLINTRC file with custom style definitions (like indents).
vcvars
architecture setting
cacert.pem
folder use CONAN_USER_HOME if existing
options=a=b
option definition
package_files
command allows force`` argument to overwrite existing instead of failing
conanbuildinfo.txt
future
requirement to solve an error with pyinstaller generating the Windows installer.
[build_requires]
can now be declared in
profiles
and apply them to build packages. Those requirements are only installed if the package is required to build from sources, and do not affect its package ID hash, and it is not necessary to define them in the package recipe. Ideal for testing libraries, cross compiling toolchains (like Android), development tools, etc.
build_requires
.
package_files
command, that is able to create binary packages directly from user files, without needing to define
build()
or
package()
methods in the the recipes.
package_files
command.
CMake
helper, with
test()
method, automatic setting of BUILD_SHARED_LIBS, better management of variables, support for parallel compilation in MSVC (via /MP)
tools.msvc_build_command()
helper that both sets the Visual vcvars and calls Visual to build the solution. Also
vcvars_command
is improved to return non-empty string even if vcvars is set, for easier concatenation.
mips
architectures and latest compiler versions to default settings.yml
AutoToolsBuildEnvironment
visual_studio
generator creating XML with dots.
options
definitions in profiles
RunEnvironment
helper, that makes easier to run binaries from dependent packages
virtualrunenv
generator that activates environment variable for execution of binaries from installed packages, without requiring
imports
of shared libraries.
package_id()
.
exports_sources
example recipe.
CMake
helper defining parallel builds for gcc-like compilers via jN``, allowing user definition with environment variable and in conan.conf.
visual_studio
generator with more information and binary paths for execution with DLLs paths.
profiles
exports
functionality
cmake_multi
generator for “multi-config” packages.
CMAKE_SYSTEM_NAME
automatically added when cross-building, causing users
providing their own cross-build to fail
CONAN_CFLAGS
instead of
CONAN_C_FLAGS
in cmake targets
visual_studio``generator
using
``%(ExecutablePath)
instead of
$(ExecutablePath)
conaninfo.txt
cmake
generator for flags.
NOTE: It is important that if you upgrade to this version, all the clients connected to the same remote, should upgrade too. Packages created with conan>=0.20.0 might not be usable with conan older conan clients.
package_info()
,
definition in profiles, in command line, per package, propagation to consumers.
AutotoolsBuildEnvironment
,
VisualStudioBuildEnvironment
, which
deprecate
ConfigureEnvironment
, with much better usage of environment variables
virtualbuildenv
generator that will generate a composable environment with build
information from installed dependencies.
build_id()
recipe method that allows to define logic to build once, and package
multiple times without building. E.g.: build once both debug and release artifacts, then package
separately.
self.cpp_info.debug.libs
=
[...]
syntax.
Not restricted to debug/release, can be used for other purposes.
conan.conf
entries
CMake
build helper, now it has
configure()
and
build()
methods
for common operations.
SystemPackageTool
with detection of installed packages, improved
implementation, installation of multi-name packages.
tools.unzip
maintaining permissions (Linux, OSX)
unix_path()
,
escape_windows_cmd()
,
run_in_windows_bash()
, useful
for autotools projects in Win/MinGW/Msys
tools.chdir
, to temporarily change directory.
CMAKE_SYSTEM_NAME
for cross-compiling.
tools.patch
failed
resdirs
to
cpp_info
propagated information, and cmake variables, for directories
containing resources and other data.
tools
. Still the manual definition of
vs150comntools
required.
conaninfo.txt
will not be correctly parsed, and then package would be “missing”.
This will happen for packages created with 0.20, and consumed with older than 0.19.3
NOTE: It is important that you upgrade at least to this version if you are using remotes with packages that might be created with latest conan releases (like conan.io).
exports_sources
feature and nested folders
exports_sources
feature.
exports_sources
allows to snapshot sources (like
exports
) but retrieve them strictly
when necessary, to build from sources. This can largely improve install times for package recipes
containing sources
self.run
actions, able to log information from builds and other commands
to files, that can afterwards be packaged together with the binaries.
Version
helper improved with
patch,
pre,
build
capabilities to handle
1.3.4-alpha2+build1
versions
CONAN_COMPRESSION_LEVEL
environment variable,
default 9. Reducing it can lead to faster compression times, at the expense of slightly bigger archives
system_requirements()
raising errors when failing, retrying if not successful,
being able to execute in user space for local recipes
conan_target_link_libraries()
.
CONAN_EXPORTED
variable, can be used in CMakeLists.txt to differentiate building
in the local conan cache as package and building in user space
cmake_multi
generator
imports()
now uses environment variables at “conan install” (but not at “conan imports” yet)
conan_info()
method has been renamed to
package_id()
. Backward compatibility is maintained,
but it is strongly encouraged to use the new name.
conan_find_libraries
now use the NO_CMAKE_FIND_ROOT_PATH parameter for avoiding issue while cross-compiling
platform.linux_distribution()
, using new “distro” package
VerifySSL
parameter for remotes
options
. Nested options are no longer supported, and
option.suboption
will be managed as a single string option.
This has been a huge release with contributors of 11 developers. Thanks very much to all of them!
cmake_multi
generator for multi-configuration IDEs like Visual Studio and Xcode
requirements()
method.
INTERFACE
IMPORTED
targets defined per package
profile
list|show
command, able to list or show details of profiles
description
field, to document package contents.
user
and
channel
now available in conan recipes. That allows to declare
requirements for the same user/channel as the current package.
CMake
helper class.
strip
parameter to
tools.patch()
utility
txt
and
env
generators in
test_package
Upgrade : The build=outdated`` feature had a change in the hash computation, it might report outdated binaries from recipes. You can re-build the binaries or ignore it (if you haven’t changed your recipes without re-generating binaries)
Pkg/[>1.2,<1.9||1.0.1]@user/channel
. Check the
version ranges reference
for details
imports
from normal install. Now
conan install --no-imports
skips the
imports section.
profiles
profiles
. Check
profiles reference
self.copy(...,
links=True)
C:/...
path instead of
the MSYS ones
ppc64
to default settings
generator()
instead of compiler to decide on cmake multi-configuration for Ninja+cl
builds
Upgrade
: If you were using the
short_paths
feature in Windows for packages with long paths, please
reset your local cache. You could manually remove packages or just run
conan remove "*"
short_paths
feature for Windows path limit to the
package
folder, so package
with very long paths, typically in headers in nested folder hierarchies are supported.
tool.build_sln_command()
helper to
build()
Microsoft Visual Studio solution (.sln)
projects
source
and
package
command, so together with
build
they can be fully
executed in a user folder, as a convenience for package creation and testing.
tools.pythonpath
to work in local commands too
profiles
and better error messages
-s
compiler flag for clang, as it doesn’t use it.
conanbuildinfo.txt
and no
conanenv.txt
are present to cache the information form install
requires
=
""
)
glob
hidden import to pyinstaller
short_paths
as local search not listing packages
requirements()
method.
short_paths
feature for Windows now also handle long paths for the final package,
in case that a user library has a very long final name, with nested subfolders.
tools.cpu_count()
as a helper to retrieve the number of cores, so it can be
used in concurrent builds
env
generator that generates a text file with the environment variables defined
by dependencies, so it can be stored. Such file is parsed by
conan build
to be able to use
such environment variables for
self.deps_env_info
too, in the same way it uses the
txt
generator to load variables for
self.deps_cpp_info
.
ConfigureEnvironment
, mainly for Windows
conanbuildinfo.txt
file when doing
conan install <PkgRef>
.
qmake
generator now uses quotes to handle paths with spaces
OSInfo
to return the short distro name instead of the long one.
private
dependencies
This minor solves some problems with
ConfigureEnvironment
, mainly for Windows, but also fixes
other things:
if
defined
structures doesn’t seem to
work in the command line.
vcvars_command
from
tools
now checks the Visual Studio environment variable, if it is
already set, it will check it with the current project settings, throwing an error if not matching,
returning an empty command if matches.
compile_flags
property to
ConfigureEnvironment
, to be passed in the command line
to the compiler, but not as environment variables
defines
to environment for nix systems, it was not being handled before
ConfigureEnvironment
functionality.
CPP_INCLUDE_PATH
, it is now
CPLUS_INCLUDE_PATH
IMPORTANT UPGRADE ISSUE: There was a small error in the computation of binary packages IDs, that has been addressed by conan 0.13. It affects to third level (and higher) binary packages, i.e. A and B in A->B->C->D, which binaries must be regenerated for the new hashes. If you don’t plan to provide support for older conan releases (<=0.12), which would be reasonable, you should remove all binaries first ( conan remove -p , works both locally and remotely), then re-build your binaries.
Features:
env_info.PYTHONPATH
. Useful if you want to
reuse common python code between different package recipes.
source()
method of a given conanfile. Very
useful for CI, if desired to run in parallel the construction of different binaries.
cpp_info
, so it now allows for capturing binary packages libraries with new
collect_libs()
helper, and access to created binaries to compute the
package_info()
in general.
ppc64le
and detection for
AArch64
conan_info()
tools.download
with python 3, restore correct prompt in virtualenvs,
bug if removing an option in
config_options()
, setup.py bug…
This release has contributions from @tru, @raulbocanegra, @tivek, @mathieu, and the feedback of many other conan users, thanks very much to all of them!
export
or
upload
packages with settings restrictions if the
restrictions didn’t match the host settings
CONAN_COLOR_DISPLAY=0
environment variable, or to configure
color schema for light console backgrounds with
CONAN_COLOR_DARK=1
environment variable
-
o
Package:option=value
as well as the implicit
-o
option=value
for current
Package
, for consistency
.tar
files in
tools.unzip()
conan_info()
, as
self.info.requires.clear()
and removal of settings and options
settings.yml
short_paths=True
and everything will be managed. The old
approach is deprecated and totally removed, so no shorts_paths.conf file is necessary. It should
fix also the issues with uploads/retrievals.
virtualenv
generator that generates
activate
and
deactivate
scripts that set
environment variables in the current shell. It is very useful, for example to install tools
(like CMake, MinGW) with conan packages, so multiple versions can be installed in the same machine,
and switch between them just by activating such virtual environments. Packages for MinGW and CMake
are already available as a demo
env_info
,
which is similar to
cpp_info
but for environment information (like paths).
build_policy
, which can be set to
always
or
missing
, so it is not
necessary to create packages or specify the build`` parameter in command line. Useful for example
in header only libraries or to create packages that always get the latest code from a branch in a github
repository.
export=*
package_info()
allows absolute paths in
includedir
,
libdirs
and
bindirs
, so
wrapper packages can be defined that use system or manually installed libraries.
ConfigureEnvironment
management of OSX frameworks.
ANY
value, so such option would accept any value. For example a commit of a
git repository, useful to create packages that can build any specific commit of a git repo.
source
directories (e.g. in case of a user
interrupting with Ctrl+C a git clone inside the
source()
method.
sudo
via a new environment variable
CONAN_SYSREQUIRES_SUDO, so using sudo is opt-in/out, for users with different sudo needs. Useful for
system_requirements()
config()
method (still works, for backwards compatibility), but has been replaced
by a
config_options()
to modify options based on settings, and a
configure()
method for
most use cases. This removes a nasty behavior of having the
config()
method called twice with
side effects.
-g
option. Useful for installing
tool packages (MinGW, CMake) and generate
virtualenvs
.
This has been a big release. Practically 100% of the released features are thanks to active users feedback and contributions. Thanks very much again to all of them!
tools
package_folder
attribute to conanfile, so the
package()
method can for example call
cmake
install
to create the package.
CONAN_CMAKE_GENERATOR
environment variable that allows to override the
CMake
default generator. That can be useful to build with Ninja instead of the default Unix Makefiles
ConfigureEnvironment
with include paths in CFLAGS and CPPFLAGS, and fixed bug.
Exceptions
in
config()
method, so it is easier for package creators to raise under non-supported configurations
As always, thanks very much to all contributors and users providing feedback.
test
to
test_package
both for the command and the folder,
but backwards compatibility remains. Custom folder name also possible.
Adapted test layout
might require minor changes to your package test,
automatic warnings added for your convenience.
del
self.settings.compiler.libcxx
<project>/deps
folder, for example. This also improves support for continuous
integration CI systems, in which many builds from different users could be run in parallel.
.conaninfo.txt
or having multiple
conanfile_dev.py
,
conanfile_test.py
besides the standard
conanfile.py
which is used for sharing the package.
Inheritance is allowed, e.g.
conanfile_dev.py
might extend/inherit from
conanfile.py
.
patch()
tool to easily patch sources if necessary.
run()
can be redirected to buffer string for processing, or even removed.
pip
package, so conan can be installed via:
pip
install
conan
pyinstaller
code for the creation of binaries from conan python source code. Distros package creators can
create packages for the conan apps easily from those binaries.
tools
, so external downloads from
conanfile.py
files
source()
can be checked.
settings.yml