LOCK.cmake 947 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. set(lfile "${CMAKE_CURRENT_BINARY_DIR}/file-to-lock")
  2. set(ldir "${CMAKE_CURRENT_BINARY_DIR}/dir-to-lock")
  3. message(STATUS "Simple lock")
  4. file(LOCK ${lfile})
  5. message(STATUS "Directory lock")
  6. file(LOCK ${ldir} DIRECTORY)
  7. message(STATUS "Release")
  8. file(LOCK ${lfile} RELEASE)
  9. function(foo)
  10. file(LOCK "${lfile}" GUARD FUNCTION)
  11. endfunction()
  12. message(STATUS "Lock function scope")
  13. foo()
  14. message(STATUS "Lock file scope")
  15. add_subdirectory(subdir_test_unlock)
  16. message(STATUS "Lock process scope")
  17. file(LOCK "${lfile}" GUARD PROCESS)
  18. message(STATUS "Error double lock")
  19. file(LOCK "${lfile}" RESULT_VARIABLE lock_result)
  20. if(lock_result STREQUAL "File already locked")
  21. message(STATUS "Ok")
  22. else()
  23. message(STATUS FATAL_ERROR "Expected error message")
  24. endif()
  25. message(STATUS "Timeout 0")
  26. file(LOCK "${lfile}" RELEASE)
  27. file(LOCK "${lfile}" TIMEOUT 0)
  28. message(STATUS "Timeout not 0")
  29. file(LOCK "${lfile}" RELEASE)
  30. file(LOCK "${lfile}" TIMEOUT 3)