| option(LLVM_INCLUDE_DXIL_TESTS "Include DXIL tests" Off) |
| mark_as_advanced(LLVM_INCLUDE_DXIL_TESTS) |
| |
| if (NOT LLVM_INCLUDE_DXIL_TESTS) |
| return() |
| endif () |
| |
| if (NOT "DirectX" IN_LIST LLVM_TARGETS_TO_BUILD) |
| message(FATAL_ERROR "Building dxil-dis tests is unsupported without the DirectX target") |
| endif () |
| |
| if (CMAKE_HOST_UNIX) |
| set(LLVM_LINK_OR_COPY create_symlink) |
| else () |
| set(LLVM_LINK_OR_COPY copy) |
| endif () |
| |
| if (DXIL_DIS) |
| add_custom_target(dxil-dis |
| COMMAND ${CMAKE_COMMAND} -E ${LLVM_LINK_OR_COPY} "${DXIL_DIS}" "${LLVM_RUNTIME_OUTPUT_INTDIR}/dxil-dis${CMAKE_EXECUTABLE_SUFFIX}") |
| return() |
| endif () |
| |
| include(ExternalProject) |
| |
| set(SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/DXC-src) |
| set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/DXC-bins) |
| set(GIT_SETTINGS GIT_REPOSITORY https://github.com/microsoft/DirectXShaderCompiler.git) |
| |
| if (DXC_SOURCE_DIR) |
| set(SOURCE_DIR ${DXC_SOURCE_DIR}) |
| unset(GIT_SETTINGS) |
| endif () |
| |
| ExternalProject_Add(DXC |
| ${GIT_SETTINGS} |
| SOURCE_DIR ${SOURCE_DIR} |
| BINARY_DIR ${BINARY_DIR} |
| CMAKE_ARGS -C ${SOURCE_DIR}/cmake/caches/PredefinedParams.cmake -DLLVM_INCLUDE_TESTS=On |
| BUILD_COMMAND ${CMAKE_COMMAND} --build ${BINARY_DIR} --target llvm-dis |
| BUILD_BYPRODUCTS ${BINARY_DIR}/bin/llvm-dis |
| INSTALL_COMMAND "" |
| ) |
| |
| add_custom_target(dxil-dis |
| COMMAND ${CMAKE_COMMAND} -E ${LLVM_LINK_OR_COPY} "${BINARY_DIR}/bin/llvm-dis${CMAKE_EXECUTABLE_SUFFIX}" "${LLVM_RUNTIME_OUTPUT_INTDIR}/dxil-dis${CMAKE_EXECUTABLE_SUFFIX}" |
| DEPENDS DXC |
| ) |