Skip to content

Instantly share code, notes, and snippets.

@CAMOBAP
Last active January 13, 2021 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CAMOBAP/0a31ea4f4752c5241e6e7bb72e73e38c to your computer and use it in GitHub Desktop.
Save CAMOBAP/0a31ea4f4752c5241e6e7bb72e73e38c to your computer and use it in GitHub Desktop.
/**
* Prerequisites:
* 1. Place glslangValidator binaries to ${project.rootProject.projectDir}/tools,
* can be taken from https://github.com/floooh/oryol/tree/master/tools
* 2. By default this plugin look for config in path
* ${project.rootProject.projectDir}/config/quality/glslangValidator.conf
*/
class glslExtension {
String src
String config
}
project.extensions.create("glsl", glslExtension)
project.afterEvaluate {
def isWin = org.apache.tools.ant.taskdefs.condition.Os.isFamily(org.apache.tools.ant.taskdefs.condition.Os.FAMILY_WINDOWS)
def execPostfix = isWin ? '.exe' : ''
def src = project.fileTree(dir: project.glsl.src, includes: ['**/*.vert',
'**/*.tesc',
'**/*.geom',
'**/*.frag',
'**/*.comp']).asPath
def cfg = project.glsl.config ? project.glsl.config :
"${project.rootProject.projectDir}/config/quality/glslangValidator.conf"
def glslValidationTask = project.tasks.create(name: "glslValidate", type: Exec) {
group 'GLSL'
description 'validate glsl sources'
workingDir project.buildDir
commandLine "${project.rootProject.projectDir}/tools/glslangValidator${execPostfix}",
'-v',
'-m',
cfg,
src
}
project.tasks.check.dependsOn glslValidationTask
}
apply plugin: 'com.android.application'
...
apply from: rootProject.file('gradle/glsl.gradle')
...
glsl {
src 'src/main/assets'
}
android {
...
}
dependencies {
...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment