summaryrefslogtreecommitdiff
path: root/build.ninja
blob: 8635232c9b535555d5f2d2fe834e74fdda922241 (plain) (blame)
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
# generated by configure.lua

cflags = /nologo /MD /std:c++20 /Isc\glslang /Iqstd /Icfg /Dplat_win /Dplat_x86 /Dallocation_default_alignment=8 /O2 /DNDEBUG

rule cpp
  command = cl $cflags $in /c /Fo: "$out"
  deps = msvc

rule link
  command = cl /nologo $in /Fe: "$out" /link  $libs

rule lib
  command = lib /nologo $in /out:"$out"

build app.obj: cpp app.cpp
build asset.obj: cpp asset.cpp
build c2.obj: cpp c2.cpp
build camera.obj: cpp camera.cpp
build debugdraw.obj: cpp debugdraw.cpp
build editor.obj: cpp editor.cpp
build lighting.obj: cpp lighting.cpp
build maths.obj: cpp maths.cpp
build model.obj: cpp model.cpp
build physics.obj: cpp physics.cpp
build pipeline.obj: cpp pipeline.cpp
build renderer.obj: cpp renderer.cpp
build scene.obj: cpp scene.cpp
build ui.obj: cpp ui.cpp
build video.obj: cpp video.cpp
build world.obj: cpp world.cpp
build c2.exe: link qstd/qstd.lib app.obj asset.obj c2.obj camera.obj debugdraw.obj editor.obj lighting.obj maths.obj model.obj physics.obj pipeline.obj renderer.obj scene.obj ui.obj video.obj world.obj
  libs = user32.lib

build qstd/memory.obj: cpp qstd/memory.c
build qstd/plat.obj: cpp qstd/plat.c
build qstd/str.obj: cpp qstd/str.c
build qstd/pack.obj: cpp qstd/pack.c
build qstd/qstd.lib: lib qstd/memory.obj qstd/plat.obj qstd/str.obj qstd/pack.obj

build cfg/cfgparse.obj: cpp cfg/cfgparse.c
build cfg/cfg.lib: lib cfg/cfgparse.obj

build sc/sc.obj: cpp sc/sc.cpp
build sc/includer.obj: cpp sc/includer.cpp
build shadercompiler.exe: link sc/sc.obj sc/includer.obj qstd/qstd.lib cfg/cfg.lib
  libs = /LIBPATH:sc/glslang/build/glslang/Release /LIBPATH:sc/glslang/build/SPIRV/Release /LIBPATH:sc/glslang/build/glslang/OSDependent/Windows/Release /LIBPATH:sc/glslang/build/External/spirv-tools/source/Release /LIBPATH:sc/glslang/build/External/spirv-tools/source/link/Release /LIBPATH:sc/glslang/build/External/spirv-tools/source/opt/Release glslang.lib glslang-default-resource-limits.lib SPIRV.lib MachineIndependent.lib SPVRemapper.lib OSDependent.lib GenericCodeGen.lib SPIRV-Tools-link.lib SPIRV-Tools-opt.lib SPIRV-Tools.lib 

build ./packer.obj: cpp ./packer.c
build packer.exe: link ./packer.obj qstd/qstd.lib


build ./convtexture.obj: cpp ./convtexture.c
build convtexture.exe: link ./convtexture.obj qstd/qstd.lib


build ./convmodel.obj: cpp ./convmodel.c
build convmodel.exe: link ./convmodel.obj qstd/qstd.lib


build ./convmaterial.obj: cpp ./convmaterial.c
build convmaterial.exe: link ./convmaterial.obj qstd/qstd.lib cfg/cfg.lib


rule shadercompiler
  command = shadercompiler.exe $in $out

rule convmaterial
  command = convmaterial.exe $in $out

rule convmodel
  command = convmodel.exe data $in $out

rule convtexture
  command = convtexture.exe $in $out $format

rule packer
  command = packer.exe $out -data $in

build data/debug.csh: shadercompiler intermediate/debug.glsl | shadercompiler.exe
build data/mip_spec.csh: shadercompiler intermediate/mip_spec.glsl | shadercompiler.exe
build data/sky.csh: shadercompiler intermediate/sky.glsl | shadercompiler.exe
build data/surface.csh: shadercompiler intermediate/surface.glsl | shadercompiler.exe
build data/surface_depthonly.csh: shadercompiler intermediate/surface_depthonly.glsl | shadercompiler.exe
build data/tonemap.csh: shadercompiler intermediate/tonemap.glsl | shadercompiler.exe
build data/triangle.csh: shadercompiler intermediate/triangle.glsl | shadercompiler.exe
build data/ts.csh: shadercompiler intermediate/ts.glsl | shadercompiler.exe
build data/ui.csh: shadercompiler intermediate/ui.glsl | shadercompiler.exe

build data/monkey.mdl: convmodel intermediate/monkey.glb | convmodel.exe data/debug.csh data/mip_spec.csh data/sky.csh data/surface.csh data/surface_depthonly.csh data/tonemap.csh data/triangle.csh data/ts.csh data/ui.csh
build data/cube.mdl: convmodel intermediate/cube.glb | convmodel.exe data/debug.csh data/mip_spec.csh data/sky.csh data/surface.csh data/surface_depthonly.csh data/tonemap.csh data/triangle.csh data/ts.csh data/ui.csh
build data/scene.mdl: convmodel intermediate/scene.glb | convmodel.exe data/debug.csh data/mip_spec.csh data/sky.csh data/surface.csh data/surface_depthonly.csh data/tonemap.csh data/triangle.csh data/ts.csh data/ui.csh

build data/bricks.mat: convmaterial intermediate/bricks.mat | convmaterial.exe
build data/plastic.mat: convmaterial intermediate/plastic.mat | convmaterial.exe
build data/greybox.mat: convmaterial intermediate/greybox.mat | convmaterial.exe

build data/22.tex: convtexture intermediate/22.bmp | convtexture.exe
  format = bc1
build data/kita.tex: convtexture intermediate/kita.bmp | convtexture.exe
  format = bc1
build data/brick_albedo.tex: convtexture intermediate/brick_albedo.bmp | convtexture.exe
  format = bc1
build data/brick_ao.tex: convtexture intermediate/brick_ao.bmp | convtexture.exe
  format = bc4
build data/brick_normal.tex: convtexture intermediate/brick_normal.bmp | convtexture.exe
  format = bc5
build data/sky.tex: convtexture intermediate/sky.hdr | convtexture.exe
  format = rgba16f

build pack: packer data/debug.csh data/mip_spec.csh data/sky.csh data/surface.csh data/surface_depthonly.csh data/tonemap.csh data/triangle.csh data/ts.csh data/ui.csh data/monkey.mdl data/cube.mdl data/scene.mdl data/bricks.mat data/plastic.mat data/greybox.mat data/22.tex data/kita.tex data/brick_albedo.tex data/brick_ao.tex data/brick_normal.tex data/sky.tex | packer.exe