Here is what I came up with:

# Function to install qt libraries. qtliblist is a list of libraries to install
# of the form "QTCORE QTGUI QTNETWORK QTXML QTTEST QTSQL" etc.
FUNCTION(install_qt_libs qtliblist componentname)
  IF (NOT APPLE)
    FOREACH(qtlib ${qtliblist})
      IF (NOT WIN32)
        IF (QT_${qtlib}_LIBRARY_RELEASE)
GET_FILENAME_COMPONENT(QT_LIB_DIR_tmp ${QT_$ {qtlib}_LIBRARY_RELEASE} PATH) GET_FILENAME_COMPONENT(QT_LIB_NAME_tmp ${QT_$ {qtlib}_LIBRARY_RELEASE} NAME) FILE(GLOB QT_LIB_LIST RELATIVE "${QT_LIB_DIR_tmp}" "${QT_$ {qtlib}_LIBRARY_RELEASE}*")
          INSTALL(CODE "
MESSAGE(STATUS \"Installing \${CMAKE_INSTALL_PREFIX}/$ {PV_INSTALL_LIB_DIR}/${QT_LIB_NAME_tmp}\")
                EXECUTE_PROCESS (WORKING_DIRECTORY ${QT_LIB_DIR_tmp}
                     COMMAND tar c ${QT_LIB_LIST}
COMMAND tar -xC \${CMAKE_INSTALL_PREFIX}/$ {PV_INSTALL_LIB_DIR})
                     " COMPONENT ${componentname})
        ENDIF (QT_${qtlib}_LIBRARY_RELEASE)
      ELSE (NOT WIN32)
# GET_FILENAME_COMPONENT(QT_DLL_PATH_tmp ${QT_QMAKE_EXECUTABLE} PATH)
#          INSTALL(FILES ${QT_DLL_PATH_tmp}/${qtlib}4.dll
#                  DESTINATION ${PV_INSTALL_BIN_DIR}
#                  COMPONENT ${componentname})
        set (BUILD_TYPES "Debug;Release" )
        foreach (btype ${BUILD_TYPES})
            string(TOUPPER ${btype} BTYPE)
file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$ {btype})

            string(TOUPPER ${qtlib} QTLIB)

if (NOT ${QT_${QTLIB}_LIBRARY_${BTYPE}} STREQUAL QT_$ {QTLIB}_LIBRARY_${BTYPE}-NOTFOUND) GET_FILENAME_COMPONENT(DLL_NAME ${QT_${QTLIB}_LIBRARY_ ${BTYPE}} NAME_WE) GET_FILENAME_COMPONENT(QT_BIN_PATH $ {QT_QMAKE_EXECUTABLE} PATH) #message(STATUS "**Generating Install Rule for $ {btype} Version of ${DLL_NAME} DLL")
                INSTALL(FILES ${QT_BIN_PATH}/${DLL_NAME}.dll
                    DESTINATION ${PV_INSTALL_BIN_DIR}
                    CONFIGURATIONS ${btype}
                    COMPONENT ${componentname} )
# this code is here to copy the qt libraries into the actual build folder # on windows in case the qt/bin directory is NOT on the users PATH anywhere # which can happen if there are multiple Qt versions installed or multiple # arch types (32 or 64 bit) installed. This is turned OFF for now but I
                # usually enable this.
                if (0)
                add_custom_target(Z_${qtlib}-${BTYPE}-Copy ALL
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${QT_BIN_PATH}/${DLL_NAME}.dll
                            ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${btype}/
COMMENT "Copying ${QT_BIN_PATH}/$ {DLL_NAME}.dll to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${btype}/")
                endif()
            endif()
         endforeach( btype ${BUILD_TYPES} )

      ENDIF (NOT WIN32)
    ENDFOREACH(qtlib)
  ENDIF (NOT APPLE)
ENDFUNCTION(install_qt_libs)

And you call it like this: From ${ParaView_SOURCE}/Applications/ ParaView/CMakeLists.txt

SET (qtliblist QtCore QtGui QtNetwork QtXml QtSql QtHelp QtWebKit QtCLucene Phonon QtXmlPatterns)

That seems to work fine for both Debug and Release modes. This was tested on Windows 7 x64 running Visual Studio 2008 RTM and CMake 2.6.4

Hope it helps. I git cloned to "git clone git:// echo1.bluequartz.net/ParaView.git" and have my changes there.
___________________________________________________________
Mike Jackson                      www.bluequartz.net

On Mar 18, 2010, at 3:06 PM, Dave Partyka wrote:

Its at the bottom of ParaView\CMake\ParaViewBrandingCPack.cmake.

On Thu, Mar 18, 2010 at 3:01 PM, Michael Jackson <[email protected] > wrote: Ok. I'm trying to peruse through the ParaView CMake files but am not really coming up where those install rules are set? Care to give a hint. I may have a patch for you...
__________________________________________________________
Mike Jackson                      www.bluequartz.net



On Mar 18, 2010, at 2:52 PM, Dave Partyka wrote:

It's a bug, the install rule doesn't respect configuration type.

On Thu, Mar 18, 2010 at 2:46 PM, Mike Jackson <[email protected] > wrote:
This is with ParaView CVS HEAD and VS 2008 running on Windows 7. When
I build a "Debug" version then run the "INSTALL" project in the
Paraview.sln file I get the NON-Debug versions of the Qt libraries. I
have to go back and manually copy the libraries from the Qt
Installation location into the "bin" directory of the installation. Is
this intended behavior or a bug? I have a possible patch if needed
that would help clear this up.
_________________________________________________________
Mike Jackson                  [email protected]
BlueQuartz Software                    www.bluequartz.net
Principal Software Engineer                  Dayton, Ohio

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to