summaryrefslogtreecommitdiff
path: root/cmake/GenerateO2R.cmake
blob: 32e1e053db3c813d29b073cf33d05fe8ec2ef424 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
foreach(REQUIRED_VARIABLE TORCH_EXECUTABLE SOURCE_DIR BINARY_DIR)
  if(NOT DEFINED ${REQUIRED_VARIABLE})
    message(FATAL_ERROR "${REQUIRED_VARIABLE} is required")
  endif()
endforeach()

file(LOCK "${BINARY_DIR}/spaghetti-o2r.lock" GUARD PROCESS TIMEOUT 300)
execute_process(
  COMMAND "${TORCH_EXECUTABLE}" pack assets spaghetti.o2r o2r
  WORKING_DIRECTORY "${SOURCE_DIR}"
  RESULT_VARIABLE GENERATE_RESULT)
if(NOT GENERATE_RESULT EQUAL 0)
  message(FATAL_ERROR "Torch failed to generate spaghetti.o2r")
endif()

execute_process(
  COMMAND "${CMAKE_COMMAND}" -E copy_if_different
          "${SOURCE_DIR}/spaghetti.o2r" "${BINARY_DIR}/spaghetti.o2r"
  RESULT_VARIABLE COPY_RESULT)
if(NOT COPY_RESULT EQUAL 0)
  message(FATAL_ERROR "Failed to stage spaghetti.o2r")
endif()