|
@@ -20,7 +20,7 @@ find_package(SWIG 4 REQUIRED)
|
|
include(UseSWIG)
|
|
include(UseSWIG)
|
|
|
|
|
|
set_source_files_properties(obspython.i PROPERTIES USE_TARGET_INCLUDE_DIRECTORIES TRUE
|
|
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(
|
|
swig_add_library(
|
|
obspython
|
|
obspython
|
|
@@ -35,29 +35,26 @@ file(
|
|
OUTPUT $<$<PLATFORM_ID:Windows>:$<CONFIG>/>obspython.h
|
|
OUTPUT $<$<PLATFORM_ID:Windows>:$<CONFIG>/>obspython.h
|
|
CONTENT "#pragma once\n\n#define PYTHON_LIB \"$<TARGET_LINKER_FILE_NAME:Python::Python>\"\n")
|
|
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
|
|
target_compile_definitions(obspython PRIVATE SWIG_TYPE_TABLE=obspython Py_ENABLE_SHARED=1
|
|
SWIG_PYTHON_INTERPRETER_NO_DEBUG $<$<BOOL:${ENABLE_UI}>:ENABLE_UI>)
|
|
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>)
|
|
|
|
-
|
|
|
|
-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_libraries(
|
|
|
|
+ obspython PRIVATE OBS::cstrcache OBS::libobs OBS::scripting $<$<BOOL:${ENABLE_UI}>:OBS::frontend-api>
|
|
|
|
+ $<$<NOT:$<PLATFORM_ID:Darwin>>:Python::Python>)
|
|
|
|
+
|
|
|
|
+target_link_options(obspython PRIVATE $<$<PLATFORM_ID:Darwin>:LINKER:-undefined,dynamic_lookup>)
|
|
|
|
|
|
if(MSVC OR XCODE)
|
|
if(MSVC OR XCODE)
|
|
add_custom_command(
|
|
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"
|
|
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>")
|
|
"$<$<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
|