2022년 9월 7일 수요일

cmake try_compile / try_run

 CMakeLists.txt 에서 컴파일 옵션이나 지원하는 기능을 확인할 때 try_compile 이나 try_run 을 쓰는 경우가 있다. 이때 실제 이 명령에서 어떻게 확인했는가를 알고 싶을 때 OUTPUT_VARIABLE 을 설정하면 된다.

예)

try_run(RUN_${FEATURE} COMPILE_${FEATURE}
${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${FILE}.cpp
CMAKE_FLAGS ${BENCHMARK_CXX_LINKER_FLAGS}
LINK_LIBRARIES ${BENCHMARK_CXX_LIBRARIES}
OUTPUT_VARIABLE TRY_OUT)
message("TRY_OUT: ${TRY_OUT}")

위 예에서는 실제 실행했던 명령이나 결과값을 TRY_OUT 이란 변수에 저장하고, 이 내용을 message 를 통해서 출력해 준다. 이렇게 하면 실제 어떤 컴파일러와 옵션으로 컴파일 및 링킹을 했고 결과를 어떻게 확인했는지 알수 있다.