xref: /aosp_15_r20/external/executorch/backends/apple/coreml/runtime/inmemoryfs/setup.py (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1import os
2
3import pathlib
4import sys
5
6REPO_ROOT = pathlib.Path(__file__).resolve().parent.parent.parent.parent.parent.parent
7PYBIND11_DIR_PATH = REPO_ROOT / "third-party" / "pybind11"
8sys.path.append(str(PYBIND11_DIR_PATH.absolute()))
9
10from pybind11.setup_helpers import build_ext, Pybind11Extension
11from setuptools import setup
12
13__version__ = "0.0.1"
14
15cxx_std = int(os.environ.get("CMAKE_CXX_STANDARD", "17"))
16
17ext_modules = [
18    Pybind11Extension(
19        "executorchcoreml",
20        [
21            "../util/json_util.cpp",
22            "inmemory_filesystem.cpp",
23            "inmemory_filesystem_py.cpp",
24            "inmemory_filesystem_utils.cpp",
25            "memory_buffer.cpp",
26            "memory_stream.cpp",
27            "reversed_memory_stream.cpp",
28        ],
29        define_macros=[("VERSION_INFO", __version__)],
30        cxx_std=cxx_std,
31        extra_compile_args=["-mmacosx-version-min=10.15", "-g"],
32        include_dirs=[
33            "../../third-party/nlohmann_json/single_include",
34            ".",
35            "../util",
36        ],
37    ),
38]
39
40setup(
41    name="executorchcoreml",
42    version=__version__,
43    description="CoreML extension for executorch",
44    long_description="",
45    author="Apple Inc.",
46    ext_modules=ext_modules,
47    extras_require={"test": "pytest"},
48    cmdclass={"build_ext": build_ext},
49    include_package_data=True,
50    zip_safe=False,
51    python_requires=">=3.9",
52)
53