File: win32-settings.py

package info (click to toggle)
yafray 0.0.9+dfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 1,856 kB
  • ctags: 4,334
  • sloc: cpp: 26,560; python: 418; makefile: 208; sh: 118
file content (117 lines) | stat: -rw-r--r-- 3,372 bytes parent folder | download | duplicates (3)
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import shutil
import re
import os
import globalinfo

srcroot = os.getcwd()
prefix = ''

def init(args):
	global prefix
	prefix=args.get('prefix',os.getcwd() + os.sep + 'win32pak' )

def get_libpath(args): return prefix
def get_pluginpath(args): return prefix+ os.sep+"plugins"
def get_binpath(args): return prefix
def get_confpath(args): return prefix
def get_cxxflags(args):
	debug=args.get('debug',0)
	arch=args.get('arch','')
	flags = '/DWIN32 /D_WIN32 /D_USE_MATH_DEFINES /EHsc /DHAVE_CONFIG_H'
	if debug:
		flags+=' /Zi /GS /RTC1 /Yd /MTd'
	else:
#		flags+=' /Ox /MD /D_STATIC_CPPLIB'
		flags+=' /Ogitypb1 /Gs /MD /D_STATIC_CPPLIB'
	if arch!='':
		flags+=' /'+arch
	return flags

class exr(globalinfo.library):
	PATH = None
	C_ID = 'EXR'
	def present(args):
		if not zlib.present(args) : return False

		exr.PATH = args.get('exr_path',None)
		dyn = args.get('dynamic_exr',False)
		if exr.PATH is None and dyn : exr.PATH = srcroot + '\\..\\libs\\msvc\\openexr'
		if exr.PATH is None and not dyn : exr.PATH = srcroot + '\\..\\libs\\msvc\\openexr_static'
		if os.path.exists(exr.PATH + "\\include\\OpenEXR\\half.h"):
			return True
		else:
			return False
		
	def get_include(args): return zlib.get_include(args) + [ exr.PATH + "\\include\\OpenEXR" ]
	def get_libpath(args): return zlib.get_libpath(args) + [ exr.PATH + "\\lib" ]
	def get_libs(args): return zlib.get_libs(args) + ['IlmImf', 'Imath', 'Iex', 'Half']

class jpeg(globalinfo.library):
	PATH = srcroot + "\\..\\libs\\msvc\\jpeg"
	C_ID = 'JPEG'

	def present(args): return os.path.exists(jpeg.PATH + "\\include\\jpeglib.h")
	def get_include(args): return [jpeg.PATH + "\\include"]
	def get_libpath(args): return [jpeg.PATH + "\\lib"]
	def get_libs(args): return ['libjpeg']

class pthread(globalinfo.library):
	C_ID = 'PTHREAD'
	PATH = srcroot + "\\..\\libs\\msvc\\pthreads"

	def present(args): return os.path.exists(pthread.PATH + "\\include\\pthread.h")
	def get_include(args): return [pthread.PATH + "\\include"]
	def get_libpath(args): return [pthread.PATH + "\\lib"]
	def get_libs(args): return ['pthreadVC']

class zlib(globalinfo.library):
	C_ID = 'ZLIB'
	PATH = srcroot + "\\..\\libs\\msvc\\zlib"

	def present(args): return os.path.exists(zlib.PATH + "\\include\\zlib.h")
	def get_include(args): return [zlib.PATH + "\\include"]
	def get_libpath(args): return [zlib.PATH + "\\lib"]
	def get_libs(args): return ['zlib']

class dynload(globalinfo.library):
	C_ID = 'DL'

	def present(args): return False
	def get_include(args): return []
	def get_libpath(args): return []
	def get_libs(args): return []

def derive_shared_env(common_env):
	return common_env.Copy()

def derive_plugin_env(common_env):
	return common_env.Copy()

def derive_program_env(common_env):
	return common_env.Copy()

def package_rule(args):
	return ('win32installer',makewin32package)

# AUXILIAR

def replaceInFile(remp, name, out):
	inf=open(name,'r')
	outf=open(out,'w')
	line=inf.readline();
	while line:
		for x in remp:
			line=re.sub(x[0],x[1],line)
		outf.write(line)
		line=inf.readline();
	outf.close();
	inf.close();

def makewin32package(target,source,env):
	print 'building Win32 installer ...'
	pak=os.getcwd()+os.sep+'win32pak'
	template=pak+os.sep+'yafray_win_iss.tmpl'
	result=  pak+os.sep+'yafray_win.iss'
	if os.path.isfile(result):
		os.unlink(result)
	replaceInFile([ ['SRCROOT', pak] ], template, result)