Пример #1
0
        with mgr.create_file('libexec/constants.sh') as f:
            print('BAKED_ISIS_VERSION="%s"' % isis_version(ISISROOT), file=f)

        print('Adding libraries')

        print('\tAdding forced-ship libraries')
        # Handle the shiplist separately
        for copy_lib in LIB_SHIP_PREFIX:
            found = None
            for soname in mgr.deplist.keys():
                if soname.startswith(copy_lib):
                    found = soname
                    break
            if found:
                mgr.add_library(mgr.deplist[found])
                mgr.remove_deps([found])

        print('\tRemoving system libs')
        mgr.remove_deps(LIB_SYSTEM_LIST)

        print('\tFinding deps in search path')
        mgr.resolve_deps(nocopy = [P.join(ISISROOT, 'lib'), P.join(ISISROOT, '3rdParty', 'lib')],
                           copy = [INSTALLDIR.lib()])
        if mgr.deplist:
            raise Exception('Failed to find some libs in any of our dirs:\n\t%s' % '\n\t'.join(mgr.deplist.keys()))

        print('Adding files in dist-add and docs')
        #XXX Don't depend on cwd
        for dir in 'dist-add', INSTALLDIR.doc():
            if P.exists(dir):
                mgr.add_directory(dir)
Пример #2
0
        # Handle the shiplist separately. This will also add more dependencies
        print('\tAdding forced-ship libraries')
        sys.stdout.flush()
        found_set = set()
        found_and_to_be_removed = []
        for copy_lib in LIB_SHIP_PREFIX:
            for soname in mgr.deplist.keys():
                if soname.startswith(copy_lib):
                    # Bugfix: Do an exhaustive search, as same prefix can
                    # refer to multiple libraries, e.g., libgfortran.so.3 and
                    # libgfortran.so.1, and sometimes the wrong one is picked.
                    if mgr.deplist[soname] in found_set: continue
                    found_set.add(mgr.deplist[soname])
                    mgr.add_library(mgr.deplist[soname])
                    found_and_to_be_removed.append(soname)
        mgr.remove_deps(found_and_to_be_removed)

        print('\tRemoving system libs')
        sys.stdout.flush()
        mgr.remove_deps(LIB_SYSTEM_LIST)

        #         print('\tFinding deps in search path')
        #         sys.stdout.flush()
        #         mgr.resolve_deps(nocopy = [P.join(ISISROOT, 'lib'), P.join(ISISROOT, '3rdParty', 'lib')],
        #                            copy = [INSTALLDIR.lib()])
        #         if mgr.deplist:
        #             raise Exception('Failed to find some libs in any of our dirs:\n\t%s' % '\n\t'.join(mgr.deplist.keys()))

        # We don't want to distribute with ASP any random files in
        # 'docs' installed by any of its deps. Distribute only
        # what we need.
Пример #3
0
        # Handle the shiplist separately. This will also add more dependencies
        print('\tAdding forced-ship libraries')
        sys.stdout.flush()
        found_set = set()
        found_and_to_be_removed = []
        for copy_lib in LIB_SHIP_PREFIX:
            for soname in mgr.deplist.keys():
                if soname.startswith(copy_lib):
                    # Bugfix: Do an exhaustive search, as same prefix can
                    # refer to multiple libraries, e.g., libgfortran.so.3 and
                    # libgfortran.so.1, and sometimes the wrong one is picked.
                    if mgr.deplist[soname] in found_set: continue
                    found_set.add(mgr.deplist[soname])
                    mgr.add_library(mgr.deplist[soname])
                    found_and_to_be_removed.append( soname )
        mgr.remove_deps( found_and_to_be_removed )

        print('\tRemoving system libs')
        sys.stdout.flush()
        mgr.remove_deps(LIB_SYSTEM_LIST)

        print('\tFinding deps in search path')
        sys.stdout.flush()
        mgr.resolve_deps(nocopy = [P.join(ISISROOT, 'lib'), P.join(ISISROOT, '3rdParty', 'lib')],
                           copy = [INSTALLDIR.lib()])
        if mgr.deplist:
            raise Exception('Failed to find some libs in any of our dirs:\n\t%s' % '\n\t'.join(mgr.deplist.keys()))

        print('Adding files in dist-add and docs')
        sys.stdout.flush()
        # To do: Don't depend on cwd