libv8 3.3.10.2 → 3.3.10.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +35 -7
  3. data/Rakefile +61 -20
  4. data/ext/libv8/extconf.rb +15 -0
  5. data/lib/libv8/scons/CHANGES.txt +231 -24
  6. data/lib/libv8/scons/LICENSE.txt +1 -1
  7. data/lib/libv8/scons/MANIFEST +1 -0
  8. data/lib/libv8/scons/PKG-INFO +1 -1
  9. data/lib/libv8/scons/README.txt +9 -9
  10. data/lib/libv8/scons/RELEASE.txt +77 -75
  11. data/lib/libv8/scons/engine/SCons/Action.py +22 -6
  12. data/lib/libv8/scons/engine/SCons/Builder.py +2 -2
  13. data/lib/libv8/scons/engine/SCons/CacheDir.py +2 -2
  14. data/lib/libv8/scons/engine/SCons/Debug.py +2 -2
  15. data/lib/libv8/scons/engine/SCons/Defaults.py +24 -10
  16. data/lib/libv8/scons/engine/SCons/Environment.py +118 -19
  17. data/lib/libv8/scons/engine/SCons/Errors.py +2 -2
  18. data/lib/libv8/scons/engine/SCons/Executor.py +2 -2
  19. data/lib/libv8/scons/engine/SCons/Job.py +2 -2
  20. data/lib/libv8/scons/engine/SCons/Memoize.py +2 -2
  21. data/lib/libv8/scons/engine/SCons/Node/Alias.py +2 -2
  22. data/lib/libv8/scons/engine/SCons/Node/FS.py +281 -121
  23. data/lib/libv8/scons/engine/SCons/Node/Python.py +2 -2
  24. data/lib/libv8/scons/engine/SCons/Node/__init__.py +6 -5
  25. data/lib/libv8/scons/engine/SCons/Options/BoolOption.py +2 -2
  26. data/lib/libv8/scons/engine/SCons/Options/EnumOption.py +2 -2
  27. data/lib/libv8/scons/engine/SCons/Options/ListOption.py +2 -2
  28. data/lib/libv8/scons/engine/SCons/Options/PackageOption.py +2 -2
  29. data/lib/libv8/scons/engine/SCons/Options/PathOption.py +2 -2
  30. data/lib/libv8/scons/engine/SCons/Options/__init__.py +2 -2
  31. data/lib/libv8/scons/engine/SCons/PathList.py +2 -2
  32. data/lib/libv8/scons/engine/SCons/Platform/__init__.py +2 -2
  33. data/lib/libv8/scons/engine/SCons/Platform/aix.py +2 -2
  34. data/lib/libv8/scons/engine/SCons/Platform/cygwin.py +2 -2
  35. data/lib/libv8/scons/engine/SCons/Platform/darwin.py +27 -3
  36. data/lib/libv8/scons/engine/SCons/Platform/hpux.py +2 -2
  37. data/lib/libv8/scons/engine/SCons/Platform/irix.py +2 -2
  38. data/lib/libv8/scons/engine/SCons/Platform/os2.py +2 -2
  39. data/lib/libv8/scons/engine/SCons/Platform/posix.py +2 -2
  40. data/lib/libv8/scons/engine/SCons/Platform/sunos.py +2 -2
  41. data/lib/libv8/scons/engine/SCons/Platform/win32.py +2 -2
  42. data/lib/libv8/scons/engine/SCons/SConf.py +2 -2
  43. data/lib/libv8/scons/engine/SCons/SConsign.py +9 -3
  44. data/lib/libv8/scons/engine/SCons/Scanner/C.py +2 -2
  45. data/lib/libv8/scons/engine/SCons/Scanner/D.py +2 -2
  46. data/lib/libv8/scons/engine/SCons/Scanner/Dir.py +2 -2
  47. data/lib/libv8/scons/engine/SCons/Scanner/Fortran.py +2 -2
  48. data/lib/libv8/scons/engine/SCons/Scanner/IDL.py +2 -2
  49. data/lib/libv8/scons/engine/SCons/Scanner/LaTeX.py +5 -2
  50. data/lib/libv8/scons/engine/SCons/Scanner/Prog.py +2 -2
  51. data/lib/libv8/scons/engine/SCons/Scanner/RC.py +3 -3
  52. data/lib/libv8/scons/engine/SCons/Scanner/__init__.py +2 -2
  53. data/lib/libv8/scons/engine/SCons/Script/Interactive.py +2 -2
  54. data/lib/libv8/scons/engine/SCons/Script/Main.py +82 -11
  55. data/lib/libv8/scons/engine/SCons/Script/SConsOptions.py +5 -5
  56. data/lib/libv8/scons/engine/SCons/Script/SConscript.py +2 -2
  57. data/lib/libv8/scons/engine/SCons/Script/__init__.py +2 -2
  58. data/lib/libv8/scons/engine/SCons/Sig.py +2 -2
  59. data/lib/libv8/scons/engine/SCons/Subst.py +2 -2
  60. data/lib/libv8/scons/engine/SCons/Taskmaster.py +10 -2
  61. data/lib/libv8/scons/engine/SCons/Tool/386asm.py +2 -2
  62. data/lib/libv8/scons/engine/SCons/Tool/BitKeeper.py +2 -2
  63. data/lib/libv8/scons/engine/SCons/Tool/CVS.py +2 -2
  64. data/lib/libv8/scons/engine/SCons/Tool/FortranCommon.py +19 -2
  65. data/lib/libv8/scons/engine/SCons/Tool/JavaCommon.py +2 -2
  66. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/__init__.py +2 -2
  67. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/arch.py +2 -2
  68. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/common.py +2 -2
  69. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/netframework.py +2 -2
  70. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/sdk.py +2 -2
  71. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vc.py +9 -6
  72. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vs.py +29 -2
  73. data/lib/libv8/scons/engine/SCons/Tool/Perforce.py +2 -2
  74. data/lib/libv8/scons/engine/SCons/Tool/PharLapCommon.py +2 -2
  75. data/lib/libv8/scons/engine/SCons/Tool/RCS.py +2 -2
  76. data/lib/libv8/scons/engine/SCons/Tool/SCCS.py +2 -2
  77. data/lib/libv8/scons/engine/SCons/Tool/Subversion.py +2 -2
  78. data/lib/libv8/scons/engine/SCons/Tool/__init__.py +3 -3
  79. data/lib/libv8/scons/engine/SCons/Tool/aixc++.py +2 -2
  80. data/lib/libv8/scons/engine/SCons/Tool/aixcc.py +2 -2
  81. data/lib/libv8/scons/engine/SCons/Tool/aixf77.py +2 -2
  82. data/lib/libv8/scons/engine/SCons/Tool/aixlink.py +2 -2
  83. data/lib/libv8/scons/engine/SCons/Tool/applelink.py +2 -2
  84. data/lib/libv8/scons/engine/SCons/Tool/ar.py +2 -2
  85. data/lib/libv8/scons/engine/SCons/Tool/as.py +2 -2
  86. data/lib/libv8/scons/engine/SCons/Tool/bcc32.py +2 -2
  87. data/lib/libv8/scons/engine/SCons/Tool/c++.py +2 -2
  88. data/lib/libv8/scons/engine/SCons/Tool/cc.py +2 -2
  89. data/lib/libv8/scons/engine/SCons/Tool/cvf.py +2 -2
  90. data/lib/libv8/scons/engine/SCons/Tool/default.py +2 -2
  91. data/lib/libv8/scons/engine/SCons/Tool/dmd.py +24 -7
  92. data/lib/libv8/scons/engine/SCons/Tool/dvi.py +2 -2
  93. data/lib/libv8/scons/engine/SCons/Tool/dvipdf.py +3 -2
  94. data/lib/libv8/scons/engine/SCons/Tool/dvips.py +3 -2
  95. data/lib/libv8/scons/engine/SCons/Tool/f03.py +63 -0
  96. data/lib/libv8/scons/engine/SCons/Tool/f77.py +2 -2
  97. data/lib/libv8/scons/engine/SCons/Tool/f90.py +2 -2
  98. data/lib/libv8/scons/engine/SCons/Tool/f95.py +2 -2
  99. data/lib/libv8/scons/engine/SCons/Tool/filesystem.py +2 -2
  100. data/lib/libv8/scons/engine/SCons/Tool/fortran.py +2 -2
  101. data/lib/libv8/scons/engine/SCons/Tool/g++.py +2 -2
  102. data/lib/libv8/scons/engine/SCons/Tool/g77.py +2 -2
  103. data/lib/libv8/scons/engine/SCons/Tool/gas.py +2 -2
  104. data/lib/libv8/scons/engine/SCons/Tool/gcc.py +2 -2
  105. data/lib/libv8/scons/engine/SCons/Tool/gfortran.py +3 -3
  106. data/lib/libv8/scons/engine/SCons/Tool/gnulink.py +2 -3
  107. data/lib/libv8/scons/engine/SCons/Tool/gs.py +2 -2
  108. data/lib/libv8/scons/engine/SCons/Tool/hpc++.py +2 -2
  109. data/lib/libv8/scons/engine/SCons/Tool/hpcc.py +2 -2
  110. data/lib/libv8/scons/engine/SCons/Tool/hplink.py +2 -2
  111. data/lib/libv8/scons/engine/SCons/Tool/icc.py +2 -2
  112. data/lib/libv8/scons/engine/SCons/Tool/icl.py +2 -2
  113. data/lib/libv8/scons/engine/SCons/Tool/ifl.py +2 -2
  114. data/lib/libv8/scons/engine/SCons/Tool/ifort.py +2 -2
  115. data/lib/libv8/scons/engine/SCons/Tool/ilink.py +2 -2
  116. data/lib/libv8/scons/engine/SCons/Tool/ilink32.py +2 -2
  117. data/lib/libv8/scons/engine/SCons/Tool/install.py +57 -3
  118. data/lib/libv8/scons/engine/SCons/Tool/intelc.py +65 -25
  119. data/lib/libv8/scons/engine/SCons/Tool/ipkg.py +2 -2
  120. data/lib/libv8/scons/engine/SCons/Tool/jar.py +9 -3
  121. data/lib/libv8/scons/engine/SCons/Tool/javac.py +2 -2
  122. data/lib/libv8/scons/engine/SCons/Tool/javah.py +2 -2
  123. data/lib/libv8/scons/engine/SCons/Tool/latex.py +3 -2
  124. data/lib/libv8/scons/engine/SCons/Tool/lex.py +2 -2
  125. data/lib/libv8/scons/engine/SCons/Tool/link.py +6 -5
  126. data/lib/libv8/scons/engine/SCons/Tool/linkloc.py +2 -2
  127. data/lib/libv8/scons/engine/SCons/Tool/m4.py +2 -2
  128. data/lib/libv8/scons/engine/SCons/Tool/masm.py +2 -2
  129. data/lib/libv8/scons/engine/SCons/Tool/midl.py +2 -2
  130. data/lib/libv8/scons/engine/SCons/Tool/mingw.py +31 -10
  131. data/lib/libv8/scons/engine/SCons/Tool/mslib.py +2 -2
  132. data/lib/libv8/scons/engine/SCons/Tool/mslink.py +61 -9
  133. data/lib/libv8/scons/engine/SCons/Tool/mssdk.py +2 -2
  134. data/lib/libv8/scons/engine/SCons/Tool/msvc.py +21 -11
  135. data/lib/libv8/scons/engine/SCons/Tool/msvs.py +477 -59
  136. data/lib/libv8/scons/engine/SCons/Tool/mwcc.py +2 -2
  137. data/lib/libv8/scons/engine/SCons/Tool/mwld.py +2 -2
  138. data/lib/libv8/scons/engine/SCons/Tool/nasm.py +2 -2
  139. data/lib/libv8/scons/engine/SCons/Tool/packaging/__init__.py +2 -2
  140. data/lib/libv8/scons/engine/SCons/Tool/packaging/ipk.py +2 -2
  141. data/lib/libv8/scons/engine/SCons/Tool/packaging/msi.py +2 -2
  142. data/lib/libv8/scons/engine/SCons/Tool/packaging/rpm.py +2 -2
  143. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_tarbz2.py +2 -2
  144. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_targz.py +2 -2
  145. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_zip.py +2 -2
  146. data/lib/libv8/scons/engine/SCons/Tool/packaging/tarbz2.py +2 -2
  147. data/lib/libv8/scons/engine/SCons/Tool/packaging/targz.py +2 -2
  148. data/lib/libv8/scons/engine/SCons/Tool/packaging/zip.py +2 -2
  149. data/lib/libv8/scons/engine/SCons/Tool/pdf.py +2 -2
  150. data/lib/libv8/scons/engine/SCons/Tool/pdflatex.py +3 -2
  151. data/lib/libv8/scons/engine/SCons/Tool/pdftex.py +3 -2
  152. data/lib/libv8/scons/engine/SCons/Tool/qt.py +2 -2
  153. data/lib/libv8/scons/engine/SCons/Tool/rmic.py +9 -3
  154. data/lib/libv8/scons/engine/SCons/Tool/rpcgen.py +2 -2
  155. data/lib/libv8/scons/engine/SCons/Tool/rpm.py +2 -2
  156. data/lib/libv8/scons/engine/SCons/Tool/sgiar.py +2 -2
  157. data/lib/libv8/scons/engine/SCons/Tool/sgic++.py +2 -2
  158. data/lib/libv8/scons/engine/SCons/Tool/sgicc.py +2 -2
  159. data/lib/libv8/scons/engine/SCons/Tool/sgilink.py +2 -3
  160. data/lib/libv8/scons/engine/SCons/Tool/sunar.py +2 -2
  161. data/lib/libv8/scons/engine/SCons/Tool/sunc++.py +2 -2
  162. data/lib/libv8/scons/engine/SCons/Tool/suncc.py +2 -2
  163. data/lib/libv8/scons/engine/SCons/Tool/sunf77.py +2 -2
  164. data/lib/libv8/scons/engine/SCons/Tool/sunf90.py +2 -2
  165. data/lib/libv8/scons/engine/SCons/Tool/sunf95.py +2 -2
  166. data/lib/libv8/scons/engine/SCons/Tool/sunlink.py +2 -3
  167. data/lib/libv8/scons/engine/SCons/Tool/swig.py +6 -5
  168. data/lib/libv8/scons/engine/SCons/Tool/tar.py +2 -2
  169. data/lib/libv8/scons/engine/SCons/Tool/tex.py +96 -43
  170. data/lib/libv8/scons/engine/SCons/Tool/textfile.py +2 -2
  171. data/lib/libv8/scons/engine/SCons/Tool/tlib.py +2 -2
  172. data/lib/libv8/scons/engine/SCons/Tool/wix.py +2 -2
  173. data/lib/libv8/scons/engine/SCons/Tool/yacc.py +12 -2
  174. data/lib/libv8/scons/engine/SCons/Tool/zip.py +2 -2
  175. data/lib/libv8/scons/engine/SCons/Util.py +3 -3
  176. data/lib/libv8/scons/engine/SCons/Variables/BoolVariable.py +2 -2
  177. data/lib/libv8/scons/engine/SCons/Variables/EnumVariable.py +3 -3
  178. data/lib/libv8/scons/engine/SCons/Variables/ListVariable.py +2 -2
  179. data/lib/libv8/scons/engine/SCons/Variables/PackageVariable.py +2 -2
  180. data/lib/libv8/scons/engine/SCons/Variables/PathVariable.py +2 -2
  181. data/lib/libv8/scons/engine/SCons/Variables/__init__.py +2 -2
  182. data/lib/libv8/scons/engine/SCons/Warnings.py +2 -2
  183. data/lib/libv8/scons/engine/SCons/__init__.py +6 -6
  184. data/lib/libv8/scons/engine/SCons/compat/__init__.py +2 -2
  185. data/lib/libv8/scons/engine/SCons/compat/_scons_builtins.py +2 -2
  186. data/lib/libv8/scons/engine/SCons/compat/_scons_collections.py +2 -2
  187. data/lib/libv8/scons/engine/SCons/compat/_scons_dbm.py +2 -2
  188. data/lib/libv8/scons/engine/SCons/compat/_scons_hashlib.py +2 -2
  189. data/lib/libv8/scons/engine/SCons/compat/_scons_io.py +2 -2
  190. data/lib/libv8/scons/engine/SCons/cpp.py +2 -2
  191. data/lib/libv8/scons/engine/SCons/dblite.py +4 -1
  192. data/lib/libv8/scons/engine/SCons/exitfuncs.py +2 -2
  193. data/lib/libv8/scons/scons-time.1 +3 -3
  194. data/lib/libv8/scons/scons.1 +1209 -1203
  195. data/lib/libv8/scons/sconsign.1 +3 -3
  196. data/lib/libv8/scons/script/scons +22 -22
  197. data/lib/libv8/scons/script/scons-time +2 -2
  198. data/lib/libv8/scons/script/scons.bat +7 -4
  199. data/lib/libv8/scons/script/sconsign +21 -20
  200. data/lib/libv8/scons/setup.cfg +0 -1
  201. data/lib/libv8/scons/setup.py +38 -40
  202. data/lib/libv8/version.rb +4 -2
  203. data/libv8.gemspec +7 -2
  204. metadata +46 -67
