Beispiel #1
0
    def build_libraries(self, libraries: List[Library]):
        log.debug("running AmiciBuildCLib.build_libraries")

        no_clibs = 'develop' in self.distribution.command_obj \
                   and self.get_finalized_command('develop').no_clibs
        no_clibs |= 'install' in self.distribution.command_obj \
                    and self.get_finalized_command('install').no_clibs

        if no_clibs:
            return

        # Override for parallel compilation
        import distutils.ccompiler
        distutils.ccompiler.CCompiler.compile = compile_parallel

        # Work-around for compiler-specific build options
        set_compiler_specific_library_options(libraries,
                                              self.compiler.compiler_type)

        # Monkey-patch setuptools, to force recompilation of library sources
        # --force does not work as expected

        # need full import here, not module-level imported build_clib
        import setuptools.command.build_clib
        # the patched function may return anything but `([], [])` to trigger
        # recompilation
        setuptools.command.build_clib.newer_pairwise_group = lambda *_: None

        build_clib.build_libraries(self, libraries)
    def build_libraries(self, libraries):
        no_clibs = self.get_finalized_command('develop').no_clibs
        no_clibs |= self.get_finalized_command('install').no_clibs

        if no_clibs:
            return

        # Override for parallel compilation
        import distutils.ccompiler
        distutils.ccompiler.CCompiler.compile = compile_parallel

        build_clib.build_libraries(self, libraries)
Beispiel #3
0
    def build_libraries(self, libraries):

        build_ext = self.distribution.get_command_obj('build_ext')
        njobs = parse_njobs(self.njobs, 'compiling', 'install')

        cflags = fix_compiler(self.compiler, njobs)

        # Add the appropriate extra flags for that compiler.
        for (lib_name, build_info) in libraries:
            build_info['cflags'] = build_info.get('cflags', []) + cflags

        # Now run the normal build function.
        build_clib.build_libraries(self, libraries)
Beispiel #4
0
    def build_libraries(self, libraries):

        build_ext = self.distribution.get_command_obj('build_ext')
        njobs = parse_njobs(self.njobs, 'compiling', 'install')

        cflags = fix_compiler(self.compiler, njobs)

        # Add the appropriate extra flags for that compiler.
        for (lib_name, build_info) in libraries:
            build_info['cflags'] = build_info.get('cflags',[]) + cflags

        # Now run the normal build function.
        build_clib.build_libraries(self, libraries)
Beispiel #5
0
    def build_libraries(self, libraries):
        # bug in distutils: flag not valid for c++
        flag = '-Wstrict-prototypes'
        if (hasattr(self.compiler, 'compiler_so')
                and flag in self.compiler.compiler_so):
            self.compiler.compiler_so.remove(flag)

        compiler_type = self.compiler.compiler_type
        compile_args = AD3_CFLAGS.get(compiler_type, [])

        for (lib_name, build_info) in libraries:
            build_info['cflags'] = compile_args

        build_clib.build_libraries(self, libraries)
Beispiel #6
0
    def build_libraries(self, libraries):

        # bug in distutils: flag not valid for c++
        flag = '-Wstrict-prototypes'
        if (hasattr(self.compiler, 'compiler_so')
                and flag in self.compiler.compiler_so):
            self.compiler.compiler_so.remove(flag)

        compiler_type = self.compiler.compiler_type
        compile_args = AD3_CFLAGS.get(compiler_type, [])

        for (lib_name, build_info) in libraries:
            build_info['cflags'] = compile_args

        build_clib.build_libraries(self, libraries)
Beispiel #7
0
    def build_libraries(self, libraries: List[Library]):
        log.debug("running AmiciBuildCLib.build_libraries")

        no_clibs = 'develop' in self.distribution.command_obj \
                   and self.get_finalized_command('develop').no_clibs
        no_clibs |= 'install' in self.distribution.command_obj \
                    and self.get_finalized_command('install').no_clibs

        if no_clibs:
            return

        # Override for parallel compilation
        import distutils.ccompiler
        distutils.ccompiler.CCompiler.compile = compile_parallel

        # Work-around for compiler-specific build options
        set_compiler_specific_library_options(libraries,
                                              self.compiler.compiler_type)

        build_clib.build_libraries(self, libraries)