1*722475a3SStella Laurenzo //===- MainModule.cpp - Main pybind module --------------------------------===//
2*722475a3SStella Laurenzo //
3*722475a3SStella Laurenzo // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*722475a3SStella Laurenzo // See https://llvm.org/LICENSE.txt for license information.
5*722475a3SStella Laurenzo // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*722475a3SStella Laurenzo //
7*722475a3SStella Laurenzo //===----------------------------------------------------------------------===//
8*722475a3SStella Laurenzo 
9*722475a3SStella Laurenzo #include <tuple>
10*722475a3SStella Laurenzo 
11*722475a3SStella Laurenzo #include <pybind11/pybind11.h>
12*722475a3SStella Laurenzo 
13*722475a3SStella Laurenzo #include "mlir/IR/MLIRContext.h"
14*722475a3SStella Laurenzo 
15*722475a3SStella Laurenzo using namespace mlir;
16*722475a3SStella Laurenzo 
17*722475a3SStella Laurenzo PYBIND11_MODULE(_mlir, m) {
18*722475a3SStella Laurenzo   m.doc() = "MLIR Python Native Extension";
19*722475a3SStella Laurenzo 
20*722475a3SStella Laurenzo   m.def("get_test_value", []() {
21*722475a3SStella Laurenzo     // This is just calling a method on the MLIRContext as a smoketest
22*722475a3SStella Laurenzo     // for linkage.
23*722475a3SStella Laurenzo     MLIRContext context;
24*722475a3SStella Laurenzo     return std::make_tuple(std::string("From the native module"),
25*722475a3SStella Laurenzo                            context.isMultithreadingEnabled());
26*722475a3SStella Laurenzo   });
27*722475a3SStella Laurenzo }
28