[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