예제 #1
0
    def test_vcvars_dict_diff(self):
        text = """
os: [Windows]
compiler:
    Visual Studio:
        version: ["14"]
        """
        settings = Settings.loads(text)
        settings.os = "Windows"
        settings.compiler = "Visual Studio"
        settings.compiler.version = "14"
        with tools.environment_append({"MYVAR": "1"}):
            ret = vcvars_dict(settings, only_diff=False, output=self.output)
            self.assertIn("MYVAR", ret)
            self.assertIn("VCINSTALLDIR", ret)

            ret = vcvars_dict(settings, output=self.output)
            self.assertNotIn("MYVAR", ret)
            self.assertIn("VCINSTALLDIR", ret)

        my_lib_paths = "C:\\PATH\\TO\\MYLIBS;C:\\OTHER_LIBPATH"
        with tools.environment_append({"LIBPATH": my_lib_paths}):
            ret = vcvars_dict(settings, only_diff=False, output=self.output)
            str_var_value = os.pathsep.join(ret["LIBPATH"])
            self.assertTrue(str_var_value.endswith(my_lib_paths))

            # Now only a diff, it should return the values as a list, but without the old values
            ret = vcvars_dict(settings, only_diff=True, output=self.output)
            self.assertEqual(ret["LIBPATH"],
                             str_var_value.split(os.pathsep)[0:-2])

            # But if we apply both environments, they are composed correctly
            with tools.environment_append(ret):
                self.assertEqual(os.environ["LIBPATH"], str_var_value)
예제 #2
0
 def __init__(self, conanfile):
     super(VirtualBuildEnvGenerator, self).__init__(conanfile)
     self.venv_name = "conanbuildenv"
     compiler = conanfile.settings.get_safe("compiler")
     if compiler == "Visual Studio":
         self.env = VisualStudioBuildEnvironment(conanfile).vars_dict
         self.env.update(vcvars_dict(conanfile.settings))
     else:
         self.env = AutoToolsBuildEnvironment(conanfile).vars_dict
예제 #3
0
    def vcvars_dict_diff_test(self):
        text = """
os: [Windows]
compiler:
    Visual Studio:
        version: ["14"]
        """
        settings = Settings.loads(text)
        settings.os = "Windows"
        settings.compiler = "Visual Studio"
        settings.compiler.version = "14"
        with tools.environment_append({"MYVAR": "1"}):
            ret = vcvars_dict(settings, only_diff=False)
            self.assertIn("MYVAR", ret)
            self.assertIn("VCINSTALLDIR", ret)

            ret = vcvars_dict(settings)
            self.assertNotIn("MYVAR", ret)
            self.assertIn("VCINSTALLDIR", ret)
예제 #4
0
 def __init__(self, conanfile):
     super(VirtualBuildEnvGenerator, self).__init__(conanfile)
     self.venv_name = "conanbuildenv"
     compiler = conanfile.settings.get_safe("compiler")
     if compiler == "Visual Studio":
         self.env = VisualStudioBuildEnvironment(conanfile).vars_dict
         settings_vars = vcvars_dict(conanfile.settings,
                                     output=conanfile.output)
         for env_var in self.env:
             self.env[env_var].extend(settings_vars.pop(env_var, []))
         self.env.update(settings_vars)
     else:
         self.env = AutoToolsBuildEnvironment(conanfile).vars_dict
예제 #5
0
    def __init__(self, conanfile):
        super(VirtualBuildEnvGenerator, self).__init__(conanfile)
        compiler = conanfile.settings.get_safe("compiler")
        if compiler == "Visual Studio":
            self.env = VisualStudioBuildEnvironment(conanfile).vars_dict
            settings_vars = vcvars_dict(conanfile.settings,
                                        output=conanfile.output)
            # self.env has higher priority, so only extend (append) to it.
            for name, value in self.env.items():
                if isinstance(value, list):
                    value.extend(settings_vars.pop(name, []))

            self.env.update(settings_vars)
        else:
            self.env = AutoToolsBuildEnvironment(conanfile).vars_dict
예제 #6
0
파일: tools.py 프로젝트: ytljc2003/conan
def vcvars_dict(*args, **kwargs):
    return tools_win.vcvars_dict(output=_global_output, *args, **kwargs)