Răsfoiți Sursa

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.
PatTheMav 3 ani în urmă
părinte
comite
48c52c9d74

+ 2 - 2
cmake/Modules/ObsDefaults_Windows.cmake

@@ -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")

+ 25 - 8
cmake/Modules/ObsHelpers.cmake

@@ -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}>

+ 15 - 4
cmake/Modules/ObsHelpers_Windows.cmake

@@ -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