commit
8fa44b0012
|
@ -30,7 +30,7 @@ endif()
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
|
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
|
||||||
set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-unused-function -Werror-implicit-function-declaration -Wno-missing-field-initializers ${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
|
set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-unused-function -Werror-implicit-function-declaration -Wno-missing-field-initializers ${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
|
||||||
set(CMAKE_C_FLAGS "-Wall -Wextra -Wno-unused-function -Werror-implicit-function-declaration ${CMAKE_C_FLAGS} -std=gnu99 -fno-strict-aliasing")
|
set(CMAKE_C_FLAGS "-Wall -Wextra -Wno-unused-function -Werror-implicit-function-declaration -Wno-missing-field-initializers ${CMAKE_C_FLAGS} -std=gnu99 -fno-strict-aliasing")
|
||||||
|
|
||||||
option(USE_LIBC++ "Use libc++ instead of libstdc++" ${APPLE})
|
option(USE_LIBC++ "Use libc++ instead of libstdc++" ${APPLE})
|
||||||
if(USE_LIBC++)
|
if(USE_LIBC++)
|
||||||
|
@ -76,6 +76,8 @@ if(NOT INSTALLER_RUN)
|
||||||
add_subdirectory(obs)
|
add_subdirectory(obs)
|
||||||
add_subdirectory(plugins)
|
add_subdirectory(plugins)
|
||||||
add_subdirectory(test)
|
add_subdirectory(test)
|
||||||
|
|
||||||
|
add_subdirectory(cmake/helper_subdir)
|
||||||
else()
|
else()
|
||||||
obs_generate_multiarch_installer()
|
obs_generate_multiarch_installer()
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -70,29 +70,15 @@ else()
|
||||||
add_definitions(-DOBS_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}/")
|
add_definitions(-DOBS_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}/")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(obs_fixup_install_target target type)
|
function(obs_finish_bundle)
|
||||||
if(NOT APPLE OR NOT BUILD_REDISTRIBUTABLE)
|
if(NOT APPLE OR UNIX_STRUCTURE)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
foreach(data ${ARGN})
|
install(CODE
|
||||||
if(type STREQUAL "TARGET")
|
"if(DEFINED ENV{FIXUP_BUNDLE})
|
||||||
get_property(fullpath TARGET "${data}" PROPERTY LOCATION)
|
execute_process(COMMAND \"${CMAKE_SOURCE_DIR}/cmake/osxbundle/fixup_bundle.sh\" . bin WORKING_DIRECTORY \"\${CMAKE_INSTALL_PREFIX}\")
|
||||||
else()
|
endif()")
|
||||||
set(fullpath "${data}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
execute_process(COMMAND otool -D "${fullpath}" OUTPUT_VARIABLE otool_out)
|
|
||||||
string(REGEX REPLACE "(\r?\n)+$" "" otool_out "${otool_out}")
|
|
||||||
string(REGEX REPLACE ".*\n" "" otool_out "${otool_out}")
|
|
||||||
|
|
||||||
string(REGEX REPLACE ".*/" "@rpath/" newpath "${otool_out}")
|
|
||||||
|
|
||||||
add_custom_command(TARGET ${target} POST_BUILD
|
|
||||||
COMMAND
|
|
||||||
install_name_tool -change "${otool_out}" "${newpath}" "$<TARGET_FILE:${target}>"
|
|
||||||
VERBATIM)
|
|
||||||
endforeach()
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(obs_generate_multiarch_installer)
|
function(obs_generate_multiarch_installer)
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
obs_finish_bundle()
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "$#" != 2 ]; then
|
||||||
|
echo "usage: $0 /path/to/install/root relative/lib/destination"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$1"
|
||||||
|
|
||||||
|
function buildlist() {
|
||||||
|
otool -L "$@" |
|
||||||
|
grep -E "(opt|Users)" |
|
||||||
|
perl -pe 's|^\s+(/.*)\s\(.*$|$1|' |
|
||||||
|
grep -vE ":$" |
|
||||||
|
sort -u
|
||||||
|
}
|
||||||
|
export -f buildlist
|
||||||
|
|
||||||
|
DEST="$2"
|
||||||
|
LDEST="@rpath"
|
||||||
|
TARGETS="$(find . \( -perm +111 -and -type f \))"
|
||||||
|
FOUNDLIBS="$(buildlist $TARGETS)"
|
||||||
|
PFOUNDLIBS=""
|
||||||
|
|
||||||
|
while [ "$FOUNDLIBS" != "$PFOUNDLIBS" ]; do
|
||||||
|
PFOUNDLIBS="$FOUNDLIBS"
|
||||||
|
FOUNDLIBS="$(buildlist $TARGETS $PFOUNDLIBS)"
|
||||||
|
done
|
||||||
|
|
||||||
|
INTOOL_CALL=()
|
||||||
|
|
||||||
|
for lib in $FOUNDLIBS; do
|
||||||
|
libname="$(basename "$lib")"
|
||||||
|
|
||||||
|
INTOOL_CALL+=(-change "$lib" "$LDEST/$libname")
|
||||||
|
cp "$lib" "$DEST/$libname"
|
||||||
|
|
||||||
|
echo "Fixing up dependency: $libname"
|
||||||
|
done
|
||||||
|
|
||||||
|
for lib in $FOUNDLIBS; do
|
||||||
|
libname="$(basename "$lib")"
|
||||||
|
lib="$DEST/$libname"
|
||||||
|
|
||||||
|
install_name_tool ${INTOOL_CALL[@]} -id "$LDEST/$libname" "$lib"
|
||||||
|
done
|
||||||
|
|
||||||
|
for target in $TARGETS; do
|
||||||
|
install_name_tool ${INTOOL_CALL[@]} "$target"
|
||||||
|
done
|
||||||
|
|
|
@ -231,4 +231,3 @@ target_link_libraries(libobs
|
||||||
install_obs_core(libobs)
|
install_obs_core(libobs)
|
||||||
install_obs_data(libobs ../build/data/libobs libobs)
|
install_obs_data(libobs ../build/data/libobs libobs)
|
||||||
|
|
||||||
obs_fixup_install_target(libobs PATH ${Libswscale_LIBRARIES} ${Libswresample_LIBRARIES} ${Libavutil_LIBRARIES})
|
|
||||||
|
|
|
@ -113,6 +113,3 @@ target_link_libraries(obs
|
||||||
install_obs_core(obs)
|
install_obs_core(obs)
|
||||||
install_obs_data(obs ../build/data/obs-studio obs-studio)
|
install_obs_data(obs ../build/data/obs-studio obs-studio)
|
||||||
|
|
||||||
obs_fixup_install_target(obs TARGET Qt5::Widgets)
|
|
||||||
obs_fixup_install_target(obs TARGET Qt5::Gui)
|
|
||||||
obs_fixup_install_target(obs TARGET Qt5::Core)
|
|
||||||
|
|
|
@ -40,8 +40,3 @@ target_link_libraries(obs-ffmpeg
|
||||||
|
|
||||||
install_obs_plugin(obs-ffmpeg)
|
install_obs_plugin(obs-ffmpeg)
|
||||||
|
|
||||||
obs_fixup_install_target(obs-ffmpeg PATH ${Libavcodec_LIBRARIES})
|
|
||||||
obs_fixup_install_target(obs-ffmpeg PATH ${Libavutil_LIBRARIES})
|
|
||||||
obs_fixup_install_target(obs-ffmpeg PATH ${Libswscale_LIBRARIES})
|
|
||||||
obs_fixup_install_target(obs-ffmpeg PATH ${Libavformat_LIBRARIES})
|
|
||||||
obs_fixup_install_target(obs-ffmpeg PATH ${Libswresample_LIBRARIES})
|
|
||||||
|
|
|
@ -16,4 +16,3 @@ target_link_libraries(obs-x264
|
||||||
|
|
||||||
install_obs_plugin(obs-x264)
|
install_obs_plugin(obs-x264)
|
||||||
|
|
||||||
obs_fixup_install_target(obs-x264 PATH ${Libx264_LIBRARIES})
|
|
||||||
|
|
Loading…
Reference in New Issue