From 5c597102f2196626db99305aebdccd296d9705d9 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Fri, 18 Jul 2014 22:23:44 -0700 Subject: [PATCH] Improve additional_install_files for debug/release This improves dependency copying and adds separated debug/release install files. --- additional_install_files/.gitignore | 8 ++ additional_install_files/data/.gitignore | 2 +- additional_install_files/exec32/.gitignore | 2 +- additional_install_files/exec32d/.gitignore | 2 + additional_install_files/exec32r/.gitignore | 2 + additional_install_files/exec64/.gitignore | 2 +- additional_install_files/exec64d/.gitignore | 2 + additional_install_files/exec64r/.gitignore | 2 + additional_install_files/libs32/.gitignore | 2 +- additional_install_files/libs32d/.gitignore | 2 + additional_install_files/libs32r/.gitignore | 2 + additional_install_files/libs64/.gitignore | 2 +- additional_install_files/libs64d/.gitignore | 2 + additional_install_files/libs64r/.gitignore | 2 + additional_install_files/misc/.gitignore | 2 +- cmake/Modules/FindLibavcodec.cmake | 4 + cmake/Modules/FindLibfdk.cmake | 4 + cmake/Modules/FindLibx264.cmake | 4 + cmake/Modules/ObsHelpers.cmake | 97 +++++++++++++++++++-- cmake/copy_helper.cmake | 17 ++++ libobs-d3d11/CMakeLists.txt | 2 +- 21 files changed, 150 insertions(+), 14 deletions(-) create mode 100644 additional_install_files/exec32d/.gitignore create mode 100644 additional_install_files/exec32r/.gitignore create mode 100644 additional_install_files/exec64d/.gitignore create mode 100644 additional_install_files/exec64r/.gitignore create mode 100644 additional_install_files/libs32d/.gitignore create mode 100644 additional_install_files/libs32r/.gitignore create mode 100644 additional_install_files/libs64d/.gitignore create mode 100644 additional_install_files/libs64r/.gitignore create mode 100644 cmake/copy_helper.cmake diff --git a/additional_install_files/.gitignore b/additional_install_files/.gitignore index 11d9d9d76..206f10f7b 100644 --- a/additional_install_files/.gitignore +++ b/additional_install_files/.gitignore @@ -2,7 +2,15 @@ !.gitignore !data/ !exec32/ +!exec32r/ +!exec32d/ !exec64/ +!exec64r/ +!exec64d/ !libs32/ +!libs32r/ +!libs32d/ !libs64/ +!libs64r/ +!libs64d/ !misc/ diff --git a/additional_install_files/data/.gitignore b/additional_install_files/data/.gitignore index c96a04f00..d6b7ef32c 100644 --- a/additional_install_files/data/.gitignore +++ b/additional_install_files/data/.gitignore @@ -1,2 +1,2 @@ * -!.gitignore \ No newline at end of file +!.gitignore diff --git a/additional_install_files/exec32/.gitignore b/additional_install_files/exec32/.gitignore index c96a04f00..d6b7ef32c 100644 --- a/additional_install_files/exec32/.gitignore +++ b/additional_install_files/exec32/.gitignore @@ -1,2 +1,2 @@ * -!.gitignore \ No newline at end of file +!.gitignore diff --git a/additional_install_files/exec32d/.gitignore b/additional_install_files/exec32d/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/additional_install_files/exec32d/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/additional_install_files/exec32r/.gitignore b/additional_install_files/exec32r/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/additional_install_files/exec32r/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/additional_install_files/exec64/.gitignore b/additional_install_files/exec64/.gitignore index c96a04f00..d6b7ef32c 100644 --- a/additional_install_files/exec64/.gitignore +++ b/additional_install_files/exec64/.gitignore @@ -1,2 +1,2 @@ * -!.gitignore \ No newline at end of file +!.gitignore diff --git a/additional_install_files/exec64d/.gitignore b/additional_install_files/exec64d/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/additional_install_files/exec64d/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/additional_install_files/exec64r/.gitignore b/additional_install_files/exec64r/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/additional_install_files/exec64r/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/additional_install_files/libs32/.gitignore b/additional_install_files/libs32/.gitignore index c96a04f00..d6b7ef32c 100644 --- a/additional_install_files/libs32/.gitignore +++ b/additional_install_files/libs32/.gitignore @@ -1,2 +1,2 @@ * -!.gitignore \ No newline at end of file +!.gitignore diff --git a/additional_install_files/libs32d/.gitignore b/additional_install_files/libs32d/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/additional_install_files/libs32d/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/additional_install_files/libs32r/.gitignore b/additional_install_files/libs32r/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/additional_install_files/libs32r/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/additional_install_files/libs64/.gitignore b/additional_install_files/libs64/.gitignore index c96a04f00..d6b7ef32c 100644 --- a/additional_install_files/libs64/.gitignore +++ b/additional_install_files/libs64/.gitignore @@ -1,2 +1,2 @@ * -!.gitignore \ No newline at end of file +!.gitignore diff --git a/additional_install_files/libs64d/.gitignore b/additional_install_files/libs64d/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/additional_install_files/libs64d/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/additional_install_files/libs64r/.gitignore b/additional_install_files/libs64r/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/additional_install_files/libs64r/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/additional_install_files/misc/.gitignore b/additional_install_files/misc/.gitignore index c96a04f00..d6b7ef32c 100644 --- a/additional_install_files/misc/.gitignore +++ b/additional_install_files/misc/.gitignore @@ -1,2 +1,2 @@ * -!.gitignore \ No newline at end of file +!.gitignore diff --git a/cmake/Modules/FindLibavcodec.cmake b/cmake/Modules/FindLibavcodec.cmake index 6ec356db0..f5061ed90 100644 --- a/cmake/Modules/FindLibavcodec.cmake +++ b/cmake/Modules/FindLibavcodec.cmake @@ -4,6 +4,10 @@ # LIBAVCODEC_INCLUDE_DIRS # LIBAVCODEC_LIBRARIES # +# For use in OBS: +# +# FFMPEG_INCLUDE_DIR +# if(LIBAVCODEC_INCLUDE_DIRS AND LIBAVCODEC_LIBRARIES) set(LIBAVCODEC_FOUND TRUE) diff --git a/cmake/Modules/FindLibfdk.cmake b/cmake/Modules/FindLibfdk.cmake index c7e7bc1fa..8132cddc2 100644 --- a/cmake/Modules/FindLibfdk.cmake +++ b/cmake/Modules/FindLibfdk.cmake @@ -4,6 +4,10 @@ # LIBFDK_INCLUDE_DIRS # LIBFDK_LIBRARIES # +# For use in OBS: +# +# Libfdk_INCLUDE_DIR +# if(LIBFDK_INCLUDE_DIRS AND LIBFDK_LIBRARIES) set(LIBFDK_FOUND TRUE) diff --git a/cmake/Modules/FindLibx264.cmake b/cmake/Modules/FindLibx264.cmake index 4f7b5d95f..32c49d294 100644 --- a/cmake/Modules/FindLibx264.cmake +++ b/cmake/Modules/FindLibx264.cmake @@ -4,6 +4,10 @@ # LIBX264_INCLUDE_DIRS # LIBX264_LIBRARIES # +# For use in OBS: +# +# X264_INCLUDE_DIR +# if(LIBX264_INCLUDE_DIRS AND LIBX264_LIBRARIES) set(LIBX264_FOUND TRUE) diff --git a/cmake/Modules/ObsHelpers.cmake b/cmake/Modules/ObsHelpers.cmake index 04003111f..1856710ff 100644 --- a/cmake/Modules/ObsHelpers.cmake +++ b/cmake/Modules/ObsHelpers.cmake @@ -91,11 +91,14 @@ function(obs_generate_multiarch_installer) USE_SOURCE_PERMISSIONS) endfunction() -function(obs_helper_copy_dir target source dest) +function(obs_helper_copy_dir target target_configs source dest) add_custom_command(TARGET ${target} POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E copy_directory - "${source}" - "${dest}" + COMMAND "${CMAKE_COMMAND}" + "-DCONFIG=$" + "-DTARGET_CONFIGS=${target_configs}" + "-DINPUT=${source}" + "-DOUTPUT=${dest}" + -P "${CMAKE_SOURCE_DIR}/cmake/copy_helper.cmake" VERBATIM) endfunction() @@ -137,6 +140,48 @@ function(obs_install_additional maintarget) DESTINATION "${OBS_EXECUTABLE64_DESTINATION}" USE_SOURCE_PERMISSIONS PATTERN ".gitignore" EXCLUDE) + + install(DIRECTORY "${addfdir}/libs32d/" + DESTINATION "${OBS_LIBRARY32_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Debug + PATTERN ".gitignore" EXCLUDE) + install(DIRECTORY "${addfdir}/exec32d/" + DESTINATION "${OBS_EXECUTABLE32_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Debug + PATTERN ".gitignore" EXCLUDE) + install(DIRECTORY "${addfdir}/libs64d/" + DESTINATION "${OBS_LIBRARY64_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Debug + PATTERN ".gitignore" EXCLUDE) + install(DIRECTORY "${addfdir}/exec64d/" + DESTINATION "${OBS_EXECUTABLE64_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Debug + PATTERN ".gitignore" EXCLUDE) + + install(DIRECTORY "${addfdir}/libs32r/" + DESTINATION "${OBS_LIBRARY32_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Release RelWithDebInfo MinSizeRel + PATTERN ".gitignore" EXCLUDE) + install(DIRECTORY "${addfdir}/exec32r/" + DESTINATION "${OBS_EXECUTABLE32_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Release RelWithDebInfo MinSizeRel + PATTERN ".gitignore" EXCLUDE) + install(DIRECTORY "${addfdir}/libs64r/" + DESTINATION "${OBS_LIBRARY64_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Release RelWithDebInfo MinSizeRel + PATTERN ".gitignore" EXCLUDE) + install(DIRECTORY "${addfdir}/exec64r/" + DESTINATION "${OBS_EXECUTABLE64_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Release RelWithDebInfo MinSizeRel + PATTERN ".gitignore" EXCLUDE) else() install(DIRECTORY "${addfdir}/libs${_lib_suffix}/" DESTINATION "${OBS_LIBRARY_DESTINATION}" @@ -146,17 +191,55 @@ function(obs_install_additional maintarget) DESTINATION "${OBS_EXECUTABLE_DESTINATION}" USE_SOURCE_PERMISSIONS PATTERN ".gitignore" EXCLUDE) + + install(DIRECTORY "${addfdir}/libs${_lib_suffix}d/" + DESTINATION "${OBS_LIBRARY_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Debug + PATTERN ".gitignore" EXCLUDE) + install(DIRECTORY "${addfdir}/exec${_lib_suffix}d/" + DESTINATION "${OBS_EXECUTABLE_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Debug + PATTERN ".gitignore" EXCLUDE) + + install(DIRECTORY "${addfdir}/libs${_lib_suffix}r/" + DESTINATION "${OBS_LIBRARY_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Release RelWithDebInfo MinSizeRel + PATTERN ".gitignore" EXCLUDE) + install(DIRECTORY "${addfdir}/exec${_lib_suffix}r/" + DESTINATION "${OBS_EXECUTABLE_DESTINATION}" + USE_SOURCE_PERMISSIONS + CONFIGURATIONS Release RelWithDebInfo MinSizeRel + PATTERN ".gitignore" EXCLUDE) endif() - obs_helper_copy_dir(${maintarget} + obs_helper_copy_dir(${maintarget} ALL "${addfdir}/misc/" "${CMAKE_BINARY_DIR}/rundir/$/") - obs_helper_copy_dir(${maintarget} + obs_helper_copy_dir(${maintarget} ALL "${addfdir}/data/" "${CMAKE_BINARY_DIR}/rundir/$/${OBS_DATA_DESTINATION}/") - obs_helper_copy_dir(${maintarget} + obs_helper_copy_dir(${maintarget} ALL + "${addfdir}/libs${_lib_suffix}/" + "${CMAKE_BINARY_DIR}/rundir/$/${OBS_LIBRARY_DESTINATION}/") + obs_helper_copy_dir(${maintarget} ALL "${addfdir}/exec${_lib_suffix}/" "${CMAKE_BINARY_DIR}/rundir/$/${OBS_EXECUTABLE_DESTINATION}/") + + obs_helper_copy_dir(${maintarget} "Release;MinSizeRel;RelWithDebInfo" + "${addfdir}/exec${_lib_suffix}r/" + "${CMAKE_BINARY_DIR}/rundir/$/${OBS_EXECUTABLE_DESTINATION}/") + obs_helper_copy_dir(${maintarget} "Debug" + "${addfdir}/exec${_lib_suffix}d/" + "${CMAKE_BINARY_DIR}/rundir/$/${OBS_EXECUTABLE_DESTINATION}/") + obs_helper_copy_dir(${maintarget} "Release;MinSizeRel;RelWithDebInfo" + "${addfdir}/libs${_lib_suffix}r/" + "${CMAKE_BINARY_DIR}/rundir/$/${OBS_LIBRARY_DESTINATION}/") + obs_helper_copy_dir(${maintarget} "Debug" + "${addfdir}/libs${_lib_suffix}d/" + "${CMAKE_BINARY_DIR}/rundir/$/${OBS_LIBRARY_DESTINATION}/") endfunction() macro(export_obs_core target exportname) diff --git a/cmake/copy_helper.cmake b/cmake/copy_helper.cmake new file mode 100644 index 000000000..d76e821ea --- /dev/null +++ b/cmake/copy_helper.cmake @@ -0,0 +1,17 @@ + +if(NOT EXISTS "${INPUT}") + return() +endif() + +set(_do_pass FALSE) +foreach(target ${TARGET_CONFIGS}) + if(target STREQUAL "${CONFIG}" OR target STREQUAL "ALL") + set(_do_pass TRUE) + endif() +endforeach() + +if(NOT _do_pass) + return() +endif() + +file(COPY "${INPUT}" DESTINATION "${OUTPUT}") diff --git a/libobs-d3d11/CMakeLists.txt b/libobs-d3d11/CMakeLists.txt index a7d045021..d5cc5fdde 100644 --- a/libobs-d3d11/CMakeLists.txt +++ b/libobs-d3d11/CMakeLists.txt @@ -18,7 +18,7 @@ set(libobs-d3d11_SOURCES set(libobs-d3d11_HEADERS d3d11-shaderprocessor.hpp d3d11-subsystem.hpp) - + add_library(libobs-d3d11 MODULE ${libobs-d3d11_SOURCES} ${libobs-d3d11_HEADERS})