99 бутылок: CMake
57. CMake. Писать «Песни про пиво» на различных языках программирования — давнее моё увлечение, ему столько же лет, сколько этому блогу. В этот раз «поёт»
CMake — автоматизированная система сборки пакетов, имеющая развитый, хотя и несколько уродливый макроязык. Инструкции, большей частью, знакомые, разве что способ возврата значений несколько из макросов и функций несколько странный — через параметры и глобальные переменные.
Никакого ООП, само собой, и всё весьма примитивно по меркам развитых языков.
# 99.cmake
# to run: cmake -P 99.cmake
# Written by Evgeny Stepanischev, 2015
cmake_minimum_required(VERSION 3.0)
macro(bottles beer ret)
if(${beer} EQUAL 0)
set(${ret} "No bottles")
elseif(${beer} EQUAL 1)
set(${ret} "1 bottle")
else()
set(${ret} "${${beer}} bottles")
endif()
endmacro()
foreach(beer RANGE 99 1 -1)
bottles(beer bottles)
math(EXPR beer "${beer}-1")
bottles(beer bottless)
message("${bottles} of beer on the wall, ${bottles}.")
message("Take one down and pass it around, ")
message("${bottless} of beer on the wall.")
message("")
endforeach()
message("No more bottles of beer on the wall, no more bottles of beer.")
message("Go to the store and buy some more, 99 bottles of beer on the wall.")Строка для запуска во второй строке файла.
Комментарии 3
А запускать можно командой «cmake -P имя_файла», тогда и мусора не будет.