File: SConscript

package info (click to toggle)
nsis 3.04-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 12,076 kB
  • sloc: cpp: 36,735; ansic: 26,691; python: 1,282; asm: 712; xml: 511; pascal: 215; makefile: 205
file content (103 lines) | stat: -rwxr-xr-x 1,843 bytes parent folder | download
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
files = Split("""
	bgbg.c
	components.c
	exec.c
	fileform.c
	Main.c
	plugin.c
	Ui.c
	util.c
	#Source/crc32.c
""")

resources = Split("""
	resource.rc
""")

resource_files = Split("""
	nsis.ico
	uninst.ico
	bitmap1.bmp
""")

bzip2_files = Split("""
	#Source/bzip2/bzlib.c
	#Source/bzip2/decompress.c
	#Source/bzip2/huffman.c
""")

lzma_files = Split("""
	#Source/7zip/LZMADecode.c
""")

zlib_files = Split("""
	#Source/zlib/INFBLOCK.C
""")

libs = Split("""
	kernel32
	user32
	gdi32
	shell32
	advapi32
	comdlg32
	comctl32
	ole32
	uuid
""")

Import('env compression solid_compression')

### Defines

env.Append(CPPDEFINES = ['EXEHEAD'])
env.Append(CPPDEFINES = ['WIN32_LEAN_AND_MEAN'])
env.Append(CPPDEFINES = ['_WIN32_IE=0x0500'])

### Some other settings

if 'NSIS_CONFIG_LOG_STDOUT' in env['NSIS_CPPDEFINES']:
	env.Append(LINKFLAGS = env['SUBSYS_CON'])
else:
	env.Append(LINKFLAGS = env['SUBSYS_WIN'])

### Compression specific configuration

if compression == 'bzip2':
	env.Append(CPPDEFINES = ['NSIS_COMPRESS_USE_BZIP2'])
	files += bzip2_files
elif compression == 'lzma':
	env.Append(CPPDEFINES = ['NSIS_COMPRESS_USE_LZMA'])
	env.Append(CPPDEFINES = ['LZMACALL=__fastcall'])
	files += lzma_files
elif compression == 'zlib':
	env.Append(CPPDEFINES = ['NSIS_COMPRESS_USE_ZLIB'])
	env.Append(CPPDEFINES = ['ZEXPORT=__stdcall'])
	files += zlib_files

if solid_compression:
	env.Append(CPPDEFINES = ['NSIS_COMPRESS_WHOLE'])

### Build with no sub-build-directories

objs = []

def basename(file):
	return file.split('/')[-1].split('.')[0]

for file in files:
	objs.append(env.Object(target = basename(file), source = file))

### Resources

res = env.RES(resources)
env.Depends(res, resource_files)
objs = objs + res

### Build stub

stub = env.Program(target = 'stub_' + compression, source = objs, LIBS = libs)

### Return stub

Return('stub')