changeset 1113:123812e02bc8

Split out LLVM_REV into separate header, to reduce rebuilding when only the LDC revision has changed.
author Frits van Bommel <fvbommel wxs.nl>
date Fri, 13 Mar 2009 16:18:43 +0100
parents 829ac3f30103
children 454f0c8acc4b
files .hgignore CMakeLists.txt dmd2/mars.c gen/linkage.h revisions.pl.in
diffstat 5 files changed, 22 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Fri Mar 13 16:18:01 2009 +0100
+++ b/.hgignore	Fri Mar 13 16:18:43 2009 +0100
@@ -29,6 +29,7 @@
 ^ldc\.make$
 ^revisions\.pl$
 ^gen/revisions\.h$
+^gen/llvm-version\.h$
 ^dmd2?/idgen$
 ^dmd2?/impcnvgen$
 ^dmd2?/impcnvtab\.c$
--- a/CMakeLists.txt	Fri Mar 13 16:18:01 2009 +0100
+++ b/CMakeLists.txt	Fri Mar 13 16:18:43 2009 +0100
@@ -195,7 +195,7 @@
 	gen_revs_h
 	COMMAND ${PERL_EXECUTABLE} ${PROJECT_BINARY_DIR}/revisions.pl
 	DEPENDS ${PROJECT_BINARY_DIR}/revisions.pl
-	COMMENT "Generating revisions.h"
+	COMMENT "Generating revisions.h and llvm-version.h"
 	WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/gen
 )
 add_dependencies(${LDC_EXE} gen_revs_h)
--- a/dmd2/mars.c	Fri Mar 13 16:18:01 2009 +0100
+++ b/dmd2/mars.c	Fri Mar 13 16:18:43 2009 +0100
@@ -61,7 +61,7 @@
     written = "written by Walter Bright and Tomas Lindquist Olsen";
     version = "v2.021";
     ldc_version = LDC_REV;
-    llvm_version = LLVM_REV;
+    llvm_version = LLVM_REV_STR;
     global.structalign = 8;
 
     // This should only be used as a global, so the other fields are
--- a/gen/linkage.h	Fri Mar 13 16:18:01 2009 +0100
+++ b/gen/linkage.h	Fri Mar 13 16:18:43 2009 +0100
@@ -1,7 +1,7 @@
 #ifndef LDC_GEN_LINKAGE_H
 #define LDC_GEN_LINKAGE_H
 
-#include "gen/revisions.h"
+#include "gen/llvm-version.h"
 
 // Make it easier to test new linkage types
 // Also used to adapt to some changes in LLVM between 2.5 and 2.6
--- a/revisions.pl.in	Fri Mar 13 16:18:01 2009 +0100
+++ b/revisions.pl.in	Fri Mar 13 16:18:43 2009 +0100
@@ -46,9 +46,6 @@
 
 // LLVM version string, for use in -version output
 #define LLVM_REV_STR $llvm_rev_str$llvm_date
-// LLVM svn revision number, used to adapt to changes in LLVM
-// (Is 0 if LLVM is not an SVN trunk version)
-#define LLVM_REV $llvm_rev_nr
 // LDC version string, for use in -version output
 #define LDC_REV "rev. $ldc_rev"
 
@@ -63,3 +60,21 @@
 	print $revh $out;
 	close $revh;
 }
+
+$out = qq!#ifndef LDC_LLVM_VERSION_H
+#define LDC_LLVM_VERSION_H
+
+// LLVM svn revision number, used to adapt to changes in LLVM
+// (Is 0 if LLVM is not an SVN trunk version)
+#define LLVM_REV $llvm_rev_nr
+
+#endif // LDC_LLVM_VERSION_H\n!;
+
+$old = "";
+open $revh, "llvm-version.h" and $old = join "", <$revh>;
+
+if ($old ne $out) {
+	open $revh, ">llvm-version.h" or die "cannot create llvm-version.h: $!";
+	print $revh $out;
+	close $revh;
+}