data/.gitignore CHANGED
@@ -6,3 +6,4 @@ Gemfile.lock
6
6
  pkg/*
7
7
  tmp/*
8
8
  lib/libv8/build/*
9
+ lib/libv8/VERSION
data/README.md CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  ##libv8
3
2
 
4
3
  A gem for distributing the v8 runtime libraries and headers in both source and binary form.
@@ -16,10 +15,13 @@ machine receiving the gem. It also opens the door for supporting Windows.
16
15
  That depends on your platform. Right now, we support the following platforms.
17
16
 
18
17
  * x86_64-darwin10.7.0
18
+ * x86_64-linux
19
+ * x86-linux
19
20
 
21
+ > **Note**: Gentoo amd64 users may need to tweak their environment. see [issue 8](/fractaloop/libv8/issues/8)
20
22
 
21
23
  If you don't see your platform on this list, first, make sure that it installs from source, and second
22
- talk to us about seeting up a binary distro for you.
24
+ talk to us about setting up a binary distro for you.
23
25
 
24
26
 
25
27
  ### What if I can't install from source?
@@ -27,7 +29,14 @@ talk to us about seeting up a binary distro for you.
27
29
 
28
30
  If you can fix the [Makefile](https://github.com/fractaloop/libv8/blob/master/lib/libv8/Makefile) so that it correctly compiles for your platform, we'll pull it right in!
29
31
 
30
- {FIXME: Add instructions about how to compile v8 for your platform}
32
+ To get the source, these commands will get you started:
33
+
34
+ git clone git@github.com:fractaloop/libv8
35
+ cd libv8
36
+ git submodule update --init
37
+ bundle install
38
+ bundle exec rake compile
39
+
31
40
 
32
41
  ### About
33
42
 
@@ -37,8 +46,27 @@ reliably to all the different platforms proved to be a challenge to say the leas
37
46
 
38
47
  We got tired of waiting 5 minutes for v8 to compile every time we installed that gem.
39
48
 
40
- ### Develop
49
+ ### License
50
+
51
+ (The MIT License)
52
+
53
+ Copyright (c) 2009,2010 Logan Lowell
54
+
55
+ Permission is hereby granted, free of charge, to any person obtaining
56
+ a copy of this software and associated documentation files (the
57
+ 'Software'), to deal in the Software without restriction, including
58
+ without limitation the rights to use, copy, modify, merge, publish,
59
+ distribute, sublicense, and/or sell copies of the Software, and to
60
+ permit persons to whom the Software is furnished to do so, subject to
61
+ the following conditions:
62
+
63
+ The above copyright notice and this permission notice shall be
64
+ included in all copies or substantial portions of the Software.
41
65
 
42
- git clone git@github.com:fractaloop/v8
43
- git submodule update --init
44
- bundle exec rake compile
66
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
67
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
68
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
69
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
70
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
71
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
72
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile CHANGED
@@ -1,8 +1,17 @@
1
+ # This is a sanity check to enforce that the v8 submodule is initialized
2
+ # before we try to run any rake tasks.
3
+ if !File.exist? File.join('lib', 'libv8', 'v8', 'SConstruct') then
4
+ puts "V8 source appears to be missing. Updating..."
5
+ `git submodule update --init`
6
+ end
7
+
8
+ # Now we include the bundler stuff...
9
+ # We had to do the fetch first since our version code requires that we have
10
+ # the V8 source
11
+
1
12
  require 'bundler'
2
13
  require 'bundler/setup'
3
14
 
4
- # require "rake/extensiontask"
5
-
6
15
  Bundler::GemHelper.install_tasks
7
16
 
8
17
  # desc "remove all generated artifacts except built v8 objects"
@@ -22,39 +31,69 @@ Bundler::GemHelper.install_tasks
22
31
  # ext.lib_dir = "lib/libv8"
23
32
  # end
24
33
 
25
- desc "Get the latest source"
26
- task "fetch" do
27
- puts "Fetching latest from github..."
28
- if File.exist? File.join('lib', 'libv8', 'v8') then
29
- Dir.chdir(File.join('lib', 'libv8', 'v8')) do
30
- `git fetch`
31
- `git checkout tags/#{`git tag`.split.last}`
32
- end
33
- else
34
- `git clone https://github.com/v8/v8.git lib/libv8/v8`
35
- Dir.chdir(File.join('lib', 'libv8', 'v8')) do
36
- `git checkout tags/#{`git tag`.split.last}`
37
- end
34
+ latest_v8 = nil
35
+ Dir.chdir(File.join('lib', 'libv8', 'v8')) do
36
+ latest_v8 = `git tag`.split.map{|v| Gem::Version.new(v)}.sort.last.to_s
37
+ end
38
+
39
+ desc "Check out a version of V8"
40
+ task :checkout, :version do |t, options|
41
+ options.with_defaults(:version => latest_v8)
42
+ Dir.chdir(File.join('lib', 'libv8', 'v8')) do
43
+ `git fetch`
44
+ # We're checking out the latest tag. Sorted using Gem::Version
45
+ versions = `git tag`.split.map{|v| Gem::Version.new(v)}.sort
46
+ fail "Version #{options.version} does not exist! Aborting..." if !versions.member?(Gem::Version.new(options.version))
47
+ puts "Checking out version #{options.version}"
48
+ `git checkout -f tags/#{options.version}`
49
+ File.open(File.join(File.dirname(__FILE__), 'lib', 'libv8', 'VERSION'), 'w') { |f| f.write options.version.to_s }
38
50
  end
39
51
  end
40
52
 
41
53
  desc "Compile the V8 JavaScript engine"
42
- task "compile" do
43
- puts "Compiling V8..."
54
+ task :compile, [:version] do |t, options|
55
+ options.with_defaults(:version => latest_v8)
56
+
57
+ begin
58
+ def crash(str)
59
+ printf("Unable to build libv8: %s\n", str)
60
+ exit 1
61
+ end
62
+
63
+ print "Checking for Python..."
64
+ version = `python --version 2>&1`
65
+ version_number = version.split.last.match("[0-9.]+")[0]
66
+ crash "Python not found!" if version.split.first != "Python"
67
+ crash "Python 3.x is unsupported by V8!" if
68
+ Gem::Version.new(version_number) >=
69
+ Gem::Version.new(3)
70
+ crash "Python 2.4+ is required by V8!" if Gem::Version.new(version_number) < Gem::Version.new("2.4")
71
+ puts version_number
72
+ end
73
+
74
+ puts "Compiling V8 (#{options.version})..."
75
+ Rake::Task[:checkout].invoke(options.version)
44
76
  Dir.chdir(File.join('lib', 'libv8')) do
45
77
  `make`
46
78
  end
47
79
  end
48
80
 
49
81
  desc "Clean up from the build"
50
- task "clean" do
82
+ task :clean do |t, options|
51
83
  Dir.chdir(File.join('lib', 'libv8')) do
52
84
  `make clean`
53
85
  end
54
86
  end
55
87
 
88
+ desc "List all versions of V8"
89
+ task :list do
90
+ Dir.chdir(File.join('lib', 'libv8', 'v8')) do
91
+ puts `git tag`.split.map{|v| Gem::Version.new(v)}.sort
92
+ end
93
+ end
94
+
56
95
  desc "Create a binary gem for this current platform"
57
- task "binary" => "compile" do
96
+ task :binary, [:version] => [:compile] do |t, options|
58
97
  gemspec = eval(File.read('libv8.gemspec'))
59
98
  gemspec.extensions.clear
60
99
  gemspec.platform = Gem::Platform.new(RUBY_PLATFORM)
@@ -70,4 +109,6 @@ task "binary" => "compile" do
70
109
  gemspec.files << "lib/libv8/build/v8/libv8preparser.a"
71
110
  FileUtils.mkdir_p 'pkg'
72
111
  FileUtils.mv(Gem::Builder.new(gemspec).build, 'pkg')
73
- end
112
+ end
113
+
114
+ task :default => :binary
@@ -1,6 +1,21 @@
1
1
  require 'mkmf'
2
2
  require 'pathname'
3
3
 
4
+ begin
5
+ def crash(str)
6
+ printf("Unable to build libv8: %s\n", str)
7
+ exit 1
8
+ end
9
+
10
+ print "Checking for Python..."
11
+ version = `python --version 2>&1`
12
+ crash "Python not found!" if version.split.first != "Python"
13
+ crash "Python 3.x is unsupported by V8!" if Gem::Version.new(version.split.last) >= Gem::Version.new(3)
14
+ crash "Python 2.4+ is required by V8!" if Gem::Version.new(version.split.last) < Gem::Version.new("2.4")
15
+ puts version.split.last
16
+ end
17
+
18
+
4
19
  Dir.chdir(Pathname(__FILE__).dirname.join('..', '..', 'lib', 'libv8')) do
5
20
  puts "Compiling V8..."
6
21
  `make`
@@ -5,6 +5,204 @@
5
5
  Change Log
6
6
 
7
7
 
8
+ RELEASE 2.1.0 - Mon, 09 Sep 2011 20:54:57 -0700
9
+
10
+ From Anton Lazarev:
11
+ - Fix Windows resource compiler scanner to accept DOS line endings.
12
+
13
+ From Matthias:
14
+ - Update MSVS documents to remove note indicating that only one
15
+ project is currently supported per solution file.
16
+
17
+ From Grzegorz Bizoń:
18
+ - Fix long compile lines in batch mode by using TEMPFILE
19
+ - Fix MSVC_BATCH=False (was treating it as true)
20
+
21
+ From Justin Gullingsrud:
22
+ - support -std=c++0x and related CXXFLAGS in pkgconfig (ParseFlags)
23
+
24
+ From Vincent Beffara:
25
+ - Support -dylib_file in pkgconfig (ParseFlags)
26
+
27
+ From Gary Oberbrunner and Sohail Somani:
28
+ - new construction variable WINDOWS_EMBED_MANIFEST to automatically
29
+ embed manifests in Windows EXEs and DLLs.
30
+
31
+ From Gary Oberbrunner:
32
+ - Fix Visual Studio project generation when CPPPATH contains Dir nodes
33
+ - Ensure Visual Studio project is regenerated when CPPPATH or CPPDEFINES change
34
+ - Fix unicode error when using non-ASCII filenames with Copy or Install
35
+ - Put RPATH in LINKCOM rather than LINKFLAGS so resetting
36
+ LINKFLAGS doesn't kill RPATH
37
+ - Fix precompiled headers on Windows when variant dir name has spaces.
38
+ - Adding None to an Action no longer fails (just returns original action)
39
+ - New --debug=prepare option to show each target as it's being
40
+ prepared, whether or not anything needs to be done for it.
41
+ - New debug option --debug=duplicate to print a line for each
42
+ unlink/relink (or copy) of a variant file from its source file.
43
+ - Improve error message for EnumVariables to show legal values.
44
+ - Fix Intel compiler to sort versions >9 correctly (esp. on Linux)
45
+ - Fix Install() when the source and target are directories and the
46
+ target directory exists.
47
+
48
+ From David Garcia Garzon:
49
+ - Fix Delete to be able to delete broken symlinks and dir
50
+ symlinks.
51
+
52
+ From Robert Lehr:
53
+ - Handle .output file generated by bison/yacc properly. Cleaning it
54
+ when necessary.
55
+
56
+ From Antoine Dechaume:
57
+ - Handle SWIG file where there is whitespace after the module name
58
+ properly. Previously the generated files would include
59
+ the whitespace.
60
+
61
+ From Dmitry R.:
62
+ - Handle Environment in case __semi_deepcopy is None
63
+
64
+ From Benoit Belley:
65
+
66
+ - Much improved support for Windows UNC paths (\\SERVERNAME).
67
+
68
+ From Jean-Baptiste Lab:
69
+
70
+ - Fix problems with appending CPPDEFINES that contain
71
+ dictionaries, and related issues with Parse/MergeFlags and
72
+ CPPDEFINES.
73
+
74
+ From Allen Weeks:
75
+
76
+ - Fix for an issue with implicit-cache with multiple targets
77
+ when dependencies are removed on disk.
78
+
79
+ From Evgeny Podjachev and Alexey Petruchick:
80
+
81
+ - Support generation of Microsoft Visual Studio 2008 (9.0)
82
+ and 2010 (10.0) project and solution files.
83
+
84
+ From Ken Deeter:
85
+
86
+ - Fix a problem when FS Entries which are actually Dirs have builders.
87
+
88
+ From Luca Falavigna:
89
+
90
+ - Support Fortran 03
91
+
92
+ From Gary Oberbrunner:
93
+
94
+ - Print the path to the SCons package in scons --version
95
+
96
+ From Jean-Fran�ois Colson:
97
+
98
+ - Improve Microsoft Visual Studio Solution generation, and fix
99
+ various errors in the generated solutions especially when using
100
+ MSVS_SCC_PROVIDER, and when generating multiple projects. The
101
+ construction variable MSVS_SCC_PROJECT_BASE_PATH, which never
102
+ worked properly, is removed. Users can use the new variable
103
+ MSVS_SCC_CONNECTION_ROOT instead if desired.
104
+
105
+ From Anatoly Techtonik:
106
+
107
+ - Use subprocess in bootstrap.py instead of os.execve to avoid
108
+ losing output control on Windows (http://bugs.python.org/issue9148)
109
+
110
+ - Revert patch for adding SCons to App Paths, because standard cmd
111
+ shell doesn't search there. This is confusing, because `scons` can
112
+ be executed from explorer, but fail to start from console.
113
+
114
+ - Fix broken installation with easy_install on Windows (issue #2051)
115
+ SCons traditionally installed in a way that allowed to run multiple
116
+ versions side by side. This custom logic was incompatible with
117
+ easy_install way of doing things.
118
+
119
+ - Use epydoc module for generating API docs in HTML if command line
120
+ utility is not found in PATH. Actual for Windows.
121
+
122
+ From Alexander Goomenyuk:
123
+
124
+ - Add .sx to assembly source scanner list so .sx files
125
+ get their header file dependencies detected.
126
+
127
+ From Arve Knudsen:
128
+
129
+ - Set module metadata when loading site_scons/site_init.py
130
+ so it is treated as a proper module; __doc__, __file__ and
131
+ __name__ now refer to the site_init.py file.
132
+
133
+ From Russel Winder:
134
+
135
+ - Users Guide updates explaining that Tools can be packages as
136
+ well as python modules.
137
+
138
+ From Gary Oberbrunner:
139
+
140
+ - New systemwide and per-user site_scons dirs.
141
+
142
+ From Dirk Baechle:
143
+
144
+ - XML fixes in User's Guide.
145
+ - Fixed the detection of 'jar' and 'rmic' during
146
+ the initialization of the respective Tools (#2730).
147
+ - Improved docs for custom Decider functions and
148
+ custom Scanner objects (#2711, #2713).
149
+ - Corrected SWIG module names for generated *.i files (#2707).
150
+
151
+ From Joe Zuntz:
152
+
153
+ - Fixed a case-sensitivity problem with Fortran modules.
154
+
155
+ From Bauke Conijn:
156
+
157
+ - Added Users Guide example for auto-generated source code
158
+
159
+ From Steven Knight:
160
+
161
+ - Fix explicit dependencies (Depends()) on Nodes that don't have
162
+ attached Builders.
163
+
164
+ - Fix use of the global Alias() function with command actions.
165
+
166
+ From Matt Hughes:
167
+
168
+ - Fix the ability to append to default $*FLAGS values (which are
169
+ implemented as CLVar instances) in a copied construction environment
170
+ without affecting the original construction environment's value.
171
+
172
+ From Rob Managan:
173
+
174
+ - Updated the TeX command strings to include a /D on Windows in
175
+ case the new directory is on a different drive letter.
176
+
177
+ - Fixed the LaTeX scanner so dependencies are found in commands that
178
+ are broken across lines with a comment or have embedded spaces.
179
+
180
+ - The TeX builders should now work with tex files that are generated
181
+ by another program. Thanks to Hans-Martin von Gaudecker for
182
+ isolating the cause of this bug.
183
+
184
+ - Added support for INDEXSTYLE environment variable so makeindex can
185
+ find style files.
186
+
187
+ - Added support for the bibunits package so we call bibtex on all
188
+ the bu*.aux files.
189
+
190
+ - Add support of finding path information on OSX for TeX applications
191
+ MacPorts and Fink paths need to be added by the user
192
+
193
+ From Russel Winder:
194
+
195
+ - Add support for DMD version 2 (the phobos2 library).
196
+
197
+ From William Deegan:
198
+
199
+ - Add initial support for VS/VC 2010 (express and non-express versions)
200
+ - Remove warning for not finding MS VC/VS install.
201
+ "scons: warning: No version of Visual Studio compiler found
202
+ - C/C++ compilers most likely not set correctly"
203
+ - Add support for Linux 3.0
204
+
205
+
8
206
  RELEASE 2.0.1 - Mon, 15 Aug 2010 15:46:32 -0700
9
207
 
10
208
  From Dirk Baechle:
@@ -24,6 +222,29 @@ RELEASE 2.0.1 - Mon, 15 Aug 2010 15:46:32 -0700
24
222
  - Fix explicit dependencies (Depends()) on Nodes that don't have
25
223
  attached Builders.
26
224
 
225
+ From Matt Hughes:
226
+
227
+ - Fix the ability to append to default $*FLAGS values (which are
228
+ implemented as CLVar instances) in a copied construction environment
229
+ without affecting the original construction environment's value.
230
+
231
+ From Rob Managan:
232
+
233
+ - Updated the TeX command strings to include a /D on Windows in
234
+ case the new directory is on a different drive letter.
235
+
236
+ - Fixed the LaTeX scanner so dependencies are found in commands that
237
+ are broken across lines with a comment or have embedded spaces.
238
+
239
+
240
+ RELEASE 2.0.0.final.0 - Mon, 14 Jun 2010 22:01:37 -0700
241
+
242
+ From Dirk Baechle:
243
+
244
+ - Fix XML in documentation.
245
+
246
+ From Steven Knight:
247
+
27
248
  - Provide forward compatibility for the 'profile' module.
28
249
 
29
250
  - Provide forward compatibility for the 'pickle' module.
@@ -55,20 +276,6 @@ RELEASE 2.0.1 - Mon, 15 Aug 2010 15:46:32 -0700
55
276
  - Handle detecting Visual C++ on Python verions with upper-case
56
277
  platform architectures like 'AMD64'.
57
278
 
58
- From Matt Hughes:
59
-
60
- - Fix the ability to append to default $*FLAGS values (which are
61
- implemented as CLVar instances) in a copied construction environment
62
- without affecting the original construction environment's value.
63
-
64
- From Rob Managan:
65
-
66
- - Updated the TeX command strings to include a /D on Windows in
67
- case the new directory is on a different drive letter.
68
-
69
- - Fixed the LaTeX scanner so dependencies are found in commands that
70
- are broken across lines with a comment or have embedded spaces.
71
-
72
279
  From W. Trevor King:
73
280
 
74
281
  - Revisions to README.
@@ -272,7 +479,7 @@ RELEASE 1.2.0.d20100117 - Sun, 17 Jan 2010 14:26:59 -0800
272
479
 
273
480
  - Remove LATEXSUFFIXES from environments that don't initialize Tex.
274
481
 
275
- - Add support for the glosaaries package for glossaries and acronyms
482
+ - Add support for the glossaries package for glossaries and acronyms
276
483
 
277
484
  - Fix problem that pdftex, latex, and pdflatex tools by themselves did
278
485
  not create the actions for bibtex, makeindex,... by creating them
@@ -472,7 +679,7 @@ RELEASE 1.1.0.d20081207 - Sun, 07 Dec 2008 19:17:23 -0800
472
679
 
473
680
  - Issue 2401: Fix usage of comparisons with None.
474
681
 
475
- From Ludwig Hhne:
682
+ From Ludwig H�hne:
476
683
 
477
684
  - Handle Java inner classes declared within a method.
478
685
 
@@ -601,7 +808,7 @@ RELEASE 1.1.0 - Thu, 09 Oct 2008 08:33:47 -0700
601
808
 
602
809
  - Fix VariantDir duplication of #included files in subdirectories.
603
810
 
604
- From Ludwig Hhne:
811
+ From Ludwig H�hne:
605
812
 
606
813
  - Reduce memory usage when a directory is used as a dependency of
607
814
  another Node (such as an Alias) by returning a concatenation
@@ -716,7 +923,7 @@ RELEASE 1.0.0 - XXX
716
923
 
717
924
  - Clear the Node state when turning a generic Entry into a Dir.
718
925
 
719
- From Ludwig Hhne:
926
+ From Ludwig H�hne:
720
927
 
721
928
  - Fix sporadic output-order failures in test/GetBuildFailures/parallel.py.
722
929
 
@@ -950,7 +1157,7 @@ RELEASE 0.98.1 - Fri, 18 Apr 2008 19:11:58 -0700
950
1157
 
951
1158
  - Fix the --debug=stree option so it prints its tree once, not twice.
952
1159
 
953
- From Johan Boul�:
1160
+ From Johan Boul�:
954
1161
 
955
1162
  - Fix the ability to use LoadableModule() under MinGW.
956
1163
 
@@ -1063,7 +1270,7 @@ RELEASE 0.98 - Sun, 30 Mar 2008 23:33:05 -0700
1063
1270
  calls by using a File's .suffix attribute directly instead of
1064
1271
  stringifying it.
1065
1272
 
1066
- From Jérôme Berger:
1273
+ From Jérôme Berger:
1067
1274
 
1068
1275
  - Have the D language scanner search for .di files as well as .d files.
1069
1276
 
@@ -1677,7 +1884,7 @@ RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
1677
1884
 
1678
1885
  RELEASE 0.96.95 - Mon, 12 Feb 2007 20:25:16 -0600
1679
1886
 
1680
- From Anatoly:
1887
+ From Anatoly Techtonik:
1681
1888
 
1682
1889
  - Add the scons.org URL and a package description to the setup.py
1683
1890
  arguments.
@@ -2164,7 +2371,7 @@ RELEASE 0.96.92 - Mon, 10 Apr 2006 21:08:22 -0400
2164
2371
  - Fix C/C++ compiler selection on AIX to not always use the external $CC
2165
2372
  environment variable.
2166
2373
 
2167
- From August Hörandl:
2374
+ From August Hörandl:
2168
2375
 
2169
2376
  - Add a scanner for \include and \import files, with support for
2170
2377
  searching a directory list in $TEXINPUTS (imported from the external
@@ -5330,5 +5537,5 @@ A brief overview of important functionality available in release 0.01:
5330
5537
 
5331
5538
  - Windows installer available.
5332
5539
 
5333
- Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
5334
- src/CHANGES.txt 5134 2010/08/16 23:02:40 bdeegan
5540
+ Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
5541
+ src/CHANGES.txt 5357 2011/09/09 21:31:03 bdeegan