Chris Bieneman | a479bbe | 2022-04-14 13:37:44 -0500 | [diff] [blame] | 1 | option(LLVM_INCLUDE_DXIL_TESTS "Include DXIL tests" Off) |
| 2 | mark_as_advanced(LLVM_INCLUDE_DXIL_TESTS) |
| 3 | |
| 4 | if (NOT LLVM_INCLUDE_DXIL_TESTS) |
| 5 | return() |
| 6 | endif () |
| 7 | |
| 8 | if (NOT "DirectX" IN_LIST LLVM_TARGETS_TO_BUILD) |
| 9 | message(FATAL_ERROR "Building dxil-dis tests is unsupported without the DirectX target") |
| 10 | endif () |
| 11 | |
| 12 | if (CMAKE_HOST_UNIX) |
| 13 | set(LLVM_LINK_OR_COPY create_symlink) |
| 14 | else () |
| 15 | set(LLVM_LINK_OR_COPY copy) |
| 16 | endif () |
| 17 | |
| 18 | if (DXIL_DIS) |
| 19 | add_custom_target(dxil-dis |
Xiang Li | 2170bd4 | 2022-12-09 20:34:27 -0800 | [diff] [blame] | 20 | COMMAND ${CMAKE_COMMAND} -E ${LLVM_LINK_OR_COPY} "${DXIL_DIS}" "${LLVM_RUNTIME_OUTPUT_INTDIR}/dxil-dis${CMAKE_EXECUTABLE_SUFFIX}") |
Chris Bieneman | a479bbe | 2022-04-14 13:37:44 -0500 | [diff] [blame] | 21 | return() |
| 22 | endif () |
| 23 | |
| 24 | include(ExternalProject) |
| 25 | |
| 26 | set(SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/DXC-src) |
| 27 | set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/DXC-bins) |
| 28 | set(GIT_SETTINGS GIT_REPOSITORY https://github.com/microsoft/DirectXShaderCompiler.git) |
| 29 | |
| 30 | if (DXC_SOURCE_DIR) |
| 31 | set(SOURCE_DIR ${DXC_SOURCE_DIR}) |
| 32 | unset(GIT_SETTINGS) |
| 33 | endif () |
| 34 | |
| 35 | ExternalProject_Add(DXC |
| 36 | ${GIT_SETTINGS} |
| 37 | SOURCE_DIR ${SOURCE_DIR} |
| 38 | BINARY_DIR ${BINARY_DIR} |
| 39 | CMAKE_ARGS -C ${SOURCE_DIR}/cmake/caches/PredefinedParams.cmake -DLLVM_INCLUDE_TESTS=On |
| 40 | BUILD_COMMAND ${CMAKE_COMMAND} --build ${BINARY_DIR} --target llvm-dis |
| 41 | BUILD_BYPRODUCTS ${BINARY_DIR}/bin/llvm-dis |
| 42 | INSTALL_COMMAND "" |
| 43 | ) |
| 44 | |
| 45 | add_custom_target(dxil-dis |
| 46 | 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}" |
| 47 | DEPENDS DXC |
| 48 | ) |