CMake: Różnice pomiędzy wersjami
(to w sumie bardziej interpreter niż kompilator) |
M (Dodaję szablon {{stopka}}) |
||
(Nie pokazano 5 wersji utworzonych przez 4 użytkowników) | |||
Linia 1: | Linia 1: | ||
{{programisto}} |
|||
{{programowanie}} |
{{programowanie}} |
||
⚫ | '''CMake''' – [[język programowania]] wysokiego poziomu, mający w założeniach zastąpić stary i niewygodny [[Make (program)|make]]. W miarę dokładania kolejnych funkcjonalności okazało się, że otrzymany twór stanowi kompletną [[maszyna Turinga|maszynę Turinga]], co całkowicie wyeliminowało konieczność używania jakiegokolwiek [[kompilator]]a czy [[interpreter]]a. Często mylnie nazywany „narzędziem do zarządzania procesem kompilacji” z powodu pierwotnego celu postawionego przez jego twórców. |
||
[[Plik:Cmake.svg|180px|thumb|Logo interpretera]] |
|||
⚫ | '''CMake''' – [[język programowania]] wysokiego poziomu, mający w założeniach zastąpić stary i niewygodny |
||
== Prostota == |
|||
Jest to jeden z najprostszych języków. Aby uzyskać najprostszy możliwy program, który [[Poradnik:Jak opierdalać się konkretnie|nic nie robi]], nie trzeba pisać żadnego maina. Pusty plik CMakeLists.txt w zupełności wystarczy. Obok niego tworzymy sobie katalog „build”, gdzie wchodzimy i po wykonaniu <code>cmake ..</code> możemy oglądać nasze logi w Czarnej Konsoli Hakerów™. |
|||
Kolejnym krokiem jest napisanie programu „żegnaj świecie”, co nie jest znacząco trudniejsze i sprowadza się do wywołania <code>message("Hello world!")</code>. Nie potrzebujemy żadnych „inkludów”, żadnego informowania o tym, czego chcemy używać. Najprostsze przypadki są już wbudowane w sam język. |
|||
== Zmienne == |
== Zmienne == |
||
Jeśli lubisz [[PHP]], to na pewno spodoba Ci się koncepcja pisania dolarów przy wszelkich zmiennych. Tutaj jest nawet ciekawiej, bo każda z nich jest ozdobiona wąsami z obu stron. Należy przy tym pamiętać, że ozdoby nakładamy tylko przy odczycie, inaczej wystąpi błąd. Dlaczego? [[Bo tak|Nie pytaj]], taka jest tutejsza składnia, przyzwyczaisz się. |
Jeśli lubisz [[PHP]] lub [[kapitalizm]], to na pewno spodoba Ci się koncepcja pisania dolarów przy wszelkich zmiennych. Tutaj jest nawet ciekawiej, bo każda z nich jest ozdobiona wąsami z obu stron. Należy przy tym pamiętać, że ozdoby nakładamy tylko przy odczycie, inaczej wystąpi błąd. Dlaczego? [[Bo tak|Nie pytaj]], taka jest tutejsza składnia, przyzwyczaisz się. |
||
<pre>set(witaj "Hello world!") |
<pre>set(witaj "Hello world!") |
||
message("${witaj}")</pre> |
message("${witaj}")</pre> |
||
== Pętle == |
== Pętle == |
||
Przykładowa pętelka: |
|||
Tutaj sytuacja jest równie prosta. Możemy używać typowej pętli while i to nam w zupełności wystarczy do zapisania wszystkiego. Ewentualnie możemy użyć foreach do wygodnego przechodzenia przez wszystkie elementy jakiejś listy. Przykładowa pętelka: |
|||
<pre>cmake_minimum_required(VERSION 3.5) |
<pre>cmake_minimum_required(VERSION 3.5) |
||
set(counter 1) |
set(counter 1) |
||
Linia 21: | Linia 17: | ||
set(counter ${temp_counter}) |
set(counter ${temp_counter}) |
||
endwhile()</pre> |
endwhile()</pre> |
||
Jak widać, dodaliśmy w pierwszej linijce deklarację używanej wersji języka, żeby nasz interpreter wypluwał nam o jednego warninga mniej. Do wszelkich porównań mamy normalne słowa, takie jak LESS, GREATER czy EQUAL zamiast jakichś dziwacznych operatorów znanych w innych językach. Za pomocą uniwersalnej funkcji math jesteśmy w stanie policzyć wszystko, co jest do policzenia. |
Jak widać, dodaliśmy w pierwszej linijce deklarację używanej wersji języka, żeby nasz interpreter wypluwał nam o jednego warninga mniej. Do wszelkich porównań mamy normalne słowa, takie jak LESS, GREATER czy EQUAL zamiast jakichś dziwacznych operatorów znanych w innych językach. Za pomocą uniwersalnej funkcji math jesteśmy w stanie policzyć wszystko, co jest do policzenia. Proste? |
||
== Funkcje == |
|||
Tutaj również nie ma wielkiej filozofii, nazywamy sobie jakoś naszą funkcję i ją wywołujemy. |
|||
== Zobacz też == |
|||
<pre>cmake_minimum_required(VERSION 3.5) |
|||
* [[C (język programowania)]] |
|||
function(printNumbers from to) |
|||
* [[C++]] |
|||
while((${from} LESS ${to}) OR (${from} EQUAL ${to})) |
|||
* [[C Sharp|C#]] |
|||
message(${from}) |
|||
* [[CCC]] |
|||
math(EXPR next "${from}+1") |
|||
set(from ${next}) |
|||
{{stopka}} |
|||
endwhile() |
|||
endfunction() |
|||
printNumbers(1 5) |
|||
printNumbers(7 9)</pre> |
|||
W przykładzie widać, że operatory logiczne również są proste i intuicyjne. Mamy AND, OR i NOT. To nam w zupełności wystarczy do zapisania dowolnych, nawet najbardziej dziwacznych warunków logicznych, jakie będziemy chcieli tutaj zastosować. |
|||
== Coś trudniejszego == |
|||
Zalety tego języka można wymieniać długo. No dobra, to pójdźmy od razu na głęboką wodę. Chcemy pobrać sobie stronę główną Nonsy i zapisać ją do pliku index.html na dysku. Pewnie myślisz, że musimy szukać jakiejś biblioteki do obsługi sieci, co? Nic z tego, kod robiący to zadanie można zapisać w dwóch prostych linijkach, o tak: |
|||
<pre>cmake_minimum_required(VERSION 3.5) |
|||
file(DOWNLOAD "https://nonsa.pl/wiki/Strona główna" "${CMAKE_BINARY_DIR}/index.html")</pre> |
|||
Nie musisz wiedzieć, jak działa HTTPS, nie musisz się zastanawiać, jakiej biblioteki użyć. To wszystko jest już gotowe, twórcy języka zadbali o to, aby każda czynność była w nim prosta i bezbolesna. Wpisujesz dwie linijki i masz to, czego oczekujesz. Szybkie, proste i przyjemne. Warto wiedzieć, że CMAKE_SOURCE_DIR oznacza katalog z kodem źródłowym, a CMAKE_BINARY_DIR to folder, do którego trafią binarki. |
|||
[[Kategoria:Języki programowania]] |
[[Kategoria:Języki programowania]] |
Aktualna wersja na dzień 01:09, 21 gru 2021
Ten artykuł jest częścią cyklu naukowego języki komputerowe. |
Języki programowania: |
Inne języki komputerowe: |
|
edytuj ten szablon |
CMake – język programowania wysokiego poziomu, mający w założeniach zastąpić stary i niewygodny make. W miarę dokładania kolejnych funkcjonalności okazało się, że otrzymany twór stanowi kompletną maszynę Turinga, co całkowicie wyeliminowało konieczność używania jakiegokolwiek kompilatora czy interpretera. Często mylnie nazywany „narzędziem do zarządzania procesem kompilacji” z powodu pierwotnego celu postawionego przez jego twórców.
Zmienne[edytuj • edytuj kod]
Jeśli lubisz PHP lub kapitalizm, to na pewno spodoba Ci się koncepcja pisania dolarów przy wszelkich zmiennych. Tutaj jest nawet ciekawiej, bo każda z nich jest ozdobiona wąsami z obu stron. Należy przy tym pamiętać, że ozdoby nakładamy tylko przy odczycie, inaczej wystąpi błąd. Dlaczego? Nie pytaj, taka jest tutejsza składnia, przyzwyczaisz się.
set(witaj "Hello world!") message("${witaj}")
Pętle[edytuj • edytuj kod]
Przykładowa pętelka:
cmake_minimum_required(VERSION 3.5) set(counter 1) set(max_counter 10) while(${counter} LESS ${max_counter}) message(${counter}) math(EXPR temp_counter "${counter}+1") set(counter ${temp_counter}) endwhile()
Jak widać, dodaliśmy w pierwszej linijce deklarację używanej wersji języka, żeby nasz interpreter wypluwał nam o jednego warninga mniej. Do wszelkich porównań mamy normalne słowa, takie jak LESS, GREATER czy EQUAL zamiast jakichś dziwacznych operatorów znanych w innych językach. Za pomocą uniwersalnej funkcji math jesteśmy w stanie policzyć wszystko, co jest do policzenia. Proste?