Generate Version.inc from version.py
Use the version numbers from version.py instead of parsing them out
of external/llvm/host/include/llvm/Config/config.h.
Test: m -j libclangDriver, manually inspect generated Version.inc
Change-Id: Ie2a35f9611b25c27e6220b1745523d1c2a023452
diff --git a/clang-version-inc.mk b/clang-version-inc.mk
index 55530d4..cdf87a3 100644
--- a/clang-version-inc.mk
+++ b/clang-version-inc.mk
@@ -11,7 +11,7 @@
# (from include/clang/Basic/Makefile)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/Version.inc
$(intermediates)/include/clang/Basic/Version.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Version.inc.in \
- $(LLVM_ROOT_PATH)/host/include/llvm/Config/config.h $(CLANG_ROOT_PATH)/clang-version-inc.sh
+ $(CLANG_ROOT_PATH)/clang-version-inc.py $(CLANG_ROOT_PATH)/version.py
@echo "Updating Clang version info."
@mkdir -p $(dir $@)
- $(hide) $(CLANG_ROOT_PATH)/clang-version-inc.sh $(LLVM_ROOT_PATH)/host/include/llvm/Config/config.h <$< >$@
+ $(hide) $(CLANG_ROOT_PATH)/clang-version-inc.py $< >$@
diff --git a/clang-version-inc.py b/clang-version-inc.py
new file mode 100755
index 0000000..eeffb62
--- /dev/null
+++ b/clang-version-inc.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+
+import os
+import sys
+
+import version
+
+version_string = '%s.%s.%s' % (version.major, version.minor, version.patch)
+
+if len(sys.argv) < 2:
+ print sys.stderr, "Usage: %s <Version.inc.in>"
+ sys.exit(1)
+
+with open(sys.argv[1], 'r') as f:
+ replacements = {
+ '@CLANG_VERSION@': version_string,
+ '@CLANG_VERSION_MAJOR@': version.major,
+ '@CLANG_VERSION_MINOR@': version.minor,
+ '@CLANG_VERSION_PATCHLEVEL@': version.patch,
+ '@CLANG_HAS_VERSION_PATCHLEVEL@': '1',
+ }
+
+ for line in f:
+ line = line.strip()
+ for replace, to in replacements.iteritems():
+ line = line.replace(replace, to)
+ print line
diff --git a/clang-version-inc.sh b/clang-version-inc.sh
deleted file mode 100755
index e0051e4..0000000
--- a/clang-version-inc.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash -eu
-
-CLANG_VERSION=$(grep PACKAGE_VERSION $1 | sed -e 's/\#define PACKAGE_VERSION "\(.*\)"/\1/g' | sed -e 's/svn//')
-CLANG_VERSION_MAJOR=$(echo ${CLANG_VERSION} | cut -d. -f1)
-CLANG_VERSION_MINOR=$(echo ${CLANG_VERSION} | cut -d. -f2)
-CLANG_VERSION_PATCHLEVEL=$(echo ${CLANG_VERSION} | cut -d. -f3)
-if [[ "${CLANG_VERSION_PATCHLEVEL}" == "" ]]; then
- CLANG_HAS_VERSION_PATCHLEVEL=0
-else
- CLANG_HAS_VERSION_PATCHLEVEL=1
-fi
-
-sed -e "s#@CLANG_VERSION@#${CLANG_VERSION}#g" \
- -e "s#@CLANG_VERSION_MAJOR@#${CLANG_VERSION_MAJOR}#g" \
- -e "s#@CLANG_VERSION_MINOR@#${CLANG_VERSION_MINOR}#g" \
- -e "s#@CLANG_VERSION_PATCHLEVEL@#${CLANG_VERSION_PATCHLEVEL}#g" \
- -e "s#@CLANG_HAS_VERSION_PATCHLEVEL@#${CLANG_HAS_VERSION_PATCHLEVEL}#g"