Deploying a C++ Software with (or without) Python Embedding and Extension

Authors

  • Ammar Nejati Forschungszentrum Jülich
  • Mikhail Svechnikov Forschungszentrum Jülich
  • Joachim Wuttke Forschungszentrum Jülich

DOI:

https://doi.org/10.14279/eceasst.v83.2596

Keywords:

deployment, installer, packaging, DevOps, CI/CD, continuous delivery, cross-platform, cross-language, C++, Python, CMake, Swig

Abstract

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.

Downloads

Published

2025-02-21

How to Cite

[1]
A. Nejati, M. Svechnikov, and J. Wuttke, “Deploying a C++ Software with (or without) Python Embedding and Extension”, ECEASST, vol. 83, Feb. 2025.