Subversion Repositories DevTools

Rev

Rev 247 | Rev 255 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 247 Rev 251
Line 665... Line 665...
665
                   "Pbase    : $::Pbase",
665
                   "Pbase    : $::Pbase",
666
                   "BuildName: $::ScmBuildPackage")
666
                   "BuildName: $::ScmBuildPackage")
667
                if ( $::Pbase ne $::ScmBuildPackage );
667
                if ( $::Pbase ne $::ScmBuildPackage );
668
        }
668
        }
669
    }
669
    }
670
 
-
 
671
    #
-
 
672
    #   Preload Src with some known files
-
 
673
    #   The Known Files list is relative to ScmRoot
-
 
674
    #
-
 
675
    Debug( "ScmRoot\t=$ScmRoot" );
-
 
676
    while ( my ($file, $path) = each %::BUILD_KNOWNFILES )
-
 
677
    {
-
 
678
        Debug( "KnownSrc: $file, $path");
-
 
679
        $SRCS{$file} = $ScmRoot .'/'. $path;
-
 
680
    }
-
 
681
}
670
}
682
 
671
 
683
 
672
 
684
sub CommandLine
673
sub CommandLine
685
{
674
{
Line 3929... Line 3918...
3929
            Debug( "Src: arg $_" );
3918
            Debug( "Src: arg $_" );
3930
            push @args, $_;
3919
            push @args, $_;
3931
        }
3920
        }
3932
        else
3921
        else
3933
        {
3922
        {
3934
            next if ( m/descpkg/ );
-
 
3935
            push @srcs, $_;
3923
            push @srcs, $_;
3936
            Warning ("Src files contains a '\\' character: $_" ) if (m~\\~);
3924
            Warning ("Src files contains a '\\' character: $_" ) if (m~\\~);
3937
        }
3925
        }
3938
    }
3926
    }
3939
 
3927
 
Line 7445... Line 7433...
7445
            if ( $i->{'clean'} );
7433
            if ( $i->{'clean'} );
7446
    }
7434
    }
7447
    return \@list;
7435
    return \@list;
7448
}
7436
}
7449
 
7437
 
-
 
7438
#-------------------------------------------------------------------------------
-
 
7439
# Function        : MakeResolve
7450
 
7440
#
-
 
7441
# Description     : Internal Function
-
 
7442
#                   Locate a source file by examining a list of directories
-
 
7443
#
-
 
7444
#                   Don't use directly
-
 
7445
#                   Use MakeSrcResolve or MakeSrcResolveExtended
-
 
7446
#
-
 
7447
# Inputs          : $dirs           - Ref to an array of directories to scan
-
 
7448
#                   $source         - File to locate
-
 
7449
#
-
 
7450
# Returns         : Resolved path to the file
-
 
7451
#                   Will warn if multiple instances of the file are found
-
 
7452
#
7451
sub MakeResolve
7453
sub MakeResolve
7452
{
7454
{
7453
    my( $dirs, $source ) = @_;
7455
    my( $dirs, $source ) = @_;
7454
    my( $first, $dir, $count, $temp );
7456
    my( $first, $dir, $count, $temp );
7455
 
7457
 
Line 7503... Line 7505...
7503
            if ($count);
7505
            if ($count);
7504
    }
7506
    }
7505
    return $first;
7507
    return $first;
7506
}
7508
}
7507
 
7509
 
-
 
7510
#-------------------------------------------------------------------------------
-
 
7511
# Function        : MakeSrcResolve
7508
 
7512
#
-
 
7513
# Description     : Locate a source file by examining the list of source
-
 
7514
#                   directories. There are a few frills
-
 
7515
#
-
 
7516
#                   Look for a source file in
-
 
7517
#                       1) %::BUILD_KNOWNFILES
-
 
7518
#                       2) %SRCS
-
 
7519
#                       3) Dirs specified by the array @SRCSDIRS
-
 
7520
#
-
 
7521
# Inputs          : Name of a file to resolve
-
 
7522
#
-
 
7523
# Returns         : Resolved path.
-
 
7524
#                   'empty' if not found at all
-
 
7525
#
7509
sub MakeSrcResolve
7526
sub MakeSrcResolve
7510
{
7527
{
7511
    my ($name) = @_;
7528
    my ($name) = @_;
7512
    my $file;
7529
    my $file;
7513
 
7530
 
-
 
7531
    if ( exists ( $::BUILD_KNOWNFILES{$name} ) ) {
-
 
7532
        #
-
 
7533
        #   The Known Files list is relative to ScmRoot
-
 
7534
        #   This must be included in the full path
-
 
7535
        #
-
 
7536
        $file = $ScmRoot . '/' . $::BUILD_KNOWNFILES{$name};
-
 
7537
 
7514
    $file = MakeResolve( \@SRCDIRS, @_ )
7538
    } elsif ( exists $SRCS{$name} ) {
7515
        unless ( ( $file = $SRCS{$name} ));
7539
        $file = $SRCS{$name};
-
 
7540
 
-
 
7541
    } else {
-
 
7542
        $file = MakeResolve( \@SRCDIRS, @_ )
-
 
7543
    }
7516
    return $file;
7544
    return $file;
7517
}
7545
}
7518
 
7546
 
7519
 
7547
 
7520
# MakeSrcResolveExtended
7548
# MakeSrcResolveExtended
Line 7928... Line 7956...
7928
    #   The descpkg will be piggybacked into all makefiles that do a package
7956
    #   The descpkg will be piggybacked into all makefiles that do a package
7929
    #
7957
    #
7930
    if ( %PACKAGE_FILES || %PACKAGE_HDRS || %PACKAGE_CLSS || %PACKAGE_LIBS
7958
    if ( %PACKAGE_FILES || %PACKAGE_HDRS || %PACKAGE_CLSS || %PACKAGE_LIBS
7931
                        || %PACKAGE_SHLIBS || %PACKAGE_PROGS )
7959
                        || %PACKAGE_SHLIBS || %PACKAGE_PROGS )
7932
    {
7960
    {
-
 
7961
        Src ('*', 'descpkg') unless ($SRCS{ descpkg });
7933
        PackageFile ('*', 'descpkg' );
7962
        PackageFile ('*', 'descpkg');
7934
    }
7963
    }
7935
 
7964
 
7936
    #
7965
    #
7937
    #   Some toolsets NEED a relative root
7966
    #   Some toolsets NEED a relative root
7938
    #   This is still a bit experimental so its only turned on if the toolset
7967
    #   This is still a bit experimental so its only turned on if the toolset