@@ -292,21 +292,23 @@ else()
292
292
)
293
293
endif ()
294
294
295
- add_library (${TARGET_NAME} SHARED
296
- ${TARGET_INCLUDE_FILES}
297
- ${TARGET_SOURCE_FILES}
298
- $< TARGET_OBJECTS:cl_headers>
299
- )
300
-
301
- # Same CRT compile option are reqiured to avoid link errors on Windows.
302
- # MD and MDd are choosed by default for release and debug build in LLVM.
303
- # If users set MT or MTd flags, they also need to add the flags for
304
- # opencl-clang sources using a custom macro set_msvc_crt_flags.
305
- if (COMMAND set_msvc_crt_flags )
306
- set_msvc_crt_flags (${TARGET_NAME} )
295
+ set (EXCLUDE_LIBS_FROM_ALL "" CACHE STRING "Space-separated list of LLVM libraries to exclude from all" )
296
+ llvm_map_components_to_libnames (ALL_LLVM_LIBS all )
297
+ if (NOT "${EXCLUDE_LIBS_FROM_ALL} " STREQUAL "" )
298
+ list (REMOVE_ITEM ALL_LLVM_LIBS ${EXCLUDE_LIBS_FROM_ALL} )
307
299
endif ()
300
+ list (APPEND OPENCL_CLANG_LINK_LIBS ${ALL_LLVM_LIBS} )
301
+
302
+ add_llvm_library (${TARGET_NAME} SHARED
303
+ ${TARGET_INCLUDE_FILES}
304
+ ${TARGET_SOURCE_FILES}
305
+ $< TARGET_OBJECTS:cl_headers>
308
306
309
- add_dependencies (${TARGET_NAME} CClangCompileOptions )
307
+ DEPENDS CClangCompileOptions
308
+
309
+ LINK_LIBS
310
+ ${OPENCL_CLANG_LINK_LIBS}
311
+ )
310
312
311
313
if (WIN32 )
312
314
# Enable compiler generation of Control Flow Guard security checks.
@@ -322,51 +324,6 @@ elseif(UNIX)
322
324
LINK_FLAGS " -Wl,--no-undefined" )
323
325
endif (WIN32 )
324
326
325
- # Enable new IN_LIST operator.
326
- cmake_policy (SET CMP0057 NEW )
327
- set (OTHER_LIBRARIES )
328
- if ("NVPTX" IN_LIST LLVM_TARGETS_TO_BUILD )
329
- list (APPEND OTHER_LIBRARIES LLVMNVPTXCodeGen LLVMNVPTXDesc LLVMNVPTXInfo )
330
- endif ()
331
- if ("AMDGPU" IN_LIST LLVM_TARGETS_TO_BUILD )
332
- list (APPEND OTHER_LIBRARIES LLVMAMDGPUCodeGen LLVMAMDGPUAsmParser LLVMAMDGPUDesc LLVMAMDGPUInfo )
333
- endif ()
334
-
335
- target_link_libraries ( ${TARGET_NAME}
336
- LINK_PRIVATE
337
- ${OPENCL_CLANG_LINK_LIBS}
338
- LLVMX86CodeGen
339
- LLVMX86AsmParser
340
- LLVMX86Desc
341
- LLVMX86Info
342
- LLVMX86Disassembler
343
- LLVMAnalysis
344
- LLVMCodeGen
345
- LLVMCore
346
- LLVMipo
347
- LLVMInstCombine
348
- LLVMInstrumentation
349
- LLVMMC
350
- LLVMMCParser
351
- LLVMObjCARCOpts
352
- LLVMOption
353
- LLVMScalarOpts
354
- LLVMSupport
355
- LLVMTransformUtils
356
- LLVMVectorize
357
- LLVMAsmPrinter
358
- LLVMSelectionDAG
359
- LLVMMCDisassembler
360
- LLVMProfileData
361
- LLVMObject
362
- LLVMBitWriter
363
- LLVMIRReader
364
- LLVMAsmParser
365
- LLVMTarget
366
- LLVMBitReader
367
- ${OTHER_LIBRARIES}
368
- )
369
-
370
327
install (FILES opencl_clang.h
371
328
DESTINATION include /cclang
372
329
COMPONENT ${TARGET_NAME} )
0 commit comments