mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-03 12:49:50 -05:00
COMP: Avoid String.c inclusion by Compaq templates
The Compaq compiler (on VMS) includes 'String.c' in source files that use the stl string while looking for template definitions. This was the true cause of double-inclusion of the 'kwsysPrivate.h' header. We work around the problem by conditionally compiling the entire source file on a condition only true when really building the source.
This commit is contained in:
@@ -1286,6 +1286,7 @@ if [ "x${cmake_cxx_flags}" != "x" ]; then
|
||||
cmake_cxx_flags="${cmake_cxx_flags} "
|
||||
fi
|
||||
|
||||
cmake_c_flags_String="-DKWSYS_STRING_C"
|
||||
cmake_c_flags="${cmake_c_flags}-I`cmake_escape \"${cmake_source_dir}/Source\"` \
|
||||
-I`cmake_escape \"${cmake_bootstrap_dir}\"`"
|
||||
cmake_cxx_flags="${cmake_cxx_flags}-I`cmake_escape \"${cmake_source_dir}/Source\"` \
|
||||
@@ -1305,8 +1306,9 @@ for a in ${CMAKE_C_SOURCES}; do
|
||||
done
|
||||
for a in ${KWSYS_C_SOURCES} ${KWSYS_C_MINGW_SOURCES}; do
|
||||
src=`cmake_escape "${cmake_source_dir}/Source/kwsys/${a}.c"`
|
||||
src_flags=`eval echo \\${cmake_c_flags_\${a}}`
|
||||
echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
|
||||
echo " ${cmake_c_compiler} ${cmake_c_flags} -DKWSYS_NAMESPACE=cmsys -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
|
||||
echo " ${cmake_c_compiler} ${cmake_c_flags} -DKWSYS_NAMESPACE=cmsys ${src_flags} -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
|
||||
done
|
||||
for a in ${KWSYS_CXX_SOURCES}; do
|
||||
src=`cmake_escape "${cmake_source_dir}/Source/kwsys/${a}.cxx"`
|
||||
|
||||
Reference in New Issue
Block a user