Created
April 21, 2012 12:58
-
-
Save kayru/2436983 to your computer and use it in GitHub Desktop.
Data build jamrules
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# JamPlus script | |
MODEL_TOOL = "..\\bin\\datatool.exe" ; | |
TEXTURE_TOOL = "..\\scripts\\win32\\texconv.exe" ; | |
SHADER_TOOL = "..\\scripts\\win32\\fxc.exe" ; | |
# -------------------------------------------------------------------------- | |
actions ModelAction | |
{ | |
$(MODEL_TOOL) model "$(2)" "$(1)" | |
} | |
actions TextureActionDXT5 | |
{ | |
$(TEXTURE_TOOL) -nologo -f DXT5 -o "$(1:D:\\)" "$(2:\\)" | |
} | |
actions TextureActionDXT1 | |
{ | |
$(TEXTURE_TOOL) -nologo -f DXT1 -o "$(1:D:\\)" "$(2:\\)" | |
} | |
actions TextureActionA8R8G8B8 | |
{ | |
$(TEXTURE_TOOL) -nologo -f A8R8G8B8 -o "$(1:D:\\)" "$(2:\\)" | |
} | |
actions CopyAction | |
{ | |
copy "$(2:\\)" "$(1:\\)" >nul | |
} | |
actions quietly ignore MakeDirAction | |
{ | |
mkdir $(<:\\) >nul 2>&1 | |
} | |
actions quietly ignore DeleteAction | |
{ | |
del /F $(>:\\) >nul 2>&1 | |
} | |
actions CompileVertexShaderAction | |
{ | |
"$(SHADER_TOOL)" /nologo /Tvs_3_0 /Zi /D_PC_ /D_DX9_ /Fo"$(1)" "$(2)" | |
} | |
actions CompilePixelShaderAction | |
{ | |
"$(SHADER_TOOL)" /nologo /Tps_3_0 /Zi /D_PC_ /D_DX9_ /Fo"$(1)" "$(2)" | |
} | |
rule MakeFileDir TARGET | |
{ | |
local DIR = $(TARGET:D) ; | |
MakeDirAction $(DIR) ; | |
Needs $(TARGET) : $(DIR) ; | |
} | |
rule ModelRule SOURCE | |
{ | |
SRC_FILE = $(PATH_CONTENT)/$(SOURCE) ; | |
DST_FILE = $(PATH_DATA)/$(SOURCE:S=.model) ; | |
MakeFileDir $(DST_FILE) ; | |
ModelAction $(DST_FILE) : $(SRC_FILE) ; | |
UseCommandLine $(DST_FILE) : $(MODEL_VERSION) ; | |
Depends $(DST_FILE) : $(MODEL_TOOL) ; | |
Depends $(DST_FILE) : $(SRC_FILE) ; | |
Depends all : $(DST_FILE) ; | |
Depends models : $(DST_FILE) ; | |
} | |
rule CopyFileRule SOURCE | |
{ | |
SRC_FILE = $(PATH_CONTENT)/$(SOURCE) ; | |
DST_FILE = $(PATH_DATA)/$(SOURCE) ; | |
MakeFileDir $(DST_FILE) ; | |
CopyAction $(DST_FILE) : $(SRC_FILE) ; | |
Depends $(DST_FILE) : $(SRC_FILE) ; | |
Depends all : $(DST_FILE) ; | |
} | |
rule TextureRule SOURCE | |
{ | |
SRC_FILE = $(SOURCE) ; | |
DST_FILE = $(PATH_DATA)/$(SRC_FILE:S=.dds) ; | |
MakeFileDir $(DST_FILE) ; | |
local TEXTURE_FORMAT ; | |
if ( $(SOURCE:L:I="_normal\\..*" ) | |
{ | |
TEXTURE_FORMAT = "normal" ; | |
TextureActionA8R8G8B8 $(DST_FILE) : $(SRC_FILE) ; | |
} | |
else if ( $(SOURCE:L:I="_n\\..*" ) | |
{ | |
TEXTURE_FORMAT = "normal" ; | |
TextureActionA8R8G8B8 $(DST_FILE) : $(SRC_FILE) ; | |
} | |
else if ( $(SOURCE:L:I="_ddn\\..*" ) | |
{ | |
TEXTURE_FORMAT = "normal" ; | |
TextureActionA8R8G8B8 $(DST_FILE) : $(SRC_FILE) ; | |
} | |
else if ( $(SOURCE:L:I="_du\\..*" ) | |
{ | |
TEXTURE_FORMAT = "diffuse_uncompressed" ; | |
TextureActionA8R8G8B8 $(DST_FILE) : $(SRC_FILE) ; | |
} | |
else if ( $(SOURCE:L:I="_level\\..*" ) | |
{ | |
TEXTURE_FORMAT = "specular_level" ; | |
TextureActionDXT5 $(DST_FILE) : $(SRC_FILE) ; | |
} | |
else if ( $(SOURCE:L:I="_specular\\..*" ) | |
{ | |
TEXTURE_FORMAT = "specular_level" ; | |
TextureActionDXT5 $(DST_FILE) : $(SRC_FILE) ; | |
} | |
else if ( $(SOURCE:L:I="_gloss\\..*" ) | |
{ | |
TEXTURE_FORMAT = "specular_gloss" ; | |
TextureActionDXT5 $(DST_FILE) : $(SRC_FILE) ; | |
} | |
else if ( $(SOURCE:L:I="_ao\\..*" ) | |
{ | |
TEXTURE_FORMAT = "ao" ; | |
TextureActionDXT1 $(DST_FILE) : $(SRC_FILE) ; | |
} | |
else | |
{ | |
TEXTURE_FORMAT = "default" ; | |
TextureActionDXT1 $(DST_FILE) : $(SRC_FILE) ; | |
} | |
UseCommandLine $(DST_FILE) : $(TEXTURE_VERSION) $(TEXTURE_FORMAT) ; | |
Depends $(DST_FILE) : $(SRC_FILE) ; | |
Depends all : $(DST_FILE) ; | |
Depends textures : $(DST_FILE) ; | |
} | |
rule ShaderBuildRule SOURCE | |
{ | |
local DST_FILE = $(PATH_DATA)/$(FILENAME).bin ; | |
local SRC_FILE = $(PATH_CONTENT)/$(SOURCE) ; | |
MakeFileDir $(DST_FILE) ; | |
if ( $(FILENAME:L:I=psh$) ) | |
{ | |
CompilePixelShaderAction $(DST_FILE) : $(SRC_FILE) ; | |
} | |
if ( $(FILENAME:L:I=vsh$) ) | |
{ | |
CompileVertexShaderAction $(DST_FILE) : $(SRC_FILE) ; | |
} | |
Depends $(DST_FILE) : $(SRC_FILE) ; | |
Depends all : $(DST_FILE) ; | |
Depends shaders : $(DST_FILE) ; | |
} | |
rule ContentBuildRule SOURCE | |
{ | |
if ( $(SOURCE:L:I=".png$") ) | |
{ | |
TextureRule $(SOURCE) ; | |
} | |
else if ( $(SOURCE:L:I=".jpg$") ) | |
{ | |
TextureRule $(SOURCE) ; | |
} | |
else if ( $(SOURCE:L:I=".tga$") ) | |
{ | |
TextureRule $(SOURCE) ; | |
} | |
else if ( $(SOURCE:L:I=".dds$") ) | |
{ | |
CopyFileRule $(SOURCE) ; | |
} | |
else if ( $(SOURCE:L:I="\\.x$") ) | |
{ | |
ModelRule $(SOURCE) ; | |
} | |
else if ( $(SOURCE:L:I="\\.svn$" ) | |
{ | |
# nothing | |
} | |
else if ( $(SOURCE:L:I="\\.max$" ) | |
{ | |
# nothing | |
} | |
else if ( $(SOURCE:L:I="\\.psd$" ) | |
{ | |
# nothing | |
} | |
else if ( $(SOURCE:L:I="\\.py$" ) | |
{ | |
# nothing | |
} | |
else if ( $(SOURCE:L:I="\\.txt$" ) | |
{ | |
# nothing | |
} | |
else if ( $(SOURCE:L:I="\\.log$" ) | |
{ | |
# nothing | |
} | |
else if ( $(SOURCE:L:I="\\.psh$" ) | |
{ | |
ShaderBuildRule $(SOURCE) ; | |
} | |
else if ( $(SOURCE:L:I="\\.vsh$" ) | |
{ | |
ShaderBuildRule $(SOURCE) ; | |
} | |
else if ( $(SOURCE:L:I=".scenexml$") ) | |
{ | |
CopyFileRule $(SOURCE) ; | |
} | |
else | |
{ | |
Echo Warning rule not found for $(SOURCE) ; | |
} | |
} | |
rule CopyDirectoryRule DIRECTORY : MASK | |
{ | |
for FILENAME in [ Glob $(DIRECTORY) : $(MASK) ] { CopyFileRule $(FILENAME) ; } | |
} | |
rule BuildDirectoryRule DIRECTORY : MASK | |
{ | |
for FILENAME in [ Glob $(DIRECTORY) : $(MASK) ] { ContentBuildRule $(FILENAME) ; } | |
} | |
rule RecursiveBuildDirectoryRule DIRECTORY : MASK | |
{ | |
for FILENAME in [ Glob $(DIRECTORY) : $(MASK) ] { ContentBuildRule $(FILENAME) ; } | |
for CURRENT_DIRECTORY in [ Glob $(DIRECTORY) : */ ] | |
{ | |
RecursiveBuildDirectoryRule $(CURRENT_DIRECTORY) : $(MASK) ; | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment