Closed ubifred closed 1 year ago
For the record here is the ugly workaround that let me build on macos with obs 30.0.0-rc1:
diff --git a/cmake/common/buildspec_common.cmake b/cmake/common/buildspec_common.cmake
index b6c5f95..07ad933 100644
--- a/cmake/common/buildspec_common.cmake
+++ b/cmake/common/buildspec_common.cmake
@@ -75,10 +75,10 @@ function(_setup_obs_studio)
message(STATUS "Configure ${label} (${arch})")
- # ugly workaround to force macos (using new framework — vs legacy for win and
- # linux) to add the SIMDE header in libobs headers
+ # ugly workaround to force macos (using new framework — vs legacy for win and linux) to add the SIMDE header in libobs
+ # headers
if(CMAKE_HOST_SYSTEM_NAME MATCHES "(Darwin)")
- set(workaround "-DARCH_SIMD_FLAGS=ON")
+ set(workaround "-DARCH_SIMD_FLAGS=ON")
endif()
execute_process(
@@ -87,7 +87,7 @@ function(_setup_obs_studio)
"${dependencies_dir}/${_obs_destination}/build_${arch}" -G ${_cmake_generator} "${_cmake_arch}"
-DOBS_CMAKE_VERSION:STRING=${_cmake_version} -DENABLE_PLUGINS:BOOL=OFF -DENABLE_UI:BOOL=OFF
-DOBS_VERSION_OVERRIDE:STRING=${_obs_version} "-DCMAKE_PREFIX_PATH='${CMAKE_PREFIX_PATH}'" ${_is_fresh}
- ${_cmake_extra} ${workaround}
+ ${_cmake_extra} ${workaround}
RESULT_VARIABLE _process_result COMMAND_ERROR_IS_FATAL ANY
OUTPUT_QUIET)
message(STATUS "Configure ${label} (${arch}) - done")
It fix the issue in the plugin side... but the real fix shall be on obs-studio side.
Operating System Info
Windows 11
Other OS
MacOS
OBS Studio Version
30.0.0-rc1
OBS Studio Version (Other)
No response
OBS Studio Log URL
Not relevant
OBS Studio Crash Log URL
No response
Expected Behavior
obs-plugintemplate build work on macos with obs-studio 30.0.0
Current Behavior
With the buildspec.json configure to use obs-studio 30.0.0-rc1
The macos build in github action fails with the error:
The detail error is (re run action with debug info):
After some digging it appears that
AFAIU The root cause is that the ARCH_SIMDE_FLAGS is not set during the obs-studio build for MacOS as the obs-studio build is using the new "framework 3.0" cause the OBS_CMAKE_VERSION is forced to 3.0.0 for MacOS and obs-studio CMakeList.txt uses "framework 3.0" for "Darwin"
The use of "framework 3.0" (instead of legacy) does not expose the simde header for libobs cause ARCH_SIMD_FLAGS is never set hence the test in obs-studio/libobs/CMakeLists.txt:316 fails to add this files to public headers.
This does not happen on windows cause OBS_CMAKE_VERSION is set to 2.0.0 so the legacy build is used in OBS
Does not happen either for linux cause libobs deps is not built taken from package manager which install all the simde headers
Steps to Reproduce
buildspec.json
to use obs 30.0.0-rc1:Anything else we should know?
I had this issue cause I was preparing the update of a plugins that uses libobs "util/util.hpp" which is not available on 29.1.2 (restored by https://github.com/obsproject/obs-studio/commit/55237ab2ef7e92a4c24896bce84cc51e37a25d08 on master and release/30.0.0)
So I changed buildspec.json to use 30.0.0-rc1 and the new sse2.h occurs on macos only.
As the 30.0.0 is still in RC1 it is not too late to fix it.