╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ build.zig ────────────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭ find file ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╮ ╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │ │ │http│ ssh │ │ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╯ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
1411 "LLVMX86CodeGen", 1412 "LLVMX86Desc", 1413 "LLVMX86Info", 1414 "LLVMWebAssemblyDisassembler", 1415 "LLVMWebAssemblyAsmParser", 1416 "LLVMWebAssemblyCodeGen", 1417 "LLVMWebAssemblyUtils", 1418 "LLVMWebAssemblyDesc", 1419 "LLVMWebAssemblyInfo", 1420 "LLVMVEDisassembler", 1421 "LLVMVEAsmParser", 1422 "LLVMVECodeGen", 1423 "LLVMVEDesc", 1424 "LLVMVEInfo", 1425 "LLVMSystemZDisassembler", 1426 "LLVMSystemZAsmParser", 1427 "LLVMSystemZCodeGen", 1428 "LLVMSystemZDesc", 1429 "LLVMSystemZInfo", 1430 "LLVMSPIRVCodeGen", 1431 "LLVMSPIRVDesc", 1432 "LLVMSPIRVInfo", 1433 "LLVMSPIRVAnalysis", 1434 "LLVMSparcDisassembler", 1435 "LLVMSparcAsmParser", 1436 "LLVMSparcCodeGen", 1437 "LLVMSparcDesc", 1438 "LLVMSparcInfo", 1439 "LLVMRISCVTargetMCA", 1440 "LLVMRISCVDisassembler", 1441 "LLVMRISCVAsmParser", 1442 "LLVMRISCVCodeGen", 1443 "LLVMRISCVDesc", 1444 "LLVMRISCVInfo", 1445 "LLVMPowerPCDisassembler", 1446 "LLVMPowerPCAsmParser", 1447 "LLVMPowerPCCodeGen", 1448 "LLVMPowerPCDesc", 1449 "LLVMPowerPCInfo", 1450 "LLVMNVPTXCodeGen", 1451 "LLVMNVPTXDesc", 1452 "LLVMNVPTXInfo", 1453 "LLVMMSP430Disassembler", 1454 "LLVMMSP430AsmParser", 1455 "LLVMMSP430CodeGen", 1456 "LLVMMSP430Desc", 1457 "LLVMMSP430Info", 1458 "LLVMMipsDisassembler", 1459 "LLVMMipsAsmParser", 1460 "LLVMMipsCodeGen", 1461 "LLVMMipsDesc", 1462 "LLVMMipsInfo", 1463 "LLVMLoongArchDisassembler", 1464 "LLVMLoongArchAsmParser", 1465 "LLVMLoongArchCodeGen", 1466 "LLVMLoongArchDesc", 1467 "LLVMLoongArchInfo", 1468 "LLVMLanaiDisassembler", 1469 "LLVMLanaiCodeGen", 1470 "LLVMLanaiAsmParser", 1471 "LLVMLanaiDesc", 1472 "LLVMLanaiInfo", 1473 "LLVMHexagonDisassembler", 1474 "LLVMHexagonCodeGen", 1475 "LLVMHexagonAsmParser", 1476 "LLVMHexagonDesc", 1477 "LLVMHexagonInfo", 1478 "LLVMBPFDisassembler", 1479 "LLVMBPFAsmParser", 1480 "LLVMBPFCodeGen", 1481 "LLVMBPFDesc", 1482 "LLVMBPFInfo", 1483 "LLVMAVRDisassembler", 1484 "LLVMAVRAsmParser", 1485 "LLVMAVRCodeGen", 1486 "LLVMAVRDesc", 1487 "LLVMAVRInfo", 1488 "LLVMARMDisassembler", 1489 "LLVMARMAsmParser", 1490 "LLVMARMCodeGen", 1491 "LLVMARMDesc", 1492 "LLVMARMUtils", 1493 "LLVMARMInfo", 1494 "LLVMAMDGPUTargetMCA", 1495 "LLVMAMDGPUDisassembler", 1496 "LLVMAMDGPUAsmParser", 1497 "LLVMAMDGPUCodeGen", 1498 "LLVMAMDGPUDesc", 1499 "LLVMAMDGPUUtils", 1500 "LLVMAMDGPUInfo", 1501 "LLVMAArch64Disassembler", 1502 "LLVMAArch64AsmParser", 1503 "LLVMAArch64CodeGen", 1504 "LLVMAArch64Desc", 1505 "LLVMAArch64Utils", 1506 "LLVMAArch64Info", 1507 "LLVMOrcDebugging", 1508 "LLVMOrcJIT", 1509 "LLVMWindowsDriver", 1510 "LLVMMCJIT", 1511 "LLVMJITLink", 1512 "LLVMInterpreter", 1513 "LLVMExecutionEngine", 1514 "LLVMRuntimeDyld", 1515 "LLVMOrcTargetProcess", 1516 "LLVMOrcShared", 1517 "LLVMDWP", 1518 "LLVMDWARFCFIChecker", 1519 "LLVMDebugInfoLogicalView", 1520 "LLVMOption", 1521 "LLVMObjCopy", 1522 "LLVMMCA", 1523 "LLVMMCDisassembler", 1524 "LLVMDTLTO", 1525 "LLVMLTO", 1526 "LLVMFrontendOpenACC", 1527 "LLVMFrontendDriver", 1528 "LLVMExtensions", 1529 "LLVMPlugins", 1530 "LLVMPasses", 1531 "LLVMHipStdPar", 1532 "LLVMCoroutines", 1533 "LLVMCFGuard", 1534 "LLVMipo", 1535 "LLVMInstrumentation", 1536 "LLVMVectorize", 1537 "LLVMSandboxIR", 1538 "LLVMLinker", 1539 "LLVMFrontendOpenMP", 1540 "LLVMFrontendDirective", 1541 "LLVMFrontendAtomic", 1542 "LLVMFrontendOffloading", 1543 "LLVMObjectYAML", 1544 "LLVMDWARFLinkerParallel", 1545 "LLVMDWARFLinkerClassic", 1546 "LLVMDWARFLinker", 1547 "LLVMGlobalISel", 1548 "LLVMMIRParser", 1549 "LLVMAsmPrinter", 1550 "LLVMSelectionDAG", 1551 "LLVMCodeGen", 1552 "LLVMTarget", 1553 "LLVMObjCARCOpts", 1554 "LLVMCodeGenTypes", 1555 "LLVMCGData", 1556 "LLVMCAS", 1557 "LLVMIRPrinter", 1558 "LLVMInterfaceStub", 1559 "LLVMFileCheck", 1560 "LLVMFuzzMutate", 1561 "LLVMScalarOpts", 1562 "LLVMInstCombine", 1563 "LLVMAggressiveInstCombine", 1564 "LLVMTransformUtils", 1565 "LLVMBitWriter", 1566 "LLVMAnalysis", 1567 "LLVMProfileData", 1568 "LLVMSymbolize", 1569 "LLVMDebugInfoBTF", 1570 "LLVMDebugInfoPDB", 1571 "LLVMDebugInfoMSF", 1572 "LLVMDebugInfoCodeView", 1573 "LLVMDebugInfoGSYM", 1574 "LLVMDebugInfoDWARF", 1575 "LLVMObject", 1576 "LLVMTextAPI", 1577 "LLVMMCParser", 1578 "LLVMIRReader", 1579 "LLVMAsmParser", 1580 "LLVMMC", 1581 "LLVMDebugInfoDWARFLowLevel", 1582 "LLVMBitReader", 1583 "LLVMFrontendHLSL", 1584 "LLVMFuzzerCLI", 1585 "LLVMABI", 1586 "LLVMCore", 1587 "LLVMRemarks", 1588 "LLVMBitstreamReader", 1589 "LLVMBinaryFormat", 1590 "LLVMTargetParser", 1591 "LLVMSupport", 1592 "LLVMDemangle", 1593 }; 1594 const llvm_libs_m68k = [_][]const u8{ 1595 "LLVMM68kDisassembler", 1596 "LLVMM68kAsmParser", 1597 "LLVMM68kCodeGen", 1598 "LLVMM68kDesc", 1599 "LLVMM68kInfo", 1600 }; 1601 const llvm_libs_csky = [_][]const u8{ 1602 "LLVMCSKYDisassembler", 1603 "LLVMCSKYAsmParser", 1604 "LLVMCSKYCodeGen", 1605 "LLVMCSKYDesc", 1606 "LLVMCSKYInfo", 1607 }; 1608 const llvm_libs_arc = [_][]const u8{ 1609 "LLVMARCDisassembler", 1610 "LLVMARCCodeGen", 1611 "LLVMARCDesc", 1612 "LLVMARCInfo", 1613 }; 1614 const llvm_libs_xtensa = [_][]const u8{ 1615 "LLVMXtensaDisassembler", 1616 "LLVMXtensaAsmParser", 1617 "LLVMXtensaCodeGen", 1618 "LLVMXtensaDesc", 1619 "LLVMXtensaInfo", 1620 }; 1621 1622 fn generateLangRef(b: *std.Build) !std.Build.LazyPath { 1623 const io = b.graph.io; 1624 const arena = b.graph.arena; 1625 1626 const doctest_exe = b.addExecutable(.{ 1627 .name = "doctest", 1628 .root_module = b.createModule(.{ 1629 .root_source_file = b.path("tools/doctest.zig"), 1630 .target = b.graph.host, 1631 .optimize = .debug, 1632 }), 1633 }); 1634 1635 const langref_path = try b.root.join(arena, "doc/langref"); 1636 1637 var dir = langref_path.root_dir.handle.openDir(io, langref_path.sub_path, .{ .iterate = true }) catch |err| 1638 std.debug.panic("unable to open directory {f}: {t}", .{ langref_path, err }); 1639 defer dir.close(io); 1640 1641 var wf = b.addWriteFiles(); 1642 b.step("test-docs", "Test code snippets from the docs").dependOn(&wf.step); 1643 1644 var it = dir.iterateAssumeFirstIteration(); 1645 while (it.next(io) catch @panic("failed to read dir")) |entry| { 1646 if (entry.kind != .file) continue; 1647 if (std.mem.startsWith(u8, entry.name, ".")) continue; 1648 if (!std.mem.endsWith(u8, entry.name, ".zig")) continue; 1649 1650 const out_basename = b.fmt("{s}.out", .{std.fs.path.stem(entry.name)}); 1651 const cmd = b.addRunArtifact(doctest_exe); 1652 1653 cmd.addArg("--zig"); 1654 cmd.addFileArg(.zig_exe); 1655 1656 cmd.addArg("--cache-root"); 1657 cmd.addDirectoryArg(.cache_root); 1658 1659 cmd.addArg("--zig-lib-dir"); 1660 cmd.addDirectoryArg(.zig_lib); 1661 1662 cmd.addArg("-i"); 1663 cmd.addFileArg(b.path(b.fmt("doc/langref/{s}", .{entry.name}))); 1664 1665 cmd.addArg("-o"); 1666 _ = wf.addCopyFile(cmd.addOutputFileArg(out_basename), out_basename); 1667 } 1668 1669 const docgen_exe = b.addExecutable(.{ 1670 .name = "docgen", 1671 .root_module = b.createModule(.{ 1672 .root_source_file = b.path("tools/docgen.zig"), 1673 .target = b.graph.host, 1674 .optimize = .debug, 1675 }), 1676 }); 1677 1678 const docgen_cmd = b.addRunArtifact(docgen_exe); 1679 docgen_cmd.addArgs(&.{"--code-dir"}); 1680 docgen_cmd.addDirectoryArg(wf.getDirectory()); 1681 docgen_cmd.addArgs(&.{"--grammar"}); 1682 docgen_cmd.addFileArg(b.path("doc/langref/grammar.peg")); 1683 1684 docgen_cmd.addFileArg(b.path("doc/langref.html.in")); 1685 return docgen_cmd.addOutputFileArg("langref.html"); 1686 } 1687 1688 fn superHtmlCheck(b: *std.Build, html_file: std.Build.LazyPath) *std.Build.Step { 1689 const run_superhtml = b.addSystemCommand(&.{ 1690 "superhtml", "check", 1691 }); 1692 run_superhtml.addFileArg(html_file); 1693 run_superhtml.expectExitCode(0); 1694 return &run_superhtml.step; 1695 } 1696