docs: Windows CI is green, log-verified; scope the w32-pthreads fallback
Build / macOS (macos-latest) (push) Successful in 32s
Build / Linux (ubuntu-24.04) (push) Successful in 52s
Build / Windows (windows-latest) (push) Successful in 10m36s

Records the outcome of f27b1c0 against the actual job log rather than the
job status: the from-source libobs bootstrap configures/builds/installs,
find_package(libobs) resolves through .deps/cmake/libobs, all 6 CTest suites
pass, and build\package\bin\64bit\streamer-tools-camera.dll (136,192 bytes)
is staged beside livekit.dll and livekit_ffi.dll. First completed green
Windows run on this repository. That also retires three separately-unproven
items at once -- the -A x64 fix, the PowerShell rewrite of the Windows steps,
and the add_subdirectory(deps/w32-pthreads) bootstrap patch.

The log also settles which branch of the new code ran: the "w32-pthreads_DIR
not set" message means OBS's own exported package was at
.deps/cmake/w32-pthreads/ the whole time and the fallback find module was
never loaded. The export was never missing, only unfindable -- worth
recording, because "w32-pthreads has no install rules" was the first
hypothesis and it was wrong.

Also narrows when that fallback is exposed at all. It reads artifacts out of
.deps/ and nowhere else, so it is only appended to CMAKE_MODULE_PATH when
this repo's own bootstrap actually produced an obs-studio tree there. A
developer building against an external OBS SDK (STPLUGIN_BOOTSTRAP_OBS=OFF,
or an explicit -Dlibobs_DIR=...) stays on CMake's normal search, where
whatever w32-pthreads package their SDK provides can still win -- a find
module that could only ever fail would have made their error worse, not
better. Linux reconfigures unchanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RL8abRmgFXkVASHkkqiJbE
This commit is contained in:
2026-09-07 05:56:18 -07:00
co-authored by Claude Sonnet 5
parent f27b1c0b45
commit 1f342b1971
2 changed files with 77 additions and 30 deletions
+23 -11
View File
@@ -249,17 +249,29 @@ if(OS_WINDOWS AND NOT w32-pthreads_DIR)
# would shadow OBS's own exported package on every build, and its
# real export is the better answer whenever it is present.
#
# Reaching here means the bootstrap install did not produce the
# export, so say exactly what IS in .deps/cmake/ -- the next CI log
# then answers the question directly instead of costing another run.
file(GLOB _stplugin_deps_cmake_dirs "${CMAKE_CURRENT_SOURCE_DIR}/.deps/cmake/*")
message(STATUS
"No w32-pthreadsConfig.cmake at ${_stplugin_win_pthreads_dir}; "
"OBS CMake packages actually installed under .deps/cmake: "
"'${_stplugin_deps_cmake_dirs}'. Falling back to this repo's own "
"Findw32-pthreads.cmake, which builds OBS::w32-pthreads straight "
"from the bootstrap's build artifacts.")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/windows/find-fallback")
# ...and only when this repo's own bootstrap actually ran, which is
# the only situation the fallback module knows how to serve: it reads
# artifacts out of .deps/ and nowhere else. A developer building
# against their own external OBS SDK (STPLUGIN_BOOTSTRAP_OBS=OFF, or
# an explicit -Dlibobs_DIR=...) must be left on CMake's normal search
# so that whatever w32-pthreads package their SDK does provide still
# wins -- exposing a find module that can only ever fail would turn
# their build's outcome into a worse error, not a better one.
file(GLOB _stplugin_deps_obs_trees "${CMAKE_CURRENT_SOURCE_DIR}/.deps/obs-studio-*")
if(_stplugin_deps_obs_trees)
# Reaching here means the bootstrap ran but its install did not
# produce the export, so say exactly what IS in .deps/cmake/ --
# the next CI log then answers the question directly instead of
# costing another run.
file(GLOB _stplugin_deps_cmake_dirs "${CMAKE_CURRENT_SOURCE_DIR}/.deps/cmake/*")
message(STATUS
"No w32-pthreadsConfig.cmake at ${_stplugin_win_pthreads_dir}; "
"OBS CMake packages actually installed under .deps/cmake: "
"'${_stplugin_deps_cmake_dirs}'. Falling back to this repo's own "
"Findw32-pthreads.cmake, which builds OBS::w32-pthreads straight "
"from the bootstrap's build artifacts.")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/windows/find-fallback")
endif()
endif()
endif()