Added extra test platform.
[cl-glfw.git] / generators / make-opengl-bindings.rb
blob6603314823594653a8cf304d95128fe55ffeec59
1 #!/usr/bin/env ruby
3 require 'fileutils'
5 BASE=File::dirname($0)+'/..'
6 #Dir::chdir(BASE+'/work')
8 def check_ok
9   unless $?.success?
10     puts "Process returned #{$?.inspect}"
11     exit
12   end
13 end
15 while arg=ARGV.shift
16   case arg
17   when '--fetch-specs'
18     puts `wget -P #{BASE}/src -c http://www.opengl.org/registry/api/gl.tm http://www.opengl.org/registry/api/gl.spec  http://www.opengl.org/registry/api/enum.spec  http://www.opengl.org/registry/api/enumext.spec`
19     check_ok
20   end
21 end
23 puts `ruby #{BASE}/generators/sexpize-gl-spec.rb`
24 check_ok
25 puts `sbcl --load #{BASE}/generators/make-bindings-from-spec.lisp --eval "(sb-ext:quit)"`
26 check_ok
28 open("#{BASE}/src/opengl-template.lisp") do |tf|
29   open("#{BASE}/lib/opengl.lisp","w") do |of|
30     puts "ok, writing #{BASE}/lib/opengl.lisp"
31     of.write(tf.read.sub('@EXPORTS@',open("#{BASE}/src/opengl-exports.lisp"){|i|i.read}).sub("@BODY@",open("#{BASE}/src/opengl-body.lisp"){|i|i.read}).sub("@TYPE_MAPS@",open("#{BASE}/src/opengl-type-maps.lisp"){|i|i.read}))
32   end
33 end