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