summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/utils/UpdateCMakeLists.pl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/utils/UpdateCMakeLists.pl')
-rwxr-xr-xcontrib/llvm/utils/UpdateCMakeLists.pl119
1 files changed, 0 insertions, 119 deletions
diff --git a/contrib/llvm/utils/UpdateCMakeLists.pl b/contrib/llvm/utils/UpdateCMakeLists.pl
deleted file mode 100755
index 8f535145..0000000
--- a/contrib/llvm/utils/UpdateCMakeLists.pl
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env perl
-use strict;
-use File::Find;
-use File::Copy;
-use Digest::MD5;
-
-my @fileTypes = ("cpp", "c");
-my %dirFiles;
-my %dirCMake;
-
-sub GetFiles {
- my $dir = shift;
- my $x = $dirFiles{$dir};
- if (!defined $x) {
- $x = [];
- $dirFiles{$dir} = $x;
- }
- return $x;
-}
-
-sub ProcessFile {
- my $file = $_;
- my $dir = $File::Find::dir;
- # Record if a CMake file was found.
- if ($file eq "CMakeLists.txt") {
- $dirCMake{$dir} = $File::Find::name;
- return 0;
- }
- # Grab the extension of the file.
- $file =~ /\.([^.]+)$/;
- my $ext = $1;
- my $files;
- foreach my $x (@fileTypes) {
- if ($ext eq $x) {
- if (!defined $files) {
- $files = GetFiles($dir);
- }
- push @$files, $file;
- return 0;
- }
- }
- return 0;
-}
-
-sub EmitCMakeList {
- my $dir = shift;
- my $files = $dirFiles{$dir};
-
- if (!defined $files) {
- return;
- }
-
- foreach my $file (sort @$files) {
- print OUT " ";
- print OUT $file;
- print OUT "\n";
- }
-}
-
-sub UpdateCMake {
- my $cmakeList = shift;
- my $dir = shift;
- my $cmakeListNew = $cmakeList . ".new";
- open(IN, $cmakeList);
- open(OUT, ">", $cmakeListNew);
- my $foundLibrary = 0;
-
- while(<IN>) {
- if (!$foundLibrary) {
- print OUT $_;
- if (/^add_clang_library\(/ || /^add_llvm_library\(/ || /^add_llvm_target\(/
- || /^add_executable\(/) {
- $foundLibrary = 1;
- EmitCMakeList($dir);
- }
- }
- else {
- if (/\)/) {
- print OUT $_;
- $foundLibrary = 0;
- }
- }
- }
-
- close(IN);
- close(OUT);
-
- open(FILE, $cmakeList) or
- die("Cannot open $cmakeList when computing digest\n");
- binmode FILE;
- my $digestA = Digest::MD5->new->addfile(*FILE)->hexdigest;
- close(FILE);
-
- open(FILE, $cmakeListNew) or
- die("Cannot open $cmakeListNew when computing digest\n");
- binmode FILE;
- my $digestB = Digest::MD5->new->addfile(*FILE)->hexdigest;
- close(FILE);
-
- if ($digestA ne $digestB) {
- move($cmakeListNew, $cmakeList);
- return 1;
- }
-
- unlink($cmakeListNew);
- return 0;
-}
-
-sub UpdateCMakeFiles {
- foreach my $dir (sort keys %dirCMake) {
- if (UpdateCMake($dirCMake{$dir}, $dir)) {
- print "Updated: $dir\n";
- }
- }
-}
-
-find({ wanted => \&ProcessFile, follow => 1 }, '.');
-UpdateCMakeFiles();
-
OpenPOWER on IntegriCloud