aboutsummaryrefslogtreecommitdiff
path: root/src/tools/msvc/build.pl
blob: 007e3c73b25261f8898e641169122d0189619042 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# -*-perl-*- hey - emacs - this is a perl file

# src/tools/msvc/build.pl

BEGIN
{

	chdir("../../..") if (-d "../msvc" && -d "../../../src");

}

use lib "src/tools/msvc";

use Cwd;

use Mkvcbuild;

# buildenv.pl is for specifying the build environment settings
# it should contain lines like:
# $ENV{PATH} = "c:/path/to/bison/bin;$ENV{PATH}";

if (-e "src/tools/msvc/buildenv.pl")
{
	require "src/tools/msvc/buildenv.pl";
}
elsif (-e "./buildenv.pl")
{
	require "./buildenv.pl";
}

# set up the project
our $config;
require "config_default.pl";
require "config.pl" if (-f "src/tools/msvc/config.pl");

my $vcver = Mkvcbuild::mkvcbuild($config);

# check what sort of build we are doing

my $bconf     = $ENV{CONFIG} || "Release";
my $buildwhat = $ARGV[1]     || "";
if (uc($ARGV[0]) eq 'DEBUG')
{
	$bconf = "Debug";
}
elsif (uc($ARGV[0]) ne "RELEASE")
{
	$buildwhat = $ARGV[0] || "";
}

# ... and do it

if ($buildwhat and $vcver >= 10.00)
{
	system(
		"msbuild $buildwhat.vcxproj /verbosity:normal /p:Configuration=$bconf"
	);
}
elsif ($buildwhat)
{
	system("vcbuild $buildwhat.vcproj $bconf");
}
else
{
	system("msbuild pgsql.sln /verbosity:normal /p:Configuration=$bconf");
}

# report status

$status = $? >> 8;

exit $status;