glut 8.1.0 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +15 -0
- data/History.rdoc +9 -2
- data/Manifest.txt +1 -1
- data/README.rdoc +2 -2
- data/Rakefile +4 -4
- data/ext/glut/extconf.rb +32 -6
- data/ext/glut/glut.c +5 -3
- data/ext/glut/glut_ext.c +28 -9
- data/lib/glut.rb +7 -4
- metadata +34 -11
- metadata.gz.sig +3 -0
- data/Rakefile.cross +0 -107
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9788722e2d44f88e83148aeff2d385204d7864f6
|
4
|
+
data.tar.gz: 0aeece59c8101debaa2a359f1c403a9ab2a2c9ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c19d3e8ead5d61ea53e3ca580ec030bbef1a9a022cf05d594786740e501f18712aa7990924617830b1e6e6698e6006468869237a10a82bb0baf41887b6f0988a
|
7
|
+
data.tar.gz: d78436ce4f5064742dd7a40113737ef8eb550f78537b041b195e82c01b5ef34b803aa887e372a787a301a29733bc496ef27bd826cff780eafabefb7e2dea64f8
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
data/.travis.yml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
# - "1.9.3"
|
4
|
+
- "2.0.0"
|
5
|
+
# - jruby-19mode # JRuby in 1.9 mode
|
6
|
+
# - rbx-19mode
|
7
|
+
before_install:
|
8
|
+
- gem install hoe rake-compiler;
|
9
|
+
- sudo apt-get install xpra xserver-xorg-video-dummy freeglut3-dev;
|
10
|
+
before_script:
|
11
|
+
- "xpra --xvfb=\"Xorg +extension GLX -config `pwd`/test/dummy.xorg.conf -logfile ${HOME}/.xpra/xorg.log\" start :9"
|
12
|
+
script: "env DISPLAY=:9 rake test"
|
13
|
+
after_script:
|
14
|
+
- "xpra stop :9"
|
15
|
+
- "cat ~/.xpra/*"
|
data/History.rdoc
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
-
=== 8.
|
1
|
+
=== 8.2.0 / 2014-03-14
|
2
2
|
|
3
|
-
*
|
3
|
+
* Add x64-mingw platform for cross build and add ruby-2.0.0 to binary gems.
|
4
|
+
* Update to freeglut-2.8.1 for cross build.
|
5
|
+
* Don't pollute the global namespace. Use GLUT namespace.
|
6
|
+
* Replace deprecated rb_thread_blocking_region() by rb_thread_call_with_gvl()
|
7
|
+
|
8
|
+
=== 8.1.0 / 2013-03-03
|
9
|
+
|
10
|
+
* Moved glut into a standalone gem.
|
data/Manifest.txt
CHANGED
data/README.rdoc
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
== Description
|
4
4
|
|
5
|
-
Glut bindings for OpenGL. To be used with the opengl gem.
|
5
|
+
Glut bindings for OpenGL. To be used with the {opengl}[https://github.com/larskanis/opengl] gem.
|
6
6
|
|
7
7
|
== Features and Problems
|
8
8
|
|
@@ -12,7 +12,7 @@ Glut bindings for OpenGL. To be used with the opengl gem.
|
|
12
12
|
|
13
13
|
* Ruby 1.9.2+
|
14
14
|
* see {0.7}[https://github.com/archSeer/opengl/tree/0.7] for Ruby 1.8.x compatible branch
|
15
|
-
*
|
15
|
+
* (free-)GLUT development files installed
|
16
16
|
|
17
17
|
== Install
|
18
18
|
|
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
# -*- coding: UTF-8 -*-
|
2
|
+
# -*-ruby-*-
|
2
3
|
#
|
3
4
|
# Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
|
4
5
|
# Copyright (C) Eric Hodel <drbrain@segment7.net>
|
@@ -16,7 +17,6 @@
|
|
16
17
|
|
17
18
|
require 'hoe'
|
18
19
|
require 'rake/extensiontask'
|
19
|
-
load 'Rakefile.cross'
|
20
20
|
|
21
21
|
hoe = Hoe.spec 'glut' do
|
22
22
|
developer 'Eric Hodel', 'drbrain@segment7.net'
|
@@ -43,9 +43,9 @@ Rake::ExtensionTask.new 'glut', hoe.spec do |ext|
|
|
43
43
|
ext.lib_dir = 'lib/glut'
|
44
44
|
|
45
45
|
ext.cross_compile = true
|
46
|
-
ext.cross_platform = ['i386-mingw32']
|
46
|
+
ext.cross_platform = ['i386-mingw32', 'x64-mingw32']
|
47
47
|
ext.cross_config_options += [
|
48
|
-
"--
|
48
|
+
"--enable-win32-cross",
|
49
49
|
]
|
50
50
|
end
|
51
51
|
|
data/ext/glut/extconf.rb
CHANGED
@@ -13,10 +13,36 @@ def have_framework(fw, &b)
|
|
13
13
|
end
|
14
14
|
end unless respond_to? :have_framework
|
15
15
|
|
16
|
-
if
|
17
|
-
|
16
|
+
if enable_config('win32-cross')
|
17
|
+
require "mini_portile"
|
18
|
+
|
19
|
+
LIBFREEGLUT_VERSION = ENV['LIBFREEGLUT_VERSION'] || '2.8.1'
|
20
|
+
LIBFREEGLUT_SOURCE_URI = "http://downloads.sourceforge.net/project/freeglut/freeglut/#{LIBFREEGLUT_VERSION}/freeglut-#{LIBFREEGLUT_VERSION}.tar.gz"
|
21
|
+
|
22
|
+
recipe = MiniPortile.new("libglut", LIBFREEGLUT_VERSION)
|
23
|
+
recipe.files = [LIBFREEGLUT_SOURCE_URI]
|
24
|
+
recipe.target = portsdir = File.expand_path('../../../ports', __FILE__)
|
25
|
+
# Prefer host_alias over host in order to use i586-mingw32msvc as
|
26
|
+
# correct compiler prefix for cross build, but use host if not set.
|
27
|
+
recipe.host = RbConfig::CONFIG["host_alias"].empty? ? RbConfig::CONFIG["host"] : RbConfig::CONFIG["host_alias"]
|
28
|
+
recipe.configure_options = [
|
29
|
+
"--enable-static",
|
30
|
+
"--target=#{recipe.host}",
|
31
|
+
"--host=#{recipe.host}",
|
32
|
+
]
|
33
|
+
|
34
|
+
checkpoint = File.join(portsdir, "#{recipe.name}-#{recipe.version}-#{recipe.host}.installed")
|
35
|
+
unless File.exist?(checkpoint)
|
36
|
+
recipe.cook
|
37
|
+
# --disable-static can not be used since it breaks the freeglut build,
|
38
|
+
# but to enforce static linking, we delete the import lib.
|
39
|
+
FileUtils.rm File.join(recipe.path, "lib", "libglut.dll.a")
|
40
|
+
FileUtils.touch checkpoint
|
41
|
+
end
|
42
|
+
recipe.activate
|
18
43
|
|
19
44
|
$defs.push "-DFREEGLUT_EXPORTS"
|
45
|
+
dir_config('freeglut', "#{recipe.path}/include", "#{recipe.path}/lib")
|
20
46
|
|
21
47
|
# libfreeglut is linked to gdi32 and winmm
|
22
48
|
have_library( 'gdi32', 'CreateDC' ) && append_library( $libs, 'gdi32' )
|
@@ -24,10 +50,10 @@ if ENV['CROSS_COMPILING']
|
|
24
50
|
end
|
25
51
|
|
26
52
|
ok =
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
53
|
+
(have_library('opengl32.lib', 'glVertex3d') && have_library('glut32.lib', 'gluSolidTeapot')) ||
|
54
|
+
(have_library('opengl32') && have_library('glut')) ||
|
55
|
+
(have_library('GL', 'glVertex3d') && have_library('glut', 'glutSolidTeapot')) ||
|
56
|
+
(have_framework('OpenGL') && have_framework('GLUT') && have_framework('Cocoa'))
|
31
57
|
|
32
58
|
ok &&=
|
33
59
|
have_header('GL/glut.h') ||
|
data/ext/glut/glut.c
CHANGED
@@ -21,6 +21,8 @@
|
|
21
21
|
*/
|
22
22
|
|
23
23
|
#include "common.h"
|
24
|
+
extern void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
|
25
|
+
rb_unblock_function_t *ubf, void *data2);
|
24
26
|
|
25
27
|
static VALUE menu_callback = Qnil;
|
26
28
|
static ID call_id; /* 'call' method id */
|
@@ -115,15 +117,15 @@ VALUE obj,arg1,arg2;
|
|
115
117
|
return Qnil;
|
116
118
|
}
|
117
119
|
|
118
|
-
|
120
|
+
void *glut_MainLoop0(void *ignored) {
|
119
121
|
glutMainLoop();
|
120
122
|
|
121
|
-
return
|
123
|
+
return NULL; /* never reached */
|
122
124
|
}
|
123
125
|
|
124
126
|
static VALUE
|
125
127
|
glut_MainLoop(void) {
|
126
|
-
|
128
|
+
rb_thread_call_without_gvl(glut_MainLoop0, NULL, NULL, NULL);
|
127
129
|
|
128
130
|
return Qnil; /* never reached */
|
129
131
|
}
|
data/ext/glut/glut_ext.c
CHANGED
@@ -16,25 +16,36 @@
|
|
16
16
|
|
17
17
|
#include "common.h"
|
18
18
|
|
19
|
+
/*
|
20
|
+
* Process loop function, see freeglut_main.c
|
21
|
+
*/
|
22
|
+
GLUT_SIMPLE_FUNCTION(MainLoopEvent)
|
23
|
+
GLUT_SIMPLE_FUNCTION(LeaveMainLoop)
|
24
|
+
GLUT_SIMPLE_FUNCTION(Exit)
|
25
|
+
|
26
|
+
/*
|
27
|
+
* Window management functions, see freeglut_window.c
|
28
|
+
*/
|
29
|
+
GLUT_SIMPLE_FUNCTION(FullScreenToggle)
|
30
|
+
GLUT_SIMPLE_FUNCTION(LeaveFullScreen)
|
31
|
+
|
32
|
+
/* Initialization functions */
|
19
33
|
static VALUE
|
20
|
-
glut_InitContextVersion(obj,majorVersion,minorVersion)
|
21
|
-
VALUE obj,majorVersion,minorVersion;
|
34
|
+
glut_InitContextVersion(VALUE obj, VALUE majorVersion, VALUE minorVersion)
|
22
35
|
{
|
23
36
|
glutInitContextVersion(NUM2INT(majorVersion), NUM2INT(minorVersion));
|
24
37
|
return Qnil;
|
25
38
|
}
|
26
39
|
|
27
40
|
static VALUE
|
28
|
-
glut_InitContextFlags(obj,flags)
|
29
|
-
VALUE obj,flags;
|
41
|
+
glut_InitContextFlags(VALUE obj, VALUE flags)
|
30
42
|
{
|
31
43
|
glutInitContextFlags(NUM2INT(flags));
|
32
44
|
return Qnil;
|
33
45
|
}
|
34
46
|
|
35
47
|
static VALUE
|
36
|
-
glut_InitContextProfile(obj,profile)
|
37
|
-
VALUE obj,profile;
|
48
|
+
glut_InitContextProfile(VALUE obj, VALUE profile)
|
38
49
|
{
|
39
50
|
glutInitContextProfile(NUM2INT(profile));
|
40
51
|
return Qnil;
|
@@ -43,9 +54,19 @@ VALUE obj,profile;
|
|
43
54
|
void Init_glut_ext() {
|
44
55
|
VALUE mGlut = rb_path2class("Glut");
|
45
56
|
|
57
|
+
/* Process loop functions */
|
58
|
+
rb_define_module_function(mGlut, "glutMainLoopEvent", glut_MainLoopEvent, 0);
|
59
|
+
rb_define_module_function(mGlut, "glutLeaveMainLoop", glut_LeaveMainLoop, 0);
|
60
|
+
rb_define_module_function(mGlut, "glutExit", glut_Exit, 0);
|
61
|
+
|
62
|
+
/* Window management functions */
|
63
|
+
rb_define_module_function(mGlut, "glutFullScreenToggle", glut_FullScreenToggle, 0);
|
64
|
+
rb_define_module_function(mGlut, "glutLeaveFullScreen", glut_LeaveFullScreen, 0);
|
65
|
+
|
66
|
+
/* Initialization functions */
|
46
67
|
rb_define_module_function(mGlut, "glutInitContextVersion", glut_InitContextVersion, 2);
|
47
68
|
rb_define_module_function(mGlut, "glutInitContextFlags", glut_InitContextFlags, 1);
|
48
|
-
rb_define_module_function(mGlut, "
|
69
|
+
rb_define_module_function(mGlut, "glutInitContextProfile", glut_InitContextProfile, 1);
|
49
70
|
|
50
71
|
/* Context-related flags */
|
51
72
|
rb_define_const(mGlut, "GLUT_INIT_MAJOR_VERSION", INT2NUM(GLUT_INIT_MAJOR_VERSION));
|
@@ -60,6 +81,4 @@ void Init_glut_ext() {
|
|
60
81
|
/* Flags for glutInitContextProfile */
|
61
82
|
rb_define_const(mGlut, "GLUT_CORE_PROFILE", INT2NUM(GLUT_CORE_PROFILE));
|
62
83
|
rb_define_const(mGlut, "GLUT_COMPATIBILITY_PROFILE", INT2NUM(GLUT_COMPATIBILITY_PROFILE));
|
63
|
-
|
64
|
-
|
65
84
|
}
|
data/lib/glut.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
begin
|
2
|
+
RUBY_VERSION =~ /(\d+.\d+)/
|
3
|
+
require "glut/#{$1}/glut"
|
4
|
+
rescue LoadError
|
5
|
+
require 'glut/glut'
|
6
|
+
end
|
4
7
|
|
5
8
|
# (Glut.)glutInit -> GLUT.Init
|
6
9
|
# (Glut::)GLUT_RGBA -> GLUT::RGBA
|
@@ -22,5 +25,5 @@ module GLUT
|
|
22
25
|
end
|
23
26
|
|
24
27
|
module Glut
|
25
|
-
VERSION = "8.
|
28
|
+
VERSION = "8.2.0"
|
26
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glut
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Hodel
|
@@ -13,8 +13,29 @@ authors:
|
|
13
13
|
- James Adam
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
|
-
cert_chain:
|
17
|
-
|
16
|
+
cert_chain:
|
17
|
+
- |
|
18
|
+
-----BEGIN CERTIFICATE-----
|
19
|
+
MIIDLjCCAhagAwIBAgIBAjANBgkqhkiG9w0BAQUFADA9MQ4wDAYDVQQDDAVrYW5p
|
20
|
+
czEXMBUGCgmSJomT8ixkARkWB2NvbWNhcmQxEjAQBgoJkiaJk/IsZAEZFgJkZTAe
|
21
|
+
Fw0xNDAyMjYwOTMzMDBaFw0xNTAyMjYwOTMzMDBaMD0xDjAMBgNVBAMMBWthbmlz
|
22
|
+
MRcwFQYKCZImiZPyLGQBGRYHY29tY2FyZDESMBAGCgmSJomT8ixkARkWAmRlMIIB
|
23
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApop+rNmg35bzRugZ21VMGqI6
|
24
|
+
HGzPLO4VHYncWn/xmgPU/ZMcZdfj6MzIaZJ/czXyt4eHpBk1r8QOV3gBXnRXEjVW
|
25
|
+
9xi+EdVOkTV2/AVFKThcbTAQGiF/bT1n2M+B1GTybRzMg6hyhOJeGPqIhLfJEpxn
|
26
|
+
lJi4+ENAVT4MpqHEAGB8yFoPC0GqiOHQsdHxQV3P3c2OZqG+yJey74QtwA2tLcLn
|
27
|
+
Q53c63+VLGsOjODl1yPn/2ejyq8qWu6ahfTxiIlSar2UbwtaQGBDFdb2CXgEufXT
|
28
|
+
L7oaPxlmj+Q2oLOfOnInd2Oxop59HoJCQPsg8f921J43NCQGA8VHK6paxIRDLQID
|
29
|
+
AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUvgTdT7fe
|
30
|
+
x17ugO3IOsjEJwW7KP4wDQYJKoZIhvcNAQEFBQADggEBAFmIAhRT0awqLQN9e4Uv
|
31
|
+
ZEk+jUWv4zkb+TWiKFJXlwjPyjGbZY9gVfOwAwMibYOK/t/+57ZzW3d0L12OUwvo
|
32
|
+
on84NVvYtIr1/iskJFWFkMoIquAFCdi9p68stSPMQK2XcrJJuRot29fJtropsZBa
|
33
|
+
2cpaNd/sRYdK4oep2usdKifA1lI0hIkPb3r5nLfwG2lAqBH7WZsUICHcTgR0VEbG
|
34
|
+
z9Ug5qQp9Uz73xC9YdGvGiuOX53LYobHAR4MWi2xxDlHI+ER8mRz0eY2FUuNu/Wj
|
35
|
+
GrqF74zpLl7/KFdHC8VmzwZS18hvDjxeLVuVI2gIGnBInqnlqv05g/l4/1pISh5j
|
36
|
+
dS4=
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
date: 2014-03-14 00:00:00.000000000 Z
|
18
39
|
dependencies:
|
19
40
|
- !ruby/object:Gem::Dependency
|
20
41
|
name: rdoc
|
@@ -22,14 +43,14 @@ dependencies:
|
|
22
43
|
requirements:
|
23
44
|
- - ~>
|
24
45
|
- !ruby/object:Gem::Version
|
25
|
-
version: '
|
46
|
+
version: '4.0'
|
26
47
|
type: :development
|
27
48
|
prerelease: false
|
28
49
|
version_requirements: !ruby/object:Gem::Requirement
|
29
50
|
requirements:
|
30
51
|
- - ~>
|
31
52
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
53
|
+
version: '4.0'
|
33
54
|
- !ruby/object:Gem::Dependency
|
34
55
|
name: rake-compiler
|
35
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,15 +77,16 @@ dependencies:
|
|
56
77
|
requirements:
|
57
78
|
- - ~>
|
58
79
|
- !ruby/object:Gem::Version
|
59
|
-
version: '3.
|
80
|
+
version: '3.7'
|
60
81
|
type: :development
|
61
82
|
prerelease: false
|
62
83
|
version_requirements: !ruby/object:Gem::Requirement
|
63
84
|
requirements:
|
64
85
|
- - ~>
|
65
86
|
- !ruby/object:Gem::Version
|
66
|
-
version: '3.
|
67
|
-
description: Glut bindings for OpenGL. To be used with the opengl
|
87
|
+
version: '3.7'
|
88
|
+
description: Glut bindings for OpenGL. To be used with the {opengl}[https://github.com/larskanis/opengl]
|
89
|
+
gem.
|
68
90
|
email:
|
69
91
|
- drbrain@segment7.net
|
70
92
|
- ''
|
@@ -84,12 +106,12 @@ files:
|
|
84
106
|
- .autotest
|
85
107
|
- .gemtest
|
86
108
|
- .gitignore
|
109
|
+
- .travis.yml
|
87
110
|
- History.rdoc
|
88
111
|
- MIT-LICENSE
|
89
112
|
- Manifest.txt
|
90
113
|
- README.rdoc
|
91
114
|
- Rakefile
|
92
|
-
- Rakefile.cross
|
93
115
|
- ext/glut/common.h
|
94
116
|
- ext/glut/extconf.rb
|
95
117
|
- ext/glut/glut.c
|
@@ -98,7 +120,8 @@ files:
|
|
98
120
|
- lib/glut.rb
|
99
121
|
- lib/glut/dummy.rb
|
100
122
|
homepage:
|
101
|
-
licenses:
|
123
|
+
licenses:
|
124
|
+
- MIT
|
102
125
|
metadata: {}
|
103
126
|
post_install_message:
|
104
127
|
rdoc_options:
|
@@ -118,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
141
|
version: '0'
|
119
142
|
requirements: []
|
120
143
|
rubyforge_project: glut
|
121
|
-
rubygems_version: 2.
|
144
|
+
rubygems_version: 2.2.2
|
122
145
|
signing_key:
|
123
146
|
specification_version: 4
|
124
147
|
summary: Glut bindings for OpenGL
|
metadata.gz.sig
ADDED
data/Rakefile.cross
DELETED
@@ -1,107 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
# -*- ruby -*-
|
3
|
-
|
4
|
-
require 'rubygems'
|
5
|
-
require 'hoe'
|
6
|
-
require 'rake/extensiontask'
|
7
|
-
require 'rake/extensioncompiler'
|
8
|
-
require 'uri'
|
9
|
-
require 'rbconfig'
|
10
|
-
require 'pathname'
|
11
|
-
|
12
|
-
ENV['RUBY_CC_VERSION'] ||= '1.9.3'
|
13
|
-
|
14
|
-
# Cross-compilation constants
|
15
|
-
COMPILE_HOME = Pathname( "build" ).expand_path
|
16
|
-
STATIC_SOURCESDIR = COMPILE_HOME + 'sources'
|
17
|
-
STATIC_BUILDDIR = COMPILE_HOME + 'builds'
|
18
|
-
STATIC_INSTALLDIR = COMPILE_HOME + 'install'
|
19
|
-
RUBY_BUILD = RbConfig::CONFIG["host"]
|
20
|
-
CROSS_PREFIX = begin
|
21
|
-
Rake::ExtensionCompiler.mingw_host
|
22
|
-
rescue => err
|
23
|
-
$stderr.puts "Cross-compilation disabled -- %s" % [ err.message ]
|
24
|
-
'unknown'
|
25
|
-
end
|
26
|
-
|
27
|
-
NUM_CPUS = if File.exist?('/proc/cpuinfo')
|
28
|
-
File.read('/proc/cpuinfo').scan('processor').length
|
29
|
-
elsif RUBY_PLATFORM.include?( 'darwin' )
|
30
|
-
`system_profiler SPHardwareDataType | grep 'Cores' | awk '{print $5}'`.chomp
|
31
|
-
else
|
32
|
-
1
|
33
|
-
end
|
34
|
-
|
35
|
-
|
36
|
-
# Fetch libfreeglut tarball
|
37
|
-
LIBFREEGLUT_VERSION = ENV['LIBFREEGLUT_VERSION'] || '2.8.0'
|
38
|
-
LIBFREEGLUT_SOURCE_URI = URI( "http://downloads.sourceforge.net/project/freeglut/freeglut/#{LIBFREEGLUT_VERSION}/freeglut-#{LIBFREEGLUT_VERSION}.tar.gz" )
|
39
|
-
LIBFREEGLUT_TARBALL = STATIC_SOURCESDIR + File.basename( LIBFREEGLUT_SOURCE_URI.path )
|
40
|
-
STATIC_LIBFREEGLUT_BUILDDIR = STATIC_BUILDDIR + LIBFREEGLUT_TARBALL.basename(".tar.gz")
|
41
|
-
LIBFREEGLUT_MAKEFILE = STATIC_LIBFREEGLUT_BUILDDIR + 'Makefile'
|
42
|
-
LIBFREEGLUT_A = STATIC_INSTALLDIR + 'lib' + 'libglut.a'
|
43
|
-
|
44
|
-
|
45
|
-
# clean intermediate files and folders
|
46
|
-
CLEAN.include( STATIC_BUILDDIR.to_s )
|
47
|
-
|
48
|
-
#####################################################################
|
49
|
-
### C R O S S - C O M P I L A T I O N - T A S K S
|
50
|
-
#####################################################################
|
51
|
-
|
52
|
-
|
53
|
-
directory STATIC_SOURCESDIR.to_s
|
54
|
-
|
55
|
-
#
|
56
|
-
# Static libfreeglut build tasks
|
57
|
-
#
|
58
|
-
directory STATIC_LIBFREEGLUT_BUILDDIR.to_s
|
59
|
-
|
60
|
-
# libfreeglut source file should be stored there
|
61
|
-
file LIBFREEGLUT_TARBALL => STATIC_SOURCESDIR do |t|
|
62
|
-
# download the source file using wget or curl
|
63
|
-
chdir File.dirname(t.name) do
|
64
|
-
sh "wget '#{LIBFREEGLUT_SOURCE_URI}' -O #{LIBFREEGLUT_TARBALL}"
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
# Extract the libfreeglut builds
|
69
|
-
file STATIC_LIBFREEGLUT_BUILDDIR => LIBFREEGLUT_TARBALL do |t|
|
70
|
-
sh 'tar', '-xzf', LIBFREEGLUT_TARBALL.to_s, '-C', STATIC_LIBFREEGLUT_BUILDDIR.parent.to_s
|
71
|
-
end
|
72
|
-
|
73
|
-
LIBFREEGLUT_ENV = [
|
74
|
-
"'CPPFLAGS=-I#{STATIC_INSTALLDIR}/include'",
|
75
|
-
"'LDFLAGS=-L#{STATIC_INSTALLDIR}/lib'",
|
76
|
-
]
|
77
|
-
# generate the makefile in a clean build location
|
78
|
-
file LIBFREEGLUT_MAKEFILE => [STATIC_LIBFREEGLUT_BUILDDIR] do |t|
|
79
|
-
Dir.chdir( STATIC_LIBFREEGLUT_BUILDDIR ) do
|
80
|
-
options = [
|
81
|
-
"--target=#{CROSS_PREFIX}",
|
82
|
-
"--host=#{CROSS_PREFIX}",
|
83
|
-
"--build=#{RUBY_BUILD}",
|
84
|
-
"--prefix=#{STATIC_INSTALLDIR}",
|
85
|
-
"--enable-static",
|
86
|
-
]
|
87
|
-
|
88
|
-
configure_path = STATIC_LIBFREEGLUT_BUILDDIR + 'configure'
|
89
|
-
sh "env #{[LIBFREEGLUT_ENV, configure_path.to_s, *options].join(" ")}"
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# generate the makefile in a clean build location
|
94
|
-
task LIBFREEGLUT_A => [LIBFREEGLUT_MAKEFILE] do |t|
|
95
|
-
Dir.chdir( STATIC_LIBFREEGLUT_BUILDDIR ) do
|
96
|
-
sh "make -j#{NUM_CPUS} install"
|
97
|
-
(STATIC_INSTALLDIR + "lib" + "libglut.dll.a").unlink
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
desc "compile static libraries"
|
102
|
-
task :static_libs => [ LIBFREEGLUT_A ]
|
103
|
-
|
104
|
-
desc 'cross compile required libs for win32'
|
105
|
-
task :cross => [ :static_libs ] do
|
106
|
-
ENV['CROSS_COMPILING'] = 'yes'
|
107
|
-
end
|