Skip to content

Commit 5022bb7

Browse files
lawruble13amd-aakash
authored andcommitted
Create symlinks to specific files instead of directory (#93)
* Create symlinks to specific files instead of dir * correct CMake foreach syntax * Ensure link location exists * rearrange to create links more directly * only create link if file doesn't already exist * Correct CMake file symlinks * Tidy formatting Change-Id: Idc9ea15bad45f15567b56c4737f83c1b9aa5016a
1 parent a52cb6f commit 5022bb7

File tree

1 file changed

+24
-15
lines changed

1 file changed

+24
-15
lines changed

share/rocm/cmake/ROCMInstallTargets.cmake

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -172,10 +172,12 @@ function(rocm_install_targets)
172172
file(RELATIVE_PATH LINK_PATH
173173
\${LINK_DIR}/${ROCM_INSTALL_LIBDIR}
174174
\${SRC_DIR}/${ROCM_INSTALL_LIBDIR})
175-
execute_process(COMMAND \${CMAKE_COMMAND} -E create_symlink
176-
\${LINK_PATH}/$<TARGET_LINKER_FILE_NAME:${TARGET}>
177-
\${LINK_DIR}/${ROCM_INSTALL_LIBDIR}/$<TARGET_LINKER_FILE_NAME:${TARGET}>
178-
)
175+
if(NOT EXISTS \${LINK_DIR}/${ROCM_INSTALL_LIBDIR}/$<TARGET_LINKER_FILE_NAME:${TARGET}>)
176+
execute_process(COMMAND \${CMAKE_COMMAND} -E create_symlink
177+
\${LINK_PATH}/$<TARGET_LINKER_FILE_NAME:${TARGET}>
178+
\${LINK_DIR}/${ROCM_INSTALL_LIBDIR}/$<TARGET_LINKER_FILE_NAME:${TARGET}>
179+
)
180+
endif()
179181
")
180182

181183
rocm_install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_symlink.cmake")
@@ -329,21 +331,28 @@ function(rocm_export_targets)
329331

330332
if(ROCM_SYMLINK_LIBS AND NOT WIN32)
331333
string(TOLOWER "${PROJECT_NAME}" LINK_SUBDIR)
334+
332335
file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/cmake_symlink.cmake"
333336
CONTENT "
334-
set(SRC_DIR \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX})
335-
set(LINK_DIR \${SRC_DIR}/${LINK_SUBDIR})
336-
if(NOT EXISTS \${LINK_DIR}/${ROCM_INSTALL_LIBDIR}/cmake)
337-
file(MAKE_DIRECTORY \${LINK_DIR}/${ROCM_INSTALL_LIBDIR}/cmake)
337+
set(SRC_DIR \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CONFIG_PACKAGE_INSTALL_DIR})
338+
set(LINK_DIR \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${LINK_SUBDIR}/${ROCM_INSTALL_LIBDIR}/cmake)
339+
if(NOT EXISTS \${LINK_DIR})
340+
file(MAKE_DIRECTORY \${LINK_DIR})
338341
endif()
339-
file(RELATIVE_PATH LINK_PATH
340-
\${LINK_DIR}/${ROCM_INSTALL_LIBDIR}/cmake
341-
\${SRC_DIR}/${CONFIG_PACKAGE_INSTALL_DIR}
342-
)
343-
execute_process(COMMAND \${CMAKE_COMMAND} -E create_symlink
344-
\${LINK_PATH}
345-
\${LINK_DIR}/${CONFIG_PACKAGE_INSTALL_DIR}
342+
file(GLOB TARGET_FILES
343+
LIST_DIRECTORIES false
344+
RELATIVE \${SRC_DIR}
345+
\${SRC_DIR}/${TARGET_FILE}*.cmake
346346
)
347+
foreach(filename ${CONFIG_NAME}.cmake ${CONFIG_NAME}-version.cmake \${TARGET_FILES})
348+
file(RELATIVE_PATH LINK_PATH \${LINK_DIR} \${SRC_DIR}/\${filename})
349+
if(NOT EXISTS \${LINK_DIR}/\${filename})
350+
execute_process(COMMAND \${CMAKE_COMMAND} -E create_symlink
351+
\${LINK_PATH}
352+
\${LINK_DIR}/\${filename}
353+
)
354+
endif()
355+
endforeach()
347356
")
348357
rocm_install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/cmake_symlink.cmake")
349358
endif()

0 commit comments

Comments
 (0)