10.03.2016

O swoim skrypcie kompilującym, napisanym w php

Uważam, że skrypt "ccpp.php" jest całkowicie wystarczający i uniwersalny dla średnich i małych projektów, które korzystają z dowolnego środowiska programistycznego. Potrzebna jest jedynie wiedza o tym w jaki sposób uruchamiany jest kompilator z linii poleceń, w powłoce tekstowej systemu i dowolne narzędzie do odpalenia samego skryptu (np. phc-win, nawet nie trzeba instalować powłoki php).
Skrypt wykonuje same proste czynności, w sposób zautomatyzowany:
1. Przeszukiwane są określone katalogi w celu znalezienia plików źródłowych.
2. Kompilowane są moduły dla każdego pliku źródłowego, jeżeli uległy zmianie (data modyfikacji źródła jest nowsza od daty modyfikacji lub utworzenia modułu).
3. Linkowane są wszystkie moduły.

W tym projekcie, obecny plik konfiguracyjny "!ccpp.txt" dla skryptu kompilującego wygląda następująco:

-c
-mwindows -luser32 -lmingw32 -lSDLmain -lSDL -lSDL_image -s
framework_dependent
engine2d
.

Pierwsza linijka to opcje kompilatora, użyte przy kompilacji poszczególnych plików źródłowych. Druga linia to opcje użyte przy linkowaniu całości. Pozostałe linijki to lista katalogów, z których mają być brane pliki do kompilacji (ostatni katalog to kropka, czyli aktualny folder, z którego został odpalony skrypt kompilujący).

Opcje z linii poleceń dla skryptu są następujące:
# ccpp --help
Easy compiling for c++ v2.1, usage: ccpp [options]

-e (default '_')
-cpp (default '.cpp')
-obj (default '.o')
-exe (default 'main.exe')
-compiler (default 'g++')

-linker (default 'g++')
-stop (default ' error: ')
-makefile (default '!ccpp.txt')

Jest możliwość wyłączenia niektórych plików źródłowych z kompilacji, poprzez opcję -e, która  określa prefiks w nazwie takiego pliku (domyślnie jest to znak "_").
Opcja -stop nakazuje zatrzymanie działania skryptu, po napotkaniu określonego tekstu w standardowym wyjściu komunikatów kompilatora (domyślnie jest to " error: ", bo g++ komunikuje w ten sposób błąd kompilacji). W zależności od potrzeby można też ustawić, poprzez tą opcję, zatrzymanie skryptu w przypadku ostrzeżenia (np. "warning:" dla g++), lub dla dowolnie innego przypadku, z określonym tekstem, po którym nie warto kontynuować dalszej kompilacji.

Brak komentarzy:

Prześlij komentarz