GRAYBYTE WORDPRESS FILE MANAGER3649

Server IP : 198.54.121.189 / Your IP : 216.73.216.112
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp//MSVSProject.py
# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Visual Studio project reader/writer."""

import gyp.common
import gyp.easy_xml as easy_xml

#------------------------------------------------------------------------------


class Tool(object):
  """Visual Studio tool."""

  def __init__(self, name, attrs=None):
    """Initializes the tool.

    Args:
      name: Tool name.
      attrs: Dict of tool attributes; may be None.
    """
    self._attrs = attrs or {}
    self._attrs['Name'] = name

  def _GetSpecification(self):
    """Creates an element for the tool.

    Returns:
      A new xml.dom.Element for the tool.
    """
    return ['Tool', self._attrs]

class Filter(object):
  """Visual Studio filter - that is, a virtual folder."""

  def __init__(self, name, contents=None):
    """Initializes the folder.

    Args:
      name: Filter (folder) name.
      contents: List of filenames and/or Filter objects contained.
    """
    self.name = name
    self.contents = list(contents or [])


#------------------------------------------------------------------------------


class Writer(object):
  """Visual Studio XML project writer."""

  def __init__(self, project_path, version, name, guid=None, platforms=None):
    """Initializes the project.

    Args:
      project_path: Path to the project file.
      version: Format version to emit.
      name: Name of the project.
      guid: GUID to use for project, if not None.
      platforms: Array of string, the supported platforms.  If null, ['Win32']
    """
    self.project_path = project_path
    self.version = version
    self.name = name
    self.guid = guid

    # Default to Win32 for platforms.
    if not platforms:
      platforms = ['Win32']

    # Initialize the specifications of the various sections.
    self.platform_section = ['Platforms']
    for platform in platforms:
      self.platform_section.append(['Platform', {'Name': platform}])
    self.tool_files_section = ['ToolFiles']
    self.configurations_section = ['Configurations']
    self.files_section = ['Files']

    # Keep a dict keyed on filename to speed up access.
    self.files_dict = dict()

  def AddToolFile(self, path):
    """Adds a tool file to the project.

    Args:
      path: Relative path from project to tool file.
    """
    self.tool_files_section.append(['ToolFile', {'RelativePath': path}])

  def _GetSpecForConfiguration(self, config_type, config_name, attrs, tools):
    """Returns the specification for a configuration.

    Args:
      config_type: Type of configuration node.
      config_name: Configuration name.
      attrs: Dict of configuration attributes; may be None.
      tools: List of tools (strings or Tool objects); may be None.
    Returns:
    """
    # Handle defaults
    if not attrs:
      attrs = {}
    if not tools:
      tools = []

    # Add configuration node and its attributes
    node_attrs = attrs.copy()
    node_attrs['Name'] = config_name
    specification = [config_type, node_attrs]

    # Add tool nodes and their attributes
    if tools:
      for t in tools:
        if isinstance(t, Tool):
          specification.append(t._GetSpecification())
        else:
          specification.append(Tool(t)._GetSpecification())
    return specification


  def AddConfig(self, name, attrs=None, tools=None):
    """Adds a configuration to the project.

    Args:
      name: Configuration name.
      attrs: Dict of configuration attributes; may be None.
      tools: List of tools (strings or Tool objects); may be None.
    """
    spec = self._GetSpecForConfiguration('Configuration', name, attrs, tools)
    self.configurations_section.append(spec)

  def _AddFilesToNode(self, parent, files):
    """Adds files and/or filters to the parent node.

    Args:
      parent: Destination node
      files: A list of Filter objects and/or relative paths to files.

    Will call itself recursively, if the files list contains Filter objects.
    """
    for f in files:
      if isinstance(f, Filter):
        node = ['Filter', {'Name': f.name}]
        self._AddFilesToNode(node, f.contents)
      else:
        node = ['File', {'RelativePath': f}]
        self.files_dict[f] = node
      parent.append(node)

  def AddFiles(self, files):
    """Adds files to the project.

    Args:
      files: A list of Filter objects and/or relative paths to files.

    This makes a copy of the file/filter tree at the time of this call.  If you
    later add files to a Filter object which was passed into a previous call
    to AddFiles(), it will not be reflected in this project.
    """
    self._AddFilesToNode(self.files_section, files)
    # TODO(rspangler) This also doesn't handle adding files to an existing
    # filter.  That is, it doesn't merge the trees.

  def AddFileConfig(self, path, config, attrs=None, tools=None):
    """Adds a configuration to a file.

    Args:
      path: Relative path to the file.
      config: Name of configuration to add.
      attrs: Dict of configuration attributes; may be None.
      tools: List of tools (strings or Tool objects); may be None.

    Raises:
      ValueError: Relative path does not match any file added via AddFiles().
    """
    # Find the file node with the right relative path
    parent = self.files_dict.get(path)
    if not parent:
      raise ValueError('AddFileConfig: file "%s" not in project.' % path)

    # Add the config to the file node
    spec = self._GetSpecForConfiguration('FileConfiguration', config, attrs,
                                         tools)
    parent.append(spec)

  def WriteIfChanged(self):
    """Writes the project file."""
    # First create XML content definition
    content = [
        'VisualStudioProject',
        {'ProjectType': 'Visual C++',
         'Version': self.version.ProjectVersion(),
         'Name': self.name,
         'ProjectGUID': self.guid,
         'RootNamespace': self.name,
         'Keyword': 'Win32Proj'
        },
        self.platform_section,
        self.tool_files_section,
        self.configurations_section,
        ['References'],  # empty section
        self.files_section,
        ['Globals']  # empty section
    ]
    easy_xml.WriteXmlIfChanged(content, self.project_path,
                               encoding="Windows-1252")

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
January 01 1970 00:00:00
root / root
0
generator
--
March 03 2024 22:36:29
root / root
0755
MSVSNew.py
11.656 KB
March 10 2021 14:36:38
root / root
0644
MSVSProject.py
6.237 KB
March 10 2021 14:36:38
root / root
0644
MSVSSettings.py
44.11 KB
March 10 2021 14:36:38
root / root
0644
MSVSSettings_test.py
64.562 KB
March 10 2021 14:36:38
root / root
0644
MSVSToolFile.py
1.762 KB
March 10 2021 14:36:38
root / root
0644
MSVSUserFile.py
4.967 KB
March 10 2021 14:36:38
root / root
0644
MSVSUtil.py
9.31 KB
March 10 2021 14:36:38
root / root
0644
MSVSVersion.py
17.024 KB
March 10 2021 14:36:38
root / root
0644
__init__.py
21.868 KB
March 10 2021 14:36:38
root / root
0644
common.py
20.579 KB
March 10 2021 14:36:38
root / root
0644
common_test.py
1.918 KB
March 10 2021 14:36:38
root / root
0644
easy_xml.py
4.873 KB
March 10 2021 14:36:38
root / root
0644
easy_xml_test.py
3.249 KB
March 10 2021 14:36:38
root / root
0644
flock_tool.py
1.706 KB
March 10 2021 14:36:38
root / root
0644
input.py
113.647 KB
March 10 2021 14:36:38
root / root
0644
input_test.py
3.11 KB
March 10 2021 14:36:38
root / root
0644
mac_tool.py
22.892 KB
March 10 2021 14:36:38
root / root
0644
msvs_emulation.py
46.759 KB
March 10 2021 14:36:38
root / root
0644
ninja_syntax.py
5.406 KB
March 10 2021 14:36:38
root / root
0644
simple_copy.py
1.302 KB
March 10 2021 14:36:38
root / root
0644
win_tool.py
12.723 KB
March 10 2021 14:36:38
root / root
0644
xcode_emulation.py
64.854 KB
March 10 2021 14:36:38
root / root
0644
xcode_ninja.py
10.32 KB
March 10 2021 14:36:38
root / root
0644
xcodeproj_file.py
117.659 KB
March 10 2021 14:36:38
root / root
0644
xml_fix.py
2.123 KB
March 10 2021 14:36:38
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF