2012-02-19 19 views
12

Jestem trochę niepewny terminologii w tej domenie problemowej, co jest problemem, gdy próbuję szukać rzeczy.cmake "uruchom"

Używam CMake dla mojego procesu kompilacji. Chciałbym uczynić cel Makefile takim, żebym mógł użyć make run do uruchomienia danego procesu (konkretnie tego, który właśnie zbudowałem z make). Zdaję sobie sprawę, że mogę utworzyć skrypt powłoki lub po prostu uruchomić polecenie, wpisując go. Gdybym pisał Makefile sobie, że zrobię to tak:


run: 
    ./path/to/binary 

Nie kiedykolwiek napisać Makefile sam, chociaż - to generowane przez cmake - i nie jestem pewien, co do wprowadzenia mój CMakeLists.txt, aby wygenerować pożądany cel make run.

Znalazłem polecenie cmake 'execute_process', ale nie wydaje mi się, że jestem tym, czego szukam - nie chcę niczego uruchamiać podczas procesu kompilacji.

Extra: Dodatkowo chciałbym móc coś zrobić tak:


CMAKE_COMMAND_ADD_MAKEFILE_TARGET (${CMAKE_PROJECT_DIR}/binary) 

To znaczy, dodać path/to/binary użyciu zmiennej cmake, jeśli to możliwe.

+0

Co jest nie tak z celem, który napisałeś powyżej? –

+0

Ups, nie wyjaśniłem tego - nie piszę mojego Makefile, używam CMake. Odpowiednio edytować pytanie. – simont

Odpowiedz

13

Szukasz add_custom_target. Na przykład:

add_custom_target(run 
    COMMAND binary 
    DEPENDS binary 
    WORKING_DIRECTORY ${CMAKE_PROJECT_DIR} 
) 
+0

Czy to testujesz? Nie mogę uzyskać '$ {CMAKE_PROJECT_DIR}/binary' do pracy, i nie jestem pewien, czy to po prostu mnie zepsuło - jednak wymyśliłem, jak zrobić to, co robię, za pomocą' add_custom_target'. – simont

+0

Przepraszam, nie próbowałem tego. Zostało to teraz naprawione. – Simon