forked from OSchip/llvm-project
[CMake] Fix for PR 23328: LLVM_OPTIMIZED_TABLEGEN broken
In CMake dependencies can be filenames or targets, and targets can't be filenames. The Ninja generator handles filename dependencies because it generates targets for every output file from a command. For example: add_custom_command(OUTPUT foo.txt COMMAND touch foo.txt) With the Ninja generator this generates a target foo.txt, but with the Makefile generator it doesn't. This is probably because Ninja explicitly requires these hard dependency ties, and Make just behaves oddly in general. To fix this we need to make the tablegen actions depend on a target rather than a filename. llvm-svn: 235732
This commit is contained in:
parent
085f80536f
commit
3eddcaec95
|
@ -32,7 +32,7 @@ function(tablegen project ofn)
|
|||
# The file in LLVM_TARGET_DEFINITIONS may be not in the current
|
||||
# directory and local_tds may not contain it, so we must
|
||||
# explicitly list it here:
|
||||
DEPENDS ${${project}_TABLEGEN_EXE} ${local_tds} ${global_tds}
|
||||
DEPENDS ${${project}_TABLEGEN_TARGET} ${local_tds} ${global_tds}
|
||||
${LLVM_TARGET_DEFINITIONS_ABSOLUTE}
|
||||
COMMENT "Building ${ofn}..."
|
||||
)
|
||||
|
@ -90,6 +90,7 @@ macro(add_tablegen target project)
|
|||
|
||||
# Effective tblgen executable to be used:
|
||||
set(${project}_TABLEGEN_EXE ${${project}_TABLEGEN} PARENT_SCOPE)
|
||||
set(${project}_TABLEGEN_TARGET ${${project}_TABLEGEN} PARENT_SCOPE)
|
||||
|
||||
if(LLVM_USE_HOST_TOOLS)
|
||||
if( ${${project}_TABLEGEN} STREQUAL "${target}" )
|
||||
|
@ -101,8 +102,8 @@ macro(add_tablegen target project)
|
|||
DEPENDS CONFIGURE_LLVM_NATIVE ${target}
|
||||
WORKING_DIRECTORY ${LLVM_NATIVE_BUILD}
|
||||
COMMENT "Building native TableGen...")
|
||||
add_custom_target(${project}NativeTableGen DEPENDS ${${project}_TABLEGEN_EXE})
|
||||
add_dependencies(${project}NativeTableGen CONFIGURE_LLVM_NATIVE)
|
||||
add_custom_target(${project}-tablegen-host DEPENDS ${${project}_TABLEGEN_EXE})
|
||||
set(${project}_TABLEGEN_TARGET ${project}-tablegen-host PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
Loading…
Reference in New Issue