浏览代码

deps: Update CMakeLists.txt for dependencies

PatTheMav 3 年之前
父节点
当前提交
dba1041034

+ 14 - 26
deps/CMakeLists.txt

@@ -1,39 +1,27 @@
-
-if(NOT MINGW)
-add_subdirectory(w32-pthreads)
+if(OS_WINDOWS)
+  if(NOT MINGW)
+    add_subdirectory(w32-pthreads)
+  endif()
+  add_subdirectory(ipc-util)
+
+  add_subdirectory(blake2)
+  add_subdirectory(lzma)
 endif()
 
 add_subdirectory(glad)
-add_subdirectory(ipc-util)
-
-if(BUILD_LIBFF)
-	add_subdirectory(libff)
-endif()
-
 add_subdirectory(media-playback)
 add_subdirectory(file-updater)
 add_subdirectory(obs-scripting)
 add_subdirectory(opts-parser)
-
-if(WIN32)
-	add_subdirectory(blake2)
-	add_subdirectory(lzma)
-endif()
-
 add_subdirectory(libcaption)
 
+# Use bundled jansson version as fallback
 find_package(Jansson 2.5 QUIET)
+if(NOT TARGET Jansson::Jansson)
+  message(STATUS "OBS: Jansson >=2.5 not found, building bundled version")
 
-if(NOT JANSSON_FOUND)
-	message(STATUS "Jansson >=2.5 not found, building bundled version")
-
-	add_subdirectory(jansson)
-
-	set(OBS_JANSSON_IMPORT "jansson" CACHE INTERNAL "Internal var")
-	set(OBS_JANSSON_INCLUDE_DIRS "" CACHE INTERNAL "Internal var")
+  add_subdirectory(jansson)
+  add_library(Jansson::Jansson ALIAS jansson)
 else()
-	message(STATUS "Using system Jansson library")
-
-	set(OBS_JANSSON_IMPORT "${JANSSON_LIBRARIES}" CACHE INTERNAL "Internal var")
-	set(OBS_JANSSON_INCLUDE_DIRS "${JANSSON_INCLUDE_DIRS}" CACHE INTERNAL "Internal var")
+  message(STATUS "OBS: OBS-Studio - Using system Jansson library")
 endif()

+ 10 - 25
deps/blake2/CMakeLists.txt

@@ -1,33 +1,18 @@
-cmake_minimum_required(VERSION 3.2)
-
 project(blake2)
 
-set(BLAKE2_INCLUDE_DIR
-	"${CMAKE_CURRENT_SOURCE_DIR}/src"
-		CACHE PATH "blake2 include path")
+add_library(blake2 STATIC)
+add_library(OBS::blake2 ALIAS blake2)
 
-include_directories(
-	${LIBblake2_INCLUDE_DIRS}
-	src
-)
+target_sources(blake2 PRIVATE src/blake2b-ref.c src/blake2.h src/blake2-impl.h)
 
