mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-06-30 08:33:32 +00:00
deps: Update CMake target source lists with alphabetic sorting
Also manually updates some CMake script files to make code more readable.
This commit is contained in:
parent
9ae47a7937
commit
aa137f0766
12
deps/CMakeLists.txt
vendored
12
deps/CMakeLists.txt
vendored
|
@ -1,16 +1,14 @@
|
|||
if(OS_WINDOWS)
|
||||
if(NOT MINGW)
|
||||
add_subdirectory(w32-pthreads)
|
||||
endif()
|
||||
add_subdirectory(ipc-util)
|
||||
add_subdirectory(w32-pthreads)
|
||||
endif()
|
||||
|
||||
add_subdirectory(blake2)
|
||||
add_subdirectory(glad)
|
||||
add_subdirectory(media-playback)
|
||||
add_subdirectory(file-updater)
|
||||
add_subdirectory(glad)
|
||||
add_subdirectory(happy-eyeballs)
|
||||
add_subdirectory(libcaption)
|
||||
add_subdirectory(media-playback)
|
||||
add_subdirectory(obs-scripting)
|
||||
add_subdirectory(opts-parser)
|
||||
add_subdirectory(libcaption)
|
||||
add_subdirectory(uthash)
|
||||
add_subdirectory(happy-eyeballs)
|
||||
|
|
15
deps/blake2/CMakeLists.txt
vendored
15
deps/blake2/CMakeLists.txt
vendored
|
@ -1,18 +1,13 @@
|
|||
cmake_minimum_required(VERSION 3.22...3.25)
|
||||
|
||||
add_library(blake2 STATIC EXCLUDE_FROM_ALL )
|
||||
add_library(blake2 OBJECT)
|
||||
add_library(OBS::blake2 ALIAS blake2)
|
||||
|
||||
target_sources(blake2 PRIVATE src/blake2b-ref.c src/blake2.h src/blake2-impl.h)
|
||||
target_sources(
|
||||
blake2
|
||||
PRIVATE src/blake2-impl.h src/blake2b-ref.c
|
||||
PUBLIC src/blake2.h)
|
||||
|
||||
target_include_directories(blake2 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
set_source_files_properties(
|
||||
src/blake2b-ref.c PROPERTIES COMPILE_OPTIONS
|
||||
"$<$<C_COMPILER_ID:AppleClang,Clang>:-Wno-error=implicit-int-conversion>")
|
||||
|
||||
if(OS_WINDOWS)
|
||||
target_compile_options(blake2 PRIVATE $<IF:$<CONFIG:Debug>,/MTd,/MT> /Zl)
|
||||
target_compile_definitions(blake2 PRIVATE inline=_inline restrict=__restrict)
|
||||
endif()
|
||||
|
||||
set_target_properties(blake2 PROPERTIES FOLDER deps)
|
||||
|
|
4
deps/file-updater/CMakeLists.txt
vendored
4
deps/file-updater/CMakeLists.txt
vendored
|
@ -7,6 +7,6 @@ add_library(OBS::file-updater ALIAS file-updater)
|
|||
|
||||
target_sources(file-updater INTERFACE file-updater/file-updater.c file-updater/file-updater.h)
|
||||
|
||||
target_link_libraries(file-updater INTERFACE CURL::libcurl $<$<PLATFORM_ID:Windows>:OBS::w32-pthreads>)
|
||||
|
||||
target_include_directories(file-updater INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
target_link_libraries(file-updater INTERFACE CURL::libcurl $<$<PLATFORM_ID:Windows>:OBS::w32-pthreads>)
|
||||
|
|
33
deps/glad/CMakeLists.txt
vendored
33
deps/glad/CMakeLists.txt
vendored
|
@ -2,29 +2,32 @@ cmake_minimum_required(VERSION 3.22...3.25)
|
|||
|
||||
find_package(OpenGL REQUIRED)
|
||||
|
||||
add_library(obsglad STATIC EXCLUDE_FROM_ALL )
|
||||
add_library(obsglad OBJECT)
|
||||
add_library(OBS::glad ALIAS obsglad)
|
||||
|
||||
if(OBS_CMAKE_VERSION VERSION_LESS 3.0.0)
|
||||
add_library(OBS::obsglad ALIAS obsglad)
|
||||
endif()
|
||||
|
||||
target_sources(obsglad PRIVATE src/glad.c include/glad/glad.h)
|
||||
# cmake-format: off
|
||||
target_sources(
|
||||
obsglad
|
||||
PRIVATE src/glad.c
|
||||
$<$<PLATFORM_ID:Windows>:src/glad_wgl.c>
|
||||
$<$<TARGET_EXISTS:OpenGL::EGL>:src/glad_egl.c>
|
||||
$<$<TARGET_EXISTS:OpenGL::EGL>:include/EGL/eglplatform.h>
|
||||
PUBLIC include/glad/glad.h
|
||||
"$<$<PLATFORM_ID:Windows>:${CMAKE_CURRENT_SOURCE_DIR}/include/glad/glad_wgl.h>"
|
||||
"$<$<TARGET_EXISTS:OpenGL::EGL>:${CMAKE_CURRENT_SOURCE_DIR}/include/glad/glad_egl.h>")
|
||||
# cmake-format: on
|
||||
|
||||
target_compile_options(obsglad PRIVATE $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-strict-prototypes>)
|
||||
|
||||
target_include_directories(obsglad PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
|
||||
target_link_libraries(obsglad PUBLIC OpenGL::GL)
|
||||
|
||||
if(OS_WINDOWS)
|
||||
target_sources(obsglad PRIVATE src/glad_wgl.c include/glad/glad_wgl.h)
|
||||
elseif(OS_MACOS)
|
||||
target_compile_options(obsglad PRIVATE -Wno-strict-prototypes)
|
||||
elseif(OS_LINUX OR OS_FREEBSD)
|
||||
if(TARGET OpenGL::EGL)
|
||||
target_sources(obsglad PRIVATE src/glad_egl.c include/EGL/eglplatform.h include/glad/glad_egl.h)
|
||||
|
||||
target_link_libraries(obsglad PRIVATE OpenGL::EGL)
|
||||
endif()
|
||||
endif()
|
||||
target_link_libraries(
|
||||
obsglad
|
||||
PRIVATE $<$<NOT:$<PLATFORM_ID:Windows,Darwin>>:${CMAKE_DL_LIBS}>
|
||||
PUBLIC OpenGL::GL $<$<TARGET_EXISTS:OpenGL::EGL>:OpenGL::EGL>)
|
||||
|
||||
set_target_properties(obsglad PROPERTIES FOLDER deps POSITION_INDEPENDENT_CODE TRUE)
|
||||
|
|
17
deps/happy-eyeballs/CMakeLists.txt
vendored
17
deps/happy-eyeballs/CMakeLists.txt
vendored
|
@ -1,16 +1,15 @@
|
|||
cmake_minimum_required(VERSION 3.22...3.25)
|
||||
|
||||
add_library(happy-eyeballs INTERFACE)
|
||||
add_library(happy-eyeballs OBJECT)
|
||||
add_library(OBS::happy-eyeballs ALIAS happy-eyeballs)
|
||||
|
||||
target_sources(happy-eyeballs INTERFACE happy-eyeballs.c happy-eyeballs.h)
|
||||
target_sources(
|
||||
happy-eyeballs
|
||||
PRIVATE happy-eyeballs.c
|
||||
PUBLIC happy-eyeballs.h)
|
||||
|
||||
target_include_directories(happy-eyeballs INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
target_include_directories(happy-eyeballs PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
target_link_libraries(happy-eyeballs INTERFACE OBS::libobs)
|
||||
target_link_libraries(happy-eyeballs PUBLIC OBS::libobs)
|
||||
|
||||
if(OS_WINDOWS)
|
||||
target_link_libraries(happy-eyeballs INTERFACE OBS::w32-pthreads)
|
||||
endif()
|
||||
|
||||
set_target_properties(happy-eyeballs PROPERTIES FOLDER deps)
|
||||
set_target_properties(happy-eyeballs PROPERTIES FOLDER deps POSITION_INDEPENDENT_CODE TRUE)
|
||||
|
|
14
deps/ipc-util/CMakeLists.txt
vendored
14
deps/ipc-util/CMakeLists.txt
vendored
|
@ -1,14 +1,12 @@
|
|||
cmake_minimum_required(VERSION 3.24...3.25)
|
||||
|
||||
# cmake-format: off
|
||||
add_library(ipc-util STATIC EXCLUDE_FROM_ALL)
|
||||
# cmake-format: on
|
||||
add_library(ipc-util INTERFACE)
|
||||
add_library(OBS::ipc-util ALIAS ipc-util)
|
||||
|
||||
target_sources(ipc-util PRIVATE ipc-util/pipe.h)
|
||||
target_include_directories(ipc-util PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
target_sources(
|
||||
ipc-util INTERFACE "$<$<PLATFORM_ID:Windows>:${CMAKE_CURRENT_SOURCE_DIR}/ipc-util/pipe-windows.c>" ipc-util/pipe.h
|
||||
"$<$<PLATFORM_ID:Windows>:${CMAKE_CURRENT_SOURCE_DIR}/ipc-util/pipe-windows.h>")
|
||||
|
||||
target_sources(ipc-util PRIVATE ipc-util/pipe-windows.c ipc-util/pipe-windows.h)
|
||||
target_compile_options(ipc-util PRIVATE $<IF:$<CONFIG:Debug>,/MTd,/MT> /Zl)
|
||||
target_include_directories(ipc-util INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
set_target_properties(ipc-util PROPERTIES FOLDER deps POSITION_INDEPENDENT_CODE ON)
|
||||
set_target_properties(ipc-util PROPERTIES FOLDER deps)
|
||||
|
|
16
deps/json11/CMakeLists.txt
vendored
16
deps/json11/CMakeLists.txt
vendored
|
@ -1,9 +1,17 @@
|
|||
cmake_minimum_required(VERSION 3.22...3.25)
|
||||
|
||||
add_library(json11 INTERFACE)
|
||||
add_library(json11 OBJECT)
|
||||
add_library(OBS::json11 ALIAS json11)
|
||||
|
||||
target_include_directories(json11 INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
target_compile_options(json11 INTERFACE $<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-unqualified-std-cast-call>)
|
||||
target_sources(
|
||||
json11
|
||||
PRIVATE json11.cpp
|
||||
PUBLIC json11.hpp)
|
||||
|
||||
target_sources(json11 INTERFACE json11.cpp json11.hpp)
|
||||
target_include_directories(json11 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "(AppleClang|Clang)" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 14)
|
||||
target_compile_options(json11 PUBLIC -Wno-unqualified-std-cast-call)
|
||||
endif()
|
||||
|
||||
set_target_properties(json11 PROPERTIES FOLDER deps)
|
||||
|
|
35
deps/libcaption/CMakeLists.txt
vendored
35
deps/libcaption/CMakeLists.txt
vendored
|
@ -5,33 +5,38 @@ add_library(OBS::caption ALIAS caption)
|
|||
|
||||
target_sources(
|
||||
caption
|
||||
PRIVATE src/caption.c
|
||||
PRIVATE # cmake-format: sortable
|
||||
caption/cea708.h
|
||||
caption/eia608.h
|
||||
caption/eia608_charmap.h
|
||||
caption/mpeg.h
|
||||
caption/scc.h
|
||||
caption/utf8.h
|
||||
src/caption.c
|
||||
src/cea708.c
|
||||
src/eia608.c
|
||||
src/eia608_charmap.c
|
||||
src/eia608_from_utf8.c
|
||||
src/mpeg.c
|
||||
src/srt.c
|
||||
src/scc.c
|
||||
src/srt.c
|
||||
src/utf8.c
|
||||
src/xds.c
|
||||
caption/eia608.h
|
||||
caption/eia608_charmap.h
|
||||
caption/cea708.h
|
||||
caption/mpeg.h
|
||||
caption/scc.h
|
||||
caption/utf8.h
|
||||
PUBLIC caption/caption.h)
|
||||
|
||||
target_compile_definitions(caption PRIVATE __STDC_CONSTANT_MACROS $<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS>)
|
||||
|
||||
target_compile_options(
|
||||
caption
|
||||
PRIVATE "$<$<CXX_COMPILER_ID:Clang,AppleClang,GNU>:-Wno-unused-but-set-parameter;-Wno-comma;-Wno-strict-prototypes>")
|
||||
|
||||
target_include_directories(
|
||||
caption
|
||||
PRIVATE caption
|
||||
PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
set_target_properties(caption PROPERTIES FOLDER deps POSITION_INDEPENDENT_CODE ON)
|
||||
target_compile_definitions(caption PRIVATE __STDC_CONSTANT_MACROS)
|
||||
|
||||
# cmake-format: off
|
||||
target_compile_options(
|
||||
caption
|
||||
PRIVATE $<$<COMPILE_LANG_AND_ID:C,Clang,AppleClang,GNU>:-Wno-unused-but-set-parameter>
|
||||
$<$<COMPILE_LANG_AND_ID:C,Clang,AppleClang,GNU>:-Wno-strict-prototypes>
|
||||
$<$<COMPILE_LANG_AND_ID:C,Clang,AppleClang>:-Wno-comma>)
|
||||
# cmake-format: on
|
||||
|
||||
set_target_properties(caption PROPERTIES FOLDER deps POSITION_INDEPENDENT_CODE TRUE)
|
||||
|
|
16
deps/media-playback/CMakeLists.txt
vendored
16
deps/media-playback/CMakeLists.txt
vendored
|
@ -1,24 +1,28 @@
|
|||
cmake_minimum_required(VERSION 3.22...3.25)
|
||||
|
||||
find_package(FFmpeg REQUIRED COMPONENTS avcodec avdevice avutil avformat)
|
||||
find_package(FFmpeg REQUIRED 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
|
||||
INTERFACE # cmake-format: sortable
|
||||
media-playback/cache.c
|
||||
media-playback/cache.h
|
||||
media-playback/closest-format.h
|
||||
media-playback/decode.c
|
||||
media-playback/decode.h
|
||||
media-playback/media-playback.c
|
||||
media-playback/media-playback.h
|
||||
media-playback/closest-format.h)
|
||||
media-playback/media.c
|
||||
media-playback/media.h)
|
||||
|
||||
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})
|
||||
|
||||
if(OBS_CMAKE_VERSION VERSION_LESS 3.0)
|
||||
target_compile_options(media-playback INTERFACE ${ARCH_SIMD_FLAGS})
|
||||
target_compile_definitions(media-playback INTERFACE ${ARCH_SIMD_DEFINES})
|
||||
endif()
|
||||
|
||||
target_link_libraries(media-playback INTERFACE FFmpeg::avcodec FFmpeg::avdevice FFmpeg::avutil FFmpeg::avformat)
|
||||
|
|
26
deps/obs-scripting/CMakeLists.txt
vendored
26
deps/obs-scripting/CMakeLists.txt
vendored
|
@ -7,11 +7,7 @@ if(NOT ENABLE_SCRIPTING)
|
|||
return()
|
||||
endif()
|
||||
|
||||
add_library(obs-cstrcache INTERFACE)
|
||||
add_library(OBS::cstrcache ALIAS obs-cstrcache)
|
||||
|
||||
target_sources(obs-cstrcache INTERFACE cstrcache.cpp cstrcache.h)
|
||||
target_include_directories(obs-cstrcache INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
include(cmake/cstrcache.cmake)
|
||||
|
||||
find_package(SWIG 4 REQUIRED)
|
||||
|
||||
|
@ -31,20 +27,28 @@ endif()
|
|||
target_sources(
|
||||
obs-scripting
|
||||
PUBLIC obs-scripting.h
|
||||
PRIVATE obs-scripting.c obs-scripting-logging.c obs-scripting-callback.h
|
||||
$<$<BOOL:${ENABLE_UI}>:obs-scripting-python-frontend.c> $<$<BOOL:${ENABLE_UI}>:obs-scripting-lua-frontend.c>)
|
||||
PRIVATE obs-scripting-callback.h obs-scripting-logging.c obs-scripting.c)
|
||||
|
||||
target_compile_definitions(obs-scripting PRIVATE SCRIPT_DIR="${OBS_SCRIPT_PLUGIN_PATH}"
|
||||
$<$<BOOL:${ENABLE_UI}>:ENABLE_UI>)
|
||||
target_compile_features(obs-scripting PRIVATE cxx_auto_type)
|
||||
target_include_directories(obs-scripting PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
target_link_libraries(obs-scripting PRIVATE OBS::libobs OBS::cstrcache $<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>
|
||||
$<$<PLATFORM_ID:Windows>:OBS::w32-pthreads> $<$<PLATFORM_ID:Darwin>:objc>)
|
||||
target_include_directories(obs-scripting PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
# cmake-format: off
|
||||
target_link_libraries(
|
||||
obs-scripting
|
||||
PRIVATE OBS::libobs
|
||||
OBS::cstrcache
|
||||
$<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>
|
||||
$<$<PLATFORM_ID:Windows>:OBS::w32-pthreads>
|
||||
$<$<PLATFORM_ID:Darwin>:objc>)
|
||||
# cmake-format: on
|
||||
|
||||
if(OS_WINDOWS)
|
||||
configure_file(cmake/windows/obs-module.rc.in obs-scripting.rc)
|
||||
target_sources(obs-scripting PRIVATE obs-scripting.rc)
|
||||
endif()
|
||||
|
||||
# cmake-format: off
|
||||
set_target_properties_obs(obs-scripting PROPERTIES FOLDER scripting PREFIX "")
|
||||
# cmake-format: on
|
||||
|
|
5
deps/obs-scripting/cmake/cstrcache.cmake
vendored
Normal file
5
deps/obs-scripting/cmake/cstrcache.cmake
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
add_library(obs-cstrcache INTERFACE)
|
||||
add_library(OBS::cstrcache ALIAS obs-cstrcache)
|
||||
|
||||
target_sources(obs-cstrcache INTERFACE cstrcache.cpp cstrcache.h)
|
||||
target_include_directories(obs-cstrcache INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
44
deps/obs-scripting/cmake/lua.cmake
vendored
44
deps/obs-scripting/cmake/lua.cmake
vendored
|
@ -4,26 +4,32 @@ option(ENABLE_SCRIPTING_LUA "Enable Lua scripting support" ON)
|
|||
|
||||
if(ENABLE_SCRIPTING_LUA)
|
||||
add_subdirectory(obslua)
|
||||
|
||||
find_package(Luajit REQUIRED)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT swig/swigluarun.h
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory swig
|
||||
COMMAND ${CMAKE_COMMAND} -E env "SWIG_LIB=${SWIG_DIR}" ${SWIG_EXECUTABLE} -lua -external-runtime swig/swigluarun.h
|
||||
COMMENT "obs-scripting - generating Luajit SWIG interface headers")
|
||||
|
||||
set_source_files_properties(swig/swigluarun.h PROPERTIES GENERATED TRUE)
|
||||
|
||||
target_sources(
|
||||
obs-scripting
|
||||
PRIVATE # cmake-format: sortable
|
||||
$<$<BOOL:${ENABLE_UI}>:obs-scripting-lua-frontend.c> obs-scripting-lua-source.c obs-scripting-lua.c
|
||||
obs-scripting-lua.h swig/swigluarun.h)
|
||||
|
||||
target_compile_definitions(obs-scripting PUBLIC LUAJIT_FOUND)
|
||||
|
||||
set_source_files_properties(
|
||||
obs-scripting-lua.c obs-scripting-lua-source.c
|
||||
PROPERTIES COMPILE_OPTIONS $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-error=shorten-64-to-32>)
|
||||
|
||||
target_link_libraries(obs-scripting PRIVATE Luajit::Luajit)
|
||||
else()
|
||||
target_disable_feature(obs-scripting "Lua scripting support")
|
||||
endif()
|
||||
|
||||
target_sources(obs-scripting PRIVATE obs-scripting-lua.c obs-scripting-lua.h obs-scripting-lua-source.c)
|
||||
target_compile_definitions(obs-scripting PUBLIC LUAJIT_FOUND)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT swig/swigluarun.h
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory swig
|
||||
COMMAND ${CMAKE_COMMAND} -E env "SWIG_LIB=${SWIG_DIR}" ${SWIG_EXECUTABLE} -lua -external-runtime swig/swigluarun.h
|
||||
COMMENT "obs-scripting - generating Luajit SWIG interface headers")
|
||||
|
||||
target_sources(obs-scripting PRIVATE swig/swigluarun.h)
|
||||
set_source_files_properties(swig/swigluarun.h PROPERTIES GENERATED ON)
|
||||
set_source_files_properties(
|
||||
obs-scripting-lua.c obs-scripting-lua-source.c
|
||||
PROPERTIES COMPILE_OPTIONS "$<$<C_COMPILER_ID:AppleClang,Clang>:-Wno-error=shorten-64-to-32;-Wno-error=shadow>")
|
||||
|
||||
target_link_libraries(obs-scripting PRIVATE Luajit::Luajit)
|
||||
|
|
70
deps/obs-scripting/cmake/python.cmake
vendored
70
deps/obs-scripting/cmake/python.cmake
vendored
|
@ -4,46 +4,46 @@ option(ENABLE_SCRIPTING_PYTHON "Enable Python scripting support" ON)
|
|||
|
||||
if(ENABLE_SCRIPTING_PYTHON)
|
||||
add_subdirectory(obspython)
|
||||
|
||||
if(OS_WINDOWS)
|
||||
find_package(Python 3.8...<3.11 REQUIRED Interpreter Development)
|
||||
else()
|
||||
find_package(Python 3.8...<3.12 REQUIRED Interpreter Development)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT swig/swigpyrun.h
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory swig
|
||||
COMMAND ${CMAKE_COMMAND} -E env "SWIG_LIB=${SWIG_DIR}" ${SWIG_EXECUTABLE} -python
|
||||
$<$<PLATFORM_ID:Windows,Darwin>:-py3-stable-abi> -external-runtime swig/swigpyrun.h
|
||||
COMMENT "obs-scripting - generating Python 3 SWIG interface headers")
|
||||
|
||||
set_source_files_properties(swig/swigpyrun.h PROPERTIES GENERATED TRUE)
|
||||
|
||||
target_sources(
|
||||
obs-scripting
|
||||
PRIVATE # cmake-format: sortable
|
||||
$<$<BOOL:${ENABLE_UI}>:obs-scripting-python-frontend.c>
|
||||
$<$<PLATFORM_ID:Windows,Darwin>:obs-scripting-python-import.c>
|
||||
obs-scripting-python-import.h
|
||||
obs-scripting-python.c
|
||||
obs-scripting-python.h
|
||||
swig/swigpyrun.h)
|
||||
|
||||
target_compile_definitions(
|
||||
obs-scripting
|
||||
PRIVATE ENABLE_SCRIPTING PYTHON_LIB="$<TARGET_LINKER_FILE_NAME:Python::Python>"
|
||||
PUBLIC Python_FOUND)
|
||||
|
||||
target_include_directories(
|
||||
obs-scripting
|
||||
PRIVATE "$<$<PLATFORM_ID:Windows,Darwin>:$<TARGET_PROPERTY:Python::Python,INTERFACE_INCLUDE_DIRECTORIES>>")
|
||||
|
||||
target_link_libraries(obs-scripting PRIVATE $<$<PLATFORM_ID:Linux,FreeBSD,OpenBSD>:Python::Python>)
|
||||
|
||||
target_link_options(obs-scripting PRIVATE $<$<PLATFORM_ID:Darwin>:LINKER:-undefined,dynamic_lookup>)
|
||||
else()
|
||||
target_disable_feature(obs-scripting "Python scripting support")
|
||||
endif()
|
||||
|
||||
target_sources(obs-scripting PRIVATE obs-scripting-python.c obs-scripting-python.h obs-scripting-python-import.h)
|
||||
|
||||
target_compile_definitions(
|
||||
obs-scripting
|
||||
PRIVATE ENABLE_SCRIPTING PYTHON_LIB="$<TARGET_LINKER_FILE_NAME:Python::Python>"
|
||||
PUBLIC Python_FOUND)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT swig/swigpyrun.h
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory swig
|
||||
COMMAND ${CMAKE_COMMAND} -E env "SWIG_LIB=${SWIG_DIR}" ${SWIG_EXECUTABLE} -python
|
||||
$<IF:$<BOOL:${OS_LINUX}>,-py3,-py3-stable-abi> -external-runtime swig/swigpyrun.h
|
||||
COMMENT "obs-scripting - generating Python 3 SWIG interface headers")
|
||||
|
||||
target_sources(obs-scripting PRIVATE swig/swigpyrun.h)
|
||||
set_source_files_properties(swig/swigpyrun.h PROPERTIES GENERATED ON)
|
||||
|
||||
if(OS_WINDOWS)
|
||||
target_sources(obs-scripting PRIVATE obs-scripting-python-import.c)
|
||||
|
||||
get_target_property(_python_include_directory Python::Python INTERFACE_INCLUDE_DIRECTORIES)
|
||||
target_include_directories(obs-scripting PRIVATE ${_python_include_directory})
|
||||
elseif(OS_MACOS)
|
||||
target_sources(obs-scripting PRIVATE obs-scripting-python-import.c)
|
||||
|
||||
get_target_property(_python_include_directory Python::Python INTERFACE_INCLUDE_DIRECTORIES)
|
||||
target_include_directories(obs-scripting PRIVATE ${_python_include_directory})
|
||||
|
||||
target_link_options(obs-scripting PRIVATE LINKER:-undefined LINKER:dynamic_lookup)
|
||||
elseif(OS_LINUX OR OS_FREEBSD)
|
||||
target_link_libraries(obs-scripting PRIVATE Python::Python)
|
||||
endif()
|
||||
|
|
30
deps/obs-scripting/obslua/CMakeLists.txt
vendored
30
deps/obs-scripting/obslua/CMakeLists.txt
vendored
|
@ -11,12 +11,12 @@ if(POLICY CMP0086)
|
|||
endif()
|
||||
|
||||
find_package(Luajit REQUIRED)
|
||||
|
||||
find_package(SWIG 4 REQUIRED)
|
||||
|
||||
include(UseSWIG)
|
||||
|
||||
set_source_files_properties(obslua.i PROPERTIES USE_TARGET_INCLUDE_DIRECTORIES TRUE)
|
||||
|
||||
swig_add_library(
|
||||
obslua
|
||||
LANGUAGE lua
|
||||
|
@ -25,21 +25,21 @@ swig_add_library(
|
|||
|
||||
add_library(OBS::lua ALIAS obslua)
|
||||
|
||||
target_compile_options(obslua PRIVATE "$<$<C_COMPILER_ID:AppleClang,Clang>:-Wno-error=shorten-64-to-32>")
|
||||
target_compile_options(
|
||||
obslua
|
||||
PRIVATE $<$<PLATFORM_ID:Windows>:/wd4054>
|
||||
$<$<PLATFORM_ID:Windows>:/wd4197>
|
||||
$<$<PLATFORM_ID:Windows>:/wd4244>
|
||||
$<$<PLATFORM_ID:Windows>:/wd4267>
|
||||
$<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-shorten-64-to-32>
|
||||
$<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-unreachable-code>
|
||||
$<$<COMPILE_LANG_AND_ID:C,GNU>:-Wno-maybe-uninitialized>)
|
||||
|
||||
target_compile_definitions(obslua PRIVATE SWIG_TYPE_TABLE=obslua SWIG_LUA_INTERPRETER_NO_DEBUG
|
||||
$<$<BOOL:${ENABLE_UI}>:ENABLE_UI>)
|
||||
|
||||
target_link_libraries(obslua PRIVATE OBS::scripting OBS::cstrcache OBS::libobs Luajit::Luajit
|
||||
$<$<BOOL:ENABLE_UI>:OBS::frontend-api>)
|
||||
|
||||
if(OS_WINDOWS)
|
||||
target_compile_options(obslua PRIVATE /wd4054 /wd4197 /wd4244 /wd4267)
|
||||
elseif(OS_MACOS)
|
||||
set_property(TARGET obslua PROPERTY XCODE_ATTRIBUTE_STRIP_STYLE non-global)
|
||||
target_compile_options(obslua PRIVATE -Wno-unreachable-code)
|
||||
elseif(OS_LINUX OR OS_FREEBSD)
|
||||
target_compile_options(obslua PRIVATE -Wno-maybe-uninitialized)
|
||||
endif()
|
||||
target_link_libraries(obslua PRIVATE OBS::cstrcache OBS::libobs OBS::scripting Luajit::Luajit
|
||||
$<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>)
|
||||
|
||||
set_property(
|
||||
TARGET obslua
|
||||
|
@ -47,4 +47,6 @@ set_property(
|
|||
PROPERTY SWIG_COMPILE_DEFINITIONS "SWIG_TYPE_TABLE=obslua" "SWIG_LUA_INTERPRETER_NO_DEBUG"
|
||||
"$<$<BOOL:${ENABLE_UI}>:ENABLE_UI>")
|
||||
|
||||
set_target_properties_obs(obslua PROPERTIES FOLDER scripting)
|
||||
# cmake-format: off
|
||||
set_target_properties_obs(obslua PROPERTIES FOLDER scripting XCODE_ATTRIBUTE_STRIP_STYLE non-global)
|
||||
# cmake-format: on
|
||||
|
|
37
deps/obs-scripting/obspython/CMakeLists.txt
vendored
37
deps/obs-scripting/obspython/CMakeLists.txt
vendored
|
@ -20,7 +20,7 @@ find_package(SWIG 4 REQUIRED)
|
|||
include(UseSWIG)
|
||||
|
||||
set_source_files_properties(obspython.i PROPERTIES USE_TARGET_INCLUDE_DIRECTORIES TRUE
|
||||
SWIG_FLAGS "$<IF:$<BOOL:${OS_LINUX}>,-py3,-py3-stable-abi>")
|
||||
SWIG_FLAGS $<$<PLATFORM_ID:Windows,Darwin>:-py3-stable-abi>)
|
||||
|
||||
swig_add_library(
|
||||
obspython
|
||||
|
@ -35,29 +35,26 @@ file(
|
|||
OUTPUT $<$<PLATFORM_ID:Windows>:$<CONFIG>/>obspython.h
|
||||
CONTENT "#pragma once\n\n#define PYTHON_LIB \"$<TARGET_LINKER_FILE_NAME:Python::Python>\"\n")
|
||||
|
||||
target_include_directories(obspython PRIVATE "$<$<PLATFORM_ID:Windows>:${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>>")
|
||||
target_include_directories(
|
||||
obspython PRIVATE "$<$<PLATFORM_ID:Windows>:${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>>"
|
||||
"$<$<PLATFORM_ID:Darwin>:$<TARGET_PROPERTY:Python::Python,INTERFACE_INCLUDE_DIRECTORIES>>")
|
||||
|
||||
list(APPEND _SWIG_DEFINITIONS "SWIG_TYPE_TABLE=obspython" "Py_ENABLE_SHARED=1" "SWIG_PYTHON_INTERPRETER_NO_DEBUG")
|
||||
target_compile_options(
|
||||
obspython
|
||||
PRIVATE $<$<PLATFORM_ID:Windows>:/wd4100>
|
||||
$<$<PLATFORM_ID:Windows>:/wd4197>
|
||||
$<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-unused-parameter>
|
||||
$<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-macro-redefined>
|
||||
$<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-unreachable-code>)
|
||||
|
||||
target_compile_definitions(obspython PRIVATE SWIG_TYPE_TABLE=obspython Py_ENABLE_SHARED=1
|
||||
SWIG_PYTHON_INTERPRETER_NO_DEBUG $<$<BOOL:${ENABLE_UI}>:ENABLE_UI>)
|
||||
|
||||
target_link_libraries(obspython PRIVATE OBS::scripting OBS::cstrcache OBS::libobs
|
||||
$<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>)
|
||||
target_link_libraries(
|
||||
obspython PRIVATE OBS::cstrcache OBS::libobs OBS::scripting $<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>
|
||||
$<$<NOT:$<PLATFORM_ID:Darwin>>:Python::Python>)
|
||||
|
||||
if(OS_WINDOWS)
|
||||
target_link_libraries(obspython PRIVATE Python::Python)
|
||||
target_compile_options(obspython PRIVATE /wd4100 /wd4197)
|
||||
elseif(OS_MACOS)
|
||||
get_target_property(_python_include_directory Python::Python INTERFACE_INCLUDE_DIRECTORIES)
|
||||
target_include_directories(obspython PRIVATE ${_python_include_directory})
|
||||
target_compile_options(obspython PRIVATE -Wno-unused-parameter -Wno-macro-redefined -Wno-unreachable-code)
|
||||
target_link_options(obspython PUBLIC LINKER:-undefined,dynamic_lookup)
|
||||
|
||||
set_property(TARGET obspython PROPERTY XCODE_ATTRIBUTE_STRIP_STYLE non-global)
|
||||
elseif(OS_LINUX OR OS_FREEBSD)
|
||||
target_link_libraries(obspython PRIVATE Python::Python)
|
||||
endif()
|
||||
target_link_options(obspython PRIVATE $<$<PLATFORM_ID:Darwin>:LINKER:-undefined,dynamic_lookup>)
|
||||
|
||||
if(MSVC OR XCODE)
|
||||
add_custom_command(
|
||||
|
@ -74,4 +71,6 @@ set_property(
|
|||
PROPERTY SWIG_COMPILE_DEFINITIONS "SWIG_TYPE_TABLE=obspython" "Py_ENABLE_SHARED=1" "SWIG_PYTHON_INTERPRETER_NO_DEBUG"
|
||||
"$<$<BOOL:${ENABLE_UI}>:ENABLE_UI>" "$<$<PLATFORM_ID:Windows>:MS_NO_COREDLL>")
|
||||
|
||||
set_target_properties_obs(obspython PROPERTIES FOLDER scripting PREFIX "_")
|
||||
# cmake-format: off
|
||||
set_target_properties_obs(obspython PROPERTIES FOLDER scripting PREFIX "_" XCODE_ATTRIBUTE_STRIP_STYLE non-global)
|
||||
# cmake-format: on
|
||||
|
|
14
deps/opts-parser/CMakeLists.txt
vendored
14
deps/opts-parser/CMakeLists.txt
vendored
|
@ -1,9 +1,15 @@
|
|||
cmake_minimum_required(VERSION 3.22...3.25)
|
||||
|
||||
add_library(opts-parser INTERFACE)
|
||||
add_library(opts-parser OBJECT)
|
||||
add_library(OBS::opts-parser ALIAS opts-parser)
|
||||
|
||||
target_sources(opts-parser INTERFACE opts-parser.c opts-parser.h)
|
||||
target_include_directories(opts-parser INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
target_sources(
|
||||
opts-parser
|
||||
PRIVATE opts-parser.c
|
||||
PUBLIC opts-parser.h)
|
||||
|
||||
target_link_libraries(opts-parser INTERFACE OBS::libobs)
|
||||
target_include_directories(opts-parser PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
target_link_libraries(opts-parser PUBLIC OBS::libobs)
|
||||
|
||||
set_target_properties(opts-parser PROPERTIES FOLDER deps)
|
||||
|
|
2
deps/uthash/CMakeLists.txt
vendored
2
deps/uthash/CMakeLists.txt
vendored
|
@ -5,4 +5,4 @@ add_library(OBS::uthash ALIAS uthash)
|
|||
|
||||
target_sources(uthash INTERFACE uthash/uthash.h)
|
||||
|
||||
set_target_properties(uthash PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
target_include_directories(uthash INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
|
6
deps/w32-pthreads/CMakeLists.txt
vendored
6
deps/w32-pthreads/CMakeLists.txt
vendored
|
@ -5,8 +5,11 @@ legacy_check()
|
|||
add_library(w32-pthreads SHARED EXCLUDE_FROM_ALL )
|
||||
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)
|
||||
target_sources(w32-pthreads PRIVATE # cmake-format: sortable
|
||||
implement.h pthread.c pthread.h sched.h semaphore.h 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}>")
|
||||
|
||||
configure_file(cmake/windows/obs-module.rc.in w32-pthreads.rc)
|
||||
|
@ -17,4 +20,5 @@ set_property(
|
|||
TARGET w32-pthreads
|
||||
APPEND
|
||||
PROPERTY PUBLIC_HEADER pthread.h sched.h)
|
||||
|
||||
target_export(w32-pthreads)
|
||||
|
|
Loading…
Reference in a new issue