Пример #1
0
  def write_project(self, target, fname):
    "Write a Project (.dsp)"

    if isinstance(target, gen_base.TargetExe):
      targtype = "Win32 (x86) Console Application"
      targval = "0x0103"
    elif isinstance(target, gen_base.TargetJava):
        targtype = "Win32 (x86) Generic Project"
        targval = "0x010a"
    elif isinstance(target, gen_base.TargetLib):
      if target.msvc_static:
        targtype = "Win32 (x86) Static Library"
        targval = "0x0104"
      else:
        targtype = "Win32 (x86) Dynamic-Link Library"
        targval = "0x0102"
    elif isinstance(target, gen_base.TargetProject):
      if target.cmd:
        targtype = "Win32 (x86) External Target"
        targval = "0x0106"
      else:
        targtype = "Win32 (x86) Generic Project"
        targval = "0x010a"
    else:
      raise gen_base.GenError("Cannot create project for %s" % target.name)

    target.output_name = self.get_output_name(target)
    target.output_dir = self.get_output_dir(target)
    target.intermediate_dir = self.get_intermediate_dir(target)
    target.output_pdb = self.get_output_pdb(target)

    configs = self.get_configs(target)

    sources = self.get_proj_sources(True, target)

    data = {
      'target' : target,
      'target_type' : targtype,
      'target_number' : targval,
      'rootpath' : self.rootpath,
      'platforms' : self.platforms,
      'configs' : configs,
      'includes' : self.get_win_includes(target),
      'sources' : sources,
      'default_platform' : self.platforms[0],
      'default_config' : configs[0].name,
      'is_exe' : ezt.boolean(isinstance(target, gen_base.TargetExe)),
      'is_external' : ezt.boolean((isinstance(target, gen_base.TargetProject)
                                   or isinstance(target, gen_base.TargetI18N))
                                  and target.cmd),
      'is_utility' : ezt.boolean(isinstance(target,
                                            gen_base.TargetProject)),
      'is_dll' : ezt.boolean(isinstance(target, gen_base.TargetLib)
                             and not target.msvc_static),
      'instrument_apr_pools' : self.instrument_apr_pools,
      'instrument_purify_quantify' : self.instrument_purify_quantify,
      }

    self.write_with_template(fname, 'msvc_dsp.ezt', data)
    def write_project(self, target, fname, depends):
        "Write a Project (.vcproj/.vcxproj)"

        if isinstance(target, gen_base.TargetProject):
            config_type = 'Utility'
            target_type = 10
        elif isinstance(target, gen_base.TargetExe):
            config_type = 'Application'
            target_type = 1
        elif isinstance(target, gen_base.TargetJava):
            config_type = 'Utility'
            target_type = 10
        elif isinstance(target, gen_base.TargetLib):
            if target.msvc_static:
                config_type = 'StaticLibrary'
                target_type = 4
            else:
                config_type = 'DynamicLibrary'
                target_type = 2
        elif isinstance(target, gen_base.TargetI18N):
            config_type = 'Makefile'
            target_type = 4
        else:
            raise gen_base.GenError("Cannot create project for %s" %
                                    target.name)

        target.output_name = self.get_output_name(target)
        target.output_pdb = self.get_output_pdb(target)
        target.output_dir = self.get_output_dir(target)
        target.intermediate_dir = self.get_intermediate_dir(target)
        basename = os.path.basename(target.output_name)
        target.output_ext = basename[basename.rfind('.'):]
        target.output_name_without_ext = basename[:basename.rfind('.')]

        configs = self.get_configs(target)

        sources = self.get_proj_sources(False, target)

        if self.vcproj_extension == '.vcxproj':
            for src in sources:
                if src.custom_build is not None:
                    src.custom_build = src.custom_build.replace(
                        '$(InputPath)', '%(FullPath)')

        data = {
            'target':
            target,
            'target_type':
            target_type,
            'project_guid':
            target.project_guid,
            'rootpath':
            self.rootpath,
            'platforms':
            self.platforms,
            'config_type':
            config_type,
            'configs':
            configs,
            'sources':
            sources,
            'default_platform':
            self.platforms[0],
            'default_config':
            configs[0].name,
            'def_file':
            self.get_def_file(target),
            'depends':
            depends,
            'is_exe':
            ezt.boolean(isinstance(target, gen_base.TargetExe)),
            'is_external':
            ezt.boolean((isinstance(target, gen_base.TargetProject)
                         or isinstance(target, gen_base.TargetI18N))
                        and target.cmd),
            'is_utility':
            ezt.boolean(isinstance(target, gen_base.TargetProject)),
            'instrument_apr_pools':
            self.instrument_apr_pools,
            'instrument_purify_quantify':
            self.instrument_purify_quantify,
            'version':
            self.vcproj_version,
            'toolset_version':
            'v' + self.vcproj_version.replace('.', ''),
        }

        if self.vcproj_extension == '.vcproj':
            self.write_with_template(fname, 'templates/vcnet_vcproj.ezt', data)
        else:
            self.write_with_template(fname, 'templates/vcnet_vcxproj.ezt',
                                     data)
            self.write_with_template(fname + '.filters',
                                     'templates/vcnet_vcxproj_filters.ezt',
                                     data)
Пример #3
0
    def write_project(self, target, fname):
        "Write a Project (.vcproj)"

        if isinstance(target, gen_base.TargetExe):
            #EXE
            config_type = 1
        elif isinstance(target, gen_base.TargetJava):
            config_type = 1
        elif isinstance(target, gen_base.TargetLib):
            if target.msvc_static:
                config_type = 4
            else:
                config_type = 2
        elif isinstance(target, gen_base.TargetProject):
            config_type = 1
        elif isinstance(target, gen_base.TargetI18N):
            config_type = 4
        else:
            raise gen_base.GenError("Cannot create project for %s" %
                                    target.name)

        target.output_name = self.get_output_name(target)
        target.output_pdb = self.get_output_pdb(target)
        target.output_dir = self.get_output_dir(target)
        target.intermediate_dir = self.get_intermediate_dir(target)

        configs = self.get_configs(target)

        sources = self.get_proj_sources(False, target)

        data = {
            'target':
            target,
            'target_type':
            config_type,
            #      'target_number' : targval,
            'rootpath':
            self.rootpath,
            'platforms':
            self.platforms,
            'configs':
            configs,
            'includes':
            self.get_win_includes(target),
            'sources':
            sources,
            'default_platform':
            self.platforms[0],
            'default_config':
            configs[0].name,
            'def_file':
            self.get_def_file(target),
            'is_exe':
            ezt.boolean(isinstance(target, gen_base.TargetExe)),
            'is_external':
            ezt.boolean((isinstance(target, gen_base.TargetProject)
                         or isinstance(target, gen_base.TargetI18N))
                        and target.cmd),
            'is_utility':
            ezt.boolean(isinstance(target, gen_base.TargetProject)),
            'instrument_apr_pools':
            self.instrument_apr_pools,
            'instrument_purify_quantify':
            self.instrument_purify_quantify,
            'version':
            self.vsnet_proj_ver,
        }

        self.write_with_template(fname, 'vcnet_vcproj.ezt', data)