You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

autogen.cpp 1.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "./targets/cpp_class.h"
  2. #include "./targets/macros.h"
  3. #include "./targets/pybind11.h"
  4. #include "./targets/python_c_extension.h"
  5. using llvm::raw_ostream;
  6. using llvm::RecordKeeper;
  7. enum ActionType { None, CppHeader, CppBody, Pybind, CPython, EnumListMacro };
  8. // NOLINTNEXTLINE
  9. llvm::cl::opt<ActionType> action(
  10. llvm::cl::desc("Action to perform:"),
  11. llvm::cl::values(
  12. clEnumValN(CppHeader, "gen-cpp-header", "Generate operator cpp header"),
  13. clEnumValN(CppBody, "gen-cpp-body", "Generate operator cpp body"),
  14. clEnumValN(
  15. Pybind, "gen-python-binding",
  16. "Generate pybind11 python bindings"),
  17. clEnumValN(
  18. CPython, "gen-python-c-extension",
  19. "Generate python c extensions"),
  20. clEnumValN(
  21. EnumListMacro, "gen-enum-list-macro",
  22. "Generate enum param list macro")));
  23. using namespace mlir::tblgen;
  24. int main(int argc, char** argv) {
  25. llvm::InitLLVM y(argc, argv);
  26. llvm::cl::ParseCommandLineOptions(argc, argv);
  27. if (action == ActionType::CppHeader) {
  28. return TableGenMain(argv[0], &gen_op_def_c_header);
  29. }
  30. if (action == ActionType::CppBody) {
  31. return TableGenMain(argv[0], &gen_op_def_c_body);
  32. }
  33. if (action == ActionType::Pybind) {
  34. return TableGenMain(argv[0], &gen_op_def_pybind11);
  35. }
  36. if (action == ActionType::CPython) {
  37. return TableGenMain(argv[0], &gen_op_def_python_c_extension);
  38. }
  39. if (action == ActionType::EnumListMacro) {
  40. return TableGenMain(argv[0], &gen_enum_param_list_macro);
  41. }
  42. return -1;
  43. }