Skip to content

Commit d3ef239

Browse files
robotchaoXFlakebi
authored andcommitted
Add native llvm-dialects-tblgen for cross-compiling
[Description] Add native llvm-dialects-tblgen for ARM64 Windows and Android cross-compiling. Use LLVM interface add_tablegen gengrate dialects TableGen executable. LLVM 17.0 rename "LLVM_DIALECTS-tablegen-host" to "llvm-dialects-tblgen-host" [LLVM][CMake] add_tablegen: Rename host tablegen from '${project}-tablegen-host' to '${target}-host' in LLVM 17.0
1 parent 48ceca4 commit d3ef239

File tree

1 file changed

+30
-15
lines changed

1 file changed

+30
-15
lines changed

CMakeLists.txt

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,21 @@ separate_arguments(LLVM_DEFINITIONS_LIST NATIVE_COMMAND ${LLVM_DEFINITIONS})
6666
add_definitions(${LLVM_DEFINITIONS_LIST})
6767
add_definitions("-DHAVE_LLVM_VERSION_MAJOR=${LLVM_VERSION_MAJOR}")
6868

69+
set(LLVM_DIALECTS_TABLEGEN_SOURCES
70+
lib/TableGen/Common.cpp
71+
lib/TableGen/Constraints.cpp
72+
lib/TableGen/Dialects.cpp
73+
lib/TableGen/DialectType.cpp
74+
lib/TableGen/Evaluator.cpp
75+
lib/TableGen/Format.cpp
76+
lib/TableGen/GenDialect.cpp
77+
lib/TableGen/NamedValue.cpp
78+
lib/TableGen/Operations.cpp
79+
lib/TableGen/Predicates.cpp
80+
lib/TableGen/SymbolTable.cpp
81+
lib/TableGen/Traits.cpp
82+
)
83+
6984
set(llvm_deps
7085
Support
7186
TableGen
@@ -82,8 +97,20 @@ if (llvm_dialects_is_in_llvm_build_tree)
8297
${llvm_deps}
8398
)
8499

85-
set(LLVM_LINK_COMPONENTS ${llvm_deps})
86-
add_llvm_tool(llvm-dialects-tblgen DISABLE_LLVM_LINK_LLVM_DYLIB)
100+
set(PROJECT_NAME LLVM)
101+
set(LLVM_LINK_COMPONENTS Support)
102+
add_tablegen(llvm-dialects-tblgen LLVM_DIALECTS
103+
DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
104+
EXPORT LLVM
105+
${LLVM_DIALECTS_TABLEGEN_SOURCES}
106+
)
107+
if(CMAKE_CROSSCOMPILING)
108+
set(LLVM_DIALECTS_TABLEGEN_EXE_HOST "${LLVM_DIALECTS_TABLEGEN_EXE}" CACHE
109+
STRING "Native llvm-dialects TableGen executable.")
110+
set(LLVM_DIALECTS_TABLEGEN_TARGET_HOST "llvm-dialects-tblgen-host" CACHE
111+
STRING "Native llvm-dialects TableGen target.")
112+
endif()
113+
87114
else()
88115
add_library(llvm_dialects)
89116
llvm_update_compile_flags(llvm_dialects)
@@ -124,19 +151,7 @@ target_include_directories(llvm_dialects_tablegen PRIVATE
124151
include
125152
${LLVM_INCLUDE_DIRS})
126153

127-
target_sources(llvm_dialects_tablegen PRIVATE
128-
lib/TableGen/Common.cpp
129-
lib/TableGen/Constraints.cpp
130-
lib/TableGen/Dialects.cpp
131-
lib/TableGen/DialectType.cpp
132-
lib/TableGen/Evaluator.cpp
133-
lib/TableGen/Format.cpp
134-
lib/TableGen/GenDialect.cpp
135-
lib/TableGen/NamedValue.cpp
136-
lib/TableGen/Operations.cpp
137-
lib/TableGen/Predicates.cpp
138-
lib/TableGen/SymbolTable.cpp
139-
lib/TableGen/Traits.cpp)
154+
target_sources(llvm_dialects_tablegen PRIVATE ${LLVM_DIALECTS_TABLEGEN_SOURCES})
140155

141156
target_include_directories(llvm-dialects-tblgen PRIVATE
142157
include

0 commit comments

Comments
 (0)