Mind you 'install' doesn't have to be '/usr' or 'program files/whatever'
but could be 'output' which will be relative to ${CMAKE_BINARY_DIR} if not
absolute


On Tue, Dec 9, 2014 at 4:15 PM, J Decker <d3c...@gmail.com> wrote:

> This sounds more like an install phase... to bring the whole package
> together in one appropriate place.
>
> if( WIN32 )
> INSTALL( TARGET <target> RUNTIME DESTINATION bin LIBRARY DESTINATION bin
> ARCHIVE DESTINATION lib )
> else( WIN32 )
> INSTALL( TARGET <target> RUNTIME DESTINATION bin LIBRARY DESTINATION lib
> ARCHIVE DESTINATION lib )
> endif( WIN32 )
>
> On Tue, Dec 9, 2014 at 3:38 PM, Walter Gray <chrysal...@gmail.com> wrote:
>
>>  Hey all,
>> I'm working on a module that will allow me to automatically copy all the
>> required .dll files as defined by well-formed import library targets to the
>> appropriate location (same folder for windows, Frameworks folder for OSX
>> bundle, ect).  I've got the code that scans an executable's
>> INTERFACE_LINK_LIBRARIES property recursively to find all such shared
>> library, however I'm running into a small problem.  I really like using
>> file globbing in higher level source directories to add all appropriate
>> sub-directories, but this means that sometimes a dependency will not be
>> fully defined yet. This is normally fine since these things are usually
>> resolved at *generation* time, but since I'm doing a manual traversal of
>> the list of link libraries at config time that's not really acceptable.  I
>> realize I could just not do the globbing and just make sure the directories
>> were setup in the correct order, but I really don't like making the
>> add_subdirectory calls order dependent.
>>
>> One solution I've come up with is to add the targets I want to do this to
>> to a global list, then iterate over that list as the last step in my
>> top-level cmake lists file, but that has the issue that I can no longer use
>> add_custom_command on those targets at that point.  I'm wondering 3 things:
>>
>> 1)What is the reasoning behind not allowing add_custom_command on targets
>> not defined in the current directory? Especially now that SOURCE can be
>> modified, the restriction seems very arbitrary.
>>
>> 2)How stupid would it be to reserve the command using something like
>>     add_custom_command(TARGET ${target} POST_BUILD COMMAND
>> $<TARGET_PROPERTY:COPY_SHARED_LIBS_COMMAND>)
>>  then use set_property(TARGET ${target} APPEND PROPERTY
>> COPY_SHARED_LIBS_COMMAND to add more copy steps to the command?
>>
>> 3) Am I completely missing something and there's already a totally well
>> supported way of making sure that an executable's shared library
>> dependencies end up in the correct directory?  I couldn't find a really
>> satisfactory answer on stack overflow or the archives.
>>
>> Thanks!
>>
>> --
>>
>> Powered by www.kitware.com
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Kitware offers various services to support the CMake community. For more
>> information on each offering, please visit:
>>
>> CMake Support: http://cmake.org/cmake/help/support.html
>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/cmake
>>
>
>
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to