@@ -413,23 +413,27 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
413413 DIRS ${opencl_dirs}
414414 )
415415
416- set ( libspirv_lib_files )
417- set ( libspirv_gen_files )
418-
419- if ( NOT ARCH STREQUAL spirv AND NOT ARCH STREQUAL spirv64 )
420- if ( ARCH STREQUAL clspv OR ARCH STREQUAL clspv64 )
421- list ( APPEND libspirv_gen_files clspv-convert.cl )
422- elseif ( NOT ENABLE_RUNTIME_SUBNORMAL )
423- list ( APPEND libspirv_gen_files spirv-convert.cl )
424- list ( APPEND libspirv_lib_files libspirv/lib/generic/subnormal_use_default.ll )
416+ set ( BUILD_LIBSPIRV_${t} FALSE )
417+ if ( t STREQUAL amdgcn--amdhsa OR t STREQUAL nvptx64--nvidiacl OR t STREQUAL native_cpu )
418+ set ( libspirv_lib_files )
419+ set ( libspirv_gen_files )
420+ set ( BUILD_LIBSPIRV_${t} TRUE )
421+
422+ if ( NOT ARCH STREQUAL spirv AND NOT ARCH STREQUAL spirv64 )
423+ if ( ARCH STREQUAL clspv OR ARCH STREQUAL clspv64 )
424+ list ( APPEND libspirv_gen_files clspv-convert.cl )
425+ elseif ( NOT ENABLE_RUNTIME_SUBNORMAL )
426+ list ( APPEND libspirv_gen_files spirv-convert.cl )
427+ list ( APPEND libspirv_lib_files libspirv/lib/generic/subnormal_use_default.ll )
428+ endif ()
425429 endif ()
426- endif ()
427430
428- libclc_configure_lib_source(
429- libspirv_lib_files
430- LIB_ROOT_DIR libspirv
431- DIRS ${libspirv_dirs} ${DARCH} ${DARCH} -${OS} ${DARCH} -${VENDOR} -${OS}
432- )
431+ libclc_configure_lib_source(
432+ libspirv_lib_files
433+ LIB_ROOT_DIR libspirv
434+ DIRS ${libspirv_dirs} ${DARCH} ${DARCH} -${OS} ${DARCH} -${VENDOR} -${OS}
435+ )
436+ endif ()
433437
434438 foreach ( d ${${t} _devices} )
435439 get_libclc_device_info(
@@ -568,28 +572,30 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
568572 GEN_FILES ${clc_gen_files}
569573 )
570574
571- set ( spirv_build_flags ${build_flags} )
572- list ( APPEND spirv_build_flags
573- -I${CMAKE_CURRENT_SOURCE_DIR} /generic/include
574- -I${CMAKE_CURRENT_SOURCE_DIR} /libspirv/include /
575- # FIXME: Fix libspirv to not require disabling this noisy warning
576- -Wno-bitwise-conditional-parentheses
577- )
578-
579- add_libclc_builtin_set(
580- ARCH ${ARCH}
581- ARCH_SUFFIX libspirv-${arch_suffix}
582- TRIPLE ${clang_triple}
583- TARGET_ENV libspirv-
584- COMPILE_FLAGS ${spirv_build_flags}
585- OPT_FLAGS ${opt_flags}
586- LIB_FILES ${libspirv_lib_files}
587- GEN_FILES ${libspirv_gen_files}
588- ALIASES ${${d} _aliases}
589- PARENT_TARGET libspirv-builtins
590- # Link in the CLC builtins and internalize their symbols
591- INTERNAL_LINK_DEPENDENCIES builtins.link.clc-${arch_suffix}
592- )
575+ if ( BUILD_LIBSPIRV_${t} )
576+ set ( spirv_build_flags ${build_flags} )
577+ list ( APPEND spirv_build_flags
578+ -I${CMAKE_CURRENT_SOURCE_DIR} /generic/include
579+ -I${CMAKE_CURRENT_SOURCE_DIR} /libspirv/include /
580+ # FIXME: Fix libspirv to not require disabling this noisy warning
581+ -Wno-bitwise-conditional-parentheses
582+ )
583+
584+ add_libclc_builtin_set(
585+ ARCH ${ARCH}
586+ ARCH_SUFFIX libspirv-${arch_suffix}
587+ TRIPLE ${clang_triple}
588+ TARGET_ENV libspirv-
589+ COMPILE_FLAGS ${spirv_build_flags}
590+ OPT_FLAGS ${opt_flags}
591+ LIB_FILES ${libspirv_lib_files}
592+ GEN_FILES ${libspirv_gen_files}
593+ ALIASES ${${d} _aliases}
594+ PARENT_TARGET libspirv-builtins
595+ # Link in the CLC builtins and internalize their symbols
596+ INTERNAL_LINK_DEPENDENCIES builtins.link.clc-${arch_suffix}
597+ )
598+ endif ()
593599
594600 set ( opencl_build_flags ${build_flags} )
595601 list ( APPEND opencl_build_flags
0 commit comments