Avoid file copy on Windows lnInclude
This commit is contained in:
parent
d93187d07c
commit
791d20278a
2 changed files with 74 additions and 1 deletions
67
wmake/genInclude.pl
Normal file
67
wmake/genInclude.pl
Normal file
|
@ -0,0 +1,67 @@
|
|||
#!/usr/bin/perl
|
||||
#------------------------------------------------------------------------------
|
||||
# ========= |
|
||||
# \\ / F ield | foam-extend: Open Source CFD
|
||||
# \\ / O peration | Version: 3.2
|
||||
# \\ / A nd | Web: http://www.foam-extend.org
|
||||
# \\/ M anipulation | For copyright notice see file Copyright
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of foam-extend.
|
||||
#
|
||||
# foam-extend is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# foam-extend is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# genInclude.pl
|
||||
#
|
||||
# Description
|
||||
# Generates include files into lnInclude, as an alternative to creating
|
||||
# symbolic links (useful for Windows)
|
||||
#
|
||||
# Usage:
|
||||
# genInclude.pl <PATH_TO_SOURCE_FILE> .
|
||||
#
|
||||
# Author:
|
||||
# Cesare Guardino, Alstom Power Ltd., (2015)
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Cwd;
|
||||
use Cwd 'abs_path';
|
||||
use File::Basename;
|
||||
|
||||
my $cwd = cwd();
|
||||
|
||||
my $source = abs_path($ARGV[0]);
|
||||
my $fileName = basename($source);
|
||||
$cwd =~ s/lnInclude//;
|
||||
$source =~ s/$cwd//;
|
||||
|
||||
my $dir = $cwd;
|
||||
$dir =~ s/^.*\/src\///;
|
||||
|
||||
my $link = $dir . $source;
|
||||
|
||||
my $incGuardName = uc "INC_$fileName";
|
||||
$incGuardName =~ s/\./_/;
|
||||
open (FILE, '>', $fileName) or die ("ERROR: Can't open '$fileName' [$!]");
|
||||
print FILE "#ifndef $incGuardName\n";
|
||||
print FILE "#define $incGuardName\n";
|
||||
print FILE "#include \"$link\"\n";
|
||||
print FILE "#endif\n";
|
||||
close (FILE);
|
||||
|
|
@ -148,9 +148,15 @@ find -L . -type l -exec rm {} \;
|
|||
# create links, avoid recreating links unless necessary
|
||||
# things placed in the 'noLink' directory are skipped
|
||||
#
|
||||
if [ "$WM_ARCH_BASE" == "mingw" ] ; then
|
||||
lnCmd="genInclude.pl"
|
||||
else
|
||||
lnCmd="ln $lnOpt"
|
||||
fi
|
||||
|
||||
find .. $findOpt \
|
||||
\( -name lnInclude -o -name Make -o -name config -o -name noLink \) -prune \
|
||||
-o \( -name '*.[CHh]' -o -name '*.[ch]xx' -o -name '*.[ch]pp' -o -name '*.type' \) \
|
||||
-exec ln $lnOpt {} . \;
|
||||
-exec $lnCmd {} . \;
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
|
Reference in a new issue