# vvdecInstall set( RUNTIME_DEST ${CMAKE_INSTALL_BINDIR} ) set( LIBRARY_DEST ${CMAKE_INSTALL_LIBDIR} ) set( ARCHIVE_DEST ${CMAKE_INSTALL_LIBDIR} ) # install targets macro( install_targets targets_ config_ ) string( TOLOWER ${config_} config_lc_ ) install( TARGETS ${targets_} EXPORT vvdecTargets-${config_lc_} CONFIGURATIONS ${config_} RUNTIME DESTINATION ${RUNTIME_DEST} BUNDLE DESTINATION ${RUNTIME_DEST} LIBRARY DESTINATION ${LIBRARY_DEST} ARCHIVE DESTINATION ${ARCHIVE_DEST} ) if( XCODE AND BUILD_SHARED_LIBS ) # WORKAROUND: reapply code signature, which gets broken by cmake install step when modifying the RPATH foreach( tgt_ IN ITEMS ${targets_} ) set( is_app_ "$,EXECUTABLE>" ) install( CODE "execute_process( COMMAND codesign --force --sign - --timestamp=none --generate-entitlement-der \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/$/$\" )" ) endforeach() endif() endmacro( install_targets ) # install pdb file for static and shared libraries macro( install_lib_pdb lib_ ) if( MSVC ) install( FILES $<$,$,SHARED_LIBRARY>>:$> CONFIGURATIONS Debug DESTINATION ${RUNTIME_DEST} OPTIONAL ) install( FILES $<$,$,SHARED_LIBRARY>>:$> CONFIGURATIONS RelWithDebInfo DESTINATION ${RUNTIME_DEST} OPTIONAL ) install( FILES $<$,$,STATIC_LIBRARY>>:$/$.pdb> CONFIGURATIONS Debug DESTINATION ${ARCHIVE_DEST} OPTIONAL ) install( FILES $<$,$,STATIC_LIBRARY>>:$/$.pdb> CONFIGURATIONS RelWithDebInfo DESTINATION ${ARCHIVE_DEST} OPTIONAL ) #install( FILES $<$,$,STATIC_LIBRARY>>:$/${lib_}.pdb> # CONFIGURATIONS Debug DESTINATION ${ARCHIVE_DEST} OPTIONAL ) #install( FILES $<$,$,STATIC_LIBRARY>>:$/${lib_}.pdb> # CONFIGURATIONS RelWithDebInfo DESTINATION ${ARCHIVE_DEST} OPTIONAL ) endif() endmacro( install_lib_pdb ) # install pdb file for executables macro( install_exe_pdb exe_ ) if( MSVC ) install( FILES $<$:$> DESTINATION ${RUNTIME_DEST} CONFIGURATIONS Debug OPTIONAL ) install( FILES $<$:$> DESTINATION ${RUNTIME_DEST} CONFIGURATIONS RelWithDebInfo OPTIONAL ) endif() endmacro( install_exe_pdb ) # set interface include directories target_include_directories( vvdec SYSTEM INTERFACE $ ) # install headers install( FILES ${CMAKE_BINARY_DIR}/vvdec/version.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/vvdec ) install( DIRECTORY include/vvdec DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) if( VVDEC_INSTALL_VVDECAPP OR (${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten") ) # for Emscripten/WASM builds vvdecapp is always installed, since that is used like a library set( INSTALL_TARGETS "vvdec;vvdecapp" ) else() set( INSTALL_TARGETS "vvdec" ) install( CODE "message( WARNING \"\nThe vvdecapp binary is not installed by default anymore. To also install vvdecapp set '-DVVDEC_INSTALL_VVDECAPP=ON' (with make: 'install-vvdecapp=1')\" )" ) endif() # install targets install_targets( "${INSTALL_TARGETS}" Release ) install_targets( "${INSTALL_TARGETS}" Debug ) install_targets( "${INSTALL_TARGETS}" RelWithDebInfo ) # install pdb files install_lib_pdb( vvdec ) if( VVDEC_INSTALL_VVDECAPP ) install_exe_pdb( vvdecapp ) endif() # install emscripten generated files if( ${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten" ) install( PROGRAMS $/vvdecapp.wasm DESTINATION ${RUNTIME_DEST} ) install( PROGRAMS $/vvdecapp.worker.js DESTINATION ${RUNTIME_DEST} ) endif() # configure version file configure_file( cmake/install/vvdecConfigVersion.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/vvdecConfigVersion.cmake @ONLY ) # install cmake releated files install( FILES cmake/install/vvdecConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vvdec ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/vvdecConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vvdec ) # set config postfix if( BUILD_SHARED_LIBS ) set( CONFIG_POSTFIX shared ) else() set( CONFIG_POSTFIX static ) endif() # create target cmake files install( EXPORT vvdecTargets-release NAMESPACE vvdec:: FILE vvdecTargets-${CONFIG_POSTFIX}.cmake CONFIGURATIONS Release DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vvdec ) install( EXPORT vvdecTargets-debug NAMESPACE vvdec:: FILE vvdecTargets-${CONFIG_POSTFIX}.cmake CONFIGURATIONS Debug DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vvdec ) install( EXPORT vvdecTargets-relwithdebinfo NAMESPACE vvdec:: FILE vvdecTargets-${CONFIG_POSTFIX}.cmake CONFIGURATIONS RelWithDebInfo DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vvdec ) configure_file( pkgconfig/libvvdec.pc.in ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libvvdec.pc @ONLY ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libvvdec.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig )