passing configuration to shader build, using luafilesystem to find shader files, checking date on source/target to avoid unnecessary rebuilding