4
die "Need one argument";
8
unless ($filename =~ /\.kdevprj/) {
9
die "Not a .kdevprj file";
16
open(FILE, "<$filename") || die "File not found";
22
} elsif (/\[LFV Groups\]/) {
26
} elsif (/\[Config for BinMakefileAm\]/) {
30
} elsif (/\[(.*)\]/) {
31
push(@sourcefiles, $1);
40
} elsif (/^configure_args=(.*)/) {
42
} elsif (/^email=(.*)/) {
44
} elsif (/^make_options=(.*)/) {
46
if ($makeoptions =~ /-n/) {
49
if ($makeoptions =~ /-j([0-9]+)/) {
52
if ($makeoptions =~ /-f/) {
53
$abortonerror = "true";
55
} elsif (/^project_name=(.*)/) {
57
} elsif (/^project_type=(.*)/) {
59
} elsif (/^sub_dir=([^\/]*)/) {
67
} elsif (/(.*)=(.*)/) {
70
$pattern =~ s/^(.*),$/$1/;
71
$lfvgrouppattern{$group} = $pattern;
76
if (/^bin_program=(.*)/) {
78
} elsif (/^path_to_bin_program=(.*)/) {
79
$path_to_bin_program = $1;
80
$path_to_bin_program =~ s#^\./(.*)$#$1#;
81
$path_to_bin_program =~ s#^(.*)/#$1#;
82
$path_to_bin_program = $path_to_bin_program . "/";
83
} elsif (/^cflags=(.*)/) {
85
} elsif (/^cxxflags=(.*)/) {
93
# Choose language support
94
$primarylanguage = "C++";
95
if ($project_type eq "normal_c"
96
|| $project_type eq "normal_gnome") {
97
$primarylanguage = "C";
100
# Choose project management
101
$projectmanagement = "KDevCustomProject";
102
if ($project_type =~ /normal_kde|mini_kde|normalogl_kde|normal_kde2|mini_kde2|mdi_kde2/
103
|| $project_type =~ /kde2_normal|kicker_app|kio_slave|kc_module|kpart_plugin|ktheme/) {
104
$projectmanagement = "KDevKDEAutoProject";
106
if ($project_type =~ /normal_cpp/) {
107
$projectmanagement = "KDevAutoProject";
111
if ($project_type =~ /normal_kde|mini_kde|normalogl_kde|normal_kde2|mini_kde2|mdi_kde2/
112
|| $project_type =~ /kde2_normal|kicker_app|kio_slave|kc_module|kpart_plugin|ktheme/) {
113
$keywords = $keywords . ",KDE";
115
if ($project_type =~ /normal_kde|mini_kde|normalogl_kde|normal_kde2|mini_kde2|mdi_kde2/
116
|| $project_type =~ /kde2_normal|kicker_app|kio_slave|kc_module|kpart_plugin|ktheme/
117
|| $project_type =~ /normal_qt|normal_qt2|mdi_qt2|mdi_qextmdi/) {
118
$keywords = $keywords . ",Qt";
123
## Let's go: write project file
126
$projectfilename = $filename;
127
$projectfilename =~ s/^(.*)\.kdevprj$/$1.kdevelop/;
128
open(FILE, ">$projectfilename");
134
<author>$author</author>
135
<email>$email</email>
136
<projectmanagement>$projectmanagement</projectmanagement>
137
<primarylanguage>$primarylanguage</primarylanguage>
141
foreach $key (split(/,/, $keywords)) {
142
next if ($key eq "");
144
<keyword>$key</keyword>
153
# auto project specific
155
if ($projectmanagement eq "KDevAutoProject" || $projectmanagement eq "KDevKDEAutoProject") {
159
<mainprogram>$path_to_bin_program$bin_program</mainprogram>
162
<configargs>$configure_args</configargs>
165
<abortonerror>$abortonerror</abortonerror>
166
<numberofjobs>$numberofjobs</numberofjobs>
167
<dontact>$dontact</dontact>
171
<cflags>$cflags</cflags>
172
<cxxflags>$cxxflags</cxxflags>
178
if ($project_management eq "KDevCustomProject") {
182
<mainprogram>$path_to_bin_program/$bin_program</mainprogram>
185
<abortonerror>$abortonerror</abortonerror>
186
<numberofjobs>$numberofjobs</numberofjobs>
187
<dontact>$dontact</dontact>
201
for $group (split /,/, $lfvgroups) {
202
next if ($group eq "");
203
$pattern = $lfvgrouppattern{$group};
206
<group pattern="$pattern" name="$group" />
224
if ($projectmanagement eq "KDevAutoProject"
225
|| $projectmanagement eq "KDevKDEAutoProject") {
229
<dbgshell>libtool</dbgshell>
245
if ($projectmanagement eq "KDevCustomProject") {
246
$filelistfilename = $filename;
247
$filelistfilename =~ s/^(.*).kdevprj$/$1.filelist/;
248
open(FILE, ">$filelistfilename");
249
for $file (@sourcefiles) {
250
print FILE "$file\n";
261
if ($filename =~ m#(.*/)[^/]*#) {
265
$oldtemplatedir = "${projectdir}$subdir/templates";
267
if (open(FILE, "$oldtemplatedir/cpp_template")) {
268
mkdir "${projectdir}templates";
269
if (open(OFILE, ">${projectdir}templates/cpp")) {
271
s/\|EMAIL\|/\$EMAIL\$/;
272
s/\|AUTHOR\|/\$AUTHOR\$/;
273
s/\|VERSION\|/\$VERSION\$/;
274
s/\|DATE\|/\$DATE\$/;
275
s/\|YEAR\|/\$YEAR\$/;
276
s/\|FILENAME\|/\$FILENAME\$/;
284
if (open(FILE, "$oldtemplatedir/header_template")) {
285
mkdir "${projectdir}templates";
286
if (open(OFILE, ">${projectdir}templates/h")) {
288
s/\|EMAIL\|/\$EMAIL\$/;
289
s/\|AUTHOR\|/\$AUTHOR\$/;
290
s/\|VERSION\|/\$VERSION\$/;
291
s/\|DATE\|/\$DATE\$/;
292
s/\|YEAR\|/\$YEAR\$/;
293
s/\|FILENAME\|/\$FILENAME\$/;