[cfe-commits] r67058 - in /cfe/trunk: ./ Driver/ include/ include/clang/ include/clang/Basic/ lib/AST/ lib/Analysis/ lib/Basic/ lib/CodeGen/ lib/Driver/ lib/Frontend/ lib/Lex/ lib/Parse/ lib/Rewrite/ lib/Sema/ tools/driver/

Douglas Gregor dgregor at apple.com
Mon Mar 16 16:07:00 PDT 2009


Author: dgregor
Date: Mon Mar 16 18:06:59 2009
New Revision: 67058

URL: http://llvm.org/viewvc/llvm-project?rev=67058&view=rev
Log:
Build system changes to use TableGen to generate the various
diagnostics. This builds on the patch that Sebastian committed and
then revert. Major differences are:

  - We don't remove or use the current ".def" files. Instead, for now,
    we just make sure that we're building the ".inc" files.
  - Fixed CMake makefiles to run TableGen and build the ".inc" files
    when needed. Tested with both the Xcode and Makefile generators
    provided by CMake, so it should be solid.
  - Fixed normal makefiles to handle out-of-source builds that involve
    the ".inc" files.

I'll send a separate patch to the list with Sebastian's changes that
eliminate the use of the .def files.


Added:
    cfe/trunk/include/CMakeLists.txt
      - copied unchanged from r67008, cfe/trunk/include/CMakeLists.txt
    cfe/trunk/include/Makefile
      - copied unchanged from r67008, cfe/trunk/include/Makefile
    cfe/trunk/include/clang/Basic/CMakeLists.txt
      - copied, changed from r67008, cfe/trunk/include/clang/Basic/CMakeLists.txt
    cfe/trunk/include/clang/Basic/Makefile
      - copied unchanged from r67008, cfe/trunk/include/clang/Basic/Makefile
    cfe/trunk/include/clang/CMakeLists.txt
      - copied unchanged from r67008, cfe/trunk/include/clang/CMakeLists.txt
    cfe/trunk/include/clang/Makefile
      - copied unchanged from r67008, cfe/trunk/include/clang/Makefile
Modified:
    cfe/trunk/CMakeLists.txt
    cfe/trunk/Driver/Makefile
    cfe/trunk/Makefile
    cfe/trunk/include/clang/Basic/   (props changed)
    cfe/trunk/lib/AST/CMakeLists.txt
    cfe/trunk/lib/AST/Makefile
    cfe/trunk/lib/Analysis/CMakeLists.txt
    cfe/trunk/lib/Analysis/Makefile
    cfe/trunk/lib/Basic/CMakeLists.txt
    cfe/trunk/lib/Basic/Makefile
    cfe/trunk/lib/CodeGen/Makefile
    cfe/trunk/lib/Driver/Makefile
    cfe/trunk/lib/Frontend/Makefile
    cfe/trunk/lib/Lex/CMakeLists.txt
    cfe/trunk/lib/Lex/Makefile
    cfe/trunk/lib/Parse/CMakeLists.txt
    cfe/trunk/lib/Parse/Makefile
    cfe/trunk/lib/Rewrite/Makefile
    cfe/trunk/lib/Sema/CMakeLists.txt
    cfe/trunk/lib/Sema/Makefile
    cfe/trunk/tools/driver/Makefile

Modified: cfe/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/CMakeLists.txt (original)
+++ cfe/trunk/CMakeLists.txt Mon Mar 16 18:06:59 2009
@@ -12,6 +12,7 @@
   if( LLVM_COMMON_DEPENDS )
     add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
   endif( LLVM_COMMON_DEPENDS )
+  add_dependencies(${name} ClangDiagnosticCommon)
   if(MSVC)
     get_target_property(cflag ${name} COMPILE_FLAGS)
     if(NOT cflag)
