Я успешно использую Boost Python для создания серии библиотек Python. Эти библиотеки создаются условно, в зависимости от настроек, которые пользователь указывает во время сборки (через CMake).
Теперь я хотел бы объединить их все в одну библиотеку, которая содержала бы серию модулей (по одному на старую библиотеку), только если бы они были необходимы.
Так, например, если раньше у меня было:
A.so # Always built
B.so # Compiled if B was set
C.so # Compiled if C was set
Теперь я хотел бы иметь:
MyLib.so # Always built
---
import MyLib
MyLib.A # always works
MyLib.B # works only if MyLib was compiled with B set
MyLib.C # works only if MyLib was compiled with C set
Я уже знаю, как создавать пространства имен с помощью Boost Python (через class_), но я не уверен, как можно настроить проект так, чтобы этот конечный результат был возможен.
С помощью CMake я могу условно добавлять файлы для компиляции, но я не знаю, как определить модуль MyLib в C ++, чтобы я мог добавлять к нему части в отдельных файлах.