Ejemplo n.º 1
0
    def __init__(self,
                 name,
                 registry,
                 out_dir,
                 configured_toolchain,
                 sources=[],
                 objects=[],
                 static_libraries=[],
                 system_libraries=[],
                 public_include_paths=[],
                 inherited_hard_dependencies=[],
                 module_dependencies=[]):
        self.public_include_paths = ([
            utils.ResolveFilepathRelativeToCallerScript(x)
            for x in public_include_paths
        ])
        configured_toolchain.configuration.include_directories = list(
            set(configured_toolchain.configuration.include_directories +
                self.public_include_paths))
        super(StaticLibraryModule,
              self).__init__(name, registry, out_dir, configured_toolchain,
                             sources, objects, static_libraries,
                             system_libraries, inherited_hard_dependencies,
                             module_dependencies)

        if self.objects:
            self.output_filepath = configured_toolchain.ArchiveToStaticLibrary(
                registry, self.objects, os.path.join(out_dir, self.name))

        self._RemoveNonTransitiveAttributes()
Ejemplo n.º 2
0
def CopyFiles(registry, inputs, output_dir, stamp_file=None, filter=None):
    absolute_inputs = ([
        utils.ResolveFilepathRelativeToCallerScript(x) for x in inputs
    ])

    _DoCopyFiles(registry=registry,
                 inputs=absolute_inputs,
                 output_dir=output_dir,
                 stamp_file=stamp_file,
                 filter=filter)
Ejemplo n.º 3
0
    def __init__(self,
                 name,
                 registry,
                 out_dir,
                 configured_toolchain,
                 sources=[],
                 objects=[],
                 static_libraries=[],
                 system_libraries=[],
                 inherited_hard_dependencies=[],
                 module_dependencies=[],
                 is_shared_library=False):
        super(CCModule, self).__init__(name, module_dependencies)
        self.configured_toolchain = configured_toolchain
        self.sources = ([
            utils.ResolveFilepathRelativeToCallerScript(x) for x in sources
        ])
        self.objects = ([
            utils.ResolveFilepathRelativeToCallerScript(x) for x in objects
        ])
        self.static_libraries = ([
            utils.ResolveFilepathRelativeToCallerScript(x)
            for x in static_libraries
        ])
        self.system_libraries = system_libraries
        self.inherited_hard_dependencies = ([
            utils.ResolveFilepathRelativeToCallerScript(x)
            for x in inherited_hard_dependencies
        ])
        self.out_dir = out_dir
        self.shared_stub_libraries = []

        self.ProcessDependencyHooks(registry)

        self.objects += _CompileSourcesToObjects(
            registry,
            out_dir,
            configured_toolchain,
            self.sources,
            self.inherited_hard_dependencies,
            is_shared_library=is_shared_library)
Ejemplo n.º 4
0
def CopyGeneratedDirectories(registry,
                             inputs,
                             output_dir,
                             stamp_file=None,
                             filter=None):
    absolute_inputs = ([
        utils.ResolveFilepathRelativeToCallerScript(x) for x in inputs
    ])

    registry.SubRespire(_DoCopyFiles,
                        additional_deps=absolute_inputs,
                        inputs=absolute_inputs,
                        output_dir=output_dir,
                        stamp_file=stamp_file,
                        filter=filter)
Ejemplo n.º 5
0
    def __init__(self,
                 name,
                 registry,
                 out_dir,
                 configured_toolchain,
                 sources=[],
                 objects=[],
                 static_libraries=[],
                 system_libraries=[],
                 public_include_paths=[],
                 inherited_hard_dependencies=[],
                 module_dependencies=[]):
        self.public_include_paths = ([
            utils.ResolveFilepathRelativeToCallerScript(x)
            for x in public_include_paths
        ])
        configured_toolchain.configuration.include_directories = list(
            set(configured_toolchain.configuration.include_directories +
                self.public_include_paths))
        super(SharedLibraryModule, self).__init__(name,
                                                  registry,
                                                  out_dir,
                                                  configured_toolchain,
                                                  sources,
                                                  objects,
                                                  static_libraries,
                                                  system_libraries,
                                                  inherited_hard_dependencies,
                                                  module_dependencies,
                                                  is_shared_library=True)

        static_libraries = self.static_libraries + self.shared_stub_libraries

        shared_library_output = (configured_toolchain.LinkToSharedLibrary(
            registry, self.objects, static_libraries, self.system_libraries,
            os.path.join(out_dir, self.name)))

        self.output_files = [shared_library_output[0]]
        self.shared_stub_libraries.append(shared_library_output[1])

        self._RemoveNonTransitiveAttributes()
Ejemplo n.º 6
0
 def AttachPackageGeneratedDirectory(self, src):
     absolute_src = utils.ResolveFilepathRelativeToCallerScript(src)
     self.package_generated_directories.append(absolute_src)
Ejemplo n.º 7
0
 def AttachPackageFile(self, src):
     absolute_src = utils.ResolveFilepathRelativeToCallerScript(src)
     self.package_files.append(absolute_src)