# CMake 최신 기능과 업데이트

CMake의 최신 기능과 업데이트는 빌드 시스템의 효율성을 높이고 다양한 플랫폼에서의 호환성을 강화하는 데 중점을 두고 있다. 2024년 8월 현재 최신 버전은 CMake 3.30으로, 다양한 새로운 기능과 수정 사항들이 포함되었다.

#### 주요 업데이트 내용

1. **새로운 언어 및 컴파일러 지원**:
   * C++26 및 CUDA 26 표준에 대한 지원이 강화되었다. 이로 인해 최신 언어 기능을 사용하는 프로젝트에서 CMake를 더욱 효율적으로 활용할 수 있게 되었다.
   * OrangeC 컴파일러에 대한 지원이 추가되어, 더 다양한 환경에서 CMake를 사용할 수 있게 되었다.
2. **보안 및 네트워크 기능 개선**:
   * `CMAKE_TLS_VERSION` 및 `CMAKE_TLS_VERIFY` 변수들이 추가되어, `https://` URL을 사용하는 파일 다운로드 및 업로드 시 최소 TLS 버전을 설정할 수 있다. 이는 네트워크 보안을 강화하는 데 중요한 역할을 한다.
3. **Visual Studio 통합 강화**:
   * Visual Studio 프로젝트 파일(`.vcxproj`)에 대한 디버그 라이브러리 사용 여부를 명시적으로 제어할 수 있는 `CMAKE_VS_USE_DEBUG_LIBRARIES` 변수가 추가되었다. 이로 인해 Visual Studio와의 통합이 더욱 매끄럽게 이루어진다.
4. **모듈 및 패키지 관리 개선**:
   * `FindCUDAToolkit` 모듈은 이제 `libnvfatbin`과 `libnvfatbin_static` 라이브러리를 지원하며, CUDA 컴파일러 설정이 더욱 유연해졌다.
   * `FindPython` 및 `FindPython3` 모듈은 Python 디버그 버전에 대한 향상된 지원을 제공하며, 다양한 환경에서의 Python 프로젝트 관리가 개선되었다.
5. **제너레이터 표현식 및 정책 업데이트**:
   * 새로운 제너레이터 표현식이 추가되어 빌드 설정에서의 조건부 논리를 더 쉽게 구현할 수 있게 되었으며, 일부 기존 제너레이터 표현식의 동작이 개선되었다.
   * 정책 `CMP0163` 및 `CMP0166`가 추가되었으며, 이는 프로젝트의 빌드 구성 요소 간의 종속성을 관리하는 데 도움을 준다.
6. **기타 개선 사항**:
   * `CTest` 및 `CPack` 도구에 여러 개선 사항이 추가되었다. 예를 들어, `CPack`의 Inno Setup 및 NuGet 생성기가 새로운 환경에서도 사용할 수 있게 되었다.

이러한 업데이트는 CMake가 다양한 플랫폼과 복잡한 빌드 환경에서 더욱 강력하게 작동하도록 개선하는 데 기여한다. 최신 기능을 활용하여 프로젝트의 빌드 환경을 최적화할 수 있다.

***

관련 자료:

* CMake Release Notes, CMake 3.30 Documentation
* Kitware, CMake 3.30.0-rc4 Features and CMake 3.28.3 Updates
