Remove the anonymous function parameter from generate_list calls when
it is unnecessary. Modify the .spec.c rule to allow compilation out of $(TOPSRCDIR).
This commit is contained in:
parent
fcba601cf4
commit
35246cbb8d
|
@ -1751,11 +1751,11 @@ sub generate_project_files
|
|||
});
|
||||
}
|
||||
if (@{@$project[$P_TARGETS]} > 0) {
|
||||
generate_list("DLLS",1,\@dll_list,sub
|
||||
generate_list("DLLS",1,\@dll_list,sub
|
||||
{
|
||||
return @{$_[0]}[$T_NAME];
|
||||
});
|
||||
generate_list("EXES",1,\@exe_list,sub
|
||||
generate_list("EXES",1,\@exe_list,sub
|
||||
{
|
||||
return "@{$_[0]}[$T_NAME]";
|
||||
});
|
||||
|
@ -1763,50 +1763,26 @@ sub generate_project_files
|
|||
|
||||
print FILEO "### Global settings\n\n";
|
||||
# Make it so that the project-wide settings override the global settings
|
||||
generate_list("DEFINES",0,@$project_settings[$T_DEFINES],sub
|
||||
generate_list("DEFINES",0,@$project_settings[$T_DEFINES]);
|
||||
generate_list("",1,$global_settings[$T_DEFINES]);
|
||||
generate_list("INCLUDE_PATH",$no_extra,@$project_settings[$T_INCLUDE_PATH]);
|
||||
generate_list("",1,$global_settings[$T_INCLUDE_PATH],sub
|
||||
{
|
||||
return "$_[0]";
|
||||
});
|
||||
generate_list("",1,$global_settings[$T_DEFINES],sub
|
||||
{
|
||||
return "$_[0]";
|
||||
});
|
||||
generate_list("INCLUDE_PATH",$no_extra,@$project_settings[$T_INCLUDE_PATH],sub
|
||||
{
|
||||
return "$_[0]";
|
||||
});
|
||||
generate_list("",1,$global_settings[$T_INCLUDE_PATH],sub
|
||||
{
|
||||
if ($_[0] !~ /^-I/) {
|
||||
return "$_[0]";
|
||||
}
|
||||
if (is_absolute($')) {
|
||||
if ($_[0] !~ /^-I/ or is_absolute($')) {
|
||||
return "$_[0]";
|
||||
}
|
||||
return "-I\$(TOPSRCDIR)/$'";
|
||||
});
|
||||
generate_list("LIBRARY_PATH",$no_extra,@$project_settings[$T_LIBRARY_PATH],sub
|
||||
generate_list("LIBRARY_PATH",$no_extra,@$project_settings[$T_LIBRARY_PATH]);
|
||||
generate_list("",1,$global_settings[$T_LIBRARY_PATH],sub
|
||||
{
|
||||
return "$_[0]";
|
||||
});
|
||||
generate_list("",1,$global_settings[$T_LIBRARY_PATH],sub
|
||||
{
|
||||
if ($_[0] !~ /^-L/) {
|
||||
return "$_[0]";
|
||||
}
|
||||
if (is_absolute($')) {
|
||||
if ($_[0] !~ /^-L/ or is_absolute($')) {
|
||||
return "$_[0]";
|
||||
}
|
||||
return "-L\$(TOPSRCDIR)/$'";
|
||||
});
|
||||
generate_list("LIBRARIES",$no_extra,@$project_settings[$T_LIBRARIES],sub
|
||||
{
|
||||
return "$_[0]";
|
||||
});
|
||||
generate_list("",1,$global_settings[$T_LIBRARIES],sub
|
||||
{
|
||||
return "$_[0]";
|
||||
});
|
||||
generate_list("LIBRARIES",$no_extra,@$project_settings[$T_LIBRARIES]);
|
||||
generate_list("",1,$global_settings[$T_LIBRARIES]);
|
||||
print FILEO "\n\n";
|
||||
|
||||
my $extra_source_count=@{@$project_settings[$T_SOURCES_C]}+
|
||||
|
@ -1822,7 +1798,7 @@ sub generate_project_files
|
|||
generate_list("EXTRA_OBJS",1,["\$(EXTRA_C_SRCS:.c=.o)","\$(EXTRA_CXX_SRCS:.cpp=.o)"]);
|
||||
print FILEO "\n\n\n";
|
||||
}
|
||||
|
||||
|
||||
# Iterate over all the targets...
|
||||
foreach $target (@{@$project[$P_TARGETS]}) {
|
||||
print FILEO "### @$target[$T_NAME] sources and settings\n\n";
|
||||
|
@ -1838,25 +1814,16 @@ sub generate_project_files
|
|||
} elsif (@$target[$T_FLAGS] & $TF_WRAPPER) {
|
||||
$basename.="_wrapper";
|
||||
}
|
||||
generate_list("${canon}_SPEC_SRCS",1,[ "$basename.spec"]);
|
||||
generate_list("${canon}_LIBRARY_PATH",1,@$target[$T_LIBRARY_PATH],sub
|
||||
{
|
||||
return "$_[0]";
|
||||
});
|
||||
generate_list("${canon}_LIBRARIES",1,@$target[$T_LIBRARIES],sub
|
||||
{
|
||||
return "$_[0]";
|
||||
});
|
||||
generate_list("${canon}_DEPENDS",1,@$target[$T_DEPENDS],sub
|
||||
{
|
||||
return "$_[0]";
|
||||
});
|
||||
generate_list("${canon}_SPEC_SRCS",1,[ "$basename.spec" ]);
|
||||
generate_list("${canon}_LIBRARY_PATH",1,@$target[$T_LIBRARY_PATH]);
|
||||
generate_list("${canon}_LIBRARIES",1,@$target[$T_LIBRARIES]);
|
||||
generate_list("${canon}_DEPENDS",1,@$target[$T_DEPENDS]);
|
||||
print FILEO "\n";
|
||||
generate_list("${canon}_OBJS",1,["\$(${canon}_C_SRCS:.c=.o)","\$(${canon}_CXX_SRCS:.cpp=.o)","\$(EXTRA_OBJS)"]);
|
||||
print FILEO "\n\n\n";
|
||||
}
|
||||
print FILEO "### Global source lists\n\n";
|
||||
generate_list("C_SRCS",$no_extra,@$project[$P_TARGETS],sub
|
||||
generate_list("C_SRCS",$no_extra,@$project[$P_TARGETS],sub
|
||||
{
|
||||
my $canon=canonize(@{$_[0]}[$T_NAME]);
|
||||
$canon =~ s+_so$++;
|
||||
|
@ -1865,7 +1832,7 @@ sub generate_project_files
|
|||
if (!$no_extra) {
|
||||
generate_list("",1,[ "\$(EXTRA_C_SRCS)" ]);
|
||||
}
|
||||
generate_list("CXX_SRCS",$no_extra,@$project[$P_TARGETS],sub
|
||||
generate_list("CXX_SRCS",$no_extra,@$project[$P_TARGETS],sub
|
||||
{
|
||||
my $canon=canonize(@{$_[0]}[$T_NAME]);
|
||||
$canon =~ s+_so$++;
|
||||
|
@ -1874,7 +1841,7 @@ sub generate_project_files
|
|||
if (!$no_extra) {
|
||||
generate_list("",1,[ "\$(EXTRA_CXX_SRCS)" ]);
|
||||
}
|
||||
generate_list("RC_SRCS",$no_extra,@$project[$P_TARGETS],sub
|
||||
generate_list("RC_SRCS",$no_extra,@$project[$P_TARGETS],sub
|
||||
{
|
||||
my $canon=canonize(@{$_[0]}[$T_NAME]);
|
||||
$canon =~ s+_so$++;
|
||||
|
@ -1883,7 +1850,7 @@ sub generate_project_files
|
|||
if (!$no_extra) {
|
||||
generate_list("",1,[ "\$(EXTRA_RC_SRCS)" ]);
|
||||
}
|
||||
generate_list("SPEC_SRCS",1,@$project[$P_TARGETS],sub
|
||||
generate_list("SPEC_SRCS",1,@$project[$P_TARGETS],sub
|
||||
{
|
||||
my $canon=canonize(@{$_[0]}[$T_NAME]);
|
||||
$canon =~ s+_so$++;
|
||||
|
@ -1925,7 +1892,7 @@ sub generate_project_files
|
|||
print FILEO "\tfor i in \$(EXES:%=%.so) \$(DLLS); do \$(RM) \$(libdir)/\$\$i;done\n";
|
||||
}
|
||||
print FILEO "\n\n\n";
|
||||
|
||||
|
||||
if (@{@$project[$P_TARGETS]} > 0) {
|
||||
print FILEO "### Target specific build rules\n\n";
|
||||
foreach $target (@{@$project[$P_TARGETS]}) {
|
||||
|
@ -1936,7 +1903,7 @@ sub generate_project_files
|
|||
print FILEO "\t-\$(STRIP) \$(STRIPFLAGS) \$\@\n";
|
||||
print FILEO "\n";
|
||||
print FILEO "\$(${canon}_SPEC_SRCS:.spec=.spec.c): \$(${canon}_SPEC_SRCS:.spec) \$(${canon}_SPEC_SRCS:.spec=.tmp.o) \$(${canon}_RC_SRCS:.rc=.res)\n";
|
||||
print FILEO "\t\$(LD_PATH) \$(WINEBUILD) -fPIC \$(${canon}_LIBRARY_PATH) \$(WINE_LIBRARY_PATH) -sym \$(${canon}_SPEC_SRCS:.spec=.tmp.o) -o \$\@ -spec \$(${canon}_SPEC_SRCS)\n";
|
||||
print FILEO "\t\$(LD_PATH) \$(WINEBUILD) -fPIC \$(${canon}_LIBRARY_PATH) \$(WINE_LIBRARY_PATH) -sym \$(${canon}_SPEC_SRCS:.spec=.tmp.o) -o \$\@ -spec \$(SRCDIR)/\$(${canon}_SPEC_SRCS)\n";
|
||||
print FILEO "\n";
|
||||
my $t_name=@$target[$T_NAME];
|
||||
if (@$target[$T_TYPE]!=$TT_DLL) {
|
||||
|
@ -1956,7 +1923,7 @@ sub generate_project_files
|
|||
}
|
||||
}
|
||||
close(FILEO);
|
||||
|
||||
|
||||
foreach $target (@{@$project[$P_TARGETS]}) {
|
||||
generate_spec_file(@$project[$P_PATH],$target,$project_settings);
|
||||
if (@$target[$T_FLAGS] & $TF_WRAPPER) {
|
||||
|
|
Loading…
Reference in New Issue