diff --git a/CMakeLists.txt b/CMakeLists.txt index a6cb1e5..2e75496 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,14 @@ endif() install(TARGETS driver_osvr DESTINATION drivers/osvr/bin/${OPENVR_PLATFORM}) +if(WIN32) + include(CopyImportedTarget) + foreach(target osvr::osvrClientKit osvr::osvrClient osvr::osvrCommon osvr::osvrUtil) + copy_imported_targets(${target}) # for use in build tree + install_imported_target(${target} DESTINATION drivers/osvr/bin/${OPENVR_PLATFORM}) # in installed directory + endforeach() +endif() + # # Test program # diff --git a/cmake/CopyImportedTarget.cmake b/cmake/CopyImportedTarget.cmake new file mode 100644 index 0000000..fed23b4 --- /dev/null +++ b/cmake/CopyImportedTarget.cmake @@ -0,0 +1,32 @@ +# - Copy shared libraries from imported targets to the target build directory +# on Windows during post-build. Install them in all cases. +# +# copy_imported_targets( [ ...]) +# +# install_imported_target( +# +# Copyright Sensics, Inc. 2015. +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +function(copy_imported_targets _target) + foreach(_dep ${ARGN}) + if(WIN32) + add_custom_command(TARGET ${_target} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ $ + COMMENT "Copying required DLL for dependency ${_dep}" + VERBATIM) + endif() + endforeach() +endfunction() + + +function(install_imported_target _dep) + install(FILES $ ${ARGN}) +endfunction()