diff options
Diffstat (limited to 'Auxiliary/vim/extract-upper-case.pl')
-rwxr-xr-x | Auxiliary/vim/extract-upper-case.pl | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/Auxiliary/vim/extract-upper-case.pl b/Auxiliary/vim/extract-upper-case.pl index ea77cbb..6dbb678 100755 --- a/Auxiliary/vim/extract-upper-case.pl +++ b/Auxiliary/vim/extract-upper-case.pl @@ -2,6 +2,7 @@ use strict; use warnings; +use POSIX qw(strftime); #my $cmake = "/home/pboettch/devel/upstream/cmake/build/bin/cmake"; my $cmake = "cmake"; @@ -29,8 +30,8 @@ push @modules, "ExternalProject"; # variables open(CMAKE, "$cmake --help-variable-list|") or die "could not run cmake"; while (<CMAKE>) { + next if /\</; # skip if containing < or > chomp; - next if /\</; # skip VARIABLES which contained <>-"templates" push @variables, $_; } close(CMAKE); @@ -70,11 +71,24 @@ my @generator_expr = extract_upper("$cmake --help-manual cmake-generator-express # properties open(CMAKE, "$cmake --help-property-list|"); while (<CMAKE>) { + next if /\</; # skip if containing < or > chomp; push @properties, $_; } close(CMAKE); +# transform all properties in a hash +my %properties = map { $_ => 1 } @properties; + +# version +open(CMAKE, "$cmake --version|"); +my $version = 'unknown'; +while (<CMAKE>) { + chomp; + $version = $_ if /cmake version/; +} +close(CMAKE); + # generate cmake.vim open(IN, "<cmake.vim.in") or die "could not read cmake.vim.in"; open(OUT, ">syntax/cmake.vim") or die "could not write to syntax/cmake.vim"; @@ -102,6 +116,8 @@ while(<IN>) print OUT " " x 12 , "\\ ", join(" ", sort keys %loop), "\n"; } elsif ($1 eq "DEPRECATED") { print OUT " " x 12 , "\\ ", join(" ", sort keys %deprecated), "\n"; + } elsif ($1 eq "PROPERTIES") { + print OUT " " x 12 , "\\ ", join(" ", sort keys %properties), "\n"; } elsif ($1 eq "KEYWORDS") { foreach my $k (sort keys %keywords) { print OUT "syn keyword cmakeKW$k contained\n"; @@ -111,6 +127,13 @@ while(<IN>) } } elsif ($1 eq "KEYWORDS_HIGHLIGHT") { print OUT join("\n", @keyword_hi), "\n"; + } elsif ($1 eq "VERSION") { + $_ =~ s/\@VERSION\@/$version/; + print OUT $_; + } elsif ($1 eq "DATE") { + my $date = strftime "%Y %b %d", localtime; + $_ =~ s/\@DATE\@/$date/; + print OUT $_; } else { print "ERROR do not know how to replace $1\n"; } @@ -128,7 +151,6 @@ sub extract_upper open(KW, $input); while (<KW>) { - foreach my $w (m/\b([A-Z_]{2,})\b/g) { next if exists $variables{$w} or # skip if it is a variable |