# #//===----------------------------------------------------------------------===// #// #// 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 -- =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, C, and C 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 is C<$LIBOMP_WORK/exports>, for C -- C<$LIBOMP_WORK/tmp>. Value for C is guessed. The module assumes the script (which uses the module) is located in C directory of libomp directory tree, and uses path of the script to calculate C, =cut # end of file #