New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
creating conanvcvars file for toolchains #8719
Conversation
@@ -44,7 +36,8 @@ def configure(self, source_folder=None): | |||
cmd += ' "{}" "{}"'.format(self._build_dir, source) | |||
if self._conanfile.package_folder: | |||
cmd += ' -Dprefix="{}"'.format(self._conanfile.package_folder) | |||
self._run(cmd) | |||
vcvars = os.path.join(self._conanfile.install_folder, "conanvcvars") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
code is repeating 3 times, maybe move it inside self._run
instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
self._run
might use different locations of environment scripts, depending if they are from Conan or from user ones.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and how do we know this locations?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it is a generated file, it will be by definition in the install_folder
.
If it is a user file, the user will specify its location.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but right now it uses self._conanfile.install_folder
always, so these 2 lines are repeated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but if we put it inside self._run
, it will try to apply it to all the environment scripts, which is incorrect
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean doing:
def _run(self, cmd):
vcvars = os.path.join(self._conanfile.install_folder, "conanvcvars")
self._conanfile.run(cmd, env=["conanbuildenv", vcvars])
are there other environment scripts in meson toolchain? I can't spot any right now
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, I see what you mean, I was confusing it with self._conanfile.run()
. I put some TODOs and some comments there regarding the install
or test
that I didn't know if they really need the vcvars environment at all. If they need it, then I guess it is ok, if not, each method should define its own environment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure, probably best add vcvars everywhere, just in case install needs tools from vcvars (e.g. dumpbin or whatever)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In any case, it is a small detail, can be refactored later, I am merging this, I prefer to have this in the next release.
are we sure |
Changelog: Feature: Use
conancvvars.bat
file for Meson toolchainDocs: Omit