Esempio n. 1
0
 def vcvars_echo_test(self):
     settings = Settings.loads(get_default_settings_yml())
     settings.os = "Windows"
     settings.compiler = "Visual Studio"
     settings.compiler.version = "14"
     cmd = tools.vcvars_command(settings, output=self.output)
     output = TestBufferConanOutput()
     runner = ConanRunner(print_commands_to_output=True, output=output)
     runner(cmd + " && set vs140comntools")
     self.assertIn("vcvarsall.bat", str(output))
     self.assertIn("VS140COMNTOOLS=", str(output))
     with tools.environment_append({"VisualStudioVersion": "14"}):
         output = TestBufferConanOutput()
         runner = ConanRunner(print_commands_to_output=True, output=output)
         cmd = tools.vcvars_command(settings, output=self.output)
         runner(cmd + " && set vs140comntools")
         self.assertNotIn("vcvarsall.bat", str(output))
         self.assertIn("Conan:vcvars already set", str(output))
         self.assertIn("VS140COMNTOOLS=", str(output))
Esempio n. 2
0
 def test_vcvars_filter_known_paths(self):
     settings = Settings.loads(get_default_settings_yml())
     settings.os = "Windows"
     settings.compiler = "Visual Studio"
     settings.compiler.version = "15"
     settings.arch = "x86"
     settings.arch_build = "x86_64"
     with tools.environment_append({"PATH": ["custom_path",
                                             "WindowsFake"]}):
         tmp = tools.vcvars_dict(settings,
                                 only_diff=False,
                                 filter_known_paths=True,
                                 output=self.output)
         with tools.environment_append(tmp):
             self.assertNotIn("custom_path", os.environ["PATH"])
             self.assertIn("WindowsFake", os.environ["PATH"])
         tmp = tools.vcvars_dict(settings,
                                 only_diff=False,
                                 filter_known_paths=False,
                                 output=self.output)
         with tools.environment_append(tmp):
             self.assertIn("custom_path", os.environ["PATH"])
             self.assertIn("WindowsFake", os.environ["PATH"])
Esempio n. 3
0
    def test_vcvars_env_not_duplicated_path(self):
        """vcvars is not looking at the current values of the env vars, with PATH it is a problem
        because you can already have set some of the vars and accumulate unnecessary entries."""
        settings = Settings.loads(get_default_settings_yml())
        settings.os = "Windows"
        settings.compiler = "Visual Studio"
        settings.compiler.version = "15"
        settings.arch = "x86"
        settings.arch_build = "x86_64"

        # Set the env with a PATH containing the vcvars paths
        tmp = tools.vcvars_dict(settings, only_diff=False, output=self.output)
        tmp = {key.lower(): value for key, value in tmp.items()}
        with tools.environment_append({"path": tmp["path"]}):
            previous_path = os.environ["PATH"].split(";")
            # Duplicate the path, inside the tools.vcvars shouldn't have repeated entries in PATH
            with tools.vcvars(settings, output=self.output):
                path = os.environ["PATH"].split(";")
                values_count = {value: path.count(value) for value in path}
                for value, counter in values_count.items():
                    if value and (counter >
                                  1) and previous_path.count(value) != counter:
                        # If the entry was already repeated before calling "tools.vcvars" we keep it
                        self.fail("The key '%s' has been repeated" % value)
Esempio n. 4
0
def test_apple_cmake_osx_sysroot(os, os_sdk, arch, expected_sdk):
    """
    Testing if CMAKE_OSX_SYSROOT is correctly set.
    Issue related: https://github.com/conan-io/conan/issues/10275
    """
    c = ConanFile(Mock(), None)
    c.settings = "os", "compiler", "build_type", "arch"
    c.initialize(Settings.loads(get_default_settings_yml()), EnvValues())
    c.settings.os = os
    c.settings.os.sdk = os_sdk
    c.settings.build_type = "Release"
    c.settings.arch = arch
    c.settings.compiler = "apple-clang"
    c.settings.compiler.version = "13.0"
    c.settings.compiler.libcxx = "libc++"
    c.settings.compiler.cppstd = "17"
    c.conf = Conf()
    c.folders.set_base_generators(".")
    c._conan_node = Mock()
    c._conan_node.dependencies = []

    toolchain = CMakeToolchain(c)
    content = toolchain.content
    assert 'set(CMAKE_OSX_SYSROOT %s CACHE STRING "" FORCE)' % expected_sdk in content
def test_apple_cmake_osx_sysroot_sdk_mandatory(os, os_sdk, arch, expected_sdk):
    """
    Testing if CMAKE_OSX_SYSROOT is correctly set.
    Issue related: https://github.com/conan-io/conan/issues/10275
    """
    c = ConanFile(Mock(), None)
    c.settings = "os", "compiler", "build_type", "arch"
    c.initialize(Settings.loads(get_default_settings_yml()), EnvValues())
    c.settings.os = os
    c.settings.os.sdk = os_sdk
    c.settings.build_type = "Release"
    c.settings.arch = arch
    c.settings.compiler = "apple-clang"
    c.settings.compiler.version = "13.0"
    c.settings.compiler.libcxx = "libc++"
    c.settings.compiler.cppstd = "17"
    c.conf = Conf()
    c.folders.set_base_generators(".")
    c._conan_node = Mock()
    c._conan_node.dependencies = []

    with pytest.raises(ConanException) as excinfo:
        CMakeToolchain(c).content()
        assert "Please, specify a suitable value for os.sdk." % expected_sdk in str(excinfo.value)
 def setUp(self):
     self.settings = Settings.loads(get_default_settings_yml())
     self.settings.compiler = "Visual Studio"
Esempio n. 7
0
 def test_bas_os(self):
     settings = Settings.loads(get_default_settings_yml())
     settings.os = "SunOS"
     with self.assertRaises(ConanException):
         compilervars_command(MockConanfile(settings))
Esempio n. 8
0
 def test_already_set(self):
     with environment_append({"PSTLROOT": "1"}):
         settings = Settings.loads(get_default_settings_yml())
         cvars = compilervars_command(MockConanfile(settings))
         self.assertEqual("echo Conan:compilervars already set", cvars)
 def setUp(self):
     self.settings = Settings.loads(default_settings_yml)
     self.settings.compiler = "intel"
     self.settings.compiler.base = "Visual Studio"
 def setup(self):
     self.settings = Settings.loads(get_default_settings_yml())
     self.settings.compiler = "msvc"