cmake: Fix libraries and header files being installed for packages

The `EXCLUDE_FROM_ALL` token, which is responsible for excluding
components from a "unspecified" installation (which we use to create
the distributed package) needs to be specified for _every_ destination
specified in an `install` call.

This commit remedies the issue of missing tokens in these calls.
master
PatTheMav 2022-07-11 13:26:42 +02:00 committed by Ryan Foster
parent 9febf96a61
commit 48c52c9d74
3 changed files with 42 additions and 14 deletions

View File

@ -35,8 +35,8 @@ macro(setup_obs_project)
set(OBS_LIBRARY32_DESTINATION "bin/32bit")
set(OBS_LIBRARY64_DESTINATION "bin/64bit")
set(OBS_EXECUTABLE_EXPORT_DESTINATION "bin")
set(OBS_LIBRARY_EXPORT_DESTINATION "bin")
set(OBS_EXECUTABLE_EXPORT_DESTINATION "bin/${_ARCH_SUFFIX}bit")
set(OBS_LIBRARY_EXPORT_DESTINATION "bin/${_ARCH_SUFFIX}bit")
set(OBS_PLUGIN_DESTINATION "obs-plugins/${_ARCH_SUFFIX}bit")
set(OBS_PLUGIN32_DESTINATION "obs-plugins/32bit")

View File

@ -34,14 +34,20 @@ function(setup_binary_target target)
NAMELINK_COMPONENT ${target}_Development
ARCHIVE DESTINATION ${OBS_LIBRARY_DESTINATION}
COMPONENT ${target}_Development
PUBLIC_HEADER DESTINATION ${OBS_INCLUDE_DESTINATION})
PUBLIC_HEADER
DESTINATION ${OBS_INCLUDE_DESTINATION}
COMPONENT ${target}_Development
EXCLUDE_FROM_ALL)
# Set up installation paths for development rundir
install(
TARGETS ${target}
RUNTIME DESTINATION ${OBS_EXECUTABLE_DESTINATION} COMPONENT obs_${target}
LIBRARY DESTINATION ${OBS_LIBRARY_DESTINATION} COMPONENT obs_${target}
PUBLIC_HEADER DESTINATION ${OBS_INCLUDE_DESTINATION} EXCLUDE_FROM_ALL)
RUNTIME DESTINATION ${OBS_EXECUTABLE_DESTINATION}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL
LIBRARY DESTINATION ${OBS_LIBRARY_DESTINATION}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL)
add_custom_command(
TARGET ${target}
@ -68,7 +74,9 @@ function(setup_plugin_target target)
install(
TARGETS ${target}
RUNTIME DESTINATION ${OBS_PLUGIN_DESTINATION} COMPONENT obs_${target}
RUNTIME DESTINATION ${OBS_PLUGIN_DESTINATION}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL
LIBRARY DESTINATION ${OBS_PLUGIN_DESTINATION}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL)
@ -242,9 +250,15 @@ function(export_target target)
install(
TARGETS ${target}
EXPORT ${target}Targets
RUNTIME DESTINATION ${OBS_EXECUTABLE_DESTINATION} COMPONENT obs_libraries
LIBRARY DESTINATION ${OBS_LIBRARY_DESTINATION} COMPONENT obs_libraries
ARCHIVE DESTINATION ${OBS_LIBRARY_DESTINATION} COMPONENT obs_libraries
RUNTIME DESTINATION ${OBS_EXECUTABLE_DESTINATION}
COMPONENT obs_libraries
EXCLUDE_FROM_ALL
LIBRARY DESTINATION ${OBS_LIBRARY_DESTINATION}
COMPONENT obs_libraries
EXCLUDE_FROM_ALL
ARCHIVE DESTINATION ${OBS_LIBRARY_DESTINATION}
COMPONENT obs_libraries
EXCLUDE_FROM_ALL
INCLUDES
DESTINATION ${OBS_INCLUDE_DESTINATION}
PUBLIC_HEADER
@ -437,6 +451,7 @@ function(_install_obs_datatarget target destination)
TARGETS ${target}
LIBRARY DESTINATION ${OBS_DATA_DESTINATION}/${destination}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL
RUNTIME DESTINATION ${OBS_DATA_DESTINATION}/${destination}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL)
@ -453,6 +468,8 @@ function(_install_obs_datatarget target destination)
RUNTIME
DESTINATION
$ENV{obsInstallerTempDir}/${OBS_DATA_DESTINATION}/${destination}/$<TARGET_FILE_NAME:${target}>
COMPONENT obs_${target}
EXCLUDE_FROM_ALL
LIBRARY
DESTINATION
$ENV{obsInstallerTempDir}/${OBS_DATA_DESTINATION}/${destination}/$<TARGET_FILE_NAME:${target}>

View File

@ -8,8 +8,10 @@ function(setup_binary_target target)
RUNTIME
DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_EXECUTABLE_DESTINATION}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL
LIBRARY DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_LIBRARY_DESTINATION}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL
PUBLIC_HEADER
DESTINATION ${OBS_INCLUDE_DESTINATION}
COMPONENT obs_${target}
@ -74,6 +76,7 @@ function(setup_plugin_target target)
TARGETS ${target}
RUNTIME DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_PLUGIN_DESTINATION}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL
LIBRARY DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_PLUGIN_DESTINATION}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL)
@ -108,6 +111,7 @@ function(setup_script_plugin_target target)
RUNTIME
DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_SCRIPT_PLUGIN_DESTINATION}
COMPONENT obs_${target}
EXCLUDE_FROM_ALL
LIBRARY
DESTINATION $ENV{OBS_InstallerTempDir}/${OBS_SCRIPT_PLUGIN_DESTINATION}
COMPONENT obs_${target}
@ -218,14 +222,19 @@ function(export_target target)
EXPORT ${target}Targets
RUNTIME DESTINATION "${OBS_EXECUTABLE_EXPORT_DESTINATION}"
COMPONENT obs_libraries
EXCLUDE_FROM_ALL
LIBRARY DESTINATION "${OBS_LIBRARY_EXPORT_DESTINATION}"
COMPONENT obs_libraries
EXCLUDE_FROM_ALL
ARCHIVE DESTINATION "${OBS_LIBRARY_EXPORT_DESTINATION}"
COMPONENT obs_libraries
EXCLUDE_FROM_ALL
INCLUDES
DESTINATION "${OBS_INCLUDE_DESTINATION}"
PUBLIC_HEADER DESTINATION "${OBS_INCLUDE_DESTINATION}"
COMPONENT obs_libraries)
PUBLIC_HEADER
DESTINATION "${OBS_INCLUDE_DESTINATION}"
COMPONENT obs_libraries
EXCLUDE_FROM_ALL)
if(MSVC)
install(
@ -268,13 +277,15 @@ function(export_target target)
FILE ${TARGETS_EXPORT_NAME}.cmake
NAMESPACE OBS::
DESTINATION ${OBS_CMAKE_DESTINATION}
COMPONENT obs_libraries)
COMPONENT obs_libraries
EXCLUDE_FROM_ALL)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/${target}Config.cmake
${CMAKE_CURRENT_BINARY_DIR}/${target}ConfigVersion.cmake
DESTINATION ${OBS_CMAKE_DESTINATION}
COMPONENT obs_libraries)
COMPONENT obs_libraries
EXCLUDE_FROM_ALL)
endfunction()
# Helper function to do additional setup for browser source plugin