LINUX.ORG.RU

gcc + cmake и precompiled headers перегенерация *.gch после изменения *.h


0

4

Доброго времени суток!

Возникает следующая проблема - использую cmake, подключил precompiled headers. Но вот беда, если меняется какой нибудь заголовочный файл, перегенерация *.gch не происходит:

т.е. есть след код:

// stdafx.h
#include "main.h"
#include "test.h"
#include 100500 других заголовочных файлов
CMakeLists.txt
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} )
запускаю make в бинарном каталоге - все ок - сгенерировалось, собралось, работает.

Если поменять в каталоге с исходниками my.h, то в .../stdafx.h.gch/Debug.gch - лежит старый (видно по дате, размеру, командной строке в eclipse) т.е. я ожидал что он перестроится заного.

Теперь, собственно, вопрос: Как заставить пересобирать *.gch-ки с помощью cmake, может волшебные ключи есть какие? Как вы в своих проектах решили такую проблему?

Спасибо!



Последнее исправление: art_corp (всего исправлений: 3)

Ответ на: комментарий от JackyTreehorn

да похоже модуль расширения старый был

PCHSupport.cmake - нарыл в интернете другую его версию там кода в два раза больше, как раз есть проверка на включаемые в главный заголовочный файл других хедеров, а затем их проверка.

art_corp
() автор топика
Ответ на: комментарий от JackyTreehorn

на все 100% сказать не могу, на тестовом проекте, работает - переношу на основной. вот если интересно ссылка на сам модуль: https://github.com/luceneplusplus/LucenePlusPlus/blob/master/cmake/PCHSupport.cmake

и еще, они похожи в одном message только разкомментированы.
http://public.kitware.com/Bug/file_download.php?file_id=901&type=bug

P.S. Вроде как, судя по коду, они универсальны для нескольких компиляторов, в том числе и студии.

art_corp
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.