summaryrefslogtreecommitdiff
path: root/indra/media_plugins
diff options
context:
space:
mode:
authorMike <contact@mikelittman.me>2026-10-05 01:44:55 -0500
committerGitHub <noreply@github.com>2026-10-05 14:44:55 +0800
commit62e2d529558ba086708025b394aa790e49076c77 (patch)
tree45a987f422b39153a36e831cf2f5b44ecb2a3b11 /indra/media_plugins
parentf1abdac1b155e8834acf4539a9ec00fab729d006 (diff)
Add a Homebrew macOS build beside MacPorts (#29)
Darwin CMake keeps the MacPorts Boost 1.88 -mt paths when that prefix is present. Otherwise, or when DARWIN_PACKAGE_MANAGER=homebrew, it uses brew prefixes, unsuffixed Boost libraries, and no boost_system link. Media-plugin install names, the app bundle, and freealut follow the same split. The viewer no longer links libvlc, so a finished app does not need the VLC disk image mounted.
Diffstat (limited to 'indra/media_plugins')
-rw-r--r--indra/media_plugins/cef/CMakeLists.txt66
-rw-r--r--indra/media_plugins/libvlc/CMakeLists.txt72
2 files changed, 92 insertions, 46 deletions
diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt
index 88ce911dc4..e622cff2e6 100644
--- a/indra/media_plugins/cef/CMakeLists.txt
+++ b/indra/media_plugins/cef/CMakeLists.txt
@@ -104,27 +104,49 @@ elseif (DARWIN)
LINK_FLAGS "-exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/../base/media_plugin_base.exp"
)
- add_custom_command(TARGET ${PROJECT_NAME}
- POST_BUILD COMMAND ${CMAKE_INSTALL_NAME_TOOL}
- -change "/opt/local/lib/libnghttp2.14.dylib" "@loader_path/libnghttp2.14.dylib"
- -change "/opt/local/lib/libaprutil-1.0.dylib" "@loader_path/libaprutil-1.0.dylib"
- -change "/opt/local/lib/libiconv.2.dylib" "@loader_path/libiconv.2.dylib"
- -change "/opt/local/lib/libapr-1.0.dylib" "@loader_path/libapr-1.0.dylib"
- -change "/opt/local/lib/libz.1.dylib" "@loader_path/libz.1.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_context-mt.dylib" "@loader_path/libboost_context-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_fiber-mt.dylib" "@loader_path/libboost_fiber-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_filesystem-mt.dylib" "@loader_path/libboost_filesystem-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_process-mt.dylib" "@loader_path/libboost_process-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_program_options-mt.dylib" "@loader_path/libboost_program_options-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_thread-mt.dylib" "@loader_path/libboost_thread-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_url-mt.dylib" "@loader_path/libboost_url-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_regex-mt.dylib" "@loader_path/libboost_regex-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_system-mt.dylib" "@loader_path/libboost_system-mt.dylib"
- -change "/opt/local/lib/libexpat.1.dylib" "@loader_path/libexpat.1.dylib"
- "$<TARGET_FILE:${PROJECT_NAME}>"
- VERBATIM
- COMMENT "Fixing paths to CEF media plugin dependencies"
- )
+ if (DARWIN_USE_HOMEBREW)
+ # Homebrew Boost has no -mt suffix and no libboost_system. iconv, expat,
+ # and zlib resolve to macOS system dylibs and stay absolute.
+ add_custom_command(TARGET ${PROJECT_NAME}
+ POST_BUILD COMMAND ${CMAKE_INSTALL_NAME_TOOL}
+ -change "${DARWIN_NGHTTP2_PREFIX}/lib/libnghttp2.14.dylib" "@loader_path/libnghttp2.14.dylib"
+ -change "${DARWIN_APRUTIL_PREFIX}/lib/libaprutil-1.0.dylib" "@loader_path/libaprutil-1.0.dylib"
+ -change "${DARWIN_APR_PREFIX}/lib/libapr-1.0.dylib" "@loader_path/libapr-1.0.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_context.dylib" "@loader_path/libboost_context.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_fiber.dylib" "@loader_path/libboost_fiber.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_filesystem.dylib" "@loader_path/libboost_filesystem.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_process.dylib" "@loader_path/libboost_process.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_program_options.dylib" "@loader_path/libboost_program_options.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_thread.dylib" "@loader_path/libboost_thread.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_url.dylib" "@loader_path/libboost_url.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_regex.dylib" "@loader_path/libboost_regex.dylib"
+ "$<TARGET_FILE:${PROJECT_NAME}>"
+ VERBATIM
+ COMMENT "Fixing paths to CEF media plugin dependencies"
+ )
+ else ()
+ add_custom_command(TARGET ${PROJECT_NAME}
+ POST_BUILD COMMAND ${CMAKE_INSTALL_NAME_TOOL}
+ -change "/opt/local/lib/libnghttp2.14.dylib" "@loader_path/libnghttp2.14.dylib"
+ -change "/opt/local/lib/libaprutil-1.0.dylib" "@loader_path/libaprutil-1.0.dylib"
+ -change "/opt/local/lib/libiconv.2.dylib" "@loader_path/libiconv.2.dylib"
+ -change "/opt/local/lib/libapr-1.0.dylib" "@loader_path/libapr-1.0.dylib"
+ -change "/opt/local/lib/libz.1.dylib" "@loader_path/libz.1.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_context-mt.dylib" "@loader_path/libboost_context-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_fiber-mt.dylib" "@loader_path/libboost_fiber-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_filesystem-mt.dylib" "@loader_path/libboost_filesystem-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_process-mt.dylib" "@loader_path/libboost_process-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_program_options-mt.dylib" "@loader_path/libboost_program_options-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_thread-mt.dylib" "@loader_path/libboost_thread-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_url-mt.dylib" "@loader_path/libboost_url-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_regex-mt.dylib" "@loader_path/libboost_regex-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_system-mt.dylib" "@loader_path/libboost_system-mt.dylib"
+ -change "/opt/local/lib/libexpat.1.dylib" "@loader_path/libexpat.1.dylib"
+ "$<TARGET_FILE:${PROJECT_NAME}>"
+ VERBATIM
+ COMMENT "Fixing paths to CEF media plugin dependencies"
+ )
+ endif ()
elseif (LINUX)
target_link_options(media_plugin_cef PRIVATE "LINKER:--build-id")
@@ -133,7 +155,7 @@ endif ()
if (CMAKE_BUILD_TYPE MATCHES Release AND (CMAKE_CXX_COMPILER_ID STREQUAL Clang OR CMAKE_CXX_COMPILER_ID MATCHES GNU))
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
- COMMAND ${CMAKE_STRIP} lib${PROJECT_NAME}.so
+ COMMAND ${CMAKE_STRIP} "$<TARGET_FILE:${PROJECT_NAME}>"
)
endif ()
diff --git a/indra/media_plugins/libvlc/CMakeLists.txt b/indra/media_plugins/libvlc/CMakeLists.txt
index 32a108429e..61801fbcb7 100644
--- a/indra/media_plugins/libvlc/CMakeLists.txt
+++ b/indra/media_plugins/libvlc/CMakeLists.txt
@@ -47,36 +47,60 @@ if (DARWIN)
LINK_FLAGS "-exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/../base/media_plugin_base.exp"
)
- add_custom_command(TARGET ${PROJECT_NAME}
- POST_BUILD COMMAND ${CMAKE_INSTALL_NAME_TOOL}
- -change "/opt/local/lib/libnghttp2.14.dylib" "@loader_path/libnghttp2.14.dylib"
- -change "/opt/local/lib/libaprutil-1.0.dylib" "@loader_path/libaprutil-1.0.dylib"
- -change "/opt/local/lib/libiconv.2.dylib" "@loader_path/libiconv.2.dylib"
- -change "/opt/local/lib/libapr-1.0.dylib" "@loader_path/libapr-1.0.dylib"
- -change "/opt/local/lib/libz.1.dylib" "@loader_path/libz.1.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_context-mt.dylib" "@loader_path/libboost_context-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_fiber-mt.dylib" "@loader_path/libboost_fiber-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_filesystem-mt.dylib" "@loader_path/libboost_filesystem-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_process-mt.dylib" "@loader_path/libboost_process-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_program_options-mt.dylib" "@loader_path/libboost_program_options-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_thread-mt.dylib" "@loader_path/libboost_thread-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_url-mt.dylib" "@loader_path/libboost_url-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_regex-mt.dylib" "@loader_path/libboost_regex-mt.dylib"
- -change "/opt/local/libexec/boost/1.88/lib/libboost_system-mt.dylib" "@loader_path/libboost_system-mt.dylib"
- -change "/opt/local/lib/libexpat.1.dylib" "@loader_path/libexpat.1.dylib"
- -change "@rpath/libvlc.dylib" "@loader_path/plugins/libvlc.dylib"
- -change "@rpath/libvlccore.dylib" "@loader_path/plugins/libvlccore.dylib"
- "$<TARGET_FILE:${PROJECT_NAME}>"
- VERBATIM
- COMMENT "Fixing paths to LibVLC media plugin dependencies"
- )
+ if (DARWIN_USE_HOMEBREW)
+ # Homebrew Boost has no -mt suffix and no libboost_system. iconv, expat,
+ # and zlib resolve to macOS system dylibs and stay absolute.
+ add_custom_command(TARGET ${PROJECT_NAME}
+ POST_BUILD COMMAND ${CMAKE_INSTALL_NAME_TOOL}
+ -change "${DARWIN_NGHTTP2_PREFIX}/lib/libnghttp2.14.dylib" "@loader_path/libnghttp2.14.dylib"
+ -change "${DARWIN_APRUTIL_PREFIX}/lib/libaprutil-1.0.dylib" "@loader_path/libaprutil-1.0.dylib"
+ -change "${DARWIN_APR_PREFIX}/lib/libapr-1.0.dylib" "@loader_path/libapr-1.0.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_context.dylib" "@loader_path/libboost_context.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_fiber.dylib" "@loader_path/libboost_fiber.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_filesystem.dylib" "@loader_path/libboost_filesystem.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_process.dylib" "@loader_path/libboost_process.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_program_options.dylib" "@loader_path/libboost_program_options.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_thread.dylib" "@loader_path/libboost_thread.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_url.dylib" "@loader_path/libboost_url.dylib"
+ -change "${DARWIN_BOOST_PREFIX}/lib/libboost_regex.dylib" "@loader_path/libboost_regex.dylib"
+ -change "@rpath/libvlc.dylib" "@loader_path/plugins/libvlc.dylib"
+ -change "@rpath/libvlccore.dylib" "@loader_path/plugins/libvlccore.dylib"
+ "$<TARGET_FILE:${PROJECT_NAME}>"
+ VERBATIM
+ COMMENT "Fixing paths to LibVLC media plugin dependencies"
+ )
+ else ()
+ add_custom_command(TARGET ${PROJECT_NAME}
+ POST_BUILD COMMAND ${CMAKE_INSTALL_NAME_TOOL}
+ -change "/opt/local/lib/libnghttp2.14.dylib" "@loader_path/libnghttp2.14.dylib"
+ -change "/opt/local/lib/libaprutil-1.0.dylib" "@loader_path/libaprutil-1.0.dylib"
+ -change "/opt/local/lib/libiconv.2.dylib" "@loader_path/libiconv.2.dylib"
+ -change "/opt/local/lib/libapr-1.0.dylib" "@loader_path/libapr-1.0.dylib"
+ -change "/opt/local/lib/libz.1.dylib" "@loader_path/libz.1.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_context-mt.dylib" "@loader_path/libboost_context-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_fiber-mt.dylib" "@loader_path/libboost_fiber-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_filesystem-mt.dylib" "@loader_path/libboost_filesystem-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_process-mt.dylib" "@loader_path/libboost_process-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_program_options-mt.dylib" "@loader_path/libboost_program_options-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_thread-mt.dylib" "@loader_path/libboost_thread-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_url-mt.dylib" "@loader_path/libboost_url-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_regex-mt.dylib" "@loader_path/libboost_regex-mt.dylib"
+ -change "/opt/local/libexec/boost/1.88/lib/libboost_system-mt.dylib" "@loader_path/libboost_system-mt.dylib"
+ -change "/opt/local/lib/libexpat.1.dylib" "@loader_path/libexpat.1.dylib"
+ -change "@rpath/libvlc.dylib" "@loader_path/plugins/libvlc.dylib"
+ -change "@rpath/libvlccore.dylib" "@loader_path/plugins/libvlccore.dylib"
+ "$<TARGET_FILE:${PROJECT_NAME}>"
+ VERBATIM
+ COMMENT "Fixing paths to LibVLC media plugin dependencies"
+ )
+ endif ()
endif (DARWIN)
if (CMAKE_BUILD_TYPE MATCHES Release AND (CMAKE_CXX_COMPILER_ID STREQUAL Clang OR CMAKE_CXX_COMPILER_ID MATCHES GNU))
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
- COMMAND ${CMAKE_STRIP} lib${PROJECT_NAME}.so
+ COMMAND ${CMAKE_STRIP} "$<TARGET_FILE:${PROJECT_NAME}>"
)
endif ()