Files
cmake/Tests/RunCMake/file/LOCK-include.cmake
Ruslan Baratov 638069631d file: Fix LOCK command handling in scripts and includes
Move lock scope handling to the `FileScopeBase` class to cover:

- `IncludeScope` for `include()`
- `ListFileScope` for `cmake -P` script mode
- `BuildsystemFileScope` for `CMakeLists.txt`/`add_subdirectory`

Fixes: #16480
2026-05-21 10:14:26 +08:00

14 lines
493 B
CMake

set(FILE_TO_LOCK "${CMAKE_CURRENT_BINARY_DIR}/file.lock")
file(LOCK "${FILE_TO_LOCK}" GUARD FILE TIMEOUT 0)
message(STATUS "File locked before include")
file(LOCK "${FILE_TO_LOCK}" RELEASE)
include("${CMAKE_CURRENT_LIST_DIR}/lock_include_example.cmake")
# Since the scope is 'GUARD FILE', after the 'include()' call, the file should
# be in an unlocked state
file(LOCK "${FILE_TO_LOCK}" GUARD FILE TIMEOUT 0)
message(STATUS "File locked after include")
file(LOCK "${FILE_TO_LOCK}" RELEASE)