xref: /aosp_15_r20/external/pytorch/cmake/External/aotriton.cmake (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerif(NOT __AOTRITON_INCLUDED)
2*da0073e9SAndroid Build Coastguard Worker  set(__AOTRITON_INCLUDED TRUE)
3*da0073e9SAndroid Build Coastguard Worker
4*da0073e9SAndroid Build Coastguard Worker  set(__AOTRITON_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/aotriton/src")
5*da0073e9SAndroid Build Coastguard Worker  set(__AOTRITON_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/aotriton/build")
6*da0073e9SAndroid Build Coastguard Worker  set(__AOTRITON_INSTALL_DIR "${PROJECT_SOURCE_DIR}/torch")
7*da0073e9SAndroid Build Coastguard Worker  add_library(__caffe2_aotriton INTERFACE)
8*da0073e9SAndroid Build Coastguard Worker  # Note it is INSTALL"ED"
9*da0073e9SAndroid Build Coastguard Worker  if(DEFINED ENV{AOTRITON_INSTALLED_PREFIX})
10*da0073e9SAndroid Build Coastguard Worker    set(__AOTRITON_INSTALL_DIR "$ENV{AOTRITON_INSTALLED_PREFIX}")
11*da0073e9SAndroid Build Coastguard Worker    message(STATUS "Using Preinstalled AOTriton at ${__AOTRITON_INSTALL_DIR}")
12*da0073e9SAndroid Build Coastguard Worker  else()
13*da0073e9SAndroid Build Coastguard Worker    file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/.ci/docker/aotriton_version.txt" __AOTRITON_CI_INFO)
14*da0073e9SAndroid Build Coastguard Worker    list(GET __AOTRITON_CI_INFO 3 __AOTRITON_CI_COMMIT)
15*da0073e9SAndroid Build Coastguard Worker    ExternalProject_Add(aotriton_external
16*da0073e9SAndroid Build Coastguard Worker      GIT_REPOSITORY https://github.com/ROCm/aotriton.git
17*da0073e9SAndroid Build Coastguard Worker      GIT_TAG ${__AOTRITON_CI_COMMIT}
18*da0073e9SAndroid Build Coastguard Worker      SOURCE_DIR ${__AOTRITON_SOURCE_DIR}
19*da0073e9SAndroid Build Coastguard Worker      BINARY_DIR ${__AOTRITON_BUILD_DIR}
20*da0073e9SAndroid Build Coastguard Worker      PREFIX ${__AOTRITON_INSTALL_DIR}
21*da0073e9SAndroid Build Coastguard Worker      CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${__AOTRITON_INSTALL_DIR}
22*da0073e9SAndroid Build Coastguard Worker      -DAOTRITON_COMPRESS_KERNEL=OFF
23*da0073e9SAndroid Build Coastguard Worker      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
24*da0073e9SAndroid Build Coastguard Worker      -DAOTRITON_NO_PYTHON=ON
25*da0073e9SAndroid Build Coastguard Worker      -DAOTRITON_NO_SHARED=OFF
26*da0073e9SAndroid Build Coastguard Worker      # CONFIGURE_COMMAND ""
27*da0073e9SAndroid Build Coastguard Worker      BUILD_COMMAND ""  # No build, install command will repeat the build process due to problems in the build system.
28*da0073e9SAndroid Build Coastguard Worker      BUILD_BYPRODUCTS "${__AOTRITON_INSTALL_DIR}/lib/libaotriton_v2.so"
29*da0073e9SAndroid Build Coastguard Worker      USES_TERMINAL_DOWNLOAD TRUE
30*da0073e9SAndroid Build Coastguard Worker      USES_TERMINAL_CONFIGURE TRUE
31*da0073e9SAndroid Build Coastguard Worker      USES_TERMINAL_BUILD TRUE
32*da0073e9SAndroid Build Coastguard Worker      USES_TERMINAL_INSTALL TRUE
33*da0073e9SAndroid Build Coastguard Worker      # INSTALL_COMMAND ${MAKE_COMMAND} install
34*da0073e9SAndroid Build Coastguard Worker      )
35*da0073e9SAndroid Build Coastguard Worker    add_dependencies(__caffe2_aotriton aotriton_external)
36*da0073e9SAndroid Build Coastguard Worker    message(STATUS "Using AOTriton compiled from source directory ${__AOTRITON_SOURCE_DIR}")
37*da0073e9SAndroid Build Coastguard Worker  endif()
38*da0073e9SAndroid Build Coastguard Worker  target_link_libraries(__caffe2_aotriton INTERFACE ${__AOTRITON_INSTALL_DIR}/lib/libaotriton_v2.so)
39*da0073e9SAndroid Build Coastguard Worker  target_include_directories(__caffe2_aotriton INTERFACE ${__AOTRITON_INSTALL_DIR}/include)
40*da0073e9SAndroid Build Coastguard Worker  set(AOTRITON_FOUND TRUE)
41*da0073e9SAndroid Build Coastguard Workerendif() # __AOTRITON_INCLUDED
42