[CMake] Missing dll on program startup - a way automate it?

cen imbacen at gmail.com
Sat Nov 23 08:59:41 EST 2019


Thanks, this is exactly what I need.

Unfortunately constructing the path expansion involves some gymnastics. 
If Find* exposes a list of directories it's just a simple list join (-> 
boost) but if it does not it is more involved..

list(JOIN Boost_LIBRARY_DIRS ";" BOOST_PATH)

set(ZLIB_PATH "")
FOREACH(LIB_NAME ${ZLIB_LIBRARIES})
    get_filename_component(LDIR ${LIB_NAME} DIRECTORY)
    if (NOT ZLIB_PATH MATCHES "${LDIR}")
      set(ZLIB_PATH "${ZLIB_PATH};${LDIR}")
    endif()
ENDFOREACH()

set(EXPAND_PATH "${ZLIB_PATH};${BOOST_PATH}")
set_target_properties(${PROJECT_NAME} PROPERTIES VS_DEBUGGER_ENVIRONMENT 
"PATH=%PATH%${EXPAND_PATH}")


Is there a way to get a list of all additional library directories? That 
would be ideal but I couldn't find anything.


On 11/20/19 9:32 AM, Petr Kmoch wrote:
> Hi.
>
> I haven't used it yet, but I believe the target property 
> https://cmake.org/cmake/help/latest/prop_tgt/VS_DEBUGGER_ENVIRONMENT.html 
> might help you.
>
> Petr
>
> On Wed, 20 Nov 2019 at 01:02, cen <imbacen at gmail.com 
> <mailto:imbacen at gmail.com>> wrote:
>
>     Hi
>
>     Perhaps not really a cmake problem but here we go. An exe depends
>     on a
>     few DLLs which I ship in the repo so the rest of the devs don't
>     have to
>     build them or fetch them somewhere else. Cmake finds the libraries
>     and
>     project builds just fine, until you run it from VS.. you are
>     welcomed by
>     the "missing dll" windows error. So I have to copy all the dlls to
>     the
>     build/run folder to make it work but this is a manual step. Is there
>     some way in cmake/VS to somehow tell the IDE to append the execution
>     $PATH with all the specified library dependencies or something along
>     those lines? Ideally my goal is to just run cmake, open VS, build the
>     project and run, all automagical.
>
>     I would prefer to keep the dynamic linking.
>
>
>     Best regards, cen
>
>     -- 
>
>     Powered by kitware.com/cmake <http://kitware.com/cmake>
>
>     Kitware offers various services to support the CMake community.
>     For more information on each offering, please visit
>     https://cmake.org/services
>
>     Visit other Kitware open-source projects at
>     https://www.kitware.com/platforms
>
>     Follow this link to subscribe/unsubscribe:
>     https://cmake.org/mailman/listinfo/cmake
>
>     This mailing list is deprecated in favor of
>     https://discourse.cmake.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20191123/f3962526/attachment.html>


More information about the CMake mailing list