I want to make a multi configuration package using cpack -C
and the Visual Studio multi-generator. So, knowing that each of RUNTIME
, LIBRARY
, and ARCHIVE
can appear only once in a call to install()
, I tried writing the code below, which involves two nearly identical calls to install()
. However, I get the following error:
CMake Error: install(EXPORT "Halide_Targets" ...) includes target "Halide" more than once in the export set.
If I remove the second “EXPORT” line, then the targets aren’t populated for the release builds! What am I supposed to do here?
Install code
install(TARGETS Halide Halide_Plugin Halide_Runtime ${EXTRA_TARGETS}
EXPORT Halide_Targets
RUNTIME
DESTINATION ${CMAKE_INSTALL_BINDIR}/Debug
COMPONENT Halide_Runtime
CONFIGURATIONS Debug
LIBRARY
DESTINATION ${CMAKE_INSTALL_LIBDIR}/Debug
COMPONENT Halide_Runtime
NAMELINK_COMPONENT Halide_Development
CONFIGURATIONS Debug
ARCHIVE
DESTINATION ${CMAKE_INSTALL_LIBDIR}/Debug
COMPONENT Halide_Development
CONFIGURATIONS Debug
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(TARGETS Halide Halide_Plugin Halide_Runtime ${EXTRA_TARGETS}
EXPORT Halide_Targets
RUNTIME
DESTINATION ${CMAKE_INSTALL_BINDIR}/Release
COMPONENT Halide_Runtime
CONFIGURATIONS Release RelWithDebInfo MinSizeRel
LIBRARY
DESTINATION ${CMAKE_INSTALL_LIBDIR}/Release
COMPONENT Halide_Runtime
NAMELINK_COMPONENT Halide_Development
CONFIGURATIONS Release RelWithDebInfo MinSizeRel
ARCHIVE
DESTINATION ${CMAKE_INSTALL_LIBDIR}/Release
COMPONENT Halide_Development
CONFIGURATIONS Release RelWithDebInfo MinSizeRel
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(EXPORT Halide_Targets
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Halide
NAMESPACE Halide::
FILE Halide-Targets.cmake
COMPONENT Halide_Development)