[cfe-commits] r80166 - in /cfe/trunk: include/clang-c/ include/clang-c/Index.h tools/CIndex/ tools/CIndex/CIndex.cpp tools/CIndex/CIndex.exports tools/CIndex/Makefile tools/Makefile

Ted Kremenek kremenek at apple.com
Wed Aug 26 15:36:44 PDT 2009


Author: kremenek
Date: Wed Aug 26 17:36:44 2009
New Revision: 80166

URL: http://llvm.org/viewvc/llvm-project?rev=80166&view=rev
Log:
Add initial boilerplate for CIndex, a shared library that will vend high-level
source symbol information (harvested by Clang) through a C API.

Added:
    cfe/trunk/include/clang-c/
    cfe/trunk/include/clang-c/Index.h
    cfe/trunk/tools/CIndex/
    cfe/trunk/tools/CIndex/CIndex.cpp
    cfe/trunk/tools/CIndex/CIndex.exports
    cfe/trunk/tools/CIndex/Makefile
Modified:
    cfe/trunk/tools/Makefile

Added: cfe/trunk/include/clang-c/Index.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=80166&view=auto

==============================================================================
--- cfe/trunk/include/clang-c/Index.h (added)
+++ cfe/trunk/include/clang-c/Index.h Wed Aug 26 17:36:44 2009
@@ -0,0 +1,33 @@
+/*===-- clang-c/Index.h - Indexing Public C Interface -------------*- C -*-===*\
+|*                                                                            *|
+|*                     The LLVM Compiler Infrastructure                       *|
+|*                                                                            *|
+|* This file is distributed under the University of Illinois Open Source      *|
+|* License. See LICENSE.TXT for details.                                      *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*|
+|*                                                                            *|
+|* This header provides a public inferface to a Clang library for extracting  *|
+|* high-level symbol information from source files without exposing the full  *|
+|* Clang C++ API.                                                             *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef CLANG_C_INDEX_H
+#define CLANG_C_INDEX_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Dummy function that serves as an entrance to the library.
+ * To be replaced with specific functions.
+ */
+void clang_index_dummy(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+

Added: cfe/trunk/tools/CIndex/CIndex.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/CIndex/CIndex.cpp?rev=80166&view=auto

==============================================================================
--- cfe/trunk/tools/CIndex/CIndex.cpp (added)
+++ cfe/trunk/tools/CIndex/CIndex.cpp Wed Aug 26 17:36:44 2009
@@ -0,0 +1,17 @@
+//===- CIndex.cpp - Clang-C Source Indexing Library -----------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+// 
+//===----------------------------------------------------------------------===//
+//
+// This file implements the Clang-C Source Indexing library.
+//
+//===----------------------------------------------------------------------===//
+
+#include "clang-c/Index.h"
+
+void clang_index_dummy(void) {}
+

Added: cfe/trunk/tools/CIndex/CIndex.exports
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/CIndex/CIndex.exports?rev=80166&view=auto

==============================================================================
--- cfe/trunk/tools/CIndex/CIndex.exports (added)
+++ cfe/trunk/tools/CIndex/CIndex.exports Wed Aug 26 17:36:44 2009
@@ -0,0 +1 @@
+_clang_index_dummy

Added: cfe/trunk/tools/CIndex/Makefile
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/CIndex/Makefile?rev=80166&view=auto

==============================================================================
--- cfe/trunk/tools/CIndex/Makefile (added)
+++ cfe/trunk/tools/CIndex/Makefile Wed Aug 26 17:36:44 2009
@@ -0,0 +1,54 @@
+##===- tools/CIndex/Makefile -------------------------------*- Makefile -*-===##
+# 
+#                     The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+# 
+##===----------------------------------------------------------------------===##
+
+LEVEL = ../../../..
+LIBRARYNAME = CIndex
+
+CPPFLAGS += -I$(PROJ_SRC_DIR)/../../include -I$(PROJ_OBJ_DIR)/../../include
+CXXFLAGS = -fno-rtti
+
+# Include this here so we can get the configuration of the targets
+# that have been configured for construction. We have to do this 
+# early so we can set up LINK_COMPONENTS before including Makefile.rules
+include $(LEVEL)/Makefile.config
+
+LINK_LIBS_IN_SHARED = 1
+SHARED_LIBRARY = 1
+
+LINK_COMPONENTS := bitreader
+USEDLIBS = clangIndex.a clangAST.a clangLex.a clangBasic.a 
+
+include $(LEVEL)/Makefile.common
+
+##===----------------------------------------------------------------------===##
+# FIXME: This is copied from the 'lto' makefile.  Should we share this?
+##===----------------------------------------------------------------------===##
+
+ifeq ($(HOST_OS),Darwin)
+    # set dylib internal version number to llvmCore submission number
+    ifdef LLVM_SUBMIT_VERSION
+        LLVMLibsOptions := $(LLVMLibsOptions) -Wl,-current_version \
+                        -Wl,$(LLVM_SUBMIT_VERSION).$(LLVM_SUBMIT_SUBVERSION) \
+                        -Wl,-compatibility_version -Wl,1
+    endif
+    # extra options to override libtool defaults 
+    LLVMLibsOptions    := $(LLVMLibsOptions)  \
+                         -avoid-version \
+                         -Wl,-exported_symbols_list -Wl,$(PROJ_SRC_DIR)/CIndex.exports \
+                         -Wl,-dead_strip \
+                         -Wl,-seg1addr -Wl,0xE0000000 
+
+    # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
+    DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
+    ifneq ($(DARWIN_VERS),8)
+       LLVMLibsOptions    := $(LLVMLibsOptions)  \
+                            -no-undefined -Wl,-install_name \
+                            -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
+    endif
+endif

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

==============================================================================
--- cfe/trunk/tools/Makefile (original)
+++ cfe/trunk/tools/Makefile Wed Aug 26 17:36:44 2009
@@ -8,6 +8,6 @@
 ##===----------------------------------------------------------------------===##
 
 LEVEL := ../../..
-DIRS := clang-cc driver index-test wpa
+DIRS := clang-cc driver index-test wpa CIndex 
 
 include $(LEVEL)/Makefile.common





More information about the cfe-commits mailing list