Organizacja pracy z CMake w repozytorium

0

Witam,

do tej pory pracowałem tak że cały projekt (źródła i solution) w "Visual Studio C++" był w repozytorium,
jak ktoś wprowadził jakąś zmianę każy uaktualniał sobie projekt i działał dalej.

Nadeszła pora zmian, projekt został przerobiony na skrypt CMake.
Przy pomocy CMake generuję solution dla "Visual Studio" następnie otwieram to solution i pracuję.
Problem z generowaniem solution jest taki że CMake w plikach poszczególnych projektów wstawia ścieżki bezwzględne do plików źródłowych
i nie można tego zmienić, problem opisany tutaj: https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#why-does-cmake-use-full-paths-or-can-i-copy-my-build-tree
Przyznam że to dość szokująca informacja z której wynika:

W przypadku rozpoczęcia pracy należy:

  • Pobrać źródła z repozytorium
  • Zbudować przy pomcy skruptu CMake slution
  • Rozpocząć pracę

W przypadku dodania/usunięcia pliku źródłowego w repo należy:

  • Pobrać aktualizację z repozytorium
  • Zamknąć projekt w "Visual Studio"
  • Usunąć katalog z solution, które wcześniej zbudował CMake
  • Zbudować nowe solution z nowo pobranego projektu z repo
  • Rozpocząć pracę

No i przeniesienie całego projektu do innej lokalizacji na dysku też nie jest możliwe,
za każdym razem należy wygenerować solution od nowa.

Dopiero rozpoczynam pracę z CMake więc mało go znam.
Proszę więc o wskazówki jak w moim przypadku należałoby to wszystko poukładać
bo jak na razie to mam same dodatkowe problemy i żadnych udogodnień.

Pozdrawiam.

0

Napisz sam cmake. W przyklejonnym temacie w dziale jest dodany przeze mnie link do tutoriala o cmakeKliknij

4

VS od dłuższego czasu wspiera CMake natywnie, nie możesz po prostu otworzyć projektu CMake bezpośrednio?

https://learn.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=msvc-170

0
revcorey napisał(a):

Napisz sam cmake. W przyklejonnym temacie w dziale jest dodany przeze mnie link do tutoriala o cmake

Po co odpisujesz na post, którego nawet nie przeczytałeś?
Ponadto podany przez Ciebie link nie otwiera się...

0

W przypadku dodania/usunięcia pliku źródłowego w repo należy:

  • Pobrać aktualizację z repozytorium
  • Zamknąć projekt w "Visual Studio"
  • Usunąć katalog z solution, które wcześniej zbudował CMake
  • Zbudować nowe solution z nowo pobranego projektu z repo
  • Rozpocząć pracę

Ogólnie jeśli to jest dla Ciebie problem, to żaden build system nie rozwiąże twojego problemu z prostego powodu - rozwój projektu to nie tylko dodawanie nowych plików źródłowych, ale też rozwijanie plików konfiguracyjnych. A jeśli pliki konfiguracyjne się zmieniają, to trzeba przegenerować projekty Visual Studio.

No i przeniesienie całego projektu do innej lokalizacji na dysku też nie jest możliwe

Przeniesienie projektu z jednej lokalizacji do drugiej to jest tak rzadkie zjawisko, że nie powinieneś na to w ogóle zwracać uwagi.

CMake i jego absolutne ścieżki mogą być problemem kiedy chcesz budować projekt na CI na wielu komputerach, gdzie wynik działania joba to jest artefakt, który jest potrzebny do kolejnego joba.

Nie wiem w jakiej branży robisz oprogramowanie, ale jeśli gamedev, to możesz się zainteresować tym: https://github.com/ubisoft/Sharpmake

0
energo napisał(a):
revcorey napisał(a):

Napisz sam cmake. W przyklejonnym temacie w dziale jest dodany przeze mnie link do tutoriala o cmakeKliknij

Po co odpisujesz na post, którego nawet nie przeczytałeś?
Ponadto podany przez Ciebie link nie otwiera się...

tak tak nie otwiera się masz link do wrocpp który własnie otworzyłem i link do github repo które otworzyłem. Po co komentujesz linki których nawet nie sprawdzasz?
czytam dokładnie i co sam napisałeś?

Dopiero rozpoczynam pracę z CMake więc mało go znam.

Ale masz racje można jak jeździec bez głowy nie znać cmake i w nim pisać. Czytam co piszesz i chcę ci oszczędzić błądzenia po kiepskich materiałach o cmake. No ale można twoim sposobem to pisz jakoś to będzie.
a tu jeszcze wersja płatna
https://www.udemy.com/course/effective-modern-cmake-level-beginner/

edit:
w tym co sam przytoczyłeś masz

The workaround is to create a new build tree without copying or moving
the old one.

Temat mi znany trochę ale pokaż mniej więcej cmakeliste. bo coś mi śmierdzi.
edit2: W kwestii napisania samem cmake miałem na myśli żeby to wszystko budował cmake. VS studio obśługuje cmake jak pamiętam, nie trzeba żadnych pośrednich rzeczy. Czyli jak już przechodzicie na cmake warto przejść wszystkim? Nie wiem nie znam projektu. Ale przestrzegam przed robieniem tego na pałę bez lektury.
Edit4: na początku nie zajarzylem ale kq wyjaśnił wczytać cmake do vs i po sprawie i wrócić do linków które podałem żeby nauczyć się cmake

0

Na początek to bym zwrócił uwagę jaka jest hierarchia narzędzi w projekcie:
CMAKE jest wyżej niż kompilator i projekt to te pliki CMakeLists.txt
Jak już to zaakceptujemy i zrozumiemy to większość problemów jakie opisał OP przestaje istnieć.

Ten link od @revcorey bardzo dobry sam od tego zaczynałam

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