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
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits