@@ -42,60 +42,36 @@ message(STATUS "+++ Source/IGC/VectorCompiler +++")
42
42
message (STATUS "[VC] Build proj: ${IGC_BUILD__PROJ__VectorCompiler} " )
43
43
44
44
# --- LLVM ---
45
- if (${ IGC_OPTION__LLVM_FROM_SYSTEM} OR ( WIN32 AND ${ IGC_OPTION__LLVM_PREBUILDS} ) )
46
- message (STATUS "[VC] Using system llvm" )
45
+ if (IGC_OPTION__LLVM_FROM_SYSTEM OR IGC_OPTION__LLVM_PREBUILDS )
46
+ message (STATUS "[VC] Using system or prebuilt llvm" )
47
47
48
- # Need to search for llvm-tblgen
49
48
find_program (LLVM_TABLEGEN_EXE "llvm-tblgen"
50
- ${LLVM_TOOLS_BINARY_DIR}
49
+ PATHS ${LLVM_TOOLS_BINARY_DIR}
51
50
NO_DEFAULT_PATH
52
51
)
53
- if (LLVM_TABLEGEN_EXE-NOTFOUND )
54
- message (FATAL_ERROR "[VC] llvm-tblgen is not found" )
52
+ if (NOT LLVM_TABLEGEN_EXE )
53
+ message (FATAL_ERROR "[VC] Tablegen is not found! Please specify LLVM_TABLEGEN_EXE to tblgen executable " )
55
54
endif ()
56
55
message (STATUS "[VC] Found tblgen: ${LLVM_TABLEGEN_EXE} " )
57
-
58
- # find_package was called by igc cmake, no need to do it again.
59
56
else ()
60
- # Prebuilt llvm does not have tblgen...
61
- if (${IGC_OPTION__LLVM_PREBUILDS} )
62
- message (FATAL_ERROR "[VC] vector compiler with prebuilt llvm is not supported" )
63
- endif ()
64
-
65
- # In last scenario we are building with llvm so every target is defined
66
- # and LLVMConfig will only set needed variables.
67
57
message (STATUS "[VC] Using llvm source build" )
68
- set (LLVM_BUILD_DIR "${LLVM_SOURCE_DIR} /../../build/src" )
69
- set (LLVM_CMAKE_DIR "${LLVM_BUILD_DIR} /lib/cmake/llvm" )
70
- message (STATUS "[VC] LLVMConfig.cmake location: ${LLVM_CMAKE_DIR} " )
71
- find_package (LLVM REQUIRED
72
- HINTS ${LLVM_CMAKE_DIR}
73
- NO_DEFAULT_PATH
74
- )
75
58
76
- # We have executable target, use it.
59
+ # Set correct module path.
60
+ set (LLVM_CMAKE_DIR "${LLVM_SOURCE_DIR} /cmake/modules" )
61
+
77
62
set (LLVM_TABLEGEN_EXE "llvm-tblgen" )
78
63
message (STATUS "[VC] Using executable target llvm-tlbgen for tablegenning" )
79
- # IGC has its own special cmake for external llvm.
80
- # It sets LLVM_INCLUDE_DIRS instead of LLVM_INCLUDE_DIR.
81
- set (LLVM_INCLUDE_DIR ${LLVM_INCLUDE_DIRS} )
82
64
endif ()
83
65
84
- # Now find_package was called in all cases and we have all needed variables.
85
66
set (CMAKE_MODULE_PATH
86
67
${LLVM_CMAKE_DIR}
87
68
${CMAKE_MODULE_PATH}
88
69
)
89
70
90
71
include (AddLLVM )
91
-
92
- set (LLVM_MAIN_INCLUDE_DIR ${LLVM_INCLUDE_DIR} )
93
72
include (TableGen )
94
73
# Set LLVM_TABLEGEN_FLAGS manually based on include dirs.
95
- list (TRANSFORM LLVM_INCLUDE_DIR PREPEND "-I=" OUTPUT_VARIABLE LLVM_TABLEGEN_FLAGS )
96
-
97
- message (STATUS "[VC] Including llvm headers: ${LLVM_INCLUDE_DIR} " )
98
- include_directories (${LLVM_INCLUDE_DIR} )
74
+ list (TRANSFORM LLVM_INCLUDE_DIRS PREPEND "-I=" OUTPUT_VARIABLE LLVM_TABLEGEN_FLAGS )
99
75
100
76
# --- VISA ---
101
77
0 commit comments