Czego teraz się używa do budowania aplikacji w C++? Chodzi mi o zbudowanie pliku wykonywalnego. Dawno w C++ nic nie programowałem - głównie Java, Python, czasem coś z JS. Na przykład do Javy używam Gradle, do budowania js jest ng build, np do rusta jest cargo build, to czego użyć do budowania aplikacji w C++? Jest moze jakieś takie narzędzie typu gradle tylko do C++? Dobrze, gdyby mogło samo pobierać zależności (tak
moduły w C++? Chyba wiele mnie ominęło ( ͡° ͜ʖ ͡°) to trzeba nadrobić trochę zaległości.


@lukasj: będzie jak w Javie po prostu robisz "export JakiśNamespace". Bedzie całkowicie inna struktura plików i wszystkie hacki oraz błędy związane z Includowaniem bedą mogły iść w zapomnienie.
No a do budowania to jest tak:
- komercyjnie się używa CMake + docker + conan ale CMake jest najgorszym językiem skryptowym używanym
Siema,

Mam klasę X, w zakresie której tworzony jest obiekt klasy Y. Ze względu na unit testy, które będą puszczane na maszynie o innej architekturze potrzebuję podmienić implementację klasy Y tworząc jakiegoś stuba. Jedyną rzeczą jaką chciałbym zmienić w kodzie, to stworzenie interfejsu dla klasy Y, a na etapie kompilacji pod unit testy podmieniać tylko plik źródłowy. Żeby to wszystko ogarnąć, trzeba stworzyć 3 headery (InterfaceY.hpp, Y.hpp i YStub.hpp) i dwa pliki
@Saly: Rozumiem twój punkt widzenia, ale pliki CMake'a to dla mnie też część "kodu" i łączenie różnych targetów z różnych plików obiektowych to normalna praktyka.

Z CMake'iem jest jak z dżinem, tyle lat go człowiek próbuje okiełznać i nagiąć do swojej woli że jak już się uda to będzie go wykorzystywał do wszystkiego z zemsty xD
Cześć,

Mam program, który posiada część real-time i non-real-time. Używam systemu czasu rzeczywistego Xenomai (pod #linux). Sam Xenomai ma wrappery dołączane linkerem, które nadpisują wszystkie klasyczne funkcje linuxowe. Mój program składa się z wielu bibliotek z czego jedna powinna mieć owrappowane funkcje. Niestety dołączenie flag linkera dla tej biblioteki powoduje owrappowanie funkcji całego projektu. Co robię źle, że nie zostaje to rozdzielone?

CMake dla tej biblioteki: https://pastebin.com/qsFwmBgV
Część CMake projektu -