| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- find_package(CURL REQUIRED)
- find_package(jansson REQUIRED)
- add_library(ftl-sdk INTERFACE)
- add_library(OBS::ftl-sdk ALIAS ftl-sdk)
- target_compile_definitions(ftl-sdk INTERFACE FTL_STATIC_COMPILE FTL_FOUND)
- target_link_libraries(ftl-sdk INTERFACE jansson::jansson CURL::libcurl)
- target_sources(
- ftl-sdk
- INTERFACE ftl-stream.c
- ftl-sdk/libftl/ftl.h
- ftl-sdk/libftl/ftl_private.h
- 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/ftl-sdk.c
- ftl-sdk/libftl/handshake.c
- ftl-sdk/libftl/ingest.c
- ftl-sdk/libftl/ftl_helpers.c
- ftl-sdk/libftl/media.c
- ftl-sdk/libftl/gettimeofday/gettimeofday.c
- ftl-sdk/libftl/logging.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)
- target_include_directories(ftl-sdk INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/ftl-sdk/libftl/posix")
- endif()
- 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)
- list(
- APPEND
- silence_ftl
- -Wno-error=unused-parameter
- -Wno-error=unused-variable
- -Wno-error=sign-compare
- -Wno-error=pointer-sign
- -Wno-error=int-conversion)
- if(CMAKE_C_COMPILER_ID STREQUAL AppleClang OR CMAKE_C_COMPILER_ID STREQUAL Clang)
- list(APPEND silence_ftl -Wno-error=incompatible-function-pointer-types -Wno-error=implicit-int-conversion
- -Wno-error=shorten-64-to-32 -Wno-error=macro-redefined)
- elseif(CMAKE_C_COMPILER_ID STREQUAL GNU)
- list(APPEND silence_ftl -Wno-error=extra -Wno-error=incompatible-pointer-types -Wno-error=int-conversion
- -Wno-error=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}")
- 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})
|