-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbake.py
More file actions
60 lines (51 loc) · 2.53 KB
/
bake.py
File metadata and controls
60 lines (51 loc) · 2.53 KB
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
import os
import importlib.util
bakerModuleSpec = importlib.util.spec_from_file_location("baker", os.path.join(os.environ['HATCHERY_SOURCES'], 'baker', 'baker.py'))
baker = importlib.util.module_from_spec(bakerModuleSpec)
bakerModuleSpec.loader.exec_module(baker)
######################## Dependencies
baker.compileDependencies = [
os.path.join(os.environ['HATCHERY_SOURCES'], 'glade'),
os.path.join(os.environ['HATCHERY_VENDOR'], 'lodepng'),
]
######################## Compiler
baker.compilerOutputDir = os.path.join(os.environ['HATCHERY_BUILDS'], 'thatworld', 'obj')
baker.compilerIncludes.extend([
os.path.join(os.environ['HATCHERY_SOURCES'], 'thatworld' , 'include'), #wtf
os.path.join(os.environ['HATCHERY_SOURCES'], 'glade' , 'include'), # public includes should be copied to dist and used from there
os.path.join(os.environ['HATCHERY_VENDOR'] , 'OpenGL' , 'include'),
os.path.join(os.environ['HATCHERY_VENDOR'], 'sha1'),
])
baker.compilerSources = [
os.path.join(os.environ['HATCHERY_SOURCES'], 'thatworld', 'src', 'states', 'Play.cpp'),
os.path.join(os.environ['HATCHERY_SOURCES'], 'thatworld', 'src', 'blocks', 'Collectable.cpp'),
os.path.join(os.environ['HATCHERY_SOURCES'], 'thatworld', 'src', 'blocks', 'Terrain.cpp'),
os.path.join(os.environ['HATCHERY_SOURCES'], 'thatworld', 'src', 'ResourceManager.cpp'),
os.path.join(os.environ['HATCHERY_SOURCES'], 'thatworld', 'src', 'main.cpp'),
os.path.join(os.environ['HATCHERY_VENDOR'], 'sha1', 'sha1.cpp'), # create separate bake file for that
]
######################## Linker
baker.linkerOutputFilename = os.path.join(os.environ['HATCHERY_BUILDS'], 'thatworld', 'game.exe')
baker.linkerLibPath.extend([
os.path.join(os.environ['HATCHERY_VENDOR'], 'freetype-windows-binaries', 'win64')
])
baker.linkerObjects = [
'kernel32.lib',
'user32.lib',
'gdi32.lib',
'Opengl32.lib',
'DbgHelp.lib',
'freetype.lib',
os.path.join(os.environ['HATCHERY_BUILDS'], 'glade', '*.obj'),
os.path.join(os.environ['HATCHERY_BUILDS'], 'thatworld', 'obj', '*.obj'),
os.path.join(os.environ['HATCHERY_BUILDS'], 'lodepng', '*.obj'),
]
######################## Run
baker.parseCommandLine()
baker.sanitizeBakeInput()
baker.compile()
baker.linkExe()
######################## Copy FIXME baker copy function should copy file-by-file
# FIXME copy freetype.dll
baker.copyDir(os.path.join(os.environ['HATCHERY_SOURCES'], 'thatworld', 'assets'), os.path.join(os.environ['HATCHERY_BUILDS'], 'thatworld', 'assets'))
baker.copyDir(os.path.join(os.environ['HATCHERY_SOURCES'], 'glade', 'res'), os.path.join(os.environ['HATCHERY_BUILDS'], 'thatworld', 'assets'))