628 Stimmen

Suche nach einem 'cmake clean'-Befehl zum Aufräumen der CMake-Ausgabe

Genauso wie make clean alle Dateien löscht, die ein Makefile erzeugt hat, würde ich gerne dasselbe mit CMake tun. Allzu oft ertappe ich mich dabei, wie ich manuell durch Verzeichnisse gehe und Dateien wie cmake_install.cmake y CMakeCache.txt und die CMakeFiles Mappen.

Gibt es einen Befehl wie cmake clean um all diese Dateien automatisch zu entfernen? Idealerweise sollte dies der rekursiven Struktur folgen, die im aktuellen Verzeichnis in der CMakeLists.txt Datei.

2voto

yanpas Punkte 2059

Ich verwende für solche Zwecke das folgende Shell-Skript:

#!/bin/bash

for fld in $(find -name "CMakeLists.txt" -printf '%h ')
do
    for cmakefile in CMakeCache.txt cmake_install.cmake CTestTestfile.cmake CMakeFiles Makefile
    do
        rm -rfv $fld/$cmakefile
    done
done

Wenn Sie Windows verwenden, benutzen Sie Cygwin für dieses Skript.

2voto

Krisna Pranav Punkte 59

Löscht die cmake-Build-Ausgabe:

Befehlszeile:

$ rm -rf [folder that you builded the project]/
$ cmake --build .

Cmake:

cmake --build . --target clean

0voto

Alexander Lobov Punkte 392

Um die Reinigung zu vereinfachen, wenn Sie "out of source" bauen (d.h. Sie bauen in der build Verzeichnis), verwende ich das folgende Skript:

$ cat ~/bin/cmake-clean-build
#!/bin/bash

if [ -d ../build ]; then
    cd ..
    rm -rf build
    mkdir build
    cd build
else
    echo "build directory DOES NOT exist"
fi

Jedes Mal, wenn Sie aufräumen müssen, sollten Sie dieses Skript aus dem build Verzeichnis:

. cmake-clean-build

-1voto

Dies ist ziemlich alt, aber wenn Sie den cmake-build-debug-Ordner komplett entfernen, sollte beim Kompilieren mit cmake automatisch ein neuer cmake-build-debug-Ordner mit allem, was Sie brauchen, erstellt werden. Funktioniert besonders gut in CLion.

-1voto

Homer6 Punkte 14461

Wenn Sie

cmake .

werden die CMake-Dateien neu generiert. Dies ist notwendig, wenn Sie eine neue Datei zu einem Quellcode-Ordner hinzufügen, der z. B. mit *.cc markiert ist.

Dies ist zwar keine "Säuberung" im eigentlichen Sinne, aber es "säubert" die CMake-Dateien, indem es die Caches neu generiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X