|
|
@@ -1,77 +1,65 @@
|
|
|
find_package(CURL REQUIRED)
|
|
|
find_package(jansson REQUIRED)
|
|
|
|
|
|
-add_library(ftl-sdk INTERFACE)
|
|
|
+add_library(ftl-sdk OBJECT)
|
|
|
add_library(OBS::ftl-sdk ALIAS ftl-sdk)
|
|
|
|
|
|
-target_compile_definitions(ftl-sdk INTERFACE FTL_STATIC_COMPILE FTL_FOUND)
|
|
|
+target_compile_definitions(ftl-sdk PUBLIC FTL_FOUND FTL_STATIC_COMPILE)
|
|
|
|
|
|
-target_link_libraries(ftl-sdk INTERFACE jansson::jansson CURL::libcurl)
|
|
|
+target_link_libraries(ftl-sdk PRIVATE jansson::jansson CURL::libcurl)
|
|
|
|
|
|
target_sources(
|
|
|
ftl-sdk
|
|
|
- INTERFACE # cmake-format: sortable
|
|
|
- ftl-sdk/libftl/ftl-sdk.c
|
|
|
- ftl-sdk/libftl/ftl.h
|
|
|
- ftl-sdk/libftl/ftl_helpers.c
|
|
|
- ftl-sdk/libftl/ftl_private.h
|
|
|
- ftl-sdk/libftl/gettimeofday/gettimeofday.c
|
|
|
- ftl-sdk/libftl/handshake.c
|
|
|
- ftl-sdk/libftl/hmac/hmac.c
|
|
|
- ftl-sdk/libftl/hmac/hmac.h
|
|
|
- ftl-sdk/libftl/hmac/sha2.c
|
|
|
- ftl-sdk/libftl/hmac/sha2.h
|
|
|
- ftl-sdk/libftl/ingest.c
|
|
|
- ftl-sdk/libftl/logging.c
|
|
|
- ftl-sdk/libftl/media.c
|
|
|
- ftl-stream.c)
|
|
|
-
|
|
|
-target_include_directories(ftl-sdk INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/ftl-sdk/libftl")
|
|
|
-
|
|
|
-if(OS_WINDOWS)
|
|
|
- target_sources(
|
|
|
- ftl-sdk INTERFACE ftl-sdk/libftl/gettimeofday/gettimeofday.c ftl-sdk/libftl/gettimeofday/gettimeofday.h
|
|
|
- ftl-sdk/libftl/win32/socket.c ftl-sdk/libftl/win32/threads.c ftl-sdk/libftl/win32/threads.h)
|
|
|
-
|
|
|
- target_include_directories(ftl-sdk INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/ftl-sdk/libftl/win32")
|
|
|
-else()
|
|
|
- target_sources(ftl-sdk INTERFACE ftl-sdk/libftl/posix/socket.c ftl-sdk/libftl/posix/threads.c
|
|
|
- ftl-sdk/libftl/posix/threads.h)
|
|
|
+ PRIVATE # cmake-format: sortable
|
|
|
+ $<$<NOT:$<PLATFORM_ID:Windows>>:ftl-sdk/libftl/posix/socket.c>
|
|
|
+ $<$<NOT:$<PLATFORM_ID:Windows>>:ftl-sdk/libftl/posix/threads.c>
|
|
|
+ $<$<NOT:$<PLATFORM_ID:Windows>>:ftl-sdk/libftl/posix/threads.h>
|
|
|
+ $<$<PLATFORM_ID:Windows>:ftl-sdk/libftl/win32/socket.c>
|
|
|
+ $<$<PLATFORM_ID:Windows>:ftl-sdk/libftl/win32/threads.c>
|
|
|
+ $<$<PLATFORM_ID:Windows>:ftl-sdk/libftl/win32/threads.h>
|
|
|
+ ftl-sdk/libftl/ftl-sdk.c
|
|
|
+ ftl-sdk/libftl/ftl_helpers.c
|
|
|
+ ftl-sdk/libftl/ftl_private.h
|
|
|
+ ftl-sdk/libftl/gettimeofday/gettimeofday.c
|
|
|
+ ftl-sdk/libftl/gettimeofday/gettimeofday.h
|
|
|
+ ftl-sdk/libftl/handshake.c
|
|
|
+ ftl-sdk/libftl/hmac/hmac.c
|
|
|
+ ftl-sdk/libftl/hmac/hmac.h
|
|
|
+ ftl-sdk/libftl/hmac/sha2.c
|
|
|
+ ftl-sdk/libftl/hmac/sha2.h
|
|
|
+ ftl-sdk/libftl/ingest.c
|
|
|
+ ftl-sdk/libftl/logging.c
|
|
|
+ ftl-sdk/libftl/media.c
|
|
|
+ PUBLIC ftl-sdk/libftl/ftl.h)
|
|
|
+
|
|
|
+target_compile_options(
|
|
|
+ ftl-sdk
|
|
|
+ PRIVATE $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang,GNU>:-Wno-unused-parameter>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang,GNU>:-Wno-unused-variable>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang,GNU>:-Wno-sign-compare>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang,GNU>:-Wno-pointer-sign>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang,GNU>:-Wno-int-conversion>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-incompatible-function-pointer-types>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-implicit-int-conversion>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-shorten-64-to-32>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-macro-redefined>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,AppleClang,Clang>:-Wno-enum-conversion>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,GNU>:-Wno-extra>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,GNU>:-Wno-incompatible-pointer-types>
|
|
|
+ $<$<COMPILE_LANG_AND_ID:C,GNU>:-Wno-builtin-macro-redefined>)
|
|
|
+
|
|
|
+target_include_directories(
|
|
|
+ ftl-sdk
|
|
|
+ PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/ftl-sdk/libftl"
|
|
|
+ "$<$<PLATFORM_ID:Windows>:${CMAKE_CURRENT_SOURCE_DIR}/ftl-sdk/libftl/win32>"
|
|
|
+ "$<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_CURRENT_SOURCE_DIR}/ftl-sdk/libftl/posix>")
|
|
|
|
|
|
- target_include_directories(ftl-sdk INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/ftl-sdk/libftl/posix")
|
|
|
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
|
|
|
+ target_compile_options(ftl-sdk PRIVATE -Wno-error=enum-conversion)
|
|
|
endif()
|
|
|
|
|
|
+target_sources(obs-outputs PRIVATE ftl-stream.c)
|
|
|
target_link_libraries(obs-outputs PRIVATE ftl-sdk)
|
|
|
-
|
|
|
target_enable_feature(obs-outputs "FTL protocol support")
|
|
|
|
|
|
-get_target_property(target_sources ftl-sdk INTERFACE_SOURCES)
|
|
|
-
|
|
|
-if(NOT CMAKE_C_COMPILER_ID STREQUAL "MSVC")
|
|
|
- set(silence_ftl -Wno-unused-parameter -Wno-unused-variable -Wno-sign-compare -Wno-pointer-sign -Wno-int-conversion)
|
|
|
-
|
|
|
- if(CMAKE_C_COMPILER_ID MATCHES "(Apple)?Clang")
|
|
|
- list(
|
|
|
- APPEND
|
|
|
- silence_ftl
|
|
|
- -Wno-incompatible-function-pointer-types
|
|
|
- -Wno-implicit-int-conversion
|
|
|
- -Wno-shorten-64-to-32
|
|
|
- -Wno-macro-redefined
|
|
|
- -Wno-enum-conversion)
|
|
|
- elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
|
|
- list(APPEND silence_ftl -Wno-extra -Wno-incompatible-pointer-types -Wno-int-conversion -Wno-builtin-macro-redefined)
|
|
|
- endif()
|
|
|
-
|
|
|
- if((NOT CMAKE_C_COMPILER_ID STREQUAL "GNU") OR CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
|
|
|
- list(APPEND silence_ftl -Wno-error=enum-conversion)
|
|
|
- endif()
|
|
|
- set_source_files_properties(${target_sources} PROPERTIES COMPILE_OPTIONS "${silence_ftl}")
|
|
|
-endif()
|
|
|
-
|
|
|
-set(target_headers ${target_sources})
|
|
|
-list(FILTER target_sources INCLUDE REGEX ".+ftl-sdk/.+\\.(m|c[cp]?p?|swift)")
|
|
|
-list(FILTER target_headers INCLUDE REGEX ".+ftl-sdk/.+\\.h(pp)?")
|
|
|
-
|
|
|
-source_group("ftl-sdk\\Source Files" FILES ${target_sources})
|
|
|
-source_group("ftl-sdk\\Header Files" FILES ${target_headers})
|
|
|
+set_target_properties(ftl-sdk PROPERTIES FOLDER plugins/obs-outputs)
|