@@ -120,24 +120,25 @@ endfunction()
120120#
121121function (add_kernels_install_target TARGET_NAME PACKAGE_NAME BUILD_VARIANT_NAME )
122122 set (oneValueArgs INSTALL_PREFIX )
123- cmake_parse_arguments (ARG "" "${oneValueArgs} " "" ${ARGN} )
123+ set (multiValueArgs DATA_EXTENSIONS)
124+ cmake_parse_arguments (ARG "" "${oneValueArgs} " "${multiValueArgs} " ${ARGN} )
124125
125126 if (NOT ARG_INSTALL_PREFIX)
126127 set (ARG_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX} " )
127128 endif ()
128129
129130 if (${GPU_LANG} STREQUAL "CPU" )
130- set (_BACKEND "cpu" )
131+ set (_BACKEND "cpu" )
131132 elseif (${GPU_LANG} STREQUAL "CUDA" )
132- set (_BACKEND "cuda" )
133+ set (_BACKEND "cuda" )
133134 elseif (${GPU_LANG} STREQUAL "HIP" )
134- set (_BACKEND "rocm" )
135+ set (_BACKEND "rocm" )
135136 elseif (${GPU_LANG} STREQUAL "METAL" )
136- set (_BACKEND "metal" )
137+ set (_BACKEND "metal" )
137138 elseif (${GPU_LANG} STREQUAL "SYCL" )
138- set (_BACKEND "xpu" )
139+ set (_BACKEND "xpu" )
139140 else ()
140- message (FATAL_ERROR "Unsupported GPU_LANG: ${GPU_LANG} " )
141+ message (FATAL_ERROR "Unsupported GPU_LANG: ${GPU_LANG} " )
141142 endif ()
142143
143144 # Set the installation directory
@@ -155,8 +156,8 @@ function(add_kernels_install_target TARGET_NAME PACKAGE_NAME BUILD_VARIANT_NAME)
155156 # Glob Python files to install recursively.
156157 file (GLOB_RECURSE PYTHON_FILES RELATIVE "${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME} " "${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME} /*.py" )
157158 foreach (python_file IN LISTS PYTHON_FILES)
158- get_filename_component (python_file_dir "${python_file} " DIRECTORY )
159- install (FILES "${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME} /${python_file} "
159+ get_filename_component (python_file_dir "${python_file} " DIRECTORY )
160+ install (FILES "${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME} /${python_file} "
160161 DESTINATION "${KERNEL_INSTALL_DIR} /${python_file_dir} "
161162 COMPONENT ${TARGET_NAME} )
162163 endforeach ()
@@ -172,6 +173,17 @@ function(add_kernels_install_target TARGET_NAME PACKAGE_NAME BUILD_VARIANT_NAME)
172173 RENAME "__init__.py"
173174 COMPONENT ${TARGET_NAME} )
174175
176+ # Install data files with specified extensions
177+ foreach (ext IN LISTS ARG_DATA_EXTENSIONS)
178+ file (GLOB_RECURSE DATA_FILES RELATIVE "${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME} " "${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME} /*.${ext} " )
179+ foreach (data_file IN LISTS DATA_FILES)
180+ get_filename_component (data_file_dir "${data_file} " DIRECTORY )
181+ install (FILES "${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME} /${data_file} "
182+ DESTINATION "${KERNEL_INSTALL_DIR} /${data_file_dir} "
183+ COMPONENT ${TARGET_NAME} )
184+ endforeach ()
185+ endforeach ()
186+
175187 message (STATUS "Added install rules for ${TARGET_NAME} -> ${BUILD_VARIANT_NAME} " )
176188endfunction ()
177189
@@ -192,6 +204,9 @@ endfunction()
192204# BUILD_VARIANT_NAME - Build variant name (e.g., "torch271-cxx11-cu124-x86_64-linux")
193205#
194206function (add_local_install_target TARGET_NAME PACKAGE_NAME BUILD_VARIANT_NAME )
207+ set (multiValueArgs DATA_EXTENSIONS)
208+ cmake_parse_arguments (ARG "" "" "${multiValueArgs} " ${ARGN} )
209+
195210 # Define your local, folder based, installation directory
196211 set (LOCAL_INSTALL_DIR "${CMAKE_SOURCE_DIR} /build/${BUILD_VARIANT_NAME} " )
197212 # Variant directory is where metadata.json should go (for kernels upload discovery)
@@ -206,17 +221,17 @@ function(add_local_install_target TARGET_NAME PACKAGE_NAME BUILD_VARIANT_NAME)
206221 )
207222
208223 if (${GPU_LANG} STREQUAL "CPU" )
209- set (_BACKEND "cpu" )
224+ set (_BACKEND "cpu" )
210225 elseif (${GPU_LANG} STREQUAL "CUDA" )
211- set (_BACKEND "cuda" )
226+ set (_BACKEND "cuda" )
212227 elseif (${GPU_LANG} STREQUAL "HIP" )
213- set (_BACKEND "rocm" )
228+ set (_BACKEND "rocm" )
214229 elseif (${GPU_LANG} STREQUAL "METAL" )
215- set (_BACKEND "metal" )
230+ set (_BACKEND "metal" )
216231 elseif (${GPU_LANG} STREQUAL "SYCL" )
217- set (_BACKEND "xpu" )
232+ set (_BACKEND "xpu" )
218233 else ()
219- message (FATAL_ERROR "Unsupported GPU_LANG: ${GPU_LANG} " )
234+ message (FATAL_ERROR "Unsupported GPU_LANG: ${GPU_LANG} " )
220235 endif ()
221236
222237 # Add custom commands to copy files
@@ -242,8 +257,8 @@ function(add_local_install_target TARGET_NAME PACKAGE_NAME BUILD_VARIANT_NAME)
242257
243258 # Copy each Python file preserving directory structure
244259 foreach (python_file IN LISTS PYTHON_FILES)
245- get_filename_component (python_file_dir "${python_file} " DIRECTORY )
246- add_custom_command (TARGET local_install POST_BUILD
260+ get_filename_component (python_file_dir "${python_file} " DIRECTORY )
261+ add_custom_command (TARGET local_install POST_BUILD
247262 COMMAND ${CMAKE_COMMAND} -E make_directory
248263 ${LOCAL_INSTALL_DIR} /${python_file_dir}
249264 COMMAND ${CMAKE_COMMAND} -E copy_if_different
@@ -253,6 +268,22 @@ function(add_local_install_target TARGET_NAME PACKAGE_NAME BUILD_VARIANT_NAME)
253268 )
254269 endforeach ()
255270
271+ # Copy data files with specified extensions
272+ foreach (ext IN LISTS ARG_DATA_EXTENSIONS)
273+ file (GLOB_RECURSE DATA_FILES RELATIVE "${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME} " "${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME} /*.${ext} " )
274+ foreach (data_file IN LISTS DATA_FILES)
275+ get_filename_component (data_file_dir "${data_file} " DIRECTORY )
276+ add_custom_command (TARGET local_install POST_BUILD
277+ COMMAND ${CMAKE_COMMAND} -E make_directory
278+ ${LOCAL_INSTALL_DIR} /${data_file_dir}
279+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
280+ ${CMAKE_SOURCE_DIR} /torch-ext/${PACKAGE_NAME}/${data_file}
281+ ${LOCAL_INSTALL_DIR} /${data_file_dir}/
282+ COMMENT "Copying ${data_file} to ${LOCAL_INSTALL_DIR} /${data_file_dir} "
283+ )
284+ endforeach ()
285+ endforeach ()
286+
256287 # Create both directories: variant dir for metadata.json, package dir for binaries
257288 file (MAKE_DIRECTORY ${VARIANT_DIR} )
258289 file (MAKE_DIRECTORY ${LOCAL_INSTALL_DIR} )
0 commit comments