| set(lfile "${CMAKE_CURRENT_BINARY_DIR}/file-to-lock") |
| set(ldir "${CMAKE_CURRENT_BINARY_DIR}/dir-to-lock") |
| |
| message(STATUS "Simple lock") |
| file(LOCK ${lfile}) |
| |
| message(STATUS "Directory lock") |
| file(LOCK ${ldir} DIRECTORY) |
| |
| message(STATUS "Release") |
| file(LOCK ${lfile} RELEASE) |
| |
| function(foo) |
| file(LOCK "${lfile}" GUARD FUNCTION) |
| endfunction() |
| |
| message(STATUS "Lock function scope") |
| foo() |
| |
| message(STATUS "Lock file scope") |
| add_subdirectory(subdir_test_unlock) |
| |
| message(STATUS "Lock process scope") |
| file(LOCK "${lfile}" GUARD PROCESS) |
| |
| message(STATUS "Error double lock") |
| file(LOCK "${lfile}" RESULT_VARIABLE lock_result) |
| if(lock_result STREQUAL "File already locked") |
| message(STATUS "Ok") |
| else() |
| message(STATUS FATAL_ERROR "Expected error message") |
| endif() |
| |
| message(STATUS "Timeout 0") |
| file(LOCK "${lfile}" RELEASE) |
| file(LOCK "${lfile}" TIMEOUT 0) |
| |
| message(STATUS "Timeout not 0") |
| file(LOCK "${lfile}" RELEASE) |
| file(LOCK "${lfile}" TIMEOUT 3) |