Blame view

ffmpeg-4.2.2/doc/texidep.pl 865 Bytes
aac5773f   hucm   功能基本完成,接口待打磨
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  #! /usr/bin/env perl
  
  # This script will print the dependency of a Texinfo file to stdout.
  # texidep.pl <src-path> <input.texi> <output.ext>
  
  use warnings;
  use strict;
  
  die unless @ARGV == 3;
  
  my ($src_path, $root, $target) = @ARGV;
  
  sub print_deps {
      my ($file, $deps) = @_;
      $deps->{$file} = 1;
  
      open(my $fh, "<", "$file") or die "Cannot open file '$file': $!";
      while (<$fh>) {
          if (my ($i) = /^\@(?:verbatim)?include\s+(\S+)/) {
              die "Circular dependency found in file $root\n" if exists $deps->{"doc/$1"};
              print "$target: doc/$1\n";
  
              # skip looking for config.texi dependencies, since it has
              # none, and is not located in the source tree
              if ("$1" ne "config.texi") {
                  print_deps("$src_path/doc/$1", {%$deps});
              }
          }
      }
  }
  
  print_deps($root, {});