Teach tablegen() macro to check needed variables
authorNAKAMURA Takumi <geek4civic@gmail.com>
Wed, 12 Feb 2014 11:50:11 +0000 (11:50 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Wed, 12 Feb 2014 11:50:11 +0000 (11:50 +0000)
This macro depends on several variables to be set in the calling
context.  Check them and report an error if they are not set.
Without this, custom commands may be silently specified that
will fail at build time.

Patch by Brad King.

llvm-svn: 201229

llvm/cmake/modules/TableGen.cmake

index 6e52e4d..fdb4751 100644 (file)
@@ -3,6 +3,17 @@
 # Adds the name of the generated file to TABLEGEN_OUTPUT.
 
 function(tablegen project ofn)
+  # Validate calling context.
+  foreach(v
+      ${project}_TABLEGEN_EXE
+      LLVM_MAIN_SRC_DIR
+      LLVM_MAIN_INCLUDE_DIR
+      )
+    if(NOT ${v})
+      message(FATAL_ERROR "${v} not set")
+    endif()
+  endforeach()
+
   file(GLOB local_tds "*.td")
   file(GLOB_RECURSE global_tds "${LLVM_MAIN_INCLUDE_DIR}/llvm/*.td")