mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
They are both about handling core gnucash objects. Qof was once split out in an attempt to make it a separate library. This hasn't worked out so there's no good reason any more to keep this artificial separation. A few considerations: - The qof tests are merged into the engine test directory but they are kept as a separate test entity for now. Several assumptions made in the qof tests are no longer valid in the context of the engine. (For example if the pricedb test is added in the same test executable as the qofbook test, the book creation test fails because it now has 2 collections (pricedb and book) instead of only one. There are plenty of others like this so merging the tests needs more careful review and is perhaps best done while converting to c++/Google test. - I had to use unique names for the MockBackend classes because apparently the tests were using a MockClass from another file in the cmake builds, causing several tests to fail.
84 lines
2.6 KiB
Perl
84 lines
2.6 KiB
Perl
#!@-PERL-@ -w
|
|
# -*- perl -*-
|
|
#
|
|
# This perl script is used to make po/POTFILES.in, the list
|
|
# of files to be searched for translatable strings.
|
|
#
|
|
# It will exclude any files listed in po/POTFILES.skip, po/POTFILES.ignore
|
|
# or that match the regexp patterns listed in @ignorepatterns.
|
|
#
|
|
# Author: Dave Peticolas <dave@krondo.com>
|
|
|
|
use strict;
|
|
use File::Basename;
|
|
|
|
# Note: These are perl regexp patterns, *not* normal shell wildcards!
|
|
my @ignorepatterns = ('gw-', 'test', 'experimental', 'python-bindings', 'swig-.*\.c');
|
|
my (@skipped_files, @ignored_files);
|
|
open(IN, "< @-SRCDIR-@/po/POTFILES.skip");
|
|
while (<IN>) {
|
|
push @skipped_files, $_ unless $_ =~ /^\#/;
|
|
}
|
|
close IN;
|
|
open(IN, "< @-SRCDIR-@/po/POTFILES.ignore");
|
|
while (<IN>) {
|
|
push @ignored_files, $_ unless $_ =~ /^\#/;
|
|
}
|
|
close IN;
|
|
|
|
# Sort filenames in POTFILES.in in a consistent way
|
|
# This reduces the amount of clutter in our version manangement system
|
|
# The files will be sorted
|
|
# * per directory
|
|
# * case-insensitive
|
|
# * ignoring punctuation (-,_,.)
|
|
#
|
|
# This sort function has been extracted into a separate file (util/elegant-sort.pl)
|
|
# in order to use the same algorithm in both cmake and autools based builds
|
|
|
|
my @possible_files = `cd @-SRCDIR-@ && \\
|
|
find src lib -name '*.c' \\
|
|
-o -name '*.cpp' -o -name '*.glade' \\
|
|
-o -name '*.desktop.in' -o -name '*.keys.in' \\
|
|
-o -name '*.gschema.xml.in.in' -o -name '*.scm' \\
|
|
| util/elegant-sort.pl`;
|
|
## For perl files add the following:
|
|
# -o -name '*.pl'
|
|
|
|
print "# This is a list of files which contain translatable strings.\n";
|
|
print "# This file was generated by ../make-gnucash-potfiles.\n";
|
|
|
|
my %ignores;
|
|
foreach my $file (@possible_files) {
|
|
chomp($file);
|
|
my ($name, $path) = fileparse($file);
|
|
$path =~ s/^\.\///;
|
|
|
|
foreach my $pat (@ignorepatterns, @skipped_files, @ignored_files) {
|
|
chomp($pat);
|
|
next unless $pat;
|
|
|
|
if ($file =~ m/$pat/ || $name =~ m/$pat/ || $path =~ m/$pat/) {
|
|
$ignores{$path . $name} = 1;
|
|
}
|
|
}
|
|
next if $ignores{$path . $name};
|
|
|
|
# Ignore unreadable files, e.g. dangling symlinks
|
|
next unless (-r "@-SRCDIR-@/" . $path . $name);
|
|
|
|
# Force parse type for gsettings files
|
|
my $type = "";
|
|
if ($file =~ m/.gschema.xml.in.in/ ){
|
|
$type = "[type: gettext/gsettings]";
|
|
}
|
|
|
|
print $type . $path . $name . "\n";
|
|
}
|
|
|
|
# These are also added, even though they are outside of src/
|
|
print "src/gnome/gnucash.appdata.xml.in\n";
|
|
print "src/gnome/gnucash.desktop.in.in\n";
|
|
print "src/engine/qofbookslots.h\n";
|
|
print "doc/tip_of_the_day.list.in\n";
|