2010-10-10 10 views
10

Podczas mojego użytkowania, czasami usuwam mój folder kompilacji CMake i tworzę nowy lub mam wiele folderów kompilacji (po jednym na komputer), ale tylko jeden folder źródłowy (nfs mount).gdzie robi qtcreator z ustawieniami uruchamiania i kompilacji sklepu cmake i jak ustawić za pomocą skryptu?

Z tego co mogę powiedzieć, QT Creator zapisuje ustawienia na CMakeLists.txt.user wewnątrz drzewa źródło, a niektóre ustawienia innych do „project.cbp” pliku w folderze kompilacji. Jeśli ustawię ustawienia z GUI, zostaną utracone po wyczyszczeniu/utworzeniu folderu kompilacji. Wystarczająco uczciwe, ale chciałbym użyć skryptu, aby skonfigurować je ponownie po utworzeniu nowej wersji.

Tak, jak ja:

a) dokonać QT Creator pisać folder CMakeLists.txt.user gdzieś inne niż drzewa źródłowego tak, że ustawienia urządzenia przechowywane są specyficzne (np debugować na komputerze programisty, zwolnienie na komputerze testowym)?

b) odczytać/zapisać ustawienia kompilacji i uruchamiania z projektu QT Creator, takie jak argumenty debugowania dla każdego pliku wykonywalnego i polecenia ekstra kompilacji (np. -j8)?

Następnie chciałbym zrobić coś w stylu "execute_process (...)" w CMakeLists.txt, aby ustawić kilka argumentów debugowania i kompilacji dla projektu QT Creator.

Odpowiedz

4

Ach, rzeczywiście args dowodzenia, budowania ustawienia i podobne elementy są ustawione w CMakeLists.txt.user z Qt Creator ...

na przykład:

<valuemap key="ProjectExplorer.Target.RunConfiguration.1" type="QVariantMap"> 
<value key="CMakeProjectManager.BaseEnvironmentBase" type="int">2</value> 
<value key="CMakeProjectManager.CMakeRunConfiguation.Title" type="QString">matching_test</value> 
<value key="CMakeProjectManager.CMakeRunConfiguration.Arguments" type="QString">camera.pklogitech.yml 0 .</value> 

tak więc argumenty, które są użyte są "camera.pklogitech.yml 0." dla tego wpisu binarnego ...

Domyślam się, że skrypt mógłby zostać wprowadzony i ustawić te wartości domyślnie ... szkoda, że ​​QT Creator nie zapewnia ładniejszy interfejs do ich importowania.