Use glslminifier to minifiy shaders for Release builds (#690)

This commit is contained in:
Ben Doherty
2019-01-10 10:23:23 -08:00
committed by GitHub
parent 206512add0
commit 045274bbdb
2 changed files with 26 additions and 4 deletions

View File

@@ -390,5 +390,5 @@ endif()
# Generate exported executables for cross-compiled builds (Android, WebGL, and iOS)
if (NOT CMAKE_CROSSCOMPILING)
export(TARGETS matc cmgen filamesh mipgen resgen FILE ${IMPORT_EXECUTABLES})
export(TARGETS matc cmgen filamesh mipgen resgen glslminifier FILE ${IMPORT_EXECUTABLES})
endif()

View File

@@ -45,6 +45,28 @@ set(SHADERS
src/variables.fs
src/variables.vs)
set(MINIFIED_DIR ${CMAKE_CURRENT_BINARY_DIR}/minified)
file(MAKE_DIRECTORY ${MINIFIED_DIR})
# After the foreach loop, SHADERS_MIN will contain the paths to the minified shaders.
set(SHADERS_MIN)
foreach(SHADER_FILE ${SHADERS})
get_filename_component(SHADER_NAME ${SHADER_FILE} NAME)
set(SHADER_RAW ${CMAKE_CURRENT_SOURCE_DIR}/${SHADER_FILE})
set(SHADER_MIN ${MINIFIED_DIR}/${SHADER_NAME})
# For Debug builds, pass the "-Onone" flag to perform no minification. This is helpful for
# debugging shaders.
add_custom_command(
OUTPUT ${SHADER_MIN}
COMMAND glslminifier "$<$<CONFIG:DEBUG>:-Onone>" -o ${SHADER_MIN} ${SHADER_RAW}
DEPENDS glslminifier ${SHADER_RAW}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Minifying shader ${SHADER_NAME}"
)
list(APPEND SHADERS_MIN ${SHADER_MIN})
endforeach()
# ==================================================================================================
# Code generation
# ==================================================================================================
@@ -54,9 +76,9 @@ get_resgen_vars(${RESOURCE_DIR} shaders)
add_custom_command(
OUTPUT ${RESGEN_OUTPUTS}
COMMAND resgen --text --keep ${RESGEN_FLAGS} ${SHADERS}
DEPENDS resgen ${SHADERS}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND resgen --text --keep ${RESGEN_FLAGS} ${SHADERS_MIN}
DEPENDS resgen ${SHADERS_MIN}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Aggregating shaders"
)