Reland "[libclc] Create aliases with custom_command (#115885)" (#116025)

This relands commit 2c980310f67c13dd89c8702d40abeab47a4a2b4b after
fixing an issue.

GitOrigin-RevId: 76befc86dea9cad6be870c04732379f7ecf596dd
diff --git a/cmake/modules/AddLibclc.cmake b/cmake/modules/AddLibclc.cmake
index ee7c850..b520626 100644
--- a/cmake/modules/AddLibclc.cmake
+++ b/cmake/modules/AddLibclc.cmake
@@ -355,11 +355,14 @@
   install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${obj_suffix} DESTINATION "${CMAKE_INSTALL_DATADIR}/clc" )
   foreach( a ${ARG_ALIASES} )
     set( alias_suffix "${a}-${ARG_TRIPLE}.bc" )
-    add_custom_target( ${alias_suffix} ALL
+    add_custom_command(
+      OUTPUT ${alias_suffix}
       COMMAND ${CMAKE_COMMAND} -E create_symlink ${obj_suffix} ${alias_suffix}
       DEPENDS prepare-${obj_suffix} )
-    set_target_properties( "${alias_suffix}" PROPERTIES FOLDER "libclc/Device IR/Aliases" )
-    install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${alias_suffix} DESTINATION "${CMAKE_INSTALL_DATADIR}/clc" )
+    add_custom_target( alias-${alias_suffix} ALL DEPENDS ${alias_suffix} )
+    set_target_properties( alias-${alias_suffix} PROPERTIES FOLDER "libclc/Device IR/Aliases" )
+    install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${alias_suffix}
+             DESTINATION "${CMAKE_INSTALL_DATADIR}/clc" )
   endforeach( a )
 endfunction(add_libclc_builtin_set)