[CMake] Interpretation of RUNTIME_OUTPUT_DIRECTORY in VisualStudio

Martin Apel martin.apel at simpack.de
Tue Mar 17 10:16:36 EDT 2009


Hi Michael,

thanks a lot, this solves the problem.

Regards,

Martin

Michael Jackson wrote:
> try the following:
> ADD_CUSTOM_TARGET(QtLibs
>                                              COMMAND ${CMAKE_COMMAND} -E
> copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/libQtCore.so.4
> ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}...)
>
>
>
>         • CMAKE_CFG_INTDIR: Build time configuration directory for project.
> This is a variable that is used to provide developers access to the
> intermediate directory used by Visual Studio IDE projects. For
> example, if building Debug all executables and libraries end up in a
> Debug directory. On UNIX systems this variable is set to ".". However,
> with Visual Studio this variable is set to $(IntDir). $(IntDir) is
> expanded by the IDE only. So this variable should only be used in
> custom commands that will be run during the build process. This
> variable should not be used directly in a CMake command. CMake has no
> way of knowing if Debug or Release will be picked by the IDE for a
> build type. If a program needs to know the directory it was built in,
> it can use CMAKE_INTDIR. CMAKE_INTDIR is a C/C++ preprocessor macro
> that is defined on the command line of the compiler. If it has a
> value, it will be the intermediate directory used to build the file.
> This way an executable or a library can find files that are located in
> the build directory.
>
>
>
>
>
> _________________________________________________________
> Mike Jackson                  mike.jackson at bluequartz.net
> BlueQuartz Software                    www.bluequartz.net
> Principal Software Engineer                  Dayton, Ohio
>
>
>
> On Mar 17, 2009, at 8:40 AM, Martin Apel wrote:
>
>   
>> Hi all,
>>
>> I am trying to write CMake rules to copy shared libraries / DLLs to
>> the
>> runtime directory (not "installing"), right besides the binaries
>> generated by my project. In order to do this, I have rules like the
>> following:
>> ADD_CUSTOM_TARGET(QtLibs
>>                                             COMMAND ${CMAKE_COMMAND}
>> -E
>> copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/libQtCore.so.4
>> ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}...)
>>
>> This works fine on Linux and Windows using the NMake generator.
>> However,
>> when using VisualStudio 8 under Windows, these libraries end up in the
>> directory, where CMAKE_RUNTIME_OUTPUT_DIRECTORY points to, whereas the
>> generated binaries are put into ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
>> debug
>> or /release.
>>
>> Is the interpretation of what the RUNTIME_OUTPUT_DIRECTORY property or
>> the CMAKE_RUNTIME_OUTPUT_DIRECTORY means different for the Visual
>> Studio
>> generators? Do I have to put something like
>> IF (MSVC80)
>>  ...
>> ELSE(MSVC80)
>>  ...
>> ENDIF(MSVC80)
>>
>> into my CMakeLists.txt? Or is there a better solution?
>>
>> Best Regards,
>>
>> Martin
>>
>>
>>
>> ____________
>> Virus checked by G DATA AntiVirus
>> Version: AVF 19.302 from 16.03.2009
>>
>>
>> _______________________________________________
>> 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 CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.cmake.org/mailman/listinfo/cmake
>>     
>
> _______________________________________________
> 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 CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
> .
>
>   


-- 

Martin Apel                                     Tel:     0049 8153 9288-47
Software Architect                              E-Mail:  martin.apel at simpack.de

INTEC GmbH                                      Tel:     0049 8153 9288-0
Argelsrieder Feld 13                            Fax:     0049 8153 9288-11
82234 Wessling                                  E-Mail:  intec at simpack.de
Germany                                         URL:     http://www.simpack..com

____________
Virus checked by G DATA AntiVirus
Version: AVF 19.302 from 16.03.2009




More information about the CMake mailing list