| # |
| #//===----------------------------------------------------------------------===// |
| #// |
| #// The LLVM Compiler Infrastructure |
| #// |
| #// This file is dual licensed under the MIT and the University of Illinois Open |
| #// Source Licenses. See LICENSE.txt for details. |
| #// |
| #//===----------------------------------------------------------------------===// |
| # |
| package LibOMP; |
| |
| use strict; |
| use warnings; |
| |
| use tools; |
| |
| sub empty($) { |
| my ( $var ) = @_; |
| return (not exists($ENV{$var})) or (not defined($ENV{$var})) or ($ENV{$var} eq ""); |
| }; # sub empty |
| |
| my ( $base, $out, $tmp ); |
| if ( empty( "LIBOMP_WORK" ) ) { |
| # $FindBin::Bin is not used intentionally because it gives real path. I want to use absolute, |
| # but not real one (real path does not contain symlinks while absolute path may contain |
| # symlinks). |
| $base = get_dir( get_dir( abs_path( $0 ) ) ); |
| } else { |
| $base = abs_path( $ENV{ LIBOMP_WORK } ); |
| }; # if |
| |
| if ( empty( "LIBOMP_EXPORTS" ) ) { |
| $out = cat_dir( $base, "exports" ); |
| } else { |
| $out = abs_path( $ENV{ LIBOMP_EXPORTS } ); |
| }; # if |
| |
| if ( empty( "LIBOMP_TMP" ) ) { |
| $tmp = cat_dir( $base, "tmp" ); |
| } else { |
| $tmp = abs_path( $ENV{ LIBOMP_TMP } ); |
| }; # if |
| |
| $ENV{ LIBOMP_WORK } = $base; |
| $ENV{ LIBOMP_EXPORTS } = $out; |
| $ENV{ LIBOMP_TMP } = $tmp; |
| |
| return 1; |
| |
| __END__ |
| |
| =pod |
| |
| =head1 NAME |
| |
| B<LibOMP.pm> -- |
| |
| =head1 SYNOPSIS |
| |
| use FindBin; |
| use lib "$FindBin::Bin/lib"; |
| use LibOMP; |
| |
| $ENV{ LIBOMP_WORK } |
| $ENV{ LIBOMP_TMP } |
| $ENV{ LIBOMP_EXPORTS } |
| |
| =head1 DESCRIPTION |
| |
| The module checks C<LIBOMP_WORK>, C<LIBOMP_EXPORTS>, and C<LIBOMP_TMP> environments variables. |
| If a variable set, the module makes sure it is absolute. If a variable does not exist, the module |
| sets it to default value. |
| |
| Default value for C<LIBOMP_EXPORTS> is C<$LIBOMP_WORK/exports>, for C<LIBOMP_TMP> -- |
| C<$LIBOMP_WORK/tmp>. |
| |
| Value for C<LIBOMP_WORK> is guessed. The module assumes the script (which uses the module) is |
| located in C<tools/> directory of libomp directory tree, and uses path of the script to calculate |
| C<LIBOMP_WORK>, |
| |
| =cut |
| |
| # end of file # |
| |