diff --git a/build/files b/build/files
index d450ec7464..e6d0c67a6d 100644
--- a/build/files
+++ b/build/files
@@ -2067,7 +2067,6 @@ DFB_LOWLEVEL_HDR =
OSX_LOWLEVEL_SRC =
# Shared wxMac and wxCocoa files
-
src/osx/artmac.cpp
src/osx/brush.cpp
src/osx/dialog_osx.cpp
@@ -2091,12 +2090,10 @@ OSX_LOWLEVEL_SRC =
src/osx/core/printmac.cpp
src/osx/core/timer.cpp
src/osx/core/utilsexc_cf.cpp
-
OSX_LOWLEVEL_HDR =
OSX_COMMON_SRC =
-
# Common controls implementation
src/osx/anybutton_osx.cpp
src/osx/bmpbuttn_osx.cpp
@@ -2169,7 +2166,6 @@ OSX_COMMON_SRC =
src/generic/prntdlgg.cpp
src/generic/statusbr.cpp
src/generic/textmeasure.cpp
-
# Header files like wx/osx/foo.h which include wx/osx/carbon/foo.h
OSX_SHARED_HDR =
diff --git a/build/upmake b/build/upmake
index d74de1d71e..e6dffcd114 100755
--- a/build/upmake
+++ b/build/upmake
@@ -18,9 +18,44 @@ $fatpacked{"Makefile/Update.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<
our @EXPORT = qw(read_files_list upmake);
- our $VERSION = '0.3'; # VERSION
+ # VERSION
+ =head1 SYNOPSIS
+ use Makefile::Update;
+ my $vars = read_files_list('files.lst');
+ upmake('foo.vcxproj', $vars->{sources}, $vars->{headers});
+
+ =cut
+
+ =func read_files_list
+
+ Reads the file containing the file lists definitions and returns a hash ref
+ with variable names as keys and refs to arrays of the file names as values.
+
+ Takes an (open) file handle as argument.
+
+ The file contents is supposed to have the following very simple format:
+
+ # Comments are allowed and ignored.
+ #
+ # The variable definitions must always be in the format shown below,
+ # i.e. whitespace is significant and there should always be a single
+ # file per line.
+ sources =
+ file1.cpp
+ file2.cpp
+
+ headers =
+ file1.h
+ file2.h
+
+ # It is also possible to define variables in terms of other variables
+ # defined before it in the file (no forward references):
+ everything =
+ $sources
+ $headers
+ =cut
sub read_files_list
{
@@ -55,6 +90,41 @@ $fatpacked{"Makefile/Update.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<
return \%vars;
}
+ =func upmake
+
+ Update a file in place using the specified function and passing it the rest of
+ the arguments.
+
+ The first parameter is either just the file path or a hash reference which may
+ contain the following keys:
+
+ =over
+
+ =item C
+
+ The path to the file to be updated, required.
+
+ =item C
+
+ If true, give more messages about what is being done.
+
+ =item C
+
+ If true, don't output any non-error messages.
+
+ =item C
+
+ If true, don't really update the file but just output whether it would have
+ been updated or not. If C is also true, also output the diff of the
+ changes that would have been done.
+
+ =back
+
+ This is meant to be used with C defined in different
+ Makefile::Update::Xxx modules.
+
+ Returns 1 if the file was changed or 0 otherwise.
+ =cut
sub upmake
{
@@ -137,104 +207,6 @@ $fatpacked{"Makefile/Update.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<
}
1;
-
- __END__
-
- =pod
-
- =encoding UTF-8
-
- =head1 NAME
-
- Makefile::Update - Update make files.
-
- =head1 VERSION
-
- version 0.3
-
- =head1 SYNOPSIS
-
- use Makefile::Update;
- my $vars = read_files_list('files.lst');
- upmake('foo.vcxproj', $vars->{sources}, $vars->{headers});
-
- =head1 FUNCTIONS
-
- =head2 read_files_list
-
- Reads the file containing the file lists definitions and returns a hash ref
- with variable names as keys and refs to arrays of the file names as values.
-
- Takes an (open) file handle as argument.
-
- The file contents is supposed to have the following very simple format:
-
- # Comments are allowed and ignored.
- #
- # The variable definitions must always be in the format shown below,
- # i.e. whitespace is significant and there should always be a single
- # file per line.
- sources =
- file1.cpp
- file2.cpp
-
- headers =
- file1.h
- file2.h
-
- # It is also possible to define variables in terms of other variables
- # defined before it in the file (no forward references):
- everything =
- $sources
- $headers
-
- =head2 upmake
-
- Update a file in place using the specified function and passing it the rest of
- the arguments.
-
- The first parameter is either just the file path or a hash reference which may
- contain the following keys:
-
- =over
-
- =item C
-
- The path to the file to be updated, required.
-
- =item C
-
- If true, give more messages about what is being done.
-
- =item C
-
- If true, don't output any non-error messages.
-
- =item C
-
- If true, don't really update the file but just output whether it would have
- been updated or not. If C is also true, also output the diff of the
- changes that would have been done.
-
- =back
-
- This is meant to be used with C defined in different
- Makefile::Update::Xxx modules.
-
- Returns 1 if the file was changed or 0 otherwise.
-
- =head1 AUTHOR
-
- Vadim Zeitlin
-
- =head1 COPYRIGHT AND LICENSE
-
- This software is copyright (c) 2015 by Vadim Zeitlin.
-
- This is free software; you can redistribute it and/or modify it under
- the same terms as the Perl 5 programming language system itself.
-
- =cut
MAKEFILE_UPDATE
$fatpacked{"Makefile/Update/Bakefile0.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MAKEFILE_UPDATE_BAKEFILE0';
@@ -247,9 +219,32 @@ $fatpacked{"Makefile/Update/Bakefile0.pm"} = '#line '.(1+__LINE__).' "'.__FILE__
use strict;
use warnings;
- our $VERSION = '0.3'; # VERSION
+ # VERSION
+ =head1 SYNOPSIS
+ This is used exclusively to update wxWidgets C and is probably not
+ useful outside of wxWidgets project.
+
+ use Makefile::Update::Bakefile0;
+ Makefile::Update::upmake('bakefiles/files.bkl', \&update_bakefile_0, $vars);
+
+ =head1 SEE ALSO
+
+ Makefile::Update
+
+ =cut
+
+ =func update_bakefile_0
+
+ Update file with variable definitions in bakefile-0 format with the data
+ from the hash ref containing all the file lists.
+
+ Takes the (open) file handles of the files to read and to write and the file
+ lists hash ref as arguments.
+
+ Returns 1 if any changes were made.
+ =cut
sub update_bakefile_0
{
@@ -275,6 +270,8 @@ $fatpacked{"Makefile/Update/Bakefile0.pm"} = '#line '.(1+__LINE__).' "'.__FILE__
s///;
s/^\s+//;
s/\s+$//;
+ s{]+>}{};
+ s{}{};
if (m{}) {
# Check if we have any new files.
#
@@ -311,57 +308,6 @@ $fatpacked{"Makefile/Update/Bakefile0.pm"} = '#line '.(1+__LINE__).' "'.__FILE__
$changed
}
-
- __END__
-
- =pod
-
- =encoding UTF-8
-
- =head1 NAME
-
- Makefile::Update::Bakefile0 - Update bakefile-0.x files list.
-
- =head1 VERSION
-
- version 0.3
-
- =head1 SYNOPSIS
-
- This is used exclusively to update wxWidgets C and is probably not
- useful outside of wxWidgets project.
-
- use Makefile::Update::Bakefile0;
- Makefile::Update::upmake('bakefiles/files.bkl', \&update_bakefile_0, $vars);
-
- =head1 FUNCTIONS
-
- =head2 update_bakefile_0
-
- Update file with variable definitions in bakefile-0 format with the data
- from the hash ref containing all the file lists.
-
- Takes the (open) file handles of the files to read and to write and the file
- lists hash ref as arguments.
-
- Returns 1 if any changes were made.
-
- =head1 SEE ALSO
-
- Makefile::Update
-
- =head1 AUTHOR
-
- Vadim Zeitlin
-
- =head1 COPYRIGHT AND LICENSE
-
- This software is copyright (c) 2015 by Vadim Zeitlin.
-
- This is free software; you can redistribute it and/or modify it under
- the same terms as the Perl 5 programming language system itself.
-
- =cut
MAKEFILE_UPDATE_BAKEFILE0
$fatpacked{"Makefile/Update/MSBuild.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MAKEFILE_UPDATE_MSBUILD';
@@ -374,9 +320,34 @@ $fatpacked{"Makefile/Update/MSBuild.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."
use strict;
use warnings;
- our $VERSION = '0.3'; # VERSION
+ # VERSION
+ =head1 SYNOPSIS
+ Given an MSBuild project C and its associated filters file
+ C, the functions in this module can be used to update
+ the list of files in them to correspond to the given ones.
+
+ use Makefile::Update::MSBuild;
+ upmake_msbuild_project('project.vcxproj', \@sources, \@headers);
+
+ =head1 SEE ALSO
+
+ Makefile::Update, Makefile::Update::VCProj
+
+ =cut
+
+ =func update_msbuild_project
+
+ Update sources and headers in an MSBuild project and filter files.
+
+ Pass the path of the project to update or a hash with the same keys as used by
+ C as the first parameter and the references to the
+ sources and headers arrays as the subsequent ones.
+
+ Returns 1 if any changes were made, either to the project itself or to its
+ associated C<.filters> file.
+ =cut
sub update_msbuild_project
{
@@ -405,6 +376,15 @@ $fatpacked{"Makefile/Update/MSBuild.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."
}
+ =func update_msbuild
+
+ Update sources and headers in an MSBuild project.
+
+ Parameters: input and output file handles and array references to the sources
+ and the headers to be used in this project.
+
+ Returns 1 if any changes were made.
+ =cut
sub update_msbuild
{
@@ -508,6 +488,16 @@ $fatpacked{"Makefile/Update/MSBuild.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."
$changed
}
+ =func update_msbuild_filters
+
+ Update sources and headers in an MSBuild filters file.
+
+ Parameters: input and output file handles, array references to the sources
+ and the headers to be used in this project and a callback used to determine
+ the filter for the new files.
+
+ Returns 1 if any changes were made.
+ =cut
sub update_msbuild_filters
{
@@ -635,78 +625,6 @@ $fatpacked{"Makefile/Update/MSBuild.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."
$changed
}
-
- __END__
-
- =pod
-
- =encoding UTF-8
-
- =head1 NAME
-
- Makefile::Update::MSBuild - Update list of sources and headers in MSBuild projects.
-
- =head1 VERSION
-
- version 0.3
-
- =head1 SYNOPSIS
-
- Given an MSBuild project C and its associated filters file
- C, the functions in this module can be used to update
- the list of files in them to correspond to the given ones.
-
- use Makefile::Update::MSBuild;
- upmake_msbuild_project('project.vcxproj', \@sources, \@headers);
-
- =head1 FUNCTIONS
-
- =head2 update_msbuild_project
-
- Update sources and headers in an MSBuild project and filter files.
-
- Pass the path of the project to update or a hash with the same keys as used by
- C as the first parameter and the references to the
- sources and headers arrays as the subsequent ones.
-
- Returns 1 if any changes were made, either to the project itself or to its
- associated C<.filters> file.
-
- =head2 update_msbuild
-
- Update sources and headers in an MSBuild project.
-
- Parameters: input and output file handles and array references to the sources
- and the headers to be used in this project.
-
- Returns 1 if any changes were made.
-
- =head2 update_msbuild_filters
-
- Update sources and headers in an MSBuild filters file.
-
- Parameters: input and output file handles, array references to the sources
- and the headers to be used in this project and a callback used to determine
- the filter for the new files.
-
- Returns 1 if any changes were made.
-
- =head1 SEE ALSO
-
- Makefile::Update, Makefile::Update::VCProj
-
- =head1 AUTHOR
-
- Vadim Zeitlin
-
- =head1 COPYRIGHT AND LICENSE
-
- This software is copyright (c) 2015 by Vadim Zeitlin.
-
- This is free software; you can redistribute it and/or modify it under
- the same terms as the Perl 5 programming language system itself.
-
- =cut
MAKEFILE_UPDATE_MSBUILD
$fatpacked{"Makefile/Update/Makefile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MAKEFILE_UPDATE_MAKEFILE';
@@ -719,9 +637,53 @@ $fatpacked{"Makefile/Update/Makefile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__.
use strict;
use warnings;
- our $VERSION = '0.3'; # VERSION
+ # VERSION
+ =head1 SYNOPSIS
+ This can be used to update the contents of a variable containing a list of
+ files in a makefile.
+
+ use Makefile::Update::Makefile;
+ Makefile::Update::upmake('GNUmakefile', \&update_makefile, $vars);
+
+ =head1 SEE ALSO
+
+ Makefile::Update
+
+ =cut
+
+ =func update_makefile
+
+ Update variable definitions in a makefile format with the data from the hash
+ ref containing all the file lists.
+
+ Only most straightforward cases of variable or target definitions are
+ recognized here, i.e. just "var := value", "var = value" or "target: value".
+ In particular we don't support any GNU make extensions such as "export" or
+ "override" without speaking of anything more complex.
+
+ On top of it, currently the value should contain a single file per line with
+ none at all on the first line (but this restriction could be relaxed later if
+ needed), i.e. the only supported case is
+
+ var = \
+ foo \
+ bar \
+ baz
+
+ and it must be followed by an empty line, too.
+
+ Notice that if any of the "files" in the variable value looks like a makefile
+ variable, i.e. has "$(foo)" form, it is ignored by this function, i.e. not
+ removed even if it doesn't appear in the list of files (which will never be
+ the case normally).
+
+ Takes the (open) file handles of the files to read and to write and the file
+ lists hash ref as arguments.
+
+ Returns 1 if any changes were made.
+ =cut
sub update_makefile
{
@@ -1002,78 +964,6 @@ $fatpacked{"Makefile/Update/Makefile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__.
$changed
}
-
- __END__
-
- =pod
-
- =encoding UTF-8
-
- =head1 NAME
-
- Makefile::Update::Makefile - Update lists of files in makefile variables.
-
- =head1 VERSION
-
- version 0.3
-
- =head1 SYNOPSIS
-
- This can be used to update the contents of a variable containing a list of
- files in a makefile.
-
- use Makefile::Update::Makefile;
- Makefile::Update::upmake('GNUmakefile', \&update_makefile, $vars);
-
- =head1 FUNCTIONS
-
- =head2 update_makefile
-
- Update variable definitions in a makefile format with the data from the hash
- ref containing all the file lists.
-
- Only most straightforward cases of variable or target definitions are
- recognized here, i.e. just "var := value", "var = value" or "target: value".
- In particular we don't support any GNU make extensions such as "export" or
- "override" without speaking of anything more complex.
-
- On top of it, currently the value should contain a single file per line with
- none at all on the first line (but this restriction could be relaxed later if
- needed), i.e. the only supported case is
-
- var = \
- foo \
- bar \
- baz
-
- and it must be followed by an empty line, too.
-
- Notice that if any of the "files" in the variable value looks like a makefile
- variable, i.e. has "$(foo)" form, it is ignored by this function, i.e. not
- removed even if it doesn't appear in the list of files (which will never be
- the case normally).
-
- Takes the (open) file handles of the files to read and to write and the file
- lists hash ref as arguments.
-
- Returns 1 if any changes were made.
-
- =head1 SEE ALSO
-
- Makefile::Update
-
- =head1 AUTHOR
-
- Vadim Zeitlin
-
- =head1 COPYRIGHT AND LICENSE
-
- This software is copyright (c) 2015 by Vadim Zeitlin.
-
- This is free software; you can redistribute it and/or modify it under
- the same terms as the Perl 5 programming language system itself.
-
- =cut
MAKEFILE_UPDATE_MAKEFILE
$fatpacked{"Makefile/Update/VCProj.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MAKEFILE_UPDATE_VCPROJ';
@@ -1086,9 +976,32 @@ $fatpacked{"Makefile/Update/VCProj.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\
use strict;
use warnings;
- our $VERSION = '0.3'; # VERSION
+ # VERSION
+ =head1 SYNOPSIS
+ The function L can be used to update the list of headers and
+ sources in the given Visual C++ project file C:
+
+ use Makefile::Update::VCProj;
+ upmake_msbuild_project('project.vcproj', \@sources, \@headers);
+
+ =head1 SEE ALSO
+
+ Makefile::Update, Makefile::Update::MSBuild
+
+ =cut
+
+ =func update_vcproj
+
+ Update sources and headers in a VC++ project.
+
+ Parameters: input and output file handles, array references to the sources
+ and the headers to be used in this project and a callback used to determine
+ the filter for the new files.
+
+ Returns 1 if any changes were made.
+ =cut
sub update_vcproj
{
@@ -1252,57 +1165,6 @@ $fatpacked{"Makefile/Update/VCProj.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\
$changed
}
-
- __END__
-
- =pod
-
- =encoding UTF-8
-
- =head1 NAME
-
- Makefile::Update::VCProj - Update list of sources and headers in Visual C++ projects.
-
- =head1 VERSION
-
- version 0.3
-
- =head1 SYNOPSIS
-
- The function L can be used to update the list of headers and
- sources in the given Visual C++ project file C:
-
- use Makefile::Update::VCProj;
- upmake_msbuild_project('project.vcproj', \@sources, \@headers);
-
- =head1 FUNCTIONS
-
- =head2 update_vcproj
-
- Update sources and headers in a VC++ project.
-
- Parameters: input and output file handles, array references to the sources
- and the headers to be used in this project and a callback used to determine
- the filter for the new files.
-
- Returns 1 if any changes were made.
-
- =head1 SEE ALSO
-
- Makefile::Update, Makefile::Update::MSBuild
-
- =head1 AUTHOR
-
- Vadim Zeitlin
-
- =head1 COPYRIGHT AND LICENSE
-
- This software is copyright (c) 2015 by Vadim Zeitlin.
-
- This is free software; you can redistribute it and/or modify it under
- the same terms as the Perl 5 programming language system itself.
-
- =cut
MAKEFILE_UPDATE_VCPROJ
s/^ //mg for values %fatpacked;
@@ -1313,15 +1175,17 @@ no strict 'refs';
if ($] < 5.008) {
*{"${class}::INC"} = sub {
- if (my $fat = $_[0]{$_[1]}) {
- return sub {
- return 0 unless length $fat;
- $fat =~ s/^([^\n]*\n?)//;
- $_ = $1;
- return 1;
- };
- }
- return;
+ if (my $fat = $_[0]{$_[1]}) {
+ my $pos = 0;
+ my $last = length $fat;
+ return (sub {
+ return 0 if $pos == $last;
+ my $next = (1 + index $fat, "\n", $pos) || $last;
+ $_ .= substr $fat, $pos, $next - $pos;
+ $pos = $next;
+ return 1;
+ });
+ }
};
}