diff --git a/CMakeLists.txt b/CMakeLists.txt index 811fbba97..ae130a539 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,5 +82,3 @@ if(NOT INSTALLER_RUN) else() obs_generate_multiarch_installer() endif() - -obs_install_additional() diff --git a/additional_install_files/.gitignore b/additional_install_files/.gitignore new file mode 100644 index 000000000..11d9d9d76 --- /dev/null +++ b/additional_install_files/.gitignore @@ -0,0 +1,8 @@ +* +!.gitignore +!data/ +!exec32/ +!exec64/ +!libs32/ +!libs64/ +!misc/ diff --git a/cmake/Modules/FindLibavcodec.cmake b/cmake/Modules/FindLibavcodec.cmake index 9f0584f8e..6ec356db0 100644 --- a/cmake/Modules/FindLibavcodec.cmake +++ b/cmake/Modules/FindLibavcodec.cmake @@ -22,14 +22,22 @@ else() find_path(FFMPEG_INCLUDE_DIR NAMES libavcodec/avcodec.h HINTS + "${CMAKE_SOURCE_DIR}/additional_install_files/include" + "$ENV{obsAdditionalInstallFiles}/include" ENV FFmpegPath - ${_AVCODEC_INCLUDE_DIRS} + "${_AVCODEC_INCLUDE_DIRS}" /usr/include /usr/local/include /opt/local/include /sw/include PATH_SUFFIXES ffmpeg libav) find_library(AVCODEC_LIB NAMES avcodec - HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_AVCODEC_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib) + HINTS + "${FFMPEG_INCLUDE_DIR}/../lib" + "${FFMPEG_INCLUDE_DIR}/../lib${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/../libs${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix}" + "${_AVCODEC_LIBRARY_DIRS}" + /usr/lib /usr/local/lib /opt/local/lib /sw/lib) set(LIBAVCODEC_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavcodec include dir") set(LIBAVCODEC_LIBRARIES ${AVCODEC_LIB} CACHE STRING "Libavcodec libraries") diff --git a/cmake/Modules/FindLibavformat.cmake b/cmake/Modules/FindLibavformat.cmake index 2334309c9..6a1e623bf 100644 --- a/cmake/Modules/FindLibavformat.cmake +++ b/cmake/Modules/FindLibavformat.cmake @@ -22,14 +22,22 @@ else() find_path(FFMPEG_INCLUDE_DIR NAMES libavformat/avformat.h HINTS + "${CMAKE_SOURCE_DIR}/additional_install_files/include" + "$ENV{obsAdditionalInstallFiles}/include" ENV FFmpegPath - ${_AVFORMAT_INCLUDE_DIRS} + "${_AVFORMAT_INCLUDE_DIRS}" /usr/include /usr/local/include /opt/local/include /sw/include PATH_SUFFIXES ffmpeg libav) find_library(AVFORMAT_LIB NAMES avformat - HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_AVFORMAT_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib) + HINTS + "${FFMPEG_INCLUDE_DIR}/../lib" + "${FFMPEG_INCLUDE_DIR}/../lib${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/../libs${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix}" + "${_AVFORMAT_LIBRARY_DIRS}" + /usr/lib /usr/local/lib /opt/local/lib /sw/lib) set(LIBAVFORMAT_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavformat include dir") set(LIBAVFORMAT_LIBRARIES ${AVFORMAT_LIB} CACHE STRING "Libavformat libraries") diff --git a/cmake/Modules/FindLibavutil.cmake b/cmake/Modules/FindLibavutil.cmake index 49229c6fc..dab17186b 100644 --- a/cmake/Modules/FindLibavutil.cmake +++ b/cmake/Modules/FindLibavutil.cmake @@ -22,14 +22,22 @@ else() find_path(FFMPEG_INCLUDE_DIR NAMES libavutil/avutil.h HINTS + "${CMAKE_SOURCE_DIR}/additional_install_files/include" + "$ENV{obsAdditionalInstallFiles}/include" ENV FFmpegPath - ${_AVUTIL_INCLUDE_DIRS} + "${_AVUTIL_INCLUDE_DIRS}" /usr/include /usr/local/include /opt/local/include /sw/include PATH_SUFFIXES ffmpeg libav) find_library(AVUTIL_LIB NAMES avutil - HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_AVUTIL_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib) + HINTS + "${FFMPEG_INCLUDE_DIR}/../lib" + "${FFMPEG_INCLUDE_DIR}/../lib${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/../libs${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix}" + "${_AVUTIL_LIBRARY_DIRS}" + /usr/lib /usr/local/lib /opt/local/lib /sw/lib) set(LIBAVUTIL_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavutil include dir") set(LIBAVUTIL_LIBRARIES ${AVUTIL_LIB} CACHE STRING "Libavutil libraries") diff --git a/cmake/Modules/FindLibfdk.cmake b/cmake/Modules/FindLibfdk.cmake index f780a9452..c7e7bc1fa 100644 --- a/cmake/Modules/FindLibfdk.cmake +++ b/cmake/Modules/FindLibfdk.cmake @@ -22,17 +22,21 @@ else() find_path(Libfdk_INCLUDE_DIR NAMES fdk-aac/aacenc_lib.h HINTS + "${CMAKE_SOURCE_DIR}/additional_install_files/include" + "$ENV{obsAdditionalInstallFiles}/include" ENV LibfdkPath ENV FFmpegPath - ${_LIBFDK_INCLUDE_DIRS} + "${_LIBFDK_INCLUDE_DIRS}" /usr/include /usr/local/include /opt/local/include /sw/include) find_library(Libfdk_LIB NAMES fdk-aac libfdk-aac HINTS - ${Libfdk_INCLUDE_DIR}/../lib - ${Libfdk_INCLUDE_DIR}/lib${_lib_suffix} - ${_LIBFDK_LIBRARY_DIRS} + "${Libfdk_INCLUDE_DIR}/../lib" + "${Libfdk_INCLUDE_DIR}/../lib${_lib_suffix}" + "${Libfdk_INCLUDE_DIR}/../libs${_lib_suffix}" + "${Libfdk_INCLUDE_DIR}/lib${_lib_suffix}" + "${_LIBFDK_LIBRARY_DIRS}" /usr/lib /usr/local/lib /opt/local/lib /sw/lib) set(LIBFDK_INCLUDE_DIRS ${Libfdk_INCLUDE_DIR} CACHE PATH "Libfdk include dir") diff --git a/cmake/Modules/FindLibswresample.cmake b/cmake/Modules/FindLibswresample.cmake index 03622a499..ea2c22891 100644 --- a/cmake/Modules/FindLibswresample.cmake +++ b/cmake/Modules/FindLibswresample.cmake @@ -22,14 +22,22 @@ else() find_path(FFMPEG_INCLUDE_DIR NAMES libswresample/swresample.h HINTS + "${CMAKE_SOURCE_DIR}/additional_install_files/include" + "$ENV{obsAdditionalInstallFiles}/include" ENV FFmpegPath - ${_SWRESAMPLE_INCLUDE_DIRS} + "${_SWRESAMPLE_INCLUDE_DIRS}" /usr/include /usr/local/include /opt/local/include /sw/include PATH_SUFFIXES ffmpeg libav) find_library(SWRESAMPLE_LIB NAMES swresample - HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_SWRESAMPLE_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib) + HINTS + "${FFMPEG_INCLUDE_DIR}/../lib" + "${FFMPEG_INCLUDE_DIR}/../lib${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/../libs${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix}" + "${_SWRESAMPLE_LIBRARY_DIRS}" + /usr/lib /usr/local/lib /opt/local/lib /sw/lib) set(LIBSWRESAMPLE_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswresample include dir") set(LIBSWRESAMPLE_LIBRARIES ${SWRESAMPLE_LIB} CACHE STRING "Libswresample libraries") diff --git a/cmake/Modules/FindLibswscale.cmake b/cmake/Modules/FindLibswscale.cmake index 23f1b97ed..1ebf67df3 100644 --- a/cmake/Modules/FindLibswscale.cmake +++ b/cmake/Modules/FindLibswscale.cmake @@ -22,14 +22,22 @@ else() find_path(FFMPEG_INCLUDE_DIR NAMES libswscale/swscale.h HINTS + "${CMAKE_SOURCE_DIR}/additional_install_files/include" + "$ENV{obsAdditionalInstallFiles}/include" ENV FFmpegPath - ${_SWSCALE_INCLUDE_DIRS} + "${_SWSCALE_INCLUDE_DIRS}" /usr/include /usr/local/include /opt/local/include /sw/include PATH_SUFFIXES ffmpeg libav) find_library(SWSCALE_LIB NAMES swscale - HINTS ${FFMPEG_INCLUDE_DIR}/../lib ${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix} ${_SWSCALE_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib) + HINTS + "${FFMPEG_INCLUDE_DIR}/../lib" + "${FFMPEG_INCLUDE_DIR}/../lib${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/../libs${_lib_suffix}" + "${FFMPEG_INCLUDE_DIR}/lib${_lib_suffix}" + "${_SWSCALE_LIBRARY_DIRS}" + /usr/lib /usr/local/lib /opt/local/lib /sw/lib) set(LIBSWSCALE_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswscale include dir") set(LIBSWSCALE_LIBRARIES ${SWSCALE_LIB} CACHE STRING "Libswscale libraries") diff --git a/cmake/Modules/FindLibx264.cmake b/cmake/Modules/FindLibx264.cmake index ea2c28839..4f7b5d95f 100644 --- a/cmake/Modules/FindLibx264.cmake +++ b/cmake/Modules/FindLibx264.cmake @@ -22,14 +22,22 @@ else() find_path(X264_INCLUDE_DIR NAMES x264.h HINTS + "${CMAKE_SOURCE_DIR}/additional_install_files/include" + "$ENV{obsAdditionalInstallFiles}/include" ENV x264Path ENV FFmpegPath - ${_X264_INCLUDE_DIRS} + "${_X264_INCLUDE_DIRS}" /usr/include /usr/local/include /opt/local/include /sw/include) find_library(X264_LIB NAMES x264 libx264 - HINTS ${X264_INCLUDE_DIR}/../lib ${X264_INCLUDE_DIR}/lib${_lib_suffix} ${_X264_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib) + HINTS + "${X264_INCLUDE_DIR}/../lib" + "${X264_INCLUDE_DIR}/../lib${_lib_suffix}" + "${X264_INCLUDE_DIR}/../libs${_lib_suffix}" + "${X264_INCLUDE_DIR}/lib${_lib_suffix}" + "${_X264_LIBRARY_DIRS}" + /usr/lib /usr/local/lib /opt/local/lib /sw/lib) set(LIBX264_INCLUDE_DIRS ${X264_INCLUDE_DIR} CACHE PATH "x264 include dir") set(LIBX264_LIBRARIES ${X264_LIB} CACHE STRING "x264 libraries") diff --git a/cmake/Modules/ObsHelpers.cmake b/cmake/Modules/ObsHelpers.cmake index 5ce17a64f..04003111f 100644 --- a/cmake/Modules/ObsHelpers.cmake +++ b/cmake/Modules/ObsHelpers.cmake @@ -91,7 +91,15 @@ function(obs_generate_multiarch_installer) USE_SOURCE_PERMISSIONS) endfunction() -function(obs_install_additional) +function(obs_helper_copy_dir target source dest) + add_custom_command(TARGET ${target} POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy_directory + "${source}" + "${dest}" + VERBATIM) +endfunction() + +function(obs_install_additional maintarget) set(addfdir "${CMAKE_SOURCE_DIR}/additional_install_files") if(DEFINED ENV{obsAdditionalInstallFiles}) set(addfdir "$ENV{obsAdditionalInstallFiles}") @@ -111,7 +119,7 @@ function(obs_install_additional) DESTINATION "${OBS_DATA_DESTINATION}" USE_SOURCE_PERMISSIONS PATTERN ".gitignore" EXCLUDE) - + if(INSTALLER_RUN) install(DIRECTORY "${addfdir}/libs32/" DESTINATION "${OBS_LIBRARY32_DESTINATION}" @@ -139,6 +147,16 @@ function(obs_install_additional) USE_SOURCE_PERMISSIONS PATTERN ".gitignore" EXCLUDE) endif() + + obs_helper_copy_dir(${maintarget} + "${addfdir}/misc/" + "${CMAKE_BINARY_DIR}/rundir/$/") + obs_helper_copy_dir(${maintarget} + "${addfdir}/data/" + "${CMAKE_BINARY_DIR}/rundir/$/${OBS_DATA_DESTINATION}/") + obs_helper_copy_dir(${maintarget} + "${addfdir}/exec${_lib_suffix}/" + "${CMAKE_BINARY_DIR}/rundir/$/${OBS_EXECUTABLE_DESTINATION}/") endfunction() macro(export_obs_core target exportname) diff --git a/libobs/CMakeLists.txt b/libobs/CMakeLists.txt index 65f52558c..d0c807935 100644 --- a/libobs/CMakeLists.txt +++ b/libobs/CMakeLists.txt @@ -287,3 +287,5 @@ target_link_libraries(libobs install_obs_core(libobs EXPORT LibObs) install_obs_data(libobs data libobs) install_obs_headers(${libobs_HEADERS}) + +obs_install_additional(libobs) diff --git a/obs/CMakeLists.txt b/obs/CMakeLists.txt index d32d7e082..efbbd2983 100644 --- a/obs/CMakeLists.txt +++ b/obs/CMakeLists.txt @@ -129,4 +129,3 @@ target_link_libraries(obs install_obs_core(obs) install_obs_data(obs data obs-studio) -