| 6 | import parsesetup |
| 7 | |
| 8 | def checkextensions(unknown, extensions): |
| 9 | files = [] |
| 10 | modules = [] |
| 11 | edict = {} |
| 12 | for e in extensions: |
| 13 | setup = os.path.join(e, 'Setup') |
| 14 | liba = os.path.join(e, 'lib.a') |
| 15 | if not os.path.isfile(liba): |
| 16 | liba = None |
| 17 | edict[e] = parsesetup.getsetupinfo(setup), liba |
| 18 | for mod in unknown: |
| 19 | for e in extensions: |
| 20 | (mods, vars), liba = edict[e] |
| 21 | if mod not in mods: |
| 22 | continue |
| 23 | modules.append(mod) |
| 24 | if liba: |
| 25 | # If we find a lib.a, use it, ignore the |
| 26 | # .o files, and use *all* libraries for |
| 27 | # *all* modules in the Setup file |
| 28 | if liba in files: |
| 29 | break |
| 30 | files.append(liba) |
| 31 | for m in list(mods.keys()): |
| 32 | files = files + select(e, mods, vars, |
| 33 | m, 1) |
| 34 | break |
| 35 | files = files + select(e, mods, vars, mod, 0) |
| 36 | break |
| 37 | return files, modules |
| 38 | |
| 39 | def select(e, mods, vars, mod, skipofiles): |
| 40 | files = [] |