** PCH Support for NMake with VS2012
NMAKE-VS2012 Error LNK2011 while NMAKE-VS2010 does not complain we need to link the pch.obj file see http://msdn.microsoft.com/en-us/library/3ay26wa2(v=vs.110).aspx ** PCH Support for Ninja Ninja need to add property OBJECT_DEPENDS for using PCH OBJECT_OUTPUTS for create PCH see http://public.kitware.com/pipermail/cmake-developers/2012-March/003653.html
This commit is contained in:
parent
6d10e3189c
commit
f10b6613cf
1 changed files with 15 additions and 0 deletions
|
@ -209,6 +209,9 @@ MACRO(PCH_SET_COMPILE_COMMAND _inputcpp _compile_FLAGS)
|
||||||
IF(MSVC)
|
IF(MSVC)
|
||||||
GET_PDB_FILENAME(PDB_FILE ${_PCH_current_target})
|
GET_PDB_FILENAME(PDB_FILE ${_PCH_current_target})
|
||||||
SET(PCH_COMMAND ${CMAKE_CXX_COMPILER} ${pchsupport_compiler_cxx_arg1} ${_compile_FLAGS} /Yc /Fp"${PCH_OUTPUT}" ${_inputcpp} /Fd"${PDB_FILE}" /c /Fo"${PCH_OUTPUT}.obj")
|
SET(PCH_COMMAND ${CMAKE_CXX_COMPILER} ${pchsupport_compiler_cxx_arg1} ${_compile_FLAGS} /Yc /Fp"${PCH_OUTPUT}" ${_inputcpp} /Fd"${PDB_FILE}" /c /Fo"${PCH_OUTPUT}.obj")
|
||||||
|
# Ninja PCH Support
|
||||||
|
# http://public.kitware.com/pipermail/cmake-developers/2012-March/003653.html
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(${_inputcpp} PROPERTIES OBJECT_OUTPUTS "${PCH_OUTPUT}.obj")
|
||||||
ELSE(MSVC)
|
ELSE(MSVC)
|
||||||
SET(HEADER_FORMAT "c++-header")
|
SET(HEADER_FORMAT "c++-header")
|
||||||
SET(_FLAGS "")
|
SET(_FLAGS "")
|
||||||
|
@ -268,6 +271,18 @@ MACRO(ADD_PRECOMPILED_HEADER_TO_TARGET _targetName)
|
||||||
|
|
||||||
IF(MSVC)
|
IF(MSVC)
|
||||||
SET(_target_cflags "${oldProps} /Yu\"${PCH_INPUT}\" /FI\"${PCH_INPUT}\" /Fp\"${PCH_OUTPUT}\"")
|
SET(_target_cflags "${oldProps} /Yu\"${PCH_INPUT}\" /FI\"${PCH_INPUT}\" /Fp\"${PCH_OUTPUT}\"")
|
||||||
|
# Ninja PCH Support
|
||||||
|
# http://public.kitware.com/pipermail/cmake-developers/2012-March/003653.html
|
||||||
|
SET_TARGET_PROPERTIES(${_targetName} PROPERTIES OBJECT_DEPENDS "${PCH_OUTPUT}")
|
||||||
|
|
||||||
|
# NMAKE-VS2012 Error LNK2011 (NMAKE-VS2010 do not complain)
|
||||||
|
# we need to link the pch.obj file, see http://msdn.microsoft.com/en-us/library/3ay26wa2(v=vs.110).aspx
|
||||||
|
GET_TARGET_PROPERTY(DEPS ${_targetName} LINK_LIBRARIES)
|
||||||
|
if (NOT DEPS)
|
||||||
|
set (DEPS)
|
||||||
|
endif ()
|
||||||
|
list (INSERT DEPS 0 "${PCH_OUTPUT}.obj")
|
||||||
|
SET_TARGET_PROPERTIES(${_targetName} PROPERTIES LINK_LIBRARIES "${DEPS}")
|
||||||
ELSE(MSVC)
|
ELSE(MSVC)
|
||||||
# for use with distcc and gcc >4.0.1 if preprocessed files are accessible
|
# for use with distcc and gcc >4.0.1 if preprocessed files are accessible
|
||||||
# on all remote machines set
|
# on all remote machines set
|
||||||
|
|
Loading…
Reference in a new issue