85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
| #
 | |
| #//===----------------------------------------------------------------------===//
 | |
| #//
 | |
| #// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | |
| #// See https://llvm.org/LICENSE.txt for license information.
 | |
| #// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | |
| #//
 | |
| #//===----------------------------------------------------------------------===//
 | |
| #
 | |
| 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 #
 | |
| 
 |