@@ -204,10 +204,6 @@ foreach(entry ${runtimes})
204
204
if (canon_name STREQUAL "LIBC" )
205
205
list (APPEND prefixes "LLVM_LIBC" )
206
206
list (APPEND prefixes "LIBC_" )
207
- # The `libc` project may require '-DCUDAToolkit_ROOT' in GPU mode.
208
- if (LLVM_LIBC_GPU_BUILD )
209
- list (APPEND prefixes "CUDA" )
210
- endif ()
211
207
endif ()
212
208
213
209
_get_runtime_name (${name} name )
@@ -261,6 +257,7 @@ function(runtime_default_target)
261
257
${ARG_CMAKE_ARGS}
262
258
PASSTHROUGH_PREFIXES LLVM_ENABLE_RUNTIMES
263
259
LLVM_USE_LINKER
260
+ CUDA # For runtimes that may look for the CUDA SDK (libc, offload)
264
261
${ARG_PREFIXES}
265
262
EXTRA_TARGETS ${extra_targets}
266
263
${test_targets}
@@ -445,6 +442,18 @@ if(build_runtimes)
445
442
# The runtimes target is a configuration of all the runtime libraries
446
443
# together in a single CMake invocation.
447
444
set (extra_deps "" )
445
+ set (extra_cmake_args "" )
446
+
447
+ # Forward user-provived system configuration to runtimes for requirement introspection.
448
+ # CMAKE_PREFIX_PATH is the search path for CMake packages.
449
+ if (CMAKE_PREFIX_PATH )
450
+ list (APPEND extra_cmake_args "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} " )
451
+ endif ()
452
+ # CMAKE_PROGRAM_PATH is the search path for executables such as python.
453
+ if (CMAKE_PROGRAM_PATH )
454
+ list (APPEND extra_cmake_args "-DCMAKE_PROGRAM_PATH=${CMAKE_PROGRAM_PATH} " )
455
+ endif ()
456
+
448
457
if ("openmp" IN_LIST LLVM_ENABLE_RUNTIMES )
449
458
if (${LLVM_TOOL_FLANG_BUILD} )
450
459
message (STATUS "Configuring build of omp_lib.mod and omp_lib_kinds.mod via flang-new" )
@@ -478,49 +487,46 @@ if(build_runtimes)
478
487
if (NOT hdrgen_exe )
479
488
message (FATAL_ERROR "libc-hdrgen executable missing" )
480
489
endif ()
481
- list (APPEND libc_cmake_args "-DLIBC_HDRGEN_EXE=${hdrgen_exe} " )
490
+ list (APPEND extra_cmake_args "-DLIBC_HDRGEN_EXE=${hdrgen_exe} " )
482
491
list (APPEND extra_deps ${hdrgen_deps} )
483
492
endif ()
484
493
if (LLVM_LIBC_GPU_BUILD )
485
- list (APPEND libc_cmake_args "-DLLVM_LIBC_GPU_BUILD=ON" )
494
+ list (APPEND extra_cmake_args "-DLLVM_LIBC_GPU_BUILD=ON" )
486
495
if ("libc" IN_LIST RUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES )
487
496
if (TARGET amdhsa-loader )
488
- list (APPEND libc_cmake_args
497
+ list (APPEND extra_cmake_args
489
498
"-DRUNTIMES_amdgcn-amd-amdhsa_LIBC_GPU_LOADER_EXECUTABLE=$<TARGET_FILE:amdhsa-loader>" )
490
499
list (APPEND extra_deps amdhsa-loader amdgpu-arch )
491
500
endif ()
492
- list (APPEND libc_cmake_args "-DRUNTIMES_amdgcn-amd-amdhsa_LLVM_LIBC_FULL_BUILD=ON" )
501
+ list (APPEND extra_cmake_args "-DRUNTIMES_amdgcn-amd-amdhsa_LLVM_LIBC_FULL_BUILD=ON" )
493
502
endif ()
494
503
if ("libc" IN_LIST RUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES )
495
504
if (TARGET nvptx-loader )
496
- list (APPEND libc_cmake_args
505
+ list (APPEND extra_cmake_args
497
506
"-DRUNTIMES_nvptx64-nvidia-cuda_LIBC_GPU_LOADER_EXECUTABLE=$<TARGET_FILE:nvptx-loader>" )
498
507
list (APPEND extra_deps nvptx-loader nvptx-arch )
499
508
endif ()
500
- list (APPEND libc_cmake_args "-DRUNTIMES_nvptx64-nvidia-cuda_LLVM_LIBC_FULL_BUILD=ON" )
501
- endif ()
502
- # The `libc` project may require '-DCUDAToolkit_ROOT' in GPU mode.
503
- if (CUDAToolkit_ROOT )
504
- list (APPEND libc_cmake_args "-DCUDAToolkit_ROOT=${CUDAToolkit_ROOT} " )
509
+ list (APPEND extra_cmake_args "-DRUNTIMES_nvptx64-nvidia-cuda_LLVM_LIBC_FULL_BUILD=ON" )
505
510
endif ()
506
511
if (TARGET clang-offload-packager )
507
512
list (APPEND extra_deps clang-offload-packager )
508
513
endif ()
509
514
endif ()
510
515
if (LLVM_LIBC_FULL_BUILD )
511
- list (APPEND libc_cmake_args "-DLLVM_LIBC_FULL_BUILD=ON" )
516
+ list (APPEND extra_cmake_args "-DLLVM_LIBC_FULL_BUILD=ON" )
512
517
endif ()
518
+
513
519
if (NOT LLVM_RUNTIME_TARGETS )
514
520
runtime_default_target (
515
521
DEPENDS ${builtins_dep} ${extra_deps}
516
- CMAKE_ARGS ${libc_cmake_args }
522
+ CMAKE_ARGS ${extra_cmake_args }
517
523
PREFIXES ${prefixes} )
518
524
set (test_targets check-runtimes )
519
525
else ()
520
526
if ("default" IN_LIST LLVM_RUNTIME_TARGETS )
521
527
runtime_default_target (
522
528
DEPENDS ${builtins_dep} ${extra_deps}
523
- CMAKE_ARGS ${libc_cmake_args }
529
+ CMAKE_ARGS ${extra_cmake_args }
524
530
PREFIXES ${prefixes} )
525
531
list (REMOVE_ITEM LLVM_RUNTIME_TARGETS "default" )
526
532
else ()
@@ -567,7 +573,7 @@ if(build_runtimes)
567
573
568
574
runtime_register_target (${name}
569
575
DEPENDS ${builtins_dep_name} ${extra_deps}
570
- CMAKE_ARGS -DLLVM_DEFAULT_TARGET_TRIPLE=${name} ${libc_cmake_args }
576
+ CMAKE_ARGS -DLLVM_DEFAULT_TARGET_TRIPLE=${name} ${extra_cmake_args }
571
577
EXTRA_ARGS TARGET_TRIPLE ${name} )
572
578
endforeach ()
573
579
0 commit comments