aports/main/aom/split-static.patch

57 lines
2.1 KiB
Diff

From: Jakub Jirutka <jakub@jirutka.cz>
Date: Fri, 23 Jan 2026 17:36:34 +0100
Subject: [PATCH] Allow static library to be packaged separately
Exporting aom_static unconditionally causes find_package(AOM CONFIG) to
fail when only the shared library is installed. Split the static target
into an optional export so the CMake package remains valid.
--- a/build/cmake/aom_install.cmake
+++ b/build/cmake/aom_install.cmake
@@ -78,11 +78,7 @@
endif()
endif()
- if(BUILD_SHARED_LIBS)
- set(AOM_INSTALL_LIBS aom aom_static)
- else()
- set(AOM_INSTALL_LIBS aom)
- endif()
+ set(AOM_INSTALL_LIBS aom) # XXX₋Patched
set(AOM_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
set(AOM_VERSION_CONFIG
@@ -121,5 +117,18 @@
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+
+ # XXX-Patched: When building shared libs, export static archive separately.
+ # This lets distributors split libaom.a into a separate package without
+ # breaking find_package(AOM CONFIG) for consumers who only want shared.
+ if(BUILD_SHARED_LIBS)
+ set(AOM_STATIC_TARGETS_EXPORT_NAME "${PROJECT_NAME}StaticTargets")
+ install(TARGETS aom_static
+ EXPORT "${AOM_STATIC_TARGETS_EXPORT_NAME}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+ install(EXPORT "${AOM_STATIC_TARGETS_EXPORT_NAME}"
+ NAMESPACE "${PROJECT_NAME}::"
+ DESTINATION "${AOM_CONFIG_INSTALL_DIR}")
+ endif()
endif()
endmacro()
--- a/build/cmake/config.cmake.in
+++ b/build/cmake/config.cmake.in
@@ -8,6 +8,11 @@
include("${CMAKE_CURRENT_LIST_DIR}/@AOM_TARGETS_EXPORT_NAME@.cmake")
+# XXX-Patched: Optional static targets may be shipped separately (-static package).
+if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@StaticTargets.cmake")
+ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@StaticTargets.cmake")
+endif()
+
set_and_check(@PROJECT_NAME@_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
# @PROJECT_NAME@::aom_static is defined only if BUILD_SHARED_LIBS=1 when libaom