Deploying a C++ Software with (or without) Python Embedding and Extension - Nejati, Ammar; Svechnikov, Mikhail; Wuttke, Joachim (Electronic Communications of the EASST, 2025)
We discuss the manifold difficulties in cross-platform software deployment. We first consider a pure C++ project. Then we discuss the additional problems that arise when a C++ core has an embedded Python interpreter and is exposed to Python with bindings automatically generated by Swig. We explain how such a software can be deployed to Windows, Linux, and macOS, in form of source archives, binary installers, packages for package managers, or Python wheels. Our solutions are based on proven experience with the physics software BornAgain.