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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201229 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/modules/TableGen.cmake

index 6e52e4d53418ee5d64472915d62a2c6c4dd152ac..fdb47511dcca9683864c3a83054cfc1ef9e0ac1a 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")