our @EXPORT_OK;
my $architecture;
+my $asanIsEnabled;
my $numberOfCPUs;
my $maxCPULoad;
my $baseProductDir;
$architecture = 'x86_64' if ($architecture =~ /amd64/ && isBSD());
}
+sub determineASanIsEnabled
+{
+ return if defined $asanIsEnabled;
+ determineBaseProductDir();
+
+ $asanIsEnabled = 0;
+ my $asanConfigurationValue;
+
+ if (open ASAN, "$baseProductDir/ASan") {
+ $asanConfigurationValue = <ASAN>;
+ close ASAN;
+ chomp $asanConfigurationValue;
+ $asanIsEnabled = 1 if $asanConfigurationValue eq "YES";
+ }
+}
+
sub determineNumberOfCPUs
{
return if defined $numberOfCPUs;
determineXcodeSDK();
my @args = ();
+ # FIXME: Is it necessary to pass --debug, --release, --32-bit or --64-bit?
+ # These are determined automatically from stored configuration.
push(@args, '--debug') if ($configuration =~ "^Debug");
push(@args, '--release') if ($configuration =~ "^Release");
push(@args, '--device') if (defined $xcodeSDK && $xcodeSDK =~ /^iphoneos/);
return $configuration;
}
+sub asanIsEnabled()
+{
+ determineASanIsEnabled();
+ return $asanIsEnabled;
+}
+
sub configurationForVisualStudio()
{
determineConfigurationForVisualStudio();
determineBaseProductDir();
determineConfiguration();
determineArchitecture();
+ determineASanIsEnabled();
determineXcodeSDK();
my @sdkOption = ($xcodeSDK ? "SDKROOT=$xcodeSDK" : ());
my @architectureOption = ($architecture ? "ARCHS=$architecture" : ());
+ my @asanOption = ($asanIsEnabled ? ("-xcconfig", sourceDir() . "/Tools/asan/asan.xcconfig", "ASAN_IGNORE=" . sourceDir() . "/Tools/asan/webkit-asan-ignore.txt") : ());
- return (@baseProductDirOption, "-configuration", $configuration, @architectureOption, @sdkOption, argumentsForXcode());
+ return (@baseProductDirOption, "-configuration", $configuration, @architectureOption, @sdkOption, @asanOption, argumentsForXcode());
}
sub XcodeOptionString