McKay Davis wrote:
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?
Did you try it without the VERBATIM specified?

-Bill

_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to