Development

CMake - 4부 (시스템 검사) - 마지막

chbae 2023. 4. 18. 06:08
320x100
반응형

CMake 1,2,3부에 이어 4부를 계속 이어 나간다. Step 5,6,7은 아래 문서를 읽어보길 바란다. 많은 내용이 없어 정리를 여기서 마치고자 한다. 필자는 http://www.cmake.org/cmake-tutorial/ 의 내용을 정리하고 있다.

Step 4: 시스템 검사

Step 4에서는 의존성을 체크한는 부분에 대해 소개한다. 아래 예제는 log와 exp 함수가 있는지에 대한 여부를  확인한다. CheckFunction Exists.cmake를 를 최상위 CMakeLists 파일에 아래와 같이 추가한다.

1:  # does this system provide the log and exp functions?  
2:  include (CheckFunctionExists.cmake)  
3:  check_function_exists (log HAVE_LOG)  
4:  check_function_exists (exp HAVE_EXP)

CMake가 위의 것들을 찾았으면 TutorialConfig.h.in을 수정한다.

1:  // does the platform provide exp and log functions?  
2:  #cmakedefine HAVE_LOG  
3:  #cmakedefine HAVE_EXP

최종 소스코드에서 사용하는 예제이다.

1:  // if we have both log and exp then use them  
2:  #if defined (HAVE_LOG) && defined (HAVE_EXP)  
3:   result = exp(log(x)*0.5);  
4:  #else // otherwise use an iterative approach  
5:   . . .
320x100