Szablon projektu

0

Na początek aby wprowadzić napisze że przesiadam się powoli z Delphi na C++ i kompletuje sobie narzędzia , na razie mam tak
IDE: Visual Studio Code (+ kilka extensions)
Build engine: cmake ( budowanie systemu Linux bitbake ale projekt tez będzie budowany dla Windows)

Szukałem na github ciekawych szablonów do cmake (argument: jeszcze nie jestem tak wciągnięty w temat cmake aby wszystko sam idealnie poustawiać i szukam na początek gotowca do rozwijania albo inspiracji)

Na razie znalazłem:
https://github.com/paakmau/modern-cmake-template
https://github.com/kigster/cmake-project-template

0

już w tym miesiącu były tematy o tym doradzaliśmy. Wejdź na yt na wrocpp i poszukaj wykładu sławka grabowskiego o cmake. W opisie filmu jest też szablon.

1

watek o którym wspomina @revcorey https://4programmers.net/Forum/C_i_C++/358757
video Sławka Grabowskiego

0

Bardzo wartościowy materiał !

Bardzo zastanawia mnie dlaczego Pan Sławek użył conan zamiast FetchContent z cmake ?
Dodatkowe narzędzie to dodatkowy problem (a przynajmniej na msys2 nie działa mi "conan install .." :( )

2

To ja znowu polecę Jasona Turnera w tym temacie:

0

Skopiowałem przykład Pana Sławka do mojego repozytorium https://github.com/mariuszmaximus/CMake-pytania
Aby nie walczyć z conan wszystkie dodatkowe pakiety są automatycznie pobierane

Buduje w folderze ModernCalculator\build

Aplikacja wynikowa powstaje w folderze ModernCalculator\build\src\CalculatorApp
A biblioteka dynamiczna która jest wymagana do działania ModernCalculator\build\src\ExpressionCalculatorWidget

Jak to powinno być uruchamiane/debugowane ? Aby EXE odnalazło biblioteki ?
[opcja 1]
Kopiuje wszystkie pliki DLL do folderu gdzie jest EXE (skryptem , reguła w cmake itp.)

[opcja 2]
Tworze dowiązania symboliczne w folderze EXE do plikow DLL (ręcznie albo cmake)?

[opcja 3]
Wymuszam w regułach modułów aby trafiały do folderu EXE

[opcja 4]
Ustawiam środowisko PATH / LD_LIBRARY_PATH aby obejmowało wszystkie wymagane biblioteki ?

[opcja 5]
Nie ważne jak zrobię byleby działało !

Jak pracować z takimi projektami które mają wiele plików (w tym biblioteki dynamiczne) ?

Generalnie chodzi mi o usystematyzowanie prowadzenia projektu na kolejne kilka lat

0

bardzo ciekawą opcja cmake jest dziedziczenie środowiska podczas "add_subdirectory" , można ustawić/zmienić środowisko w jednym globalnym CMakeLists.txt aby zarządzać wieloma kolejnymi CMakeLists.txt (piekna sprawa)

aby EXE/DLL trafiały do odpowiednich folderów ustawiłem RUNTIME_OUTPUT_DIRECTORY i to załatwia problem

1 użytkowników online, w tym zalogowanych: 0, gości: 1