cmake/directml.cmake (48 lines of code) (raw):

include(ExternalProject) set(DIRECTML_PROJECT "extern_directml") set(DIRECTML_VERSION "1.15.0") set(DIRECTML_PREFIX_DIR ${THIRD_PARTY_PATH}/directml) set(DIRECTML_SOURCE_DIR ${THIRD_PARTY_PATH}/directml/src/${DIRECTML_PROJECT}) set(DIRECTML_INSTALL_DIR ${THIRD_PARTY_PATH}/install/directml) set(DIRECTML_LIB_DIR "${DIRECTML_INSTALL_DIR}/lib" CACHE PATH "DirectML lib directory." FORCE) set(DIRECTML_URL "https://globalcdn.nuget.org/packages/microsoft.ai.directml.${DIRECTML_VERSION}.nupkg" ) set(DIRECTML_LIB_NAME "DirectML.dll") SET(DIRECTML_LIB_ARCH "x64-win") string(TOUPPER "${CMAKE_SYSTEM_PROCESSOR}" SYSTEM_PROCESSOR) if (SYSTEM_PROCESSOR STREQUAL ARM64) SET(DIRECTML_LIB_ARCH "arm64-win") endif() set(DIRECTML_SHARED_LIB_SOURCE "${DIRECTML_SOURCE_DIR}/bin/${DIRECTML_LIB_ARCH}/${DIRECTML_LIB_NAME}" CACHE FILEPATH "DirectML source library." FORCE) set(DIRECTML_SHARED_LIB "${DIRECTML_INSTALL_DIR}/lib/${DIRECTML_LIB_NAME}" CACHE FILEPATH "DirectML shared library." FORCE) set(DIRECTML_STATIC_LIB_SOURCE "${DIRECTML_SOURCE_DIR}/bin/${DIRECTML_LIB_ARCH}/DirectML.lib" CACHE FILEPATH "DirectML source library." FORCE) set(DIRECTML_STATIC_LIB "${DIRECTML_INSTALL_DIR}/lib/DirectML.lib" CACHE FILEPATH "DirectML shared library." FORCE) ExternalProject_Add( ${DIRECTML_PROJECT} ${EXTERNAL_PROJECT_LOG_ARGS} URL ${DIRECTML_URL} PREFIX ${DIRECTML_PREFIX_DIR} DOWNLOAD_NO_PROGRESS 1 DOWNLOAD_EXTRACT_TIMESTAMP true CONFIGURE_COMMAND "" BUILD_COMMAND "" UPDATE_COMMAND "" INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${DIRECTML_SHARED_LIB_SOURCE} ${DIRECTML_SHARED_LIB} && ${CMAKE_COMMAND} -E copy ${DIRECTML_STATIC_LIB_SOURCE} ${DIRECTML_STATIC_LIB} BUILD_BYPRODUCTS ${DIRECTML_STATIC_LIB}) add_library(directml STATIC IMPORTED GLOBAL) add_dependencies(directml ${DIRECTML_PROJECT})