Files
TheRock/compiler/amd-llvm/amd/comgr/cmake/EmbedResourceDir.cmake
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

80 lines
2.3 KiB
CMake

cmake_minimum_required(VERSION 3.13.4)
if(NOT GEN_RESOURCE_DIR_FILE)
message(FATAL_ERROR "missing definition for GEN_RESOURCE_DIR_FILE")
endif()
if(NOT CLANG_RESOURCE_DIR)
message(FATAL_ERROR "missing definition for CLANG_RESOURCE_DIR")
endif()
get_filename_component(_EMBED_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
include("${_EMBED_DIR}/EmbedFiles.cmake")
# Keep in sync with DeviceLibs.cmake
file(GLOB_RECURSE files
RELATIVE ${CLANG_RESOURCE_DIR}
LIST_DIRECTORIES false
"${CLANG_RESOURCE_DIR}/lib/amd*/*.bc"
"${CLANG_RESOURCE_DIR}/lib/amd*/*.a")
set(rel_paths)
set(abs_paths)
foreach(file ${files})
file(REAL_PATH ${file} file_absolute
BASE_DIRECTORY ${CLANG_RESOURCE_DIR})
list(APPEND rel_paths "${file}")
list(APPEND abs_paths "${file_absolute}")
endforeach()
embed_files(
RELATIVE_PATHS ${rel_paths}
ABSOLUTE_PATHS ${abs_paths}
PREFIX comgr_resource_dir
OUTPUT_DIR resource_dir
)
list(JOIN EMBED_ARRAY_CONTENT "\n" EMBED_ARRAY_CONTENT)
list(APPEND RESOURCE_DIR_INC_FILE_CONTENT
"#include \"comgr-resource-directory.h\"\n\n"
"#ifdef _MSC_VER"
"#define ALIGNATTR __declspec(align(4096))"
"#else"
"#define ALIGNATTR [[gnu::aligned(4096)]]"
"#endif\n\n"
"${EMBED_EMBED_LIST}"
"${EMBED_SYM_DECLARATIONS}")
if(EMBED_ARRAY_CONTENT)
list(APPEND RESOURCE_DIR_INC_FILE_CONTENT
"\n\nstatic const COMGR::ResourceDirResource ResourceDirectoryFiles[] = {"
"${EMBED_ARRAY_CONTENT}"
"}\;"
"llvm::ArrayRef<COMGR::ResourceDirResource> COMGR::getResourceDirectoryFiles() {"
" return ResourceDirectoryFiles\;"
"}")
else()
list(APPEND RESOURCE_DIR_INC_FILE_CONTENT
"llvm::ArrayRef<COMGR::ResourceDirResource> COMGR::getResourceDirectoryFiles() {"
" return {}\;"
"}")
endif()
list(JOIN RESOURCE_DIR_INC_FILE_CONTENT "\n" RESOURCE_DIR_INC_FILE_CONTENT)
foreach(filename ${EMBED_LIB_SOURCES})
list(APPEND INCLUDE_FILE_CONTENT "#include \"${filename}\"")
endforeach()
list(JOIN INCLUDE_FILE_CONTENT "\n" INCLUDE_FILE_CONTENT)
file(WRITE ${GEN_RESOURCE_DIR_FILE}
"${INCLUDE_FILE_CONTENT}\n${RESOURCE_DIR_INC_FILE_CONTENT}\n")
if(resource_directory_object_files AND RESOURCE_DIRECTORY_ARCHIVE)
execute_process(COMMAND ${CMAKE_AR} rcs
${RESOURCE_DIRECTORY_ARCHIVE} ${resource_directory_object_files}
COMMAND_ERROR_IS_FATAL ANY)
endif()