\r
if( ${LLVM_TABLEGEN} STREQUAL "tblgen" )\r
- # TODO: remove this when autobuilding the native tblgen works.\r
- message(FATAL_ERROR\r
- "Set LLVM_TABLEGEN to the full route to a native tblgen executable")\r
-\r
- message(STATUS "Configuring native TableGen...")\r
- set(CX_NATIVE_TG_DIR "${CMAKE_BINARY_DIR}/native")\r
+ set(LLVM_TABLEGEN "${CX_NATIVE_TG_DIR}/bin/tblgen")\r
\r
- execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CX_NATIVE_TG_DIR}\r
- RESULT_VARIABLE CX_NATIVE_TG_RV)\r
- if( NOT CX_NATIVE_TG_RV EQUAL 0 )\r
- message(FATAL_ERROR "Failed to create directory ${CX_NATIVE_TG_DIR}")\r
- endif()\r
+ message(STATUS "CX_NATIVE_TG_DIR : ${CX_NATIVE_TG_DIR}")\r
+ add_custom_command(OUTPUT ${CX_NATIVE_TG_DIR}\r
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CX_NATIVE_TG_DIR}\r
+ COMMENT "Creating ${CX_NATIVE_TG_DIR}...")\r
\r
- execute_process(\r
+ add_custom_command(OUTPUT ${CX_NATIVE_TG_DIR}/CMakeCache.txt\r
COMMAND ${CMAKE_COMMAND} -UMAKE_TOOLCHAIN_FILE -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}\r
WORKING_DIRECTORY ${CX_NATIVE_TG_DIR}\r
- RESULT_VARIABLE CX_NATIVE_TG_RV\r
- ERROR_VARIABLE CX_NATIVE_TG_ERROR)\r
- if( NOT CX_NATIVE_TG_RV EQUAL 0 )\r
- message(FATAL_ERROR\r
- "Error while configuring native TableGen:\n${CX_NATIVE_TG_ERROR}")\r
- endif()\r
-\r
- message(STATUS "Native TableGen configured.")\r
-\r
- set(LLVM_TABLEGEN "${CX_NATIVE_TG_DIR}/bin/tblgen")\r
+ DEPENDS ${CX_NATIVE_TG_DIR}\r
+ COMMENT "Configuring native TableGen...")\r
\r
add_custom_command(OUTPUT ${LLVM_TABLEGEN}\r
- COMMAND ${CMAKE_BUILD_TOOL} -C ${CX_NATIVE_TG_DIR}/utils/TableGen\r
+ COMMAND ${CMAKE_BUILD_TOOL}\r
+ DEPENDS ${CX_NATIVE_TG_DIR}/CMakeCache.txt\r
+ WORKING_DIRECTORY ${CX_NATIVE_TG_DIR}/utils/TableGen\r
COMMENT "Building native TableGen...")\r
add_custom_target(NativeTableGen DEPENDS ${LLVM_TABLEGEN})\r
+\r
add_dependencies(tblgen NativeTableGen)\r
\r
# TODO: We should clean the native build when the `clean target\r
# is invoked. This doesn't work.\r
-# add_custom_command(TARGET clean\r
-# COMMAND ${CMAKE_BUILD_TOOL} -C ${CX_NATIVE_TG_DIR}/utils/TableGen clean\r
-# POST_BUILD\r
-# COMMENT "Cleaning native TableGen...")\r
+ # add_custom_command(TARGET clean\r
+ # COMMAND ${CMAKE_BUILD_TOOL} -C ${CX_NATIVE_TG_DIR}/utils/TableGen clean\r
+ # POST_BUILD\r
+ # COMMENT "Cleaning native TableGen...")\r
endif()\r