import os from setuptools import setup from torch.utils.cpp_extension import BuildExtension, CppExtension # Get absolute path to project directory proj_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) setup( name="fces_native", version="0.1.0", description="High-performance C++ FCES optimizer (Python bindings)", ext_modules=[ CppExtension( name="fces_native", sources=[ "fces_native.cpp", os.path.join(proj_dir, "src", "config.cpp"), os.path.join(proj_dir, "src", "controller.cpp"), os.path.join(proj_dir, "src", "population.cpp"), os.path.join(proj_dir, "src", "fitness.cpp"), os.path.join(proj_dir, "src", "evolution.cpp"), os.path.join(proj_dir, "src", "spectral.cpp"), os.path.join(proj_dir, "src", "oscillation.cpp"), os.path.join(proj_dir, "src", "optimizer.cpp"), os.path.join(proj_dir, "src", "telemetry.cpp"), ], include_dirs=[os.path.join(proj_dir, "include")], ), ], cmdclass={"build_ext": BuildExtension}, )