Ejemplo n.º 1
0
    def command_line(self):
        if self.generator_platform and not is_generator_platform_supported(
                self.generator):
            raise ConanException(
                'CMake does not support generator platform with generator '
                '"%s:. Please check your conan profile to either remove the '
                'generator platform, or change the CMake generator.' %
                self.generator)

        if self.toolset and not is_toolset_supported(self.generator):
            raise ConanException(
                'CMake does not support toolsets with generator "%s:.'
                'Please check your conan profile to either remove the toolset,'
                ' or change the CMake generator.' % self.generator)

        generator = self.generator
        generator_platform = self.generator_platform

        if self.generator_platform and 'Visual Studio' in generator:
            # FIXME: Conan 2.0 We are adding the platform to the generator instead of using
            #  the -A argument to keep previous implementation, but any modern CMake will support
            #  (and recommend) passing the platform in its own argument.
            # Get the version from the generator, as it could have been defined by user argument
            compiler_version = re.search("Visual Studio ([0-9]*)",
                                         generator).group(1)
            if Version(compiler_version) < "16" and self._settings.get_safe(
                    "os") != "WindowsCE":
                if self.generator_platform == "x64":
                    generator += " Win64" if not generator.endswith(
                        " Win64") else ""
                    generator_platform = None
                elif self.generator_platform == "ARM":
                    generator += " ARM" if not generator.endswith(
                        " ARM") else ""
                    generator_platform = None
                elif self.generator_platform == "Win32":
                    generator_platform = None

        args = ['-G "{}"'.format(generator)] if generator else []
        if generator_platform:
            args.append('-A "{}"'.format(generator_platform))

        args.append(self.flags)
        args.append('-Wno-dev')

        if self.toolset:
            args.append('-T "%s"' % self.toolset)

        return join_arguments(args)
Ejemplo n.º 2
0
    def command_line(self):
        args = ['-G "%s"' % self.generator] if self.generator else []
        if self.generator_platform:
            if is_generator_platform_supported(self.generator):
                args.append('-A "%s"' % self.generator_platform)
            else:
                raise ConanException(
                    'CMake does not support generator platform with generator '
                    '"%s:. Please check your conan profile to either remove the '
                    'generator platform, or change the CMake generator.' %
                    self.generator)
        args.append(self.flags)
        args.append('-Wno-dev')

        if self.toolset:
            if is_toolset_supported(self.generator):
                args.append('-T "%s"' % self.toolset)
            else:
                raise ConanException(
                    'CMake does not support toolsets with generator "%s:.'
                    'Please check your conan profile to either remove the toolset,'
                    ' or change the CMake generator.' % self.generator)
        return join_arguments(args)