diff --git a/lib/rscons.rb b/lib/rscons.rb index 5691fc1..bfe4204 100644 --- a/lib/rscons.rb +++ b/lib/rscons.rb @@ -4,6 +4,7 @@ require_relative "rscons/builder" require_relative "rscons/cache" require_relative "rscons/environment" require_relative "rscons/job_set" +require_relative "rscons/script" require_relative "rscons/threaded_command" require_relative "rscons/varset" require_relative "rscons/version" diff --git a/lib/rscons/script.rb b/lib/rscons/script.rb new file mode 100644 index 0000000..16f905f --- /dev/null +++ b/lib/rscons/script.rb @@ -0,0 +1,27 @@ +module Rscons + + # The Script class encapsulates the state of a build script. It also provides + # the DSL for the build script to use. + class Script + + class << self + + # Load a script from the specified file. + # + # @param path [String] + # File name of the rscons script to load. + # + # @return [Script] + # The loaded script state. + def load(path) + script_contents = File.read(path, mode: "rb") + script = Script.new + script.instance_eval(script_contents, path, 1) + script + end + + end + + end + +end