2015-06-06 12 views
6

Mam projekt QT, który instaluje usługę w systemie, po uruchomieniu make install. Odpowiednie części pliku .pro są następujące:Jak uruchomić niestandardowe polecenia podczas `make uninstall` z qmake w QT5?

init.path = /etc/init.d/ 
init.files = myservicename 

updaterc.path = /etc/init.d/ 
updaterc.extra = chmod 755 $$init.files; \ 
       update-rc.d $$init.files defaults 97 03; \ 
       service $$init.files start 

INSTALLS += target ... init updaterc 

Instaluje usługa poprawnie, a następnie uruchamia go.

Jednak po uruchomieniu make uninstall, mimo że zainstalowane pliki zostały poprawnie usunięte, usługa pozostaje zainstalowana i działa. Chciałbym, aby usługa została zatrzymana i odinstalowana po uruchomieniu make uninstall.

komendy do zatrzymania i odinstalowywanie usługi są następujące:

sudo service myservicename stop 
sudo update-rc.d -f myservicename remove 

Ale nie mogę dowiedzieć się, jak zintegrować powyższe polecenia w .pro pliku, tak że qmake można je zrozumieć i stworzyć odpowiednie przepisy, plik Makefile.

Jedyna dokumentacja, którą znalazłem na ten temat, to: http://doc.qt.io/qt-5/qmake-advanced-usage.html, ale nie mówi nic o odinstalowaniu.

Odpowiedz

7

spróbuj użyć polecenia .uninstall.

mytarget2.path = ~/Documents/inst 
mytarget2.target = test.txt 
mytarget2.commands = @echo "custom command" 
mytarget2.uninstall = @echo "uninstall" 
INSTALLS += mytarget2 

wygeneruje ten makefile:

####### Install 

install_mytarget2: first FORCE 
    @test -d $(INSTALL_ROOT)/Users/mac/Documents/inst || mkdir -p $(INSTALL_ROOT)/Users/mac/Documents/inst 
    @echo custom command 

uninstall_mytarget2: FORCE 
    @echo uninstall 
    -$(DEL_DIR) $(INSTALL_ROOT)/Users/mac/Documents/inst/ 


install: install_mytarget2 FORCE 

uninstall: uninstall_mytarget2 FORCE 

FORCE: 
+0

Tak komendę 'uninstall' jest pomocny, i wydaje się, aby rozwiązać ten problem, będę czekać do końca laski w przypadku ktokolwiek inny ma lepszy pomysł, inaczej nagroda jest twoja. Bardzo ci dziękuje za pomoc. – user000001

Powiązane problemy