CMake - 반복문

mohadang·2022년 8월 12일
0

CMake

목록 보기
11/24
post-thumbnail

foreach

foreach(item "A" "B" "C")
  message("  ${item}")
endforeach()

A
B
C
#set(mylist a b c)
set(mylist "a;b;c")
foreach(item ${mylist})
  message(${item})
endforeach()

a
b
c

while

set(a "")
set(condition TRUE)

message("Loop with condition as variable:")
while(condition)
  set(a "${a}x")
  message("  a = ${a}")
  string(COMPARE NOTEQUAL "${a}" "xxxxx" condition)
endwhile()

a = x
a = xx
a = xxx
a = xxxx
a = xxxxx
set(a "")

message("Loop with explicit condition:")
while(NOT a STREQUAL "xxxxx")
  set(a "${a}x")
  message("  a = ${a}")
endwhile()

a = x
a = xx
a = xxx
a = xxxx
a = xxxxx

Range

message("Range with limits:")
foreach(x RANGE 3 8)
  message("  ${x}")
endforeach()

3
4
5
6
7
8
message("Range with step:")
foreach(x RANGE 10 14 2)    # step is 2
  message("  ${x}")
endforeach()

10
12
14

break

message("Stop 'while' loop:")
set(a "")
while(TRUE)
  set(a "${a}x")
  message("  ${a}")
  string(COMPARE EQUAL "${a}" "xxx" done)
  if(done)
    break()
  endif()
endwhile()

continue(version 3.2 부터 가능)

cmake_minimum_required(VERSION 3.2)
project(foo NONE)

message("Loop with 'continue':")
foreach(x RANGE 10)
  if(x EQUAL 2 OR x EQUAL 5)
    message("  skip ${x}")
    continue()
  endif()
  message("  process ${x}")
endforeach()
profile
mohadang

0개의 댓글