| 12 | namespace LIEF::pdb::py { |
| 13 | template<> |
| 14 | void create<pdb::BuildMetadata>(nb::module_& m) { |
| 15 | nb::class_<pdb::BuildMetadata> obj(m, "BuildMetadata", |
| 16 | R"doc( |
| 17 | This class wraps build metadata represented by the codeview symbols: |
| 18 | ``S_COMPILE3, S_COMPILE2, S_BUILDINFO`` |
| 19 | )doc"_doc |
| 20 | ); |
| 21 | |
| 22 | using LANG = pdb::BuildMetadata::LANG; |
| 23 | nb::enum_<LANG>(obj, "LANG") |
| 24 | .value("C", LANG::C) |
| 25 | .value("CPP", LANG::CPP) |
| 26 | .value("FORTRAN", LANG::FORTRAN) |
| 27 | .value("MASM", LANG::MASM) |
| 28 | .value("PASCAL_LANG", LANG::PASCAL_LANG) |
| 29 | .value("BASIC", LANG::BASIC) |
| 30 | .value("COBOL", LANG::COBOL) |
| 31 | .value("LINK", LANG::LINK) |
| 32 | .value("CVTRES", LANG::CVTRES) |
| 33 | .value("CVTPGD", LANG::CVTPGD) |
| 34 | .value("CSHARP", LANG::CSHARP) |
| 35 | .value("VB", LANG::VB) |
| 36 | .value("ILASM", LANG::ILASM) |
| 37 | .value("JAVA", LANG::JAVA) |
| 38 | .value("JSCRIPT", LANG::JSCRIPT) |
| 39 | .value("MSIL", LANG::MSIL) |
| 40 | .value("HLSL", LANG::HLSL) |
| 41 | .value("OBJC", LANG::OBJC) |
| 42 | .value("OBJCPP", LANG::OBJCPP) |
| 43 | .value("SWIFT", LANG::SWIFT) |
| 44 | .value("ALIASOBJ", LANG::ALIASOBJ) |
| 45 | .value("RUST", LANG::RUST) |
| 46 | .value("GO", LANG::GO) |
| 47 | .value("UNKNOWN", LANG::UNKNOWN); |
| 48 | |
| 49 | using CPU = pdb::BuildMetadata::CPU; |
| 50 | nb::enum_<CPU>(obj, "CPU") |
| 51 | .value("INTEL_8080", CPU::INTEL_8080) |
| 52 | .value("INTEL_8086", CPU::INTEL_8086) |
| 53 | .value("INTEL_80286", CPU::INTEL_80286) |
| 54 | .value("INTEL_80386", CPU::INTEL_80386) |
| 55 | .value("INTEL_80486", CPU::INTEL_80486) |
| 56 | .value("PENTIUM", CPU::PENTIUM) |
| 57 | .value("PENTIUMPRO", CPU::PENTIUMPRO) |
| 58 | .value("PENTIUM3", CPU::PENTIUM3) |
| 59 | .value("MIPS", CPU::MIPS) |
| 60 | .value("MIPS16", CPU::MIPS16) |
| 61 | .value("MIPS32", CPU::MIPS32) |
| 62 | .value("MIPS64", CPU::MIPS64) |
| 63 | .value("MIPSI", CPU::MIPSI) |
| 64 | .value("MIPSII", CPU::MIPSII) |
| 65 | .value("MIPSIII", CPU::MIPSIII) |
| 66 | .value("MIPSIV", CPU::MIPSIV) |
| 67 | .value("MIPSV", CPU::MIPSV) |
| 68 | .value("M68000", CPU::M68000) |
| 69 | .value("M68010", CPU::M68010) |
| 70 | .value("M68020", CPU::M68020) |
| 71 | .value("M68030", CPU::M68030) |