[CMake] CMAKE_CFG_INTDIR expands to "$"(OutDir)
McKay Davis
mckayd at yahoo.com
Mon Sep 17 13:48:49 EDT 2007
I'm experiencing trouble getting cmake to copy DLL files to my executable
output path in visual studio after the target is built.
It seems that the CMAKE_CFG_INTDIR variable is being expanded to: "$"(OutDir)
This causes the .dll files to be copied to the filename '$(OutDir)', not into
the 'Debug' or 'Release' sub-directory as I would expect.
Here is the relevant cmake code:
IF(WIN32)
FILE(GLOB QT_DLLS "${QT_LIBRARY_DIR}/../bin/*.dll")
GET_FILENAME_COMPONENT(PTHREAD_LIBRARY_DIR "${PTHREAD_LIBRARY}" PATH)
FILE(GLOB PTHREAD_DLLS "${PTHREAD_LIBRARY_DIR}/*.dll")
SET(DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
FOREACH(DLL_FILENAME ${QT_DLLS} ${PTHREAD_DLLS})
ADD_CUSTOM_COMMAND(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${DLL_FILENAME} ${DESTINATION}
VERBATIM)
MESSAGE(COPY ${DLL_FILENAME} ${DESTINATION})
ENDFOREACH(DLL_FILENAME)
ENDIF(WIN32)
And here are a few lines from my VC++ buildlog.htm:
"C:\Program Files (x86)\CMake 2.4\bin\cmake.exe" -E copy
C:/Qt/4.3.1/lib/../bin/QtXml4.dll C:/bin/viewer/"$"(OutDir)
"C:\Program Files (x86)\CMake 2.4\bin\cmake.exe" -E copy
C:/Qt/4.3.1/lib/../bin/QtXmld4.dll C:/bin/viewer/"$"(OutDir)
For some reason either cmake is quoting the $ in the expansion of the
${CMAKE_CFG_INTDIR} variable. Does anyone know a fix for this?
-McKay D
____________________________________________________________________________________
Don't let your dream ride pass you by. Make it a reality with Yahoo! Autos.
http://autos.yahoo.com/index.html
More information about the CMake
mailing list