From ad46ec8bd011716899d7bc0251a2994f2777655b Mon Sep 17 00:00:00 2001 From: Frits van Bommel Date: Fri, 13 Mar 2009 16:18:43 +0100 Subject: [PATCH] Split out LLVM_REV into separate header, to reduce rebuilding when only the LDC revision has changed. --- .hgignore | 1 + CMakeLists.txt | 2 +- dmd2/mars.c | 2 +- gen/linkage.h | 2 +- revisions.pl.in | 21 ++++++++++++++++++--- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.hgignore b/.hgignore index b3c092aa..320ab928 100644 --- a/.hgignore +++ b/.hgignore @@ -29,6 +29,7 @@ syntax: regexp ^ldc\.make$ ^revisions\.pl$ ^gen/revisions\.h$ +^gen/llvm-version\.h$ ^dmd2?/idgen$ ^dmd2?/impcnvgen$ ^dmd2?/impcnvtab\.c$ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f76b2cf..6532a0dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -195,7 +195,7 @@ add_custom_target( 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) diff --git a/dmd2/mars.c b/dmd2/mars.c index ad41d0c5..ea5ccb93 100644 --- a/dmd2/mars.c +++ b/dmd2/mars.c @@ -61,7 +61,7 @@ Global::Global() 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 diff --git a/gen/linkage.h b/gen/linkage.h index fba8432a..506ce50b 100644 --- a/gen/linkage.h +++ b/gen/linkage.h @@ -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 diff --git a/revisions.pl.in b/revisions.pl.in index 8a00aea0..4e59d567 100644 --- a/revisions.pl.in +++ b/revisions.pl.in @@ -46,9 +46,6 @@ $extra_includes // 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 @@ if ($old ne $out) { 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; +}