diff options
author | Jeff Trawick <trawick@apache.org> | 2013-11-14 14:54:22 +0000 |
---|---|---|
committer | Jeff Trawick <trawick@apache.org> | 2013-11-14 14:54:22 +0000 |
commit | e40770953c239999a89d16b6919f140b0c663f1f (patch) | |
tree | 796746848fa035f69ba89681bc116104e85665d3 /build | |
parent | e567926b5ee9d77412453c6a68a423bbb0082c99 (diff) | |
download | httpd-e40770953c239999a89d16b6919f140b0c663f1f.tar.gz |
Grab r1517919 and countless follow-ups (up through r1529452) from trunk:
Add experimental cmake-based build system for Windows.
(Support for both trunk and 2.4.x has been removed for this first commit
to the 2.4.x branch.)
Thanks tdonovan for sharing your earlier version! A lot
of good stuff is from Tom; a lot of bad stuff is from me.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1541921 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'build')
-rw-r--r-- | build/cpR_noreplace.pl | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/build/cpR_noreplace.pl b/build/cpR_noreplace.pl new file mode 100644 index 0000000000..054f572e36 --- /dev/null +++ b/build/cpR_noreplace.pl @@ -0,0 +1,71 @@ +#!/usr/bin/perl -w +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +use strict; +use File::Basename; +use File::Copy; +use File::Find; +use File::Path qw(mkpath); + +require 5.010; + +my $srcdir; +my $destdir; + +sub process_file { + return if $_ =~ /^\./; + + my $rel_to_srcdir = substr($File::Find::name, length($srcdir)); + my $destfile = "$destdir$rel_to_srcdir"; + + if (-d $File::Find::name) { + # If the directory is empty, it won't get created. + # Otherwise it will get created when copying a file. + } + else { + if (-f $destfile) { + # Preserve it. + } + else { + # Create it. + my $dir = dirname($destfile); + if (! -e $dir) { + mkpath($dir) or die "Failed to create directory $dir: $!"; + } + copy($File::Find::name, $destfile) or die "Copy $File::Find::name->$destfile failed: $!"; + } + } +} + +$srcdir = shift; +$destdir = shift; +if (scalar(@ARGV) > 0) { + my $mode = shift; + if ($mode eq "ifdestmissing") { + # Normally the check for possible overwrite is performed on a + # file-by-file basis. If "ifdestmissing" is specified and the + # destination directory exists, bail out. + if (-d $destdir) { + print "[PRESERVING EXISTING SUBDIR $destdir]\n"; + exit(0); + } + } + else { + die "bad mode $mode"; + } +} +find(\&process_file, ($srcdir)); |