if 명령 조건 활용 방식

 

전체 코드 구조

cmake_minimum_required(VERSION 3.19)
set(CMAKE_CXX_STANDARD 17)

project(if_command_test)

set(SDK_ROOT "")

if (NOT DEFINED SDK_ROOT)
    message("SDK ROOT 없음")
else()
    message("SDK ROOT 존재함")
endif()


add_executable(${PROJECT_NAME} main.cpp)

 

 

1. 변수 존재 확인 방법

if 안의 DEFINED 키워드는 주어진 <NAME>을 가진 변수, 캐시 변수, 환경 변수가 정의되어있으면 참을 반환한다. 변수의 실제 값은 중요하지 않다.

set(SDK_ROOT "")

if (NOT DEFINED SDK_ROOT)
    message("SDK ROOT 없음")
else()
    message("SDK ROOT 존재함")
endif()

 

출력

[cmake] SDK ROOT 존재함

 

`if(DEFINED CACHE{someName})` 이렇게 조건식을 주면 오직 캐시 변수에 대해서만 해당 변수가 존재하는지 확인할 수 있다.

 

 

 

 

 

 

참고 자료

https://blog.naver.com/lifeisforu/222676597839

https://cmake.org/cmake/help/latest/command/if.html

https://stackoverflow.com/questions/31808634/checking-for-cmake-variables