-if(WIN32)
-	if(MSVC)
-		add_compile_options($<IF:$<CONFIG:Debug>,/MTd,/MT> /Zl)
-	endif()
-	add_definitions(
-		-Dinline=_inline
-		-Drestrict=__restrict)
-endif()
+target_include_directories(blake2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
 
-set(blake2_SOURCES
-	src/blake2b-ref.c)
+if(OS_WINDOWS)
+  if(MSVC)
+    target_compile_options(blake2 PRIVATE "$<IF:$<CONFIG:Debug>,/MTd,/MT>" /Zl)
+  endif()
 
-set(blake2_HEADERS
-	src/blake2.h
-	src/blake2-impl.h)
+  target_compile_definitions(blake2 PRIVATE inline=_inline restrict=__restrict)
+endif()
 
-add_library(blake2 STATIC
-	${blake2_SOURCES}
-	${blake2_HEADERS})
 set_target_properties(blake2 PROPERTIES FOLDER "deps")

+ 10 - 24
deps/file-updater/CMakeLists.txt

@@ -1,31 +1,17 @@
 project(file-updater)
 
-find_package(Libcurl REQUIRED)
+find_package(CURL REQUIRED)
 
-include_directories(${LIBCURL_INCLUDE_DIRS})
+add_library(file-updater INTERFACE)
+add_library(OBS::file-updater ALIAS file-updater)
 
-if(WIN32 AND NOT MINGW)
-	include_directories(../w32-pthreads)
-	set(file-updater_PLATFORM_DEPS
-		w32-pthreads)
-endif()
-
-set(file-updater_HEADERS
-	file-updater/file-updater.h)
-set(file-updater_SOURCES
-	file-updater/file-updater.c)
+target_sources(file-updater INTERFACE file-updater/file-updater.c
+                                      file-updater/file-updater.h)
 
-add_library(file-updater STATIC
-	${file-updater_SOURCES}
-	${file-updater_HEADERS})
+target_link_libraries(file-updater INTERFACE CURL::libcurl)
 
-target_include_directories(file-updater
-	PUBLIC .)
+target_include_directories(file-updater INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
 
-target_link_libraries(file-updater
-	${LIBCURL_LIBRARIES}
-	${file-updater_PLATFORM_DEPS}
-	libobs)
-set_target_properties(file-updater PROPERTIES
-	FOLDER "deps"
-	POSITION_INDEPENDENT_CODE ON)
+if(OS_WINDOWS AND NOT MINGW)
+  target_link_libraries(file-updater INTERFACE OBS::w32-pthreads)
+endif()

+ 39 - 64
deps/glad/CMakeLists.txt

@@ -1,76 +1,51 @@
 project(glad)
 
-find_package(OpenGL)
+find_package(OpenGL REQUIRED)
 
-if(NOT WIN32 AND NOT APPLE)
-	find_package(X11 REQUIRED)
-	find_package(EGL REQUIRED)
-endif()
+add_library(glad SHARED)
+add_library(OBS::obsglad ALIAS glad)
 
-set(glad_SOURCES
-	src/glad.c
-	include/glad/glad.h)
-
-if(WIN32)
-	set(MODULE_DESCRIPTION "Glad OpenGL Loading Library")
-	configure_file(${CMAKE_SOURCE_DIR}/cmake/winrc/obs-module.rc.in obsglad.rc)
-	set(glad_PLATFORM_SOURCES
-		src/glad_wgl.c
-		include/glad/glad_wgl.h
-		obsglad.rc)
-elseif(NOT APPLE)
-	set(glad_PLATFORM_SOURCES
-		src/glad_egl.c
-		src/glad_glx.c
-		include/glad/glad_egl.h
-		include/glad/glad_glx.h)
-endif()
+target_sources(glad PRIVATE src/glad.c include/glad/glad.h)
 
-set(glad_include_dirs
-	PRIVATE ${OPENGL_INCLUDE_DIR})
+target_include_directories(glad PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
 
-if (UNIX AND NOT APPLE)
-list (APPEND glad_include_dirs
-	PRIVATE
-		${X11_X11_INCLUDE_PATH}
-		${EGL_INCLUDE_DIRS})
-endif()
+target_compile_definitions(glad PRIVATE GLAD_GLAPI_EXPORT_BUILD)
 
-add_library(glad SHARED
-	${glad_SOURCES}
-	${glad_PLATFORM_SOURCES})
-set_target_properties(glad PROPERTIES
-	FOLDER "deps"
-	OUTPUT_NAME obsglad
-	VERSION "0"
-	SOVERSION "0"
-	POSITION_INDEPENDENT_CODE ON)
-target_include_directories(glad
-	PUBLIC include
-	${glad_include_dirs})
-target_compile_definitions(glad
-	PRIVATE GLAD_GLAPI_EXPORT_BUILD)
+target_link_libraries(glad PUBLIC OpenGL::GL)
 
-if(NOT MSVC)
-	target_compile_options(glad
-		PRIVATE -DPIC -fvisibility=hidden)
-endif()
+set_target_properties(
+  glad
+  PROPERTIES OUTPUT_NAME obsglad
+             FOLDER "deps"
+             VERSION "${OBS_VERSION_MAJOR}"
+             SOVERSION "1")
+
+if(OS_WINDOWS)
+  set(MODULE_DESCRIPTION "Glad OpenGL Loading Library")
+
+  configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in
+                 obsglad.rc)
+
+  target_sources(glad PRIVATE src/glad_wgl.c include/glad/glad_wgl.h obsglad.rc)
+
+elseif(OS_POSIX AND NOT OS_MACOS)
+  find_package(OpenGL REQUIRED)
+  find_package(X11 REQUIRED)
+
+  target_link_libraries(glad PRIVATE X11::X11)
+
+  target_sources(glad PRIVATE src/glad_glx.c include/glad/glad_glx.h)
+
+  if(TARGET OpenGL::EGL)
+    target_sources(glad PRIVATE src/glad_egl.c include/glad/glad_egl.h)
+
+    target_link_libraries(glad PRIVATE OpenGL::EGL)
+  endif()
 
-if(NOT WIN32 AND NOT APPLE)
-	set(glad_PLATFORM_DEPS
-		${X11_X11_LIB}
-		${EGL_LIBRARIES})
-
-	# only link to libdl on linux
-	if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-		set(glad_PLATFORM_DEPS
-			${glad_PLATFORM_DEPS}
-			-ldl)
-	endif()
 endif()
 
-target_link_libraries(glad
-	${glad_PLATFORM_DEPS}
-	${OPENGL_gl_LIBRARY})
+if(NOT MSVC)
+  target_compile_options(glad PRIVATE -fvisibility=hidden)
+endif()
 
-install_obs_core(glad)
+setup_binary_target(glad)

+ 18 - 32
deps/ipc-util/CMakeLists.txt

@@ -1,37 +1,23 @@
-# TODO: Add posix support
-if(NOT WIN32)
-	return()
-endif()
-
 project(ipc-util)
 
-set(ipc-util_HEADERS
-	ipc-util/pipe.h)
+add_library(ipc-util STATIC)
+add_library(OBS::ipc-util ALIAS ipc-util)
 
-if(WIN32)
-	set(ipc-util_HEADERS
-		${ipc-util_HEADERS}
-		ipc-util/pipe-windows.h)
-	set(ipc-util_SOURCES
-		ipc-util/pipe-windows.c)
-else()
-	set(ipc-util_HEADERS
-		${ipc-util_HEADERS}
-		ipc-util/pipe-posix.h)
-	set(ipc-util_SOURCES
-		ipc-util/pipe-posix.c)
-endif()
+target_sources(ipc-util PRIVATE ipc-util/pipe.h)
 
-if(MSVC)
-	add_compile_options($<IF:$<CONFIG:Debug>,/MTd,/MT> /Zl)
-endif()
+set_target_properties(ipc-util PROPERTIES FOLDER "deps"
+                                          POSITION_INDEPENDENT_CODE ON)
 
-add_library(ipc-util STATIC
-	${ipc-util_SOURCES}
-	${ipc-util_HEADERS})
-set_target_properties(ipc-util PROPERTIES
-	FOLDER "deps"
-	POSITION_INDEPENDENT_CODE ON)
-target_include_directories(ipc-util
-	PUBLIC .)
-target_link_libraries(ipc-util)
+target_include_directories(ipc-util PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+if(OS_WINDOWS)
+  if(MSVC)
+    target_compile_options(ipc-util PRIVATE "$<IF:$<CONFIG:Debug>,/MTd,/MT>"
+                                            /Zl)
+  endif()
+
+  target_sources(ipc-util PRIVATE ipc-util/pipe-windows.c
+                                  ipc-util/pipe-windows.h)
+else()
+  target_sources(ipc-util PRIVATE ipc-util/pipe-posix.c ipc-util/pipe-posic.h)
+endif()

文件差异内容过多而无法显示
+ 456 - 450
deps/jansson/CMakeLists.txt


+ 34 - 35
deps/libcaption/CMakeLists.txt

@@ -1,41 +1,40 @@
-cmake_minimum_required(VERSION 2.8.12)
 project(libcaption)
-add_definitions(-D__STDC_CONSTANT_MACROS)
-if (WIN32)
-  add_definitions(-D_CRT_SECURE_NO_WARNINGS)
-endif()
 
-if (UNIX AND NOT APPLE)
-  add_compile_options("-fPIC")
-endif()
+add_library(caption STATIC)
+add_library(OBS::caption ALIAS caption)
 
-# Don't need to prefix local includes with "caption/*"
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/caption)
+target_sources(
+  caption
+  PRIVATE src/caption.c
+          src/utf8.c
+          caption/utf8.h
+          src/srt.c
+          src/scc.c
+          caption/scc.h
+          src/mpeg.c
+          caption/mpeg.h
+          src/cea708.c
+          caption/cea708.h
+          src/xds.c
+          src/eia608.c
+          caption/eia608.h
+          src/eia608_from_utf8.c
+          src/eia608_charmap.c
+          caption/eia608_charmap.h
+  PUBLIC caption/caption.h)
 
-set(CAPTION_SOURCES
-  src/utf8.c
-  src/srt.c
-  src/scc.c
-  src/mpeg.c
-  src/cea708.c
-  src/xds.c
-  src/caption.c
-  src/eia608_charmap.c
-  src/eia608_from_utf8.c
-  src/eia608.c
-)
+target_compile_definitions(
+  caption PRIVATE __STDC_CONSTANT_MACROS
+                  "$<$<BOOL:${OS_WINDOWS}>:_CRT_SECURE_NO_WARNINGS>")
 
-set(CAPTION_HEADERS
-  caption/utf8.h
-  caption/scc.h
-  caption/mpeg.h
-  caption/cea708.h
-  caption/eia608.h
-  caption/caption.h
-  caption/eia608_charmap.h
-)
+target_include_directories(
+  caption
+  PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/caption
+  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
 
-add_library(caption STATIC ${CAPTION_SOURCES})
-set_target_properties(caption PROPERTIES
-	FOLDER "deps"
-	POSITION_INDEPENDENT_CODE ON)
+set_target_properties(
+  caption
+  PROPERTIES FOLDER "deps"
+             VERSION "0"
+             SOVERSION "0"
+             POSITION_INDEPENDENT_CODE ON)

+ 43 - 47
deps/libff/CMakeLists.txt

@@ -1,61 +1,57 @@
-cmake_minimum_required (VERSION 2.8.12)
-project (libff)
-
-find_package(FFmpeg REQUIRED
-	COMPONENTS avcodec avfilter avdevice avutil swscale avformat swresample)
+cmake_minimum_required(VERSION 2.8.12)
+project(libff)
+
+find_package(
+  FFmpeg REQUIRED
+  COMPONENTS avcodec
+             avfilter
+             avdevice
+             avutil
+             swscale
+             avformat
+             swresample)
 
 include_directories(${FFMPEG_INCLUDE_DIRS})
 
 if(WIN32 AND NOT MINGW)
-	include_directories(../w32-pthreads)
-	add_definitions(-Dinline=__inline)
+  include_directories(../w32-pthreads)
+  add_definitions(-Dinline=__inline)
 endif(WIN32 AND NOT MINGW)
 
 set(libff_HEADERS
-	libff/ff-callbacks.h
-	libff/ff-circular-queue.h
-	libff/ff-clock.h
-	libff/ff-frame.h
-	libff/ff-packet-queue.h
-	libff/ff-threading.h
-	libff/ff-timer.h
-	libff/ff-util.h
-	#
-	libff/ff-demuxer.h
-	#
-	libff/ff-decoder.h)
+    libff/ff-callbacks.h
+    libff/ff-circular-queue.h
+    libff/ff-clock.h
+    libff/ff-frame.h
+    libff/ff-packet-queue.h
+    libff/ff-threading.h
+    libff/ff-timer.h
+    libff/ff-util.h
+    libff/ff-demuxer.h
+    libff/ff-decoder.h)
 
 set(libff_SOURCES
-	libff/ff-callbacks.c
-	libff/ff-circular-queue.c
-	libff/ff-clock.c
-	libff/ff-packet-queue.c
-	libff/ff-timer.c
-	libff/ff-util.c
-	#
-	libff/ff-demuxer.c
-	#
-	libff/ff-decoder.c
-	libff/ff-audio-decoder.c
-	libff/ff-video-decoder.c)
-
-if (WIN32)
-	list(APPEND libff_SOURCES
-		libff/ff-threading-windows.c)
+    libff/ff-callbacks.c
+    libff/ff-circular-queue.c
+    libff/ff-clock.c
+    libff/ff-packet-queue.c
+    libff/ff-timer.c
+    libff/ff-util.c
+    libff/ff-demuxer.c
+    libff/ff-decoder.c
+    libff/ff-audio-decoder.c
+    libff/ff-video-decoder.c)
+
+if(WIN32)
+  list(APPEND libff_SOURCES libff/ff-threading-windows.c)
 else(WIN32)
-	list(APPEND libff_SOURCES
-		libff/ff-threading-posix.c)
+  list(APPEND libff_SOURCES libff/ff-threading-posix.c)
 endif(WIN32)
 
-add_library (libff STATIC
-	${libff_HEADERS}
-	${libff_SOURCES})
-set_target_properties(libff PROPERTIES
-	FOLDER "deps"
-	POSITION_INDEPENDENT_CODE ON)
+add_library(libff STATIC ${libff_HEADERS} ${libff_SOURCES})
+set_target_properties(libff PROPERTIES FOLDER "deps" POSITION_INDEPENDENT_CODE
+                                                     ON)
 
-target_include_directories(libff
-	PUBLIC .)
+target_include_directories(libff PUBLIC .)
 
-target_link_libraries (libff
-	${FFMPEG_LIBRARIES})
+target_link_libraries(libff ${FFMPEG_LIBRARIES})

+ 107 - 143
deps/lzma/CMakeLists.txt

@@ -1,148 +1,112 @@
-cmake_minimum_required(VERSION 3.2)
-
 project(lzma)
 
-set(LIBLZMA_INCLUDE_DIRS
-	"${CMAKE_CURRENT_SOURCE_DIR}"
-	"${CMAKE_CURRENT_SOURCE_DIR}/liblzma/api"
-		CACHE PATH "lzma include path")
-
-set(LIBLZMA_CONFIG
-	"${CMAKE_CURRENT_SOURCE_DIR}/config.h"
-		CACHE PATH "lzma config.h path")
-
-include_directories(
-	${LIBLZMA_INCLUDE_DIRS}
-	common
-	liblzma/api
-	liblzma/check
-	liblzma/common
-	liblzma/delta
-	liblzma/lz
-	liblzma/lzma
-	liblzma/rangecoder
-	liblzma/simple
-)
-
-add_definitions(
-	-DHAVE_CONFIG_H
-	-DTUKLIB_SYMBOL_PREFIX=lzma_)
-
-if(WIN32)
-	if(MSVC)
-		add_compile_options($<IF:$<CONFIG:Debug>,/MTd,/MT> /Zl)
-		add_compile_options("/wd4244")
-		add_compile_options("/wd4267")
-	endif()
-	add_definitions(
-		-Dinline=_inline
-		-Drestrict=__restrict)
-endif()
-
-set(liblzma_check_SOURCES
-	liblzma/check/check.c)
-
-list(APPEND liblzma_check_SOURCES
-	liblzma/check/crc32_table.c
-	liblzma/check/crc32_fast.c
-	liblzma/check/crc64_table.c
-	liblzma/check/crc64_fast.c
-	liblzma/check/sha256.c)
-
-set(liblzma_common_SOURCES
-	liblzma/common/common.c
-	liblzma/common/block_util.c
-	liblzma/common/easy_preset.c
-	liblzma/common/filter_common.c
-	liblzma/common/hardware_physmem.c
-	liblzma/common/index.c
-	liblzma/common/stream_flags_common.c
-	liblzma/common/vli_size.c
-	liblzma/common/alone_encoder.c
-	liblzma/common/block_buffer_encoder.c
-	liblzma/common/block_encoder.c
-	liblzma/common/block_header_encoder.c
-	liblzma/common/easy_buffer_encoder.c
-	liblzma/common/easy_encoder.c
-	liblzma/common/easy_encoder_memusage.c
-	liblzma/common/filter_buffer_encoder.c
-	liblzma/common/filter_encoder.c
-	liblzma/common/filter_flags_encoder.c
-	liblzma/common/index_encoder.c
-	liblzma/common/stream_buffer_encoder.c
-	liblzma/common/stream_encoder.c
-	liblzma/common/stream_flags_encoder.c
-	liblzma/common/vli_encoder.c
-	liblzma/common/alone_decoder.c
-	liblzma/common/auto_decoder.c
-	liblzma/common/block_buffer_decoder.c
-	liblzma/common/block_decoder.c
-	liblzma/common/block_header_decoder.c
-	liblzma/common/easy_decoder_memusage.c
-	liblzma/common/filter_buffer_decoder.c
-	liblzma/common/filter_decoder.c
-	liblzma/common/filter_flags_decoder.c
-	liblzma/common/index_decoder.c
-	liblzma/common/index_hash.c
-	liblzma/common/stream_buffer_decoder.c
-	liblzma/common/stream_decoder.c
-	liblzma/common/stream_flags_decoder.c
-	liblzma/common/vli_decoder.c)
-
-set(liblzma_delta_SOURCES
-	liblzma/delta/delta_common.c
-	liblzma/delta/delta_encoder.c
-	liblzma/delta/delta_decoder.c)
-
-set(liblzma_lzma_SOURCES
-	liblzma/lzma/lzma_encoder.c
-	liblzma/lzma/lzma_encoder_presets.c
-	liblzma/lzma/lzma_encoder_optimum_fast.c
-	liblzma/lzma/lzma_encoder_optimum_normal.c
-	liblzma/lzma/fastpos_table.c
-	liblzma/lzma/lzma_decoder.c
-
-	liblzma/lzma/lzma2_encoder.c
-	liblzma/lzma/lzma2_decoder.c)
-
-set(liblzma_lz_SOURCES
-	liblzma/lz/lz_encoder.c
-	liblzma/lz/lz_encoder_mf.c
-	liblzma/lz/lz_decoder.c)
-
-set(liblzma_rangecoder_SOURCES
-	liblzma/rangecoder/price_table.c)
-
-set(liblzma_simple_SOURCES
-	liblzma/simple/simple_coder.c
-	liblzma/simple/simple_encoder.c
-	liblzma/simple/simple_decoder.c
-
-	liblzma/simple/arm.c
-	liblzma/simple/armthumb.c
-	liblzma/simple/ia64.c
-	liblzma/simple/powerpc.c
-	liblzma/simple/sparc.c
-	liblzma/simple/x86.c)
-
-if (WIN32)
-	SET_SOURCE_FILES_PROPERTIES(
-		${liblzma_check_SOURCES}
-		${liblzma_common_SOURCES}
-		${liblzma_delta_SOURCES}
-		${liblzma_lz_SOURCES}
-		${liblzma_lzma_SOURCES}
-		${liblzma_rangecoder_SOURCES}
-		${liblzma_simple_SOURCES}
-			PROPERTIES LANGUAGE C)
+add_library(lzma STATIC)
+add_library(OBS::lzma ALIAS lzma)
+
+target_sources(lzma PRIVATE config.h)
+
+target_sources(
+  lzma
+  PRIVATE liblzma/check/check.c liblzma/check/crc32_table.c
+          liblzma/check/crc32_fast.c liblzma/check/crc64_table.c
+          liblzma/check/crc64_fast.c liblzma/check/sha256.c)
+
+target_sources(
+  lzma
+  PRIVATE liblzma/common/common.c
+          liblzma/common/block_util.c
+          liblzma/common/easy_preset.c
+          liblzma/common/filter_common.c
+          liblzma/common/hardware_physmem.c
+          liblzma/common/index.c
+          liblzma/common/stream_flags_common.c
+          liblzma/common/vli_size.c
+          liblzma/common/alone_encoder.c
+          liblzma/common/block_buffer_encoder.c
+          liblzma/common/block_encoder.c
+          liblzma/common/block_header_encoder.c
+          liblzma/common/easy_buffer_encoder.c
+          liblzma/common/easy_encoder.c
+          liblzma/common/easy_encoder_memusage.c
+          liblzma/common/filter_buffer_encoder.c
+          liblzma/common/filter_encoder.c
+          liblzma/common/filter_flags_encoder.c
+          liblzma/common/index_encoder.c
+          liblzma/common/stream_buffer_encoder.c
+          liblzma/common/stream_encoder.c
+          liblzma/common/stream_flags_encoder.c
+          liblzma/common/vli_encoder.c
+          liblzma/common/alone_decoder.c
+          liblzma/common/auto_decoder.c
+          liblzma/common/block_buffer_decoder.c
+          liblzma/common/block_decoder.c
+          liblzma/common/block_header_decoder.c
+          liblzma/common/easy_decoder_memusage.c
+          liblzma/common/filter_buffer_decoder.c
+          liblzma/common/filter_decoder.c
+          liblzma/common/filter_flags_decoder.c
+          liblzma/common/index_decoder.c
+          liblzma/common/index_hash.c
+          liblzma/common/stream_buffer_decoder.c
+          liblzma/common/stream_decoder.c
+          liblzma/common/stream_flags_decoder.c
+          liblzma/common/vli_decoder.c)
+
+target_sources(
+  lzma PRIVATE liblzma/delta/delta_common.c liblzma/delta/delta_encoder.c
+               liblzma/delta/delta_decoder.c)
+
+target_sources(
+  lzma
+  PRIVATE liblzma/lzma/lzma_encoder.c
+          liblzma/lzma/lzma_encoder_presets.c
+          liblzma/lzma/lzma_encoder_optimum_fast.c
+          liblzma/lzma/lzma_encoder_optimum_normal.c
+          liblzma/lzma/fastpos_table.c
+          liblzma/lzma/lzma_decoder.c
+          liblzma/lzma/lzma2_encoder.c
+          liblzma/lzma/lzma2_decoder.c)
+
+target_sources(lzma PRIVATE liblzma/lz/lz_encoder.c liblzma/lz/lz_encoder_mf.c
+                            liblzma/lz/lz_decoder.c)
+
+target_sources(lzma PRIVATE liblzma/rangecoder/price_table.c)
+
+target_sources(
+  lzma
+  PRIVATE liblzma/simple/simple_coder.c
+          liblzma/simple/simple_encoder.c
+          liblzma/simple/simple_decoder.c
+          liblzma/simple/arm.c
+          liblzma/simple/armthumb.c
+          liblzma/simple/ia64.c
+          liblzma/simple/powerpc.c
+          liblzma/simple/sparc.c
+          liblzma/simple/x86.c)
+
+target_compile_definitions(lzma PRIVATE HAVE_CONFIG_H
+                                        TUKLIB_SYMBOL_PREFIX=lzma_)
+
+target_include_directories(
+  lzma
+  PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+          ${CMAKE_CURRENT_SOURCE_DIR}/common
+          ${CMAKE_CURRENT_SOURCE_DIR}/liblzma/check
+          ${CMAKE_CURRENT_SOURCE_DIR}/liblzma/common
+          ${CMAKE_CURRENT_SOURCE_DIR}/liblzma/delta
+          ${CMAKE_CURRENT_SOURCE_DIR}/liblzma/lz
+          ${CMAKE_CURRENT_SOURCE_DIR}/liblzma/lzma
+          ${CMAKE_CURRENT_SOURCE_DIR}/liblzma/rangecoder
+          ${CMAKE_CURRENT_SOURCE_DIR}/liblzma/simple
+  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/liblzma/api)
+
+if(OS_WINDOWS)
+  if(MSVC)
+    target_compile_options(lzma PRIVATE "$<IF:$<CONFIG:Debug>,/MTd,/MT>" /Zl
+                                        /wd4244 /wd4267)
+  endif()
+
+  target_compile_definitions(lzma PRIVATE inline=_inline restrict=__restrict)
 endif()
 
-add_library(lzma STATIC
-	${liblzma_check_SOURCES}
-	${liblzma_common_SOURCES}
-	${liblzma_delta_SOURCES}
-	${liblzma_lz_SOURCES}
-	${liblzma_lzma_SOURCES}
-	${liblzma_rangecoder_SOURCES}
-	${liblzma_simple_SOURCES})
 set_target_properties(lzma PROPERTIES FOLDER "deps")

+ 21 - 37
deps/media-playback/CMakeLists.txt

@@ -1,39 +1,23 @@
 project(media-playback)
 
-find_package(FFmpeg REQUIRED
-	COMPONENTS avcodec avdevice avutil avformat)
-
-include_directories(
-	${CMAKE_SOURCE_DIR}/libobs
-	${FFMPEG_INCLUDE_DIRS}
-	)
-
-set(media-playback_HEADERS
-	media-playback/closest-format.h
-	media-playback/decode.h
-	media-playback/media.h
-	)
-set(media-playback_SOURCES
-	media-playback/decode.c
-	media-playback/media.c
-	)
-
-add_library(media-playback STATIC
-	${media-playback_HEADERS}
-	${media-playback_SOURCES}
-	)
-
-target_compile_options(media-playback
-	PUBLIC
-	${ARCH_SIMD_FLAGS})
-
-target_include_directories(media-playback
-	PUBLIC .
-	)
-
-target_link_libraries(media-playback
-	${FFMPEG_LIBRARIES}
-	)
-set_target_properties(media-playback PROPERTIES
-	FOLDER "deps"
-	POSITION_INDEPENDENT_CODE ON)
+option(ENABLE_SIMDE "Enable non-native SSE2 SIMD support" ON)
+
+find_package(FFmpeg REQUIRED COMPONENTS avcodec avdevice avutil avformat)
+
+add_library(media-playback INTERFACE)
+add_library(OBS::media-playback ALIAS media-playback)
+
+target_sources(
+  media-playback
+  INTERFACE media-playback/media.c media-playback/media.h
+            media-playback/decode.c media-playback/decode.h
+            media-playback/closest-format.h)
+
+target_link_libraries(media-playback INTERFACE FFmpeg::avcodec FFmpeg::avdevice
+                                               FFmpeg::avutil FFmpeg::avformat)
+
+target_include_directories(media-playback INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
+
+target_compile_options(media-playback INTERFACE ${ARCH_SIMD_FLAGS})
+
+target_compile_definitions(media-playback INTERFACE ${ARCH_SIMD_DEFINES})

+ 7 - 14
deps/opts-parser/CMakeLists.txt

@@ -1,17 +1,10 @@
 project(opts-parser)
 
-set(opts-parser_SOURCES
-	opts-parser.c)
-set(opts-parser_HEADERS
-	opts-parser.h)
+add_library(opts-parser INTERFACE)
+add_library(OBS::opts-parser ALIAS opts-parser)
 
-add_library(opts-parser STATIC
-	${opts-parser_SOURCES}
-	${opts-parser_HEADERS})
-target_include_directories(opts-parser
-	PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(opts-parser
-	libobs)
-set_target_properties(opts-parser PROPERTIES
-	FOLDER "deps"
-	POSITION_INDEPENDENT_CODE ON)
+target_sources(opts-parser INTERFACE opts-parser.c opts-parser.h)
+
+target_link_libraries(opts-parser INTERFACE OBS::libobs)
+
+target_include_directories(opts-parser INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})

+ 19 - 24
deps/w32-pthreads/CMakeLists.txt

@@ -1,30 +1,25 @@
+if(POLICY CMP0090)
+  cmake_policy(SET CMP0090 NEW)
+endif()
+
 project(w32-pthreads)
 
-if(NOT WIN32)
-	return()
-endif()
+add_library(w32-pthreads SHARED)
+add_library(OBS::w32-pthreads ALIAS w32-pthreads)
+
+target_sources(w32-pthreads PRIVATE implement.h pthread.c pthread.h sched.h
+                                    semaphore.h w32-pthreads.rc)
 
 set(MODULE_DESCRIPTION "POSIX Threads for Windows")
-configure_file(${CMAKE_SOURCE_DIR}/cmake/winrc/obs-module.rc.in w32-pthreads.rc)
-set(w32-pthreads_SOURCES
-	pthread.c
-	w32-pthreads.rc)
-
-set(w32-pthreads_HEADERS
-	implement.h
-	pthread.h
-	sched.h
-	semaphore.h)
-
-add_library(w32-pthreads SHARED
-	${w32-pthreads_SOURCES}
-	${w32-pthreads_HEADERS})
-target_compile_definitions(w32-pthreads
-	PRIVATE __CLEANUP_C PTW32_BUILD)
-target_include_directories(w32-pthreads
-	PUBLIC
-		"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>")
-target_link_libraries(w32-pthreads)
+configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in
+               w32-pthreads.rc)
+
+target_compile_definitions(w32-pthreads PRIVATE __CLEANUP_C PTW32_BUILD)
+
+target_include_directories(
+  w32-pthreads PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>")
+
 set_target_properties(w32-pthreads PROPERTIES FOLDER "deps")
 
-install_obs_core(w32-pthreads EXPORT w32-pthreads)
+setup_binary_target(w32-pthreads)
+export_target(w32-pthreads)

+ 6 - 0
deps/w32-pthreads/cmake/w32-pthreadsConfig.cmake.in

@@ -0,0 +1,6 @@
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")
+check_required_components("@PROJECT_NAME@")
+
+set(LIBOBS_LIBRARIES w32-pthreads)

部分文件因为文件数量过多而无法显示