Trying to compile shader with custom command

Something like this should work:
(I used -E copy to test it, you would want to keep your command lines)

cmake_minimum_required(VERSION 3.24)
project(ProjectName)

set(TARG myui_samples_bare_metal_tri)
add_executable(${TARG} MACOSX_BUNDLE main.cc
  ${CMAKE_CURRENT_BINARY_DIR}/Shaders.air ${CMAKE_CURRENT_BINARY_DIR}/Shaders.metallib)
set_target_properties(${TARG} PROPERTIES OUTPUT_NAME bare_metal_tri)

add_custom_command(OUTPUT Shaders.air
  MAIN_DEPENDENCY Shaders.metal
  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Shaders.metal ${CMAKE_CURRENT_BINARY_DIR}/Shaders.air)

add_custom_command(OUTPUT Shaders.metallib
  MAIN_DEPENDENCY Shaders.air
  COMMAND  ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/Shaders.air ${CMAKE_CURRENT_BINARY_DIR}/Shaders.metallib)
1 Like