if
# script.cmake
cmake_minimum_required(VERSION 3.1)
if(TRUE)
message("cond 1") # 실행
endif()
if(FALSE)
message("cond 2")
endif()
if(YES)
message("cond 3") # 실행
endif()
if(NO)
message("cond 4")
endif()
if(ON)
message("cond 5") # 실행
endif()
if(OFF)
message("cond 6")
endif()
set(A "YES")
set(B "NO")
if(A)
message("cond 7") # 실행
endif()
if(B)
message("cond 8")
endif()
CMP0054
# 문자열 검사 1
set(A "")
if(A STREQUAL "") # 변수를 사용하여 비교
message("Value of A is empty string") # 출력
endif()
문자열 검사 2
set(A "X") # A 변수 선언
set(B "A") # A 변수 이름을 B 변수에 저장
if(${B} STREQUAL "X") # ${B} -> A 해석으로 A 변수 접근하여 문자열 "X" 비교
message("Value of ${B} is an empty string") # ${B} -> A 해석하여 출력
endif()
- CMP0054 가 OLD로 설정 되어 있거나 CMake 3.1보다 낮은 경우 " 은 무시된다.
# cmake_minimum_required(VERSION 2.8) 일경우
cmake_minimum_required(VERSION 2.8)
set(A "X")
set(B "A")
if("${B}" STREQUAL "X")
# 출력 되지만 CMP0054 정잭 관련 경고도 출력
message("Value of ${B} is an empty string")
endif()
# cmake_minimum_required(VERSION 3.2) 일경우
cmake_minimum_required(VERSION 3.2)
set(A "X")
set(B "A")
if("${B}" STREQUAL "X") # 문자열 "${B}" 와 "X"를 비교
message("Value of ${B} is an empty string") # 출력 안됨
endif()
- "를 사용하여 변수 이름을 사용하지 않도록 주의 해야한다.
cmake_minimum_required(VERSION 2.8)
# cmake_minimum_required(VERSION 3.2)
set("Jane Doe" "") # " 를 사용한 변수 이름들
set("xJane Doe" "x")
set("!Jane Doe" "!")
set(" Jane Doe" " ")
set(A "Jane Doe")
message("A = ${A}") # A = Jane Doe
if("x${A}" STREQUAL "x")
message("A is empty (1)") # VERSION 2.8 일 경우 출력, " 가 무시되어서
endif()
if("!${A}" STREQUAL "!")
message("A is empty (2)") # VERSION 2.8 일 경우 출력
endif()
if(" ${A}" STREQUAL " ")
message("A is empty (3)") # VERSION 2.8 일 경우 출력
endif()