if(NOT __AOTRITON_INCLUDED) set(__AOTRITON_INCLUDED TRUE) set(__AOTRITON_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/aotriton/src") set(__AOTRITON_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/aotriton/build") set(__AOTRITON_INSTALL_DIR "${PROJECT_SOURCE_DIR}/torch") add_library(__caffe2_aotriton INTERFACE) # Note it is INSTALL"ED" if(DEFINED ENV{AOTRITON_INSTALLED_PREFIX}) set(__AOTRITON_INSTALL_DIR "$ENV{AOTRITON_INSTALLED_PREFIX}") message(STATUS "Using Preinstalled AOTriton at ${__AOTRITON_INSTALL_DIR}") else() file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/.ci/docker/aotriton_version.txt" __AOTRITON_CI_INFO) list(GET __AOTRITON_CI_INFO 3 __AOTRITON_CI_COMMIT) ExternalProject_Add(aotriton_external GIT_REPOSITORY https://github.com/ROCm/aotriton.git GIT_TAG ${__AOTRITON_CI_COMMIT} SOURCE_DIR ${__AOTRITON_SOURCE_DIR} BINARY_DIR ${__AOTRITON_BUILD_DIR} PREFIX ${__AOTRITON_INSTALL_DIR} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${__AOTRITON_INSTALL_DIR} -DAOTRITON_COMPRESS_KERNEL=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DAOTRITON_NO_PYTHON=ON -DAOTRITON_NO_SHARED=OFF # CONFIGURE_COMMAND "" BUILD_COMMAND "" # No build, install command will repeat the build process due to problems in the build system. BUILD_BYPRODUCTS "${__AOTRITON_INSTALL_DIR}/lib/libaotriton_v2.so" USES_TERMINAL_DOWNLOAD TRUE USES_TERMINAL_CONFIGURE TRUE USES_TERMINAL_BUILD TRUE USES_TERMINAL_INSTALL TRUE # INSTALL_COMMAND ${MAKE_COMMAND} install ) add_dependencies(__caffe2_aotriton aotriton_external) message(STATUS "Using AOTriton compiled from source directory ${__AOTRITON_SOURCE_DIR}") endif() target_link_libraries(__caffe2_aotriton INTERFACE ${__AOTRITON_INSTALL_DIR}/lib/libaotriton_v2.so) target_include_directories(__caffe2_aotriton INTERFACE ${__AOTRITON_INSTALL_DIR}/include) set(AOTRITON_FOUND TRUE) endif() # __AOTRITON_INCLUDED