@@ -38,6 +39,7 @@
 
 include_directories(
   ${CMAKE_CURRENT_SOURCE_DIR}/include
+  ${CMAKE_CURRENT_BINARY_DIR}/include
   )
 
 install(DIRECTORY include
@@ -47,6 +49,7 @@
 
 add_definitions( -D_GNU_SOURCE )
 
+add_subdirectory(include)
 add_subdirectory(lib)
 add_subdirectory(Driver)
 

Modified: cfe/trunk/Driver/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/Driver/Makefile (original)
+++ cfe/trunk/Driver/Makefile Mon Mar 16 18:06:59 2009
@@ -1,6 +1,6 @@
 LEVEL = ../../..
 TOOLNAME = clang
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../include -I$(PROJ_OBJ_DIR)/../include
 CXXFLAGS = -fno-rtti
 
 # Clang has no plugins, optimize startup time.

Modified: cfe/trunk/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/Makefile (original)
+++ cfe/trunk/Makefile Mon Mar 16 18:06:59 2009
@@ -1,5 +1,5 @@
 LEVEL = ../..
-DIRS := lib Driver docs tools
+DIRS := include lib Driver docs tools
 
 include $(LEVEL)/Makefile.common
 

Propchange: cfe/trunk/include/clang/Basic/

------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Mar 16 18:06:59 2009
@@ -0,0 +1,6 @@
+Debug
+Debug+Checks
+Release
+Release-Asserts
+*.inc
+

Copied: cfe/trunk/include/clang/Basic/CMakeLists.txt (from r67008, cfe/trunk/include/clang/Basic/CMakeLists.txt)
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/CMakeLists.txt?p2=cfe/trunk/include/clang/Basic/CMakeLists.txt&p1=cfe/trunk/include/clang/Basic/CMakeLists.txt&r1=67008&r2=67058&rev=67058&view=diff

==============================================================================
--- cfe/trunk/include/clang/Basic/CMakeLists.txt (original)
+++ cfe/trunk/include/clang/Basic/CMakeLists.txt Mon Mar 16 18:06:59 2009
@@ -1,8 +1,16 @@
-tablegen(DiagnosticAnalysisKinds.inc -gen-clang-diags-def -clang-component=Analysis)
-tablegen(DiagnosticASTKinds.inc -gen-clang-diags-def -clang-component=AST)
-tablegen(DiagnosticCommonKinds.inc -gen-clang-diags-def -clang-component=Common)
-tablegen(DiagnosticDriverKinds.inc -gen-clang-diags-def -clang-component=Driver)
-tablegen(DiagnosticFrontendKinds.inc -gen-clang-diags-def -clang-component=Frontend)
-tablegen(DiagnosticLexKinds.inc -gen-clang-diags-def -clang-component=Lex)
-tablegen(DiagnosticParseKinds.inc -gen-clang-diags-def -clang-component=Parse)
-tablegen(DiagnosticSemaKinds.inc -gen-clang-diags-def -clang-component=Sema)
+macro(clang_diag_gen component)
+  tablegen(Diagnostic${component}Kinds.inc 
+	   -gen-clang-diags-defs -clang-component=${component})
+  add_custom_target(ClangDiagnostic${component}
+    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Diagnostic${component}Kinds.inc)
+endmacro(clang_diag_gen)
+
+set(LLVM_TARGET_DEFINITIONS Diagnostic.td)
+clang_diag_gen(Analysis)
+clang_diag_gen(AST)
+clang_diag_gen(Common)
+clang_diag_gen(Driver)
+clang_diag_gen(Frontend)
+clang_diag_gen(Lex)
+clang_diag_gen(Parse)
+clang_diag_gen(Sema)
\ No newline at end of file

Modified: cfe/trunk/lib/AST/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/CMakeLists.txt?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/AST/CMakeLists.txt (original)
+++ cfe/trunk/lib/AST/CMakeLists.txt Mon Mar 16 18:06:59 2009
@@ -29,3 +29,5 @@
   Type.cpp
   TypeSerialization.cpp
   )
+
+add_dependencies(clangAST ClangDiagnosticAST)

Modified: cfe/trunk/lib/AST/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/AST/Makefile (original)
+++ cfe/trunk/lib/AST/Makefile Mon Mar 16 18:06:59 2009
@@ -16,7 +16,7 @@
 BUILD_ARCHIVE = 1
 CXXFLAGS = -fno-rtti
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/lib/Analysis/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/CMakeLists.txt?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/CMakeLists.txt (original)
+++ cfe/trunk/lib/Analysis/CMakeLists.txt Mon Mar 16 18:06:59 2009
@@ -31,3 +31,5 @@
   SymbolManager.cpp
   UninitializedValues.cpp
   )
+
+add_dependencies(clangAnalysis ClangDiagnosticAnalysis)

Modified: cfe/trunk/lib/Analysis/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/Makefile (original)
+++ cfe/trunk/lib/Analysis/Makefile Mon Mar 16 18:06:59 2009
@@ -16,7 +16,7 @@
 BUILD_ARCHIVE = 1
 CXXFLAGS = -fno-rtti
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/lib/Basic/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/CMakeLists.txt?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Basic/CMakeLists.txt (original)
+++ cfe/trunk/lib/Basic/CMakeLists.txt Mon Mar 16 18:06:59 2009
@@ -11,3 +11,13 @@
   Targets.cpp
   TokenKinds.cpp
   )
