@@ -670,86 +670,84 @@ if (skia_compile_processors) {
670670
671671if (skia_compile_sksl_tests ) {
672672 import (" gn/sksl_tests.gni" )
673- sksl_fp_tests_outputs = []
674- foreach (src , sksl_fp_tests_sources ) {
675- dir = get_path_info (src , " dir" )
676- name = get_path_info (src , " name" )
677- sksl_fp_tests_outputs += [
678- " $target_out_dir /" + rebase_path (" $dir /golden/$name .cpp" , target_out_dir ),
679- " $target_out_dir /" + rebase_path (" $dir /golden/$name .h" , target_out_dir ),
680- ]
681- }
682-
683- sksl_glsl_tests_outputs = []
684- foreach (src , sksl_glsl_tests_sources ) {
685- dir = get_path_info (src , " dir" )
686- name = get_path_info (src , " name" )
687- sksl_glsl_tests_outputs +=
688- [ " $target_out_dir /" +
689- rebase_path (" $dir /golden/$name .glsl" , target_out_dir ) ]
690- }
691673
692- sksl_glsl_settings_tests_outputs = []
693- foreach (src , sksl_glsl_settings_tests_sources ) {
694- dir = get_path_info (src , " dir" )
695- name = get_path_info (src , " name" )
696- sksl_glsl_tests_outputs +=
697- [ " $target_out_dir /" +
698- rebase_path (" $dir /golden/$name .glsl" , target_out_dir ) ]
699- sksl_glsl_settings_tests_outputs +=
700- [ " $target_out_dir /" +
701- rebase_path (" $dir /golden/${ name } StandaloneSettings.glsl" ,
702- target_out_dir ) ]
703- }
704-
705- action (" compile_sksl_tests" ) {
706- # This action compiles SkSL tests with their settings enabled, i.e. in --settings mode.
707- script = " gn/compile_sksl_tests.py"
708- deps = [
709- " :create_sksl_fp" ,
710- " :sksl_pre_includes" ,
711- " :skslc(//gn/toolchain:$host_toolchain )" ,
712- ]
713- sources = sksl_fp_tests_sources + sksl_glsl_tests_sources +
714- sksl_glsl_settings_tests_sources
715- outputs = sksl_fp_tests_outputs + sksl_glsl_tests_outputs
716- args = [
717- rebase_path (skslc_path ),
718- " --settings" ,
719- ]
720- args += rebase_path (sksl_fp_tests_sources )
721- args += rebase_path (sksl_glsl_tests_sources )
722- args += rebase_path (sksl_glsl_settings_tests_sources )
723- }
724- action (" compile_sksl_tests_nosettings" ) {
725- # This action compiles SkSL tests with their settings disabled, i.e. in --nosettings mode.
726- script = " gn/compile_sksl_tests.py"
727- deps = [
728- " :create_sksl_fp" ,
729- " :sksl_pre_includes" ,
730- " :skslc(//gn/toolchain:$host_toolchain )" ,
731- ]
674+ template (" compile_sksl" ) {
675+ # Compile the passed-in `sources` into `outputs` using skslc, with the given language/settings.
676+ action (" compile_sksl_${ target_name } " ) {
677+ script = " gn/compile_sksl_tests.py"
678+ deps = [
679+ " :create_sksl_fp" ,
680+ " :sksl_pre_includes" ,
681+ " :skslc(//gn/toolchain:$host_toolchain )" ,
682+ ]
683+ sources = invoker .sources
684+ outputs = []
685+ foreach (src , sources ) {
686+ dir = get_path_info (src , " dir" )
687+ name = get_path_info (src , " name" )
688+ foreach (outputPattern , invoker .outputPatterns ) {
689+ outputs += [ target_out_dir + " /" + rebase_path (
690+ dir + outputPattern [0 ] + name + outputPattern [1 ],
691+ target_out_dir ) ]
692+ }
693+ }
694+ args = [
695+ rebase_path (skslc_path ),
696+ invoker .lang ,
697+ invoker .settings ,
698+ ]
699+ args += rebase_path (sources )
700+ }
701+ }
702+ compile_sksl (" fp_tests" ) {
703+ sources = sksl_fp_tests_sources
704+ outputPatterns = [
705+ [
706+ " /golden/" ,
707+ " .cpp" ,
708+ ],
709+ [
710+ " /golden/" ,
711+ " .h" ,
712+ ],
713+ ]
714+ lang = " --fp"
715+ settings = " --settings"
716+ }
717+ compile_sksl (" glsl_tests" ) {
718+ sources = sksl_glsl_tests_sources + sksl_glsl_settings_tests_sources
719+ outputPatterns = [ [
720+ " /golden/" ,
721+ " .glsl" ,
722+ ] ]
723+ lang = " --glsl"
724+ settings = " --settings"
725+ }
726+ compile_sksl (" glsl_nosettings_tests" ) {
732727 sources = sksl_glsl_settings_tests_sources
733- outputs = sksl_glsl_settings_tests_outputs
734- args = [
735- rebase_path ( skslc_path ) ,
736- " --nosettings " ,
737- ]
738- args += rebase_path ( sksl_glsl_settings_tests_sources )
728+ outputPatterns = [ [
729+ " /golden/ " ,
730+ " StandaloneSettings.glsl " ,
731+ ] ]
732+ lang = " --glsl "
733+ settings = " --nosettings "
739734 }
740735} else {
741- group (" compile_sksl_tests" ) {
736+ group (" compile_sksl_fp_tests" ) {
737+ }
738+ group (" compile_sksl_glsl_tests" ) {
742739 }
743- group (" compile_sksl_tests_nosettings " ) {
740+ group (" compile_sksl_glsl_nosettings_tests " ) {
744741 }
745742}
746743
747744optional (" gpu" ) {
748745 enabled = skia_enable_gpu
749746 deps = [
750747 " :compile_processors" ,
751- " :compile_sksl_tests" ,
752- " :compile_sksl_tests_nosettings" ,
748+ " :compile_sksl_fp_tests" ,
749+ " :compile_sksl_glsl_nosettings_tests" ,
750+ " :compile_sksl_glsl_tests" ,
753751 " :dehydrate_sksl" ,
754752 " :run_sksllex" ,
755753 ]
0 commit comments