2011-02-08 16 views
7

struktura katalogów mój projekt jest w zasadzie w sposób następujący:Po CUpewnij umieścić generowane binarki w określonej strukturze katalogów z aktywów

root/src

root/aktywa

root/Library

I obecnie masz CMake skonfigurowany do kompilowania źródła, kompilowania biblioteki, a następnie łączenia ich, wywołując make z katalogu głównego.

Muszę ręcznie przenieść plik wykonywalny do oryginalnego katalogu zasobów, aby uruchomić go, ponieważ tam powinien być (i chcemy przetestować naszą strukturę katalogów w zasobach tak blisko, jak tego oczekujemy, być po zakończeniu).

Czy istnieje sposób na powiedzenie CMake'owi, aby automatycznie wkleił skompilowany plik binarny w tym katalogu, a także skopiował zasoby? Ponieważ robimy obecnie kompilacje źródłowe, przyklejenie pliku wykonywalnego z powrotem do oryginalnego folderu zasobów projektu wydaje się dziwne.

Krótko mówiąc, są dwa pytania: czy istnieje sposób, aby CMake skopiował zasoby, a także kod, i czy istnieje sposób na skopiowanie wygenerowanego pliku wykonywalnego do określonej lokalizacji w drzewie kompilacji?

Każda pomoc będzie doceniona --- dziękuję!

Odpowiedz

9

Oto prosty przykład o strukturze jak Twoja:

  • korzeń src/main.cpp (tylko plik źródłowy)/
  • root/aktywa (gdzie chcę iść wykonywalny)

Oto plik CUpewnij:

PROJECT(HelloCMake) 
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${HelloCMake_SOURCE_DIR}/assets) 
add_executable (HelloCMake src/main.cpp) 

Kiedy budować przeciwko tej wykorzystaniem Visual Studio pojawia się OUTP ut umieszczony w katalogu root/assets/debug. Musiałbym wykopać, aby dowiedzieć się, jak pozbyć się dodatkowego folderu konfiguracyjnego (debugowanie). Nie idealne, ale mam nadzieję, że doprowadzi cię to na właściwą drogę.

Edit ... Nawet lepiej:

INSTALL(TARGETS HelloCMake DESTINATION ${HelloCMake_SOURCE_DIR}/assets) 
+0

To wydaje się doskonale pracować dla naszego projektu. "make install", a VS zarówno trzymają rzeczy we właściwym miejscu, jak się wydaje! (Pomyślnie o tym jest tylko to, że wygląda na to, że źle używa polecenia instalacji, z którego jestem nieco obeznany, ale działa! Nie wiem, jak inaczej by to zrobiono.) – Kozaki

+0

To jest złoto dla projektów Cmake z pewną złożonością – GameDeveloper