[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