Add support for build time dependency copying

This commit is contained in:
BtbN 2014-07-16 04:36:45 +02:00
parent 4b5b7534aa
commit 415a698bac
12 changed files with 98 additions and 21 deletions

View file

@ -82,5 +82,3 @@ if(NOT INSTALLER_RUN)
else() else()
obs_generate_multiarch_installer() obs_generate_multiarch_installer()
endif() endif()
obs_install_additional()

8
additional_install_files/.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
*
!.gitignore
!data/
!exec32/
!exec64/
!libs32/
!libs64/
!misc/

View file

@ -22,14 +22,22 @@ else()
find_path(FFMPEG_INCLUDE_DIR find_path(FFMPEG_INCLUDE_DIR
NAMES libavcodec/avcodec.h NAMES libavcodec/avcodec.h
HINTS HINTS
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV FFmpegPath ENV FFmpegPath
${_AVCODEC_INCLUDE_DIRS} "${_AVCODEC_INCLUDE_DIRS}"
/usr/include /usr/local/include /opt/local/include /sw/include /usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES ffmpeg libav) PATH_SUFFIXES ffmpeg libav)
find_library(AVCODEC_LIB find_library(AVCODEC_LIB
NAMES avcodec 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_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavcodec include dir")
set(LIBAVCODEC_LIBRARIES ${AVCODEC_LIB} CACHE STRING "Libavcodec libraries") set(LIBAVCODEC_LIBRARIES ${AVCODEC_LIB} CACHE STRING "Libavcodec libraries")

View file

@ -22,14 +22,22 @@ else()
find_path(FFMPEG_INCLUDE_DIR find_path(FFMPEG_INCLUDE_DIR
NAMES libavformat/avformat.h NAMES libavformat/avformat.h
HINTS HINTS
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV FFmpegPath ENV FFmpegPath
${_AVFORMAT_INCLUDE_DIRS} "${_AVFORMAT_INCLUDE_DIRS}"
/usr/include /usr/local/include /opt/local/include /sw/include /usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES ffmpeg libav) PATH_SUFFIXES ffmpeg libav)
find_library(AVFORMAT_LIB find_library(AVFORMAT_LIB
NAMES avformat 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_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavformat include dir")
set(LIBAVFORMAT_LIBRARIES ${AVFORMAT_LIB} CACHE STRING "Libavformat libraries") set(LIBAVFORMAT_LIBRARIES ${AVFORMAT_LIB} CACHE STRING "Libavformat libraries")

View file

@ -22,14 +22,22 @@ else()
find_path(FFMPEG_INCLUDE_DIR find_path(FFMPEG_INCLUDE_DIR
NAMES libavutil/avutil.h NAMES libavutil/avutil.h
HINTS HINTS
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV FFmpegPath ENV FFmpegPath
${_AVUTIL_INCLUDE_DIRS} "${_AVUTIL_INCLUDE_DIRS}"
/usr/include /usr/local/include /opt/local/include /sw/include /usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES ffmpeg libav) PATH_SUFFIXES ffmpeg libav)
find_library(AVUTIL_LIB find_library(AVUTIL_LIB
NAMES avutil 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_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libavutil include dir")
set(LIBAVUTIL_LIBRARIES ${AVUTIL_LIB} CACHE STRING "Libavutil libraries") set(LIBAVUTIL_LIBRARIES ${AVUTIL_LIB} CACHE STRING "Libavutil libraries")

View file

@ -22,17 +22,21 @@ else()
find_path(Libfdk_INCLUDE_DIR find_path(Libfdk_INCLUDE_DIR
NAMES fdk-aac/aacenc_lib.h NAMES fdk-aac/aacenc_lib.h
HINTS HINTS
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV LibfdkPath ENV LibfdkPath
ENV FFmpegPath ENV FFmpegPath
${_LIBFDK_INCLUDE_DIRS} "${_LIBFDK_INCLUDE_DIRS}"
/usr/include /usr/local/include /opt/local/include /sw/include) /usr/include /usr/local/include /opt/local/include /sw/include)
find_library(Libfdk_LIB find_library(Libfdk_LIB
NAMES fdk-aac libfdk-aac NAMES fdk-aac libfdk-aac
HINTS HINTS
${Libfdk_INCLUDE_DIR}/../lib "${Libfdk_INCLUDE_DIR}/../lib"
${Libfdk_INCLUDE_DIR}/lib${_lib_suffix} "${Libfdk_INCLUDE_DIR}/../lib${_lib_suffix}"
${_LIBFDK_LIBRARY_DIRS} "${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) /usr/lib /usr/local/lib /opt/local/lib /sw/lib)
set(LIBFDK_INCLUDE_DIRS ${Libfdk_INCLUDE_DIR} CACHE PATH "Libfdk include dir") set(LIBFDK_INCLUDE_DIRS ${Libfdk_INCLUDE_DIR} CACHE PATH "Libfdk include dir")

View file

@ -22,14 +22,22 @@ else()
find_path(FFMPEG_INCLUDE_DIR find_path(FFMPEG_INCLUDE_DIR
NAMES libswresample/swresample.h NAMES libswresample/swresample.h
HINTS HINTS
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV FFmpegPath ENV FFmpegPath
${_SWRESAMPLE_INCLUDE_DIRS} "${_SWRESAMPLE_INCLUDE_DIRS}"
/usr/include /usr/local/include /opt/local/include /sw/include /usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES ffmpeg libav) PATH_SUFFIXES ffmpeg libav)
find_library(SWRESAMPLE_LIB find_library(SWRESAMPLE_LIB
NAMES swresample 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_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswresample include dir")
set(LIBSWRESAMPLE_LIBRARIES ${SWRESAMPLE_LIB} CACHE STRING "Libswresample libraries") set(LIBSWRESAMPLE_LIBRARIES ${SWRESAMPLE_LIB} CACHE STRING "Libswresample libraries")

View file

@ -22,14 +22,22 @@ else()
find_path(FFMPEG_INCLUDE_DIR find_path(FFMPEG_INCLUDE_DIR
NAMES libswscale/swscale.h NAMES libswscale/swscale.h
HINTS HINTS
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV FFmpegPath ENV FFmpegPath
${_SWSCALE_INCLUDE_DIRS} "${_SWSCALE_INCLUDE_DIRS}"
/usr/include /usr/local/include /opt/local/include /sw/include /usr/include /usr/local/include /opt/local/include /sw/include
PATH_SUFFIXES ffmpeg libav) PATH_SUFFIXES ffmpeg libav)
find_library(SWSCALE_LIB find_library(SWSCALE_LIB
NAMES swscale 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_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIR} CACHE PATH "Libswscale include dir")
set(LIBSWSCALE_LIBRARIES ${SWSCALE_LIB} CACHE STRING "Libswscale libraries") set(LIBSWSCALE_LIBRARIES ${SWSCALE_LIB} CACHE STRING "Libswscale libraries")

View file

@ -22,14 +22,22 @@ else()
find_path(X264_INCLUDE_DIR find_path(X264_INCLUDE_DIR
NAMES x264.h NAMES x264.h
HINTS HINTS
"${CMAKE_SOURCE_DIR}/additional_install_files/include"
"$ENV{obsAdditionalInstallFiles}/include"
ENV x264Path ENV x264Path
ENV FFmpegPath ENV FFmpegPath
${_X264_INCLUDE_DIRS} "${_X264_INCLUDE_DIRS}"
/usr/include /usr/local/include /opt/local/include /sw/include) /usr/include /usr/local/include /opt/local/include /sw/include)
find_library(X264_LIB find_library(X264_LIB
NAMES x264 libx264 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_INCLUDE_DIRS ${X264_INCLUDE_DIR} CACHE PATH "x264 include dir")
set(LIBX264_LIBRARIES ${X264_LIB} CACHE STRING "x264 libraries") set(LIBX264_LIBRARIES ${X264_LIB} CACHE STRING "x264 libraries")

View file

@ -91,7 +91,15 @@ function(obs_generate_multiarch_installer)
USE_SOURCE_PERMISSIONS) USE_SOURCE_PERMISSIONS)
endfunction() 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") set(addfdir "${CMAKE_SOURCE_DIR}/additional_install_files")
if(DEFINED ENV{obsAdditionalInstallFiles}) if(DEFINED ENV{obsAdditionalInstallFiles})
set(addfdir "$ENV{obsAdditionalInstallFiles}") set(addfdir "$ENV{obsAdditionalInstallFiles}")
@ -111,7 +119,7 @@ function(obs_install_additional)
DESTINATION "${OBS_DATA_DESTINATION}" DESTINATION "${OBS_DATA_DESTINATION}"
USE_SOURCE_PERMISSIONS USE_SOURCE_PERMISSIONS
PATTERN ".gitignore" EXCLUDE) PATTERN ".gitignore" EXCLUDE)
if(INSTALLER_RUN) if(INSTALLER_RUN)
install(DIRECTORY "${addfdir}/libs32/" install(DIRECTORY "${addfdir}/libs32/"
DESTINATION "${OBS_LIBRARY32_DESTINATION}" DESTINATION "${OBS_LIBRARY32_DESTINATION}"
@ -139,6 +147,16 @@ function(obs_install_additional)
USE_SOURCE_PERMISSIONS USE_SOURCE_PERMISSIONS
PATTERN ".gitignore" EXCLUDE) PATTERN ".gitignore" EXCLUDE)
endif() endif()
obs_helper_copy_dir(${maintarget}
"${addfdir}/misc/"
"${CMAKE_BINARY_DIR}/rundir/$<CONFIGURATION>/")
obs_helper_copy_dir(${maintarget}
"${addfdir}/data/"
"${CMAKE_BINARY_DIR}/rundir/$<CONFIGURATION>/${OBS_DATA_DESTINATION}/")
obs_helper_copy_dir(${maintarget}
"${addfdir}/exec${_lib_suffix}/"
"${CMAKE_BINARY_DIR}/rundir/$<CONFIGURATION>/${OBS_EXECUTABLE_DESTINATION}/")
endfunction() endfunction()
macro(export_obs_core target exportname) macro(export_obs_core target exportname)

View file

@ -287,3 +287,5 @@ target_link_libraries(libobs
install_obs_core(libobs EXPORT LibObs) install_obs_core(libobs EXPORT LibObs)
install_obs_data(libobs data libobs) install_obs_data(libobs data libobs)
install_obs_headers(${libobs_HEADERS}) install_obs_headers(${libobs_HEADERS})
obs_install_additional(libobs)

View file

@ -129,4 +129,3 @@ target_link_libraries(obs
install_obs_core(obs) install_obs_core(obs)
install_obs_data(obs data obs-studio) install_obs_data(obs data obs-studio)