conjure-engine/Demo1/CompileShaders.py

46 lines
1.3 KiB
Python

import os
import sys
import subprocess
import logging
os.chdir(sys.argv[1])
# Configure logging
logging.basicConfig(
filename=os.path.join(sys.argv[2], "CompileShaders.log"), # Log file name
filemode="w", # Append mode (use "w" for overwrite)
format="%(asctime)s - %(levelname)s - %(message)s", # Log format
level=logging.INFO # Logging level
)
def filterFunc(fileName):
params = fileName.split(".")
return params[len(params) - 1] != "spv"
def __main__():
SHADERS_PATH = os.path.join(os.getcwd())
if os.name == "nt":
GLSLC_PATH = os.path.join(os.environ.get("VULKAN_SDK"), "bin", "glslc")
else:
GLSLC_PATH = "/usr/local/bin/glslc"
logging.info(str.join(" ", ["SHADER PATH:", SHADERS_PATH]))
logging.info(str.join(" ", ["GLSLC PATH:", GLSLC_PATH]))
shaders = filter(filterFunc, os.listdir(SHADERS_PATH))
for shader in shaders:
name, ext = shader.split(".")
command = GLSLC_PATH
args = [
os.path.join(SHADERS_PATH, shader),
"-o",
os.path.join(SHADERS_PATH, name + "." + ext + ".spv")
]
logging.info(str.join(" ", ["Compiling:", shader]))
logging.info(str.join(" ", [command] + args))
subprocess.Popen([command] + args)
if __name__ == "__main__":
__main__()