From 6d52aa3c0be489384c04d6470d7101885859c39e Mon Sep 17 00:00:00 2001 From: memsharded Date: Fri, 2 Aug 2019 01:12:08 +0200 Subject: [PATCH] define install_folder to be usable by custom generators --- conans/client/manager.py | 1 + .../generators/custom_generator_test.py | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/conans/client/manager.py b/conans/client/manager.py index 598e4517ec0..5f18fe7c318 100644 --- a/conans/client/manager.py +++ b/conans/client/manager.py @@ -96,6 +96,7 @@ def install(self, ref_or_path, install_folder, graph_info, remotes=None, build_m manifest_manager.print_log() if install_folder: + conanfile.install_folder = install_folder # Write generators output = conanfile.output if conanfile.display_name != "virtual" else self._user_io.out if generators is not False: diff --git a/conans/test/functional/generators/custom_generator_test.py b/conans/test/functional/generators/custom_generator_test.py index 82aa1104c71..0293cf73b8c 100644 --- a/conans/test/functional/generators/custom_generator_test.py +++ b/conans/test/functional/generators/custom_generator_test.py @@ -1,4 +1,5 @@ import os +import textwrap import unittest from conans.model.ref import ConanFileReference @@ -147,3 +148,27 @@ class MyCustomGeneratorWithTemplatePackage(ConanFile): client.run("install gen/0.1@user/stable -g=MyCustomTemplateGenerator") generated = load(os.path.join(client.current_folder, "customfile.gen")) self.assertEqual(generated, "Template: Hello") + + def install_folder_test(self): + # https://github.com/conan-io/conan/issues/5568 + templated_generator = textwrap.dedent(""" + from conans import ConanFile + from conans.model import Generator + class MyGenerator(Generator): + @property + def filename(self): + return "customfile.gen" + @property + def content(self): + return self.conanfile.install_folder + + class MyCustomGenerator(ConanFile): + pass + """) + client = TestClient() + client.save({CONANFILE: templated_generator, "mytemplate.txt": "Template: %s"}) + client.run("create . gen/0.1@user/stable") + client.run("install gen/0.1@user/stable -g=MyGenerator") + generated = load(os.path.join(client.current_folder, "customfile.gen")) + self.assertEqual(generated, client.current_folder) +