# Copyright Advanced Micro Devices, Inc. # SPDX-License-Identifier: MIT # Optional subprojects add themselves to this list for artifact dependencies. set(_optional_artifact_deps) ################################################################################ # aux-overlay ################################################################################ therock_cmake_subproject_declare(therock-aux-overlay FPRINT_SOURCE_HASH EXTERNAL_SOURCE_DIR "aux-overlay" USE_DIST_AMDGPU_TARGETS BACKGROUND_BUILD CMAKE_ARGS "-DTHEROCK_FLAG_SETTINGS_FILE=${THEROCK_FLAG_SETTINGS_FILE}" "-DTHEROCK_PACKAGE_VERSION=${THEROCK_PACKAGE_VERSION}" ) therock_cmake_subproject_activate(therock-aux-overlay) ################################################################################ # rocm-cmake ################################################################################ therock_cmake_subproject_declare(rocm-cmake EXTERNAL_SOURCE_DIR "rocm-cmake" USE_DIST_AMDGPU_TARGETS BACKGROUND_BUILD ) therock_cmake_subproject_provide_package(rocm-cmake ROCmCMakeBuildTools share/rocmcmakebuildtools/cmake) therock_cmake_subproject_provide_package(rocm-cmake ROCM share/rocm/cmake) therock_cmake_subproject_activate(rocm-cmake) ################################################################################ # rocm-core ################################################################################ if(WIN32) set(_shared_libs_arg "OFF") else() set(_shared_libs_arg "ON") endif() therock_cmake_subproject_declare(rocm-core EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_SYSTEMS_SOURCE_DIR}/projects/rocm-core" BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/rocm-core" USE_DIST_AMDGPU_TARGETS BACKGROUND_BUILD CMAKE_ARGS "-DBUILD_SHARED_LIBS=${_shared_libs_arg}" "-DROCM_VERSION=${ROCM_MAJOR_VERSION}.${ROCM_MINOR_VERSION}.${ROCM_PATCH_VERSION}" ) therock_cmake_subproject_glob_c_sources(rocm-core SUBDIRS . ) therock_cmake_subproject_provide_package(rocm-core rocm-core lib/cmake/rocm-core) therock_cmake_subproject_activate(rocm-core) ################################################################################ # rocm_smi_lib ################################################################################ if(NOT WIN32) # TODO(#36): Enable on Windows and/or make subproject inclusion generally optional therock_cmake_subproject_declare(rocm_smi_lib EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_SYSTEMS_SOURCE_DIR}/projects/rocm-smi-lib" BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/rocm_smi_lib" USE_DIST_AMDGPU_TARGETS BACKGROUND_BUILD CMAKE_ARGS # See the post_hook, which needs to advertise install interface directories # in this case. "-DTHEROCK_HAS_BUNDLED_LIBDRM=${THEROCK_BUNDLED_LIBDRM}" INTERFACE_LINK_DIRS "lib" INSTALL_RPATH_DIRS "lib" INTERFACE_INSTALL_RPATH_DIRS "lib" INTERFACE_PROGRAM_DIRS "bin" RUNTIME_DEPS ${THEROCK_BUNDLED_LIBDRM} ) therock_cmake_subproject_glob_c_sources(rocm_smi_lib SUBDIRS include src ) therock_cmake_subproject_provide_package(rocm_smi_lib rocm_smi lib/cmake/rocm_smi) therock_cmake_subproject_activate(rocm_smi_lib) list(APPEND _optional_artifact_deps rocm_smi_lib) endif() ################################################################################ # rocprofiler-register # This is a stub that helps runtime libraries and profiles rendezvous ################################################################################ if(NOT WIN32) # TODO(#36): Enable on Windows? therock_cmake_subproject_declare(rocprofiler-register EXTERNAL_SOURCE_DIR "${THEROCK_ROCM_SYSTEMS_SOURCE_DIR}/projects/rocprofiler-register" BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/rocprofiler-register" USE_DIST_AMDGPU_TARGETS BACKGROUND_BUILD INTERFACE_LINK_DIRS "lib" INTERFACE_INSTALL_RPATH_DIRS "lib" ) therock_cmake_subproject_glob_c_sources(rocprofiler-register SUBDIRS source/include source/lib ) therock_cmake_subproject_provide_package(rocprofiler-register rocprofiler-register lib/cmake/rocprofiler-register) therock_cmake_subproject_activate(rocprofiler-register) list(APPEND _optional_artifact_deps rocprofiler-register) endif() ################################################################################ # rocm-half ################################################################################ therock_cmake_subproject_declare(rocm-half EXTERNAL_SOURCE_DIR "half" USE_DIST_AMDGPU_TARGETS BACKGROUND_BUILD INTERFACE_INCLUDE_DIRS # No find_package support (just a naked include). include BUILD_DEPS rocm-cmake ) therock_cmake_subproject_glob_c_sources(rocm-half SUBDIRS include ) therock_cmake_subproject_activate(rocm-half) ################################################################################ # Artifacts ################################################################################ therock_provide_artifact(base TARGET_NEUTRAL DESCRIPTOR artifact.toml COMPONENTS dbg dev doc lib run test SUBPROJECT_DEPS ${_optional_artifact_deps} rocm-cmake rocm-core rocm-half therock-aux-overlay )