mirror of
https://github.com/RPCS3/llvm.git
synced 2025-04-12 19:18:48 +00:00
Added dependency on the TableGen executable file.
For the case when LLVM_OPTIMIZED_TABLEGEN is ON (enables LLVM_USE_HOST_TOOLS), we need both _TABLEGEN_TARGET and _TABLEGEN_EXE in the DEPENDS list to have .inc files rebuilt on a tablegen change, as cmake does not propagate file-level dependencies of custom targets. We could always have just one dependency on both the target and the file, but the 2 cases would produce cleaner cmake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305142 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
309f3a963a
commit
044e64c53b
@ -30,19 +30,43 @@ function(tablegen project ofn)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp
|
# We need both _TABLEGEN_TARGET and _TABLEGEN_EXE in the DEPENDS list
|
||||||
# Generate tablegen output in a temporary file.
|
# (both the target and the file) to have .inc files rebuilt on
|
||||||
COMMAND ${${project}_TABLEGEN_EXE} ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR}
|
# a tablegen change, as cmake does not propagate file-level dependencies
|
||||||
${LLVM_TABLEGEN_FLAGS}
|
# of custom targets. See the following ticket for more information:
|
||||||
${LLVM_TARGET_DEFINITIONS_ABSOLUTE}
|
# https://cmake.org/Bug/view.php?id=15858
|
||||||
-o ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp
|
# We could always have just one dependency on both the target and
|
||||||
# The file in LLVM_TARGET_DEFINITIONS may be not in the current
|
# the file, but these 2 cases would produce cleaner cmake files.
|
||||||
# directory and local_tds may not contain it, so we must
|
if (${${project}_TABLEGEN_TARGET} STREQUAL ${${project}_TABLEGEN_EXE})
|
||||||
# explicitly list it here:
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp
|
||||||
DEPENDS ${${project}_TABLEGEN_TARGET} ${local_tds} ${global_tds}
|
# Generate tablegen output in a temporary file.
|
||||||
${LLVM_TARGET_DEFINITIONS_ABSOLUTE}
|
COMMAND ${${project}_TABLEGEN_EXE} ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
COMMENT "Building ${ofn}..."
|
${LLVM_TABLEGEN_FLAGS}
|
||||||
)
|
${LLVM_TARGET_DEFINITIONS_ABSOLUTE}
|
||||||
|
-o ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp
|
||||||
|
# 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_TARGET} ${local_tds} ${global_tds}
|
||||||
|
${LLVM_TARGET_DEFINITIONS_ABSOLUTE}
|
||||||
|
COMMENT "Building ${ofn}..."
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp
|
||||||
|
# Generate tablegen output in a temporary file.
|
||||||
|
COMMAND ${${project}_TABLEGEN_EXE} ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
${LLVM_TABLEGEN_FLAGS}
|
||||||
|
${LLVM_TARGET_DEFINITIONS_ABSOLUTE}
|
||||||
|
-o ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp
|
||||||
|
# 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_TARGET} ${${project}_TABLEGEN_EXE}
|
||||||
|
${local_tds} ${global_tds}
|
||||||
|
${LLVM_TARGET_DEFINITIONS_ABSOLUTE}
|
||||||
|
COMMENT "Building ${ofn}..."
|
||||||
|
)
|
||||||
|
endif()
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
|
||||||
# Only update the real output file if there are any differences.
|
# Only update the real output file if there are any differences.
|
||||||
# This prevents recompilation of all the files depending on it if there
|
# This prevents recompilation of all the files depending on it if there
|
||||||
|
Loading…
x
Reference in New Issue
Block a user