为 CMake 添加 MSVC 预编译头文件支持
CMake 官方版本的自带功能是不支持使用预编译头文件的,但是有很多人要求这个特性。在 CMake 的bugtrack系统中这个Feature Request的帖子中已经有人上传了解决这个问题的扩展模块,但是是分MSVC和Makefiles两个版本的,还没有整合成一个统一的预编译头的命令接口。
下面是我从bugtrace系统中找到的MSVC版的解决方案。这个是我在实际工程中使用过的,非常好,没有问题。
文件:MSVCPCH.cmake
MACRO(USE_MSVC_PCH PCH_TARGET PCH_HEADER_FILE PCH_SOURCE_FILE)
IF(MSVC)
GET_FILENAME_COMPONENT(PCH_NAME ${PCH_HEADER_FILE} NAME_WE)
# Compute a custom name for the precompiled header.
IF(CMAKE_CONFIGURATION_TYPES)
SET(PCH_DIR "${CMAKE_CURRENT_BINARY_DIR}/PCH/${CMAKE_CFG_INTDIR}