Wie man Dateierweiterungen mit cmake (oder einem anderen tragbaren Build-Tool) entfernt?

8

Ich arbeite an einem Projekt, das aus mehreren kleinen ausführbaren Dateien besteht. Die ausführbaren Dateien werden vom Terminal (oder der Eingabeaufforderung) ausgeführt und können in einer beliebigen Programmiersprache geschrieben werden. Diejenigen, die in interpretierten Sprachen geschrieben sind, haben eine Shebang-Linie für Unixy-Systeme, während ihre Dateierweiterung unter Windows zur PATHEXT-Umgebungsvariablen hinzugefügt wird.

Um die Verwendung der ausführbaren Dateien über alle Programmiersprachen und beide großen Plattformgruppen hinweg konsistent zu machen, muss ich die Dateierweiterung vom Dateinamen der interpretierten Programme auf Unixy-Systemen entfernen. (Mit "konsistente Verwendung" meine ich: Geben Sie einfach den Namen des Programms ein, um es zu starten, ohne die Dateierweiterung angeben zu müssen.)

Um mehr ins Detail zu gehen, nehmen wir an, ich schreibe etwas wie die folgende CMakeLists-Datei:

%Vor%

Dann möchte ich banana.cpp und grape.hs auf die übliche Weise kompilieren, während ich möchte, dass die Dateierweiterungen von orange.py und strawberry.lua bedingt entfernt werden, abhängig von der Plattform. Daher sollte das Verzeichnis bin folgende Dateien auf einem Unixy-System enthalten:

%Vor%

und die folgenden unter Windows:

%Vor%

Wie mache ich das?

    
Julian 25.04.2012, 16:37
quelle

1 Antwort

6

Wenn Sie diese Skriptdateien nicht als CMake-Ziele behandeln und stattdessen als Dateien behandeln, sollten Sie Folgendes tun können:

%Vor%


Wenn Sie eine Funktion verwenden möchten, anstatt install (FILES ... mehrmals aufzurufen, können Sie Folgendes tun:

%Vor%     
Fraser 25.04.2012, 17:49
quelle

Tags und Links