Lights can be dynamic (uniforms) or not... in the last case their values get assigned inside the main() function of the shader.