37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| 
								 | 
							
								task("shader")
							 | 
						||
| 
								 | 
							
								    -- Set the run script
							 | 
						||
| 
								 | 
							
								    on_run(function ()
							 | 
						||
| 
								 | 
							
								        -- Import parameter option module
							 | 
						||
| 
								 | 
							
								        import("core.project.config")
							 | 
						||
| 
								 | 
							
								        -- Loading configuration
							 | 
						||
| 
								 | 
							
								        config.load()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        -- Get the GLSLC binary path
							 | 
						||
| 
								 | 
							
								        glslc_path = config.get("glslc_path")
							 | 
						||
| 
								 | 
							
								        if config.get("glslc_path") == "" then
							 | 
						||
| 
								 | 
							
								            glslc_path = "/usr/bin/glslc"
							 | 
						||
| 
								 | 
							
								            config.set("glslc_path", glslc_path)
							 | 
						||
| 
								 | 
							
								            config.save()
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if os.exists(glslc_path) then
							 | 
						||
| 
								 | 
							
								            os.execv(glslc_path, { "shaders/simple_shader.vert", "-o", "shaders/simple_shader.vert.spv" })
							 | 
						||
| 
								 | 
							
								            os.execv(glslc_path, { "shaders/simple_shader.frag", "-o", "shaders/simple_shader.frag.spv" })
							 | 
						||
| 
								 | 
							
								            
							 | 
						||
| 
								 | 
							
								            cprint("${green}Shader built successfully!${clear}")
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								            os.raise(format("${red} GLSLC path doesn't exists: %s", glslc_path))
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								    end)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    set_menu{
							 | 
						||
| 
								 | 
							
								        -- Settings menu usage
							 | 
						||
| 
								 | 
							
								        usage = "xmake shader",
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        -- Setup menu description
							 | 
						||
| 
								 | 
							
								        description = "Build shaders",
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        -- Setup menu options
							 | 
						||
| 
								 | 
							
								        {}
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								task_end()
							 |