+
+add_dependencies(clangBasic 
+                 ClangDiagnosticAnalysis
+                 ClangDiagnosticAST
+                 ClangDiagnosticCommon
+                 ClangDiagnosticDriver
+                 ClangDiagnosticFrontend
+                 ClangDiagnosticLex
+                 ClangDiagnosticParse
+                 ClangDiagnosticSema)

Modified: cfe/trunk/lib/Basic/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Basic/Makefile (original)
+++ cfe/trunk/lib/Basic/Makefile Mon Mar 16 18:06:59 2009
@@ -16,7 +16,7 @@
 BUILD_ARCHIVE = 1
 CXXFLAGS = -fno-rtti
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/lib/CodeGen/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/Makefile (original)
+++ cfe/trunk/lib/CodeGen/Makefile Mon Mar 16 18:06:59 2009
@@ -17,7 +17,7 @@
 BUILD_ARCHIVE = 1
 CXXFLAGS = -fno-rtti
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/lib/Driver/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Driver/Makefile (original)
+++ cfe/trunk/lib/Driver/Makefile Mon Mar 16 18:06:59 2009
@@ -12,7 +12,7 @@
 BUILD_ARCHIVE = 1
 CXXFLAGS = -fno-rtti
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/lib/Frontend/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Frontend/Makefile (original)
+++ cfe/trunk/lib/Frontend/Makefile Mon Mar 16 18:06:59 2009
@@ -12,7 +12,7 @@
 BUILD_ARCHIVE = 1
 CXXFLAGS = -fno-rtti
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/lib/Lex/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/CMakeLists.txt?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Lex/CMakeLists.txt (original)
+++ cfe/trunk/lib/Lex/CMakeLists.txt Mon Mar 16 18:06:59 2009
@@ -22,3 +22,5 @@
   TokenLexer.cpp
   TokenConcatenation.cpp
   )
+
+add_dependencies(clangLex ClangDiagnosticLex)

Modified: cfe/trunk/lib/Lex/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Lex/Makefile (original)
+++ cfe/trunk/lib/Lex/Makefile Mon Mar 16 18:06:59 2009
@@ -22,7 +22,7 @@
 CXXFLAGS += -maltivec
 endif
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/lib/Parse/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/CMakeLists.txt?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Parse/CMakeLists.txt (original)
+++ cfe/trunk/lib/Parse/CMakeLists.txt Mon Mar 16 18:06:59 2009
@@ -17,3 +17,5 @@
   ParseTentative.cpp
   ParseTemplate.cpp
   )
+
+add_dependencies(clangParse ClangDiagnosticParse)

Modified: cfe/trunk/lib/Parse/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Parse/Makefile (original)
+++ cfe/trunk/lib/Parse/Makefile Mon Mar 16 18:06:59 2009
@@ -16,7 +16,7 @@
 BUILD_ARCHIVE = 1
 CXXFLAGS = -fno-rtti
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/lib/Rewrite/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Rewrite/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Rewrite/Makefile (original)
+++ cfe/trunk/lib/Rewrite/Makefile Mon Mar 16 18:06:59 2009
@@ -16,7 +16,7 @@
 BUILD_ARCHIVE = 1
 CXXFLAGS = -fno-rtti
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/lib/Sema/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/CMakeLists.txt?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/CMakeLists.txt (original)
+++ cfe/trunk/lib/Sema/CMakeLists.txt Mon Mar 16 18:06:59 2009
@@ -24,3 +24,5 @@
   SemaTemplateInstantiate.cpp
   SemaType.cpp
   )
+
+add_dependencies(clangSema ClangDiagnosticSema)

Modified: cfe/trunk/lib/Sema/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/Makefile (original)
+++ cfe/trunk/lib/Sema/Makefile Mon Mar 16 18:06:59 2009
@@ -17,7 +17,7 @@
 BUILD_ARCHIVE = 1
 CXXFLAGS = -fno-rtti
 
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 
 include $(LEVEL)/Makefile.common
 

Modified: cfe/trunk/tools/driver/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/Makefile?rev=67058&r1=67057&r2=67058&view=diff

==============================================================================
--- cfe/trunk/tools/driver/Makefile (original)
+++ cfe/trunk/tools/driver/Makefile Mon Mar 16 18:06:59 2009
@@ -9,7 +9,7 @@
 LEVEL = ../../../..
 
 TOOLNAME = clang-driver
-CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
 CXXFLAGS = -fno-rtti
 
 # FIXME: It is unfortunate we need to pull in the bitcode reader and





More information about the cfe-commits mailing list