diff --git a/conans/__init__.py b/conans/__init__.py index 75c5e8e485e..3afd1d90f6c 100644 --- a/conans/__init__.py +++ b/conans/__init__.py @@ -16,5 +16,4 @@ SERVER_CAPABILITIES = [COMPLEX_SEARCH_CAPABILITY, ] -__version__ = '0.26.0' - +__version__ = '0.26.1' diff --git a/conans/client/conf/__init__.py b/conans/client/conf/__init__.py index a6b0794a330..14dbfb5590e 100644 --- a/conans/client/conf/__init__.py +++ b/conans/client/conf/__init__.py @@ -42,7 +42,7 @@ version: ["3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4.0"] libcxx: [libstdc++, libstdc++11, libc++] apple-clang: - version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1"] + version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0"] libcxx: [libstdc++, libc++] build_type: [None, Debug, Release] diff --git a/conans/client/generators/text.py b/conans/client/generators/text.py index 44adeeb55b7..98a88fb8e1a 100644 --- a/conans/client/generators/text.py +++ b/conans/client/generators/text.py @@ -65,7 +65,7 @@ def _loads_deps_user_info(text): @staticmethod def _loads_cpp_info(text): - pattern = re.compile("^\[([a-zA-Z0-9_:-]+)\]([^\[]+)", re.MULTILINE) + pattern = re.compile(r"^\[([a-zA-Z0-9_:-\\.]+)\]([^\[]+)", re.MULTILINE) result = DepsCppInfo() try: diff --git a/conans/client/package_copier.py b/conans/client/package_copier.py index 6b9634d4527..036be74196c 100644 --- a/conans/client/package_copier.py +++ b/conans/client/package_copier.py @@ -26,14 +26,14 @@ def copy(self, reference, package_ids, username, channel, force=False): % str(dest_ref)): return rmdir(export_dest) - shutil.copytree(export_origin, export_dest) + shutil.copytree(export_origin, export_dest, symlinks=True) self._user_io.out.info("Copied %s to %s" % (str(reference), str(dest_ref))) export_sources_origin = self._paths.export_sources(reference, self._short_paths) export_sources_dest = self._paths.export_sources(dest_ref, self._short_paths) if os.path.exists(export_sources_dest): rmdir(export_sources_dest) - shutil.copytree(export_sources_origin, export_sources_dest) + shutil.copytree(export_sources_origin, export_sources_dest, symlinks=True) self._user_io.out.info("Copied sources %s to %s" % (str(reference), str(dest_ref))) # Copy packages @@ -48,5 +48,5 @@ def copy(self, reference, package_ids, username, channel, force=False): % str(package_id)): continue rmdir(package_path_dest) - shutil.copytree(package_path_origin, package_path_dest) + shutil.copytree(package_path_origin, package_path_dest, symlinks=True) self._user_io.out.info("Copied %s to %s" % (str(package_id), str(dest_ref))) diff --git a/conans/client/remote_manager.py b/conans/client/remote_manager.py index a5a6ca539ab..b1155026384 100644 --- a/conans/client/remote_manager.py +++ b/conans/client/remote_manager.py @@ -196,7 +196,7 @@ def filter_function(urls): c_src_path = os.path.join(export_sources_folder, ".c_src") if os.path.exists(c_src_path): merge_directories(c_src_path, export_sources_folder) - shutil.rmtree(c_src_path) + rmdir(c_src_path) for dirname, _, filenames in os.walk(export_sources_folder): for fname in filenames: touch(os.path.join(dirname, fname)) diff --git a/conans/test/integration/symlinks_test.py b/conans/test/integration/symlinks_test.py index 13acdd8c878..2dcb6625fe6 100644 --- a/conans/test/integration/symlinks_test.py +++ b/conans/test/integration/symlinks_test.py @@ -102,7 +102,8 @@ class TestConan(ConanFile): "5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9") self._check(client, ref, build=False) - def export_test(self): + + def export_and_copy_test(self): if platform.system() == "Windows": return @@ -120,12 +121,17 @@ def export_test(self): client.run("export lasote/stable") client.run("install --build -f=conanfile.txt") + client.run("copy Hello/0.1@lasote/stable team/testing") conan_ref = ConanFileReference.loads("Hello/0.1@lasote/stable") + team_ref = ConanFileReference.loads("Hello/0.1@team/testing") package_ref = PackageReference(conan_ref, "5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9") + team_package_ref = PackageReference(team_ref, + "5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9") for folder in [client.paths.export(conan_ref), client.paths.source(conan_ref), - client.paths.build(package_ref), client.paths.package(package_ref)]: + client.paths.build(package_ref), client.paths.package(package_ref), + client.paths.export(team_ref), client.paths.package(team_package_ref)]: exported_lib = os.path.join(folder, lib_name) exported_link = os.path.join(folder, link_name) self.assertEqual(os.readlink(exported_link), lib_name) diff --git a/conans/test/model/build_info_test.py b/conans/test/model/build_info_test.py index 0afe36027df..0d64ee0c32a 100644 --- a/conans/test/model/build_info_test.py +++ b/conans/test/model/build_info_test.py @@ -19,12 +19,15 @@ def parse_test(self): mylib_path [includedirs_My_Other_Lib] otherlib_path +[includedirs_My.Component.Lib] +my_component_lib """ deps_info, _ = TXTGenerator.loads(text) self.assertEqual(deps_info.includedirs, ['C:/Whenever']) self.assertEqual(deps_info["Boost"].includedirs, ['F:/ChildrenPath']) self.assertEqual(deps_info["My_Lib"].includedirs, ['mylib_path']) self.assertEqual(deps_info["My_Other_Lib"].includedirs, ['otherlib_path']) + self.assertEqual(deps_info["My.Component.Lib"].includedirs, ['my_component_lib']) def help_test(self): deps_env_info = DepsEnvInfo()