Доброго времени суток!
Возникает следующая проблема - использую cmake, подключил precompiled headers. Но вот беда, если меняется какой нибудь заголовочный файл, перегенерация *.gch не происходит:
т.е. есть след код:
// stdafx.h
#include "main.h"
#include "test.h"
#include 100500 других заголовочных файлов
cmake_minimum_required (VERSION 2.6)
project(test)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
)
set(SOURCES
main.cpp
test.cpp
)
set(HEADERS
stdafx.h
main.h
test.h
)
set(RESOURCES
)
# Создаем приложение
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${RESOURCES})
#Генерируем прикомпилинг хеадер
include(PCHSupport)
if(PCHSupport_FOUND)
add_precompiled_header(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/stdafx.h)
endif(PCHSupport_FOUND)
add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD COMMAND rm ARGS -rfv ${CCOPY_DST} )
add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD COMMAND ln ARGS -sv ${CCOPY_SRC} ${CCOPY_DST} )
Если поменять в каталоге с исходниками my.h, то в .../stdafx.h.gch/Debug.gch - лежит старый (видно по дате, размеру, командной строке в eclipse) т.е. я ожидал что он перестроится заного.
Теперь, собственно, вопрос: Как заставить пересобирать *.gch-ки с помощью cmake, может волшебные ключи есть какие? Как вы в своих проектах решили такую проблему?
Спасибо!