GnuCash  5.6-150-g038405b370+
gnc-test-env.pl
1 #!/usr/bin/perl
2 
3 # Spit out the environment variable settings needed based on
4 # arguments listing @gnc_module_dirs, @guile_load_dirs, and
5 # @library_dirs
6 use Getopt::Long;
7 
8 my $define_exports=1;
9 my @gnc_module_dirs=();
10 my @guile_load_dirs=();
11 my @library_dirs=();
12 GetOptions ("exports!" => \$define_exports, # flag
13  "gnc-module-dir=s" => \@gnc_module_dirs, # array of strings
14  "guile-load-dir=s" => \@guile_load_dirs, # array of strings
15  "library-dir=s" => \@library_dirs, # array of strings
16  "verbose" => \$verbose) # flag
17 or die(
18 "Usage: gnc-test-env.pl [ --exports | --noexports ]\n" .
19 " [ (--gnc-module-dir dir | --guile-load-dir dir | --library-dir dir) ... ]\n");
20 
21 if ( $^O =~ /MSWin32/ ) {
22  $path_separator=";";
23 } else {
24  $path_separator=":";
25 }
26 
27 sub print_env_var {
28  ($env_name, $dir_suffix, $separator, @dir_list) = @_;
29  return if not @dir_list;
30  my @suffixed_dir_list = map {
31  my $dir = $_ . $dir_suffix;
32  if ( $^O =~ /MSWin32/ ) {
33  $dir =~ s!/!\\\\!g; } # Backslashes need to be escaped for the environment
34  $dir;
35  } @dir_list;
36  print $env_name . '="' .
37  join($separator, @suffixed_dir_list) .
38  $separator . '${' . $env_name . '}" ';
39 }
40 
41 print_env_var "GNC_MODULE_PATH", "/.libs", $path_separator, @gnc_module_dirs;
42 print_env_var "GUILE_LOAD_PATH", "", $path_separator, @guile_load_dirs;
43 print_env_var "GUILE_LOAD_COMPILED_PATH", "", $path_separator, @guile_load_dirs;
44 print_env_var "LD_LIBRARY_PATH", "/.libs", $path_separator, @library_dirs;
45 print_env_var "DYLD_LIBRARY_PATH", "/.libs", $path_separator, @library_dirs;
46 
47 if ( $^O =~ /MSWin32/ ) {
48  print_env_var "PATH", "/.libs", ":", @library_dirs;
49 }
50 
51 if ($define_exports) {
52  print ";\n";
53  print "export GNC_MODULE_PATH;\n" if @gnc_module_dirs;
54  print "export GUILE_LOAD_PATH;\n" if @guile_load_dirs;
55  print "export GUILE_LOAD_COMPILED_PATH;\n" if @guile_load_dirs;
56  print "export LD_LIBRARY_PATH;\n" if @library_dirs;
57  print "export DYLD_LIBRARY_PATH;\n" if @library_dirs;
58  if ( $^O =~ /MSWin32/ ) {
59  print "export PATH;\n" if @library_dirs;
60  }
61 }