fxruby 1.6.22-x86-mingw32 → 1.6.23-x86-mingw32
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.
- data/.gitignore +14 -0
- data/.yardopts +8 -0
- data/History.txt +6 -0
- data/Manifest.txt +317 -24
- data/README.git +3 -0
- data/README.rdoc +537 -0
- data/Rakefile +62 -46
- data/Rakefile.cross +397 -0
- data/doap.rdf +3 -3
- data/doap.rdf.erb +87 -0
- data/examples/WhatAQuietStiff.rb +356 -0
- data/examples/canvasdemo.rb +88 -0
- data/examples/gdchart.rb +76 -0
- data/examples/gembrowser.rb +289 -0
- data/examples/rmagick.rb +44 -0
- data/lib/1.8/fox16.so +0 -0
- data/lib/1.9/fox16.so +0 -0
- data/lib/fox16/canvas.rb +606 -0
- data/lib/fox16/irb.rb +1 -0
- data/lib/fox16/splashscreen.rb +1 -0
- data/lib/fox16/tkcompat.rb +56 -0
- data/lib/fox16/version.rb +1 -1
- data/rdoc-sources/FX4Splitter.rb +44 -44
- data/rdoc-sources/FX7Segment.rb +3 -3
- data/rdoc-sources/FXAccelTable.rb +1 -1
- data/rdoc-sources/FXApp.rb +51 -51
- data/rdoc-sources/FXArrowButton.rb +6 -6
- data/rdoc-sources/FXBMPIcon.rb +12 -12
- data/rdoc-sources/FXBMPImage.rb +6 -6
- data/rdoc-sources/FXBitmap.rb +9 -9
- data/rdoc-sources/FXBitmapFrame.rb +3 -3
- data/rdoc-sources/FXBitmapView.rb +12 -12
- data/rdoc-sources/FXButton.rb +5 -5
- data/rdoc-sources/FXCanvas.rb +4 -4
- data/rdoc-sources/FXCheckButton.rb +7 -7
- data/rdoc-sources/FXChoiceBox.rb +16 -16
- data/rdoc-sources/FXColorBar.rb +9 -9
- data/rdoc-sources/FXColorDialog.rb +4 -4
- data/rdoc-sources/FXColorList.rb +1 -1
- data/rdoc-sources/FXColorRing.rb +4 -4
- data/rdoc-sources/FXColorSelector.rb +38 -38
- data/rdoc-sources/FXColorWell.rb +15 -15
- data/rdoc-sources/FXColorWheel.rb +8 -8
- data/rdoc-sources/FXComboBox.rb +24 -24
- data/rdoc-sources/FXCursor.rb +12 -12
- data/rdoc-sources/FXDC.rb +176 -176
- data/rdoc-sources/FXDCPrint.rb +20 -20
- data/rdoc-sources/FXDCWindow.rb +2 -2
- data/rdoc-sources/FXDataTarget.rb +1 -1
- data/rdoc-sources/FXDebugTarget.rb +1 -1
- data/rdoc-sources/FXDelegator.rb +2 -2
- data/rdoc-sources/FXDial.rb +9 -9
- data/rdoc-sources/FXDialogBox.rb +3 -3
- data/rdoc-sources/FXDict.rb +2 -3
- data/rdoc-sources/FXDirBox.rb +2 -2
- data/rdoc-sources/FXDirList.rb +14 -14
- data/rdoc-sources/FXDirSelector.rb +14 -14
- data/rdoc-sources/FXDockBar.rb +35 -35
- data/rdoc-sources/FXDockHandler.rb +2 -2
- data/rdoc-sources/FXDockSite.rb +11 -11
- data/rdoc-sources/FXDockTitle.rb +2 -2
- data/rdoc-sources/FXDocument.rb +2 -2
- data/rdoc-sources/FXDragCorner.rb +2 -2
- data/rdoc-sources/FXDrawable.rb +5 -5
- data/rdoc-sources/FXDriveBox.rb +3 -3
- data/rdoc-sources/FXFileDialog.rb +24 -24
- data/rdoc-sources/FXFileDict.rb +11 -11
- data/rdoc-sources/FXFileList.rb +25 -25
- data/rdoc-sources/FXFileSelector.rb +31 -31
- data/rdoc-sources/FXFileStream.rb +3 -3
- data/rdoc-sources/FXFoldingList.rb +76 -76
- data/rdoc-sources/FXFont.rb +133 -133
- data/rdoc-sources/FXFontDialog.rb +1 -1
- data/rdoc-sources/FXFontSelector.rb +14 -14
- data/rdoc-sources/FXFrame.rb +5 -5
- data/rdoc-sources/FXGIFCursor.rb +6 -6
- data/rdoc-sources/FXGIFIcon.rb +6 -6
- data/rdoc-sources/FXGIFImage.rb +5 -5
- data/rdoc-sources/FXGLContext.rb +1 -1
- data/rdoc-sources/FXGLObject.rb +8 -8
- data/rdoc-sources/FXGLShape.rb +23 -23
- data/rdoc-sources/FXGLViewer.rb +51 -51
- data/rdoc-sources/FXGLVisual.rb +1 -0
- data/rdoc-sources/FXGradientBar.rb +31 -31
- data/rdoc-sources/FXGroupBox.rb +6 -6
- data/rdoc-sources/FXHeader.rb +30 -33
- data/rdoc-sources/FXHorizontalFrame.rb +12 -12
- data/rdoc-sources/FXICOIcon.rb +14 -14
- data/rdoc-sources/FXICOImage.rb +5 -5
- data/rdoc-sources/FXIcon.rb +7 -7
- data/rdoc-sources/FXIconDict.rb +1 -0
- data/rdoc-sources/FXIconList.rb +60 -60
- data/rdoc-sources/FXId.rb +1 -1
- data/rdoc-sources/FXImage.rb +49 -49
- data/rdoc-sources/FXImageFrame.rb +12 -12
- data/rdoc-sources/FXImageView.rb +10 -10
- data/rdoc-sources/FXInputDialog.rb +4 -4
- data/rdoc-sources/FXJPGIcon.rb +13 -13
- data/rdoc-sources/FXJPGImage.rb +5 -5
- data/rdoc-sources/FXKnob.rb +12 -12
- data/rdoc-sources/FXLabel.rb +3 -3
- data/rdoc-sources/FXList.rb +31 -31
- data/rdoc-sources/FXListBox.rb +7 -7
- data/rdoc-sources/FXMDIChild.rb +24 -24
- data/rdoc-sources/FXMDIClient.rb +1 -1
- data/rdoc-sources/FXMatrix.rb +2 -2
- data/rdoc-sources/FXMemoryBuffer.rb +1 -1
- data/rdoc-sources/FXMemoryStream.rb +1 -1
- data/rdoc-sources/FXMenuButton.rb +20 -19
- data/rdoc-sources/FXMenuCaption.rb +9 -9
- data/rdoc-sources/FXMenuCascade.rb +1 -1
- data/rdoc-sources/FXMenuCheck.rb +2 -2
- data/rdoc-sources/FXMenuCommand.rb +1 -1
- data/rdoc-sources/FXMenuRadio.rb +2 -2
- data/rdoc-sources/FXMenuSeparator.rb +2 -2
- data/rdoc-sources/FXMenuTitle.rb +5 -5
- data/rdoc-sources/FXMessageBox.rb +16 -16
- data/rdoc-sources/FXOptionMenu.rb +14 -14
- data/rdoc-sources/FXPCXIcon.rb +12 -12
- data/rdoc-sources/FXPCXImage.rb +5 -5
- data/rdoc-sources/FXPNGIcon.rb +12 -12
- data/rdoc-sources/FXPNGImage.rb +5 -5
- data/rdoc-sources/FXPPMIcon.rb +6 -6
- data/rdoc-sources/FXPPMImage.rb +5 -5
- data/rdoc-sources/FXPacker.rb +4 -4
- data/rdoc-sources/FXPopup.rb +5 -5
- data/rdoc-sources/FXPrintDialog.rb +21 -21
- data/rdoc-sources/FXProgressBar.rb +10 -10
- data/rdoc-sources/FXProgressDialog.rb +3 -3
- data/rdoc-sources/FXQuatd.rb +19 -19
- data/rdoc-sources/FXQuatf.rb +23 -23
- data/rdoc-sources/FXRGBIcon.rb +13 -13
- data/rdoc-sources/FXRGBImage.rb +5 -5
- data/rdoc-sources/FXRadioButton.rb +10 -10
- data/rdoc-sources/FXRanged.rb +2 -2
- data/rdoc-sources/FXRangef.rb +2 -2
- data/rdoc-sources/FXRealSlider.rb +33 -33
- data/rdoc-sources/FXRealSpinner.rb +31 -31
- data/rdoc-sources/FXRecentFiles.rb +14 -14
- data/rdoc-sources/FXRectangle.rb +22 -22
- data/rdoc-sources/FXRegistry.rb +3 -3
- data/rdoc-sources/FXReplaceDialog.rb +20 -20
- data/rdoc-sources/FXRootWindow.rb +2 -2
- data/rdoc-sources/FXRuler.rb +28 -28
- data/rdoc-sources/FXRulerView.rb +5 -5
- data/rdoc-sources/FXScrollArea.rb +27 -27
- data/rdoc-sources/FXScrollBar.rb +26 -26
- data/rdoc-sources/FXScrollPane.rb +3 -3
- data/rdoc-sources/FXScrollWindow.rb +6 -6
- data/rdoc-sources/FXSearchDialog.rb +8 -8
- data/rdoc-sources/FXSeparator.rb +24 -24
- data/rdoc-sources/FXSettings.rb +44 -44
- data/rdoc-sources/FXShutter.rb +35 -35
- data/rdoc-sources/FXSize.rb +14 -14
- data/rdoc-sources/FXSlider.rb +33 -33
- data/rdoc-sources/FXSphered.rb +2 -2
- data/rdoc-sources/FXSpheref.rb +2 -2
- data/rdoc-sources/FXSpinner.rb +30 -30
- data/rdoc-sources/FXSplashWindow.rb +5 -5
- data/rdoc-sources/FXSplitter.rb +18 -18
- data/rdoc-sources/FXSpring.rb +15 -15
- data/rdoc-sources/FXStatusBar.rb +14 -14
- data/rdoc-sources/FXStatusLine.rb +7 -7
- data/rdoc-sources/FXStream.rb +20 -20
- data/rdoc-sources/FXSwitcher.rb +23 -23
- data/rdoc-sources/FXTGAIcon.rb +12 -12
- data/rdoc-sources/FXTGAImage.rb +5 -5
- data/rdoc-sources/FXTIFIcon.rb +13 -13
- data/rdoc-sources/FXTIFImage.rb +5 -5
- data/rdoc-sources/FXTabBar.rb +31 -31
- data/rdoc-sources/FXTabBook.rb +13 -13
- data/rdoc-sources/FXTabItem.rb +22 -22
- data/rdoc-sources/FXTable.rb +148 -148
- data/rdoc-sources/FXText.rb +91 -91
- data/rdoc-sources/FXTextField.rb +39 -39
- data/rdoc-sources/FXToggleButton.rb +32 -32
- data/rdoc-sources/FXToolBar.rb +25 -25
- data/rdoc-sources/FXToolBarGrip.rb +12 -12
- data/rdoc-sources/FXToolBarShell.rb +13 -13
- data/rdoc-sources/FXToolBarTab.rb +16 -16
- data/rdoc-sources/FXTopWindow.rb +18 -18
- data/rdoc-sources/FXTranslator.rb +1 -1
- data/rdoc-sources/FXTreeList.rb +66 -66
- data/rdoc-sources/FXTreeListBox.rb +20 -20
- data/rdoc-sources/FXTriStateButton.rb +23 -23
- data/rdoc-sources/FXVec2d.rb +1 -1
- data/rdoc-sources/FXVec2f.rb +1 -1
- data/rdoc-sources/FXVec3d.rb +1 -1
- data/rdoc-sources/FXVec3f.rb +1 -1
- data/rdoc-sources/FXVec4d.rb +1 -1
- data/rdoc-sources/FXVec4f.rb +1 -1
- data/rdoc-sources/FXVerticalFrame.rb +12 -12
- data/rdoc-sources/FXVisual.rb +19 -19
- data/rdoc-sources/FXWindow.rb +96 -96
- data/rdoc-sources/FXWizard.rb +9 -9
- data/rdoc-sources/FXXBMIcon.rb +7 -7
- data/rdoc-sources/FXXBMImage.rb +6 -6
- data/rdoc-sources/FXXPMIcon.rb +13 -13
- data/rdoc-sources/FXXPMImage.rb +5 -5
- data/rdoc-sources/Makefile +3 -3
- metadata +44 -31
- data/README +0 -39
- data/README.txt +0 -483
data/Rakefile
CHANGED
@@ -5,15 +5,53 @@ require 'rake/extensiontask'
|
|
5
5
|
require './lib/fox16/version.rb'
|
6
6
|
load 'Rakefile.cross'
|
7
7
|
|
8
|
+
# Use forked process for chdir'ed environment, to allow parallel execution with drake
|
9
|
+
module FileUtils
|
10
|
+
alias old_fileutils_cd cd
|
11
|
+
def cd(dir, options={}, &block)
|
12
|
+
raise "forked_chdir called without block" unless block_given?
|
13
|
+
Process.waitpid(fork{ old_fileutils_cd(dir, options, &block) })
|
14
|
+
end
|
15
|
+
module_function :cd
|
16
|
+
alias chdir cd
|
17
|
+
module_function :chdir
|
18
|
+
end
|
19
|
+
|
8
20
|
# Some constants we'll need
|
9
21
|
PKG_VERSION = Fox.fxrubyversion
|
10
22
|
FXSCINTILLA_INSTALL_DIR = Pathname( "build/builds/fxscintilla-#{LIBFXSCINTILLA_VERSION}" ).expand_path
|
11
23
|
|
24
|
+
SWIG = (RUBY_PLATFORM =~ /mingw/) ? "swig-1.3.22.exe" : "swig-1.3.22"
|
25
|
+
SWIGFLAGS = "-fcompact -noruntime -c++ -ruby -no_default -I../fox-includes"
|
26
|
+
SWIG_LIB = `#{SWIG} -swiglib`.chomp
|
27
|
+
SWIG_MODULES = {
|
28
|
+
"core.i" => "core_wrap.cpp",
|
29
|
+
"dcmodule.i" => "dc_wrap.cpp",
|
30
|
+
"dialogs.i" => "dialogs_wrap.cpp",
|
31
|
+
"framesmodule.i" => "frames_wrap.cpp",
|
32
|
+
"iconlistmodule.i" => "iconlist_wrap.cpp",
|
33
|
+
"icons.i" => "icons_wrap.cpp",
|
34
|
+
"image.i" => "image_wrap.cpp",
|
35
|
+
"labelmodule.i" => "label_wrap.cpp",
|
36
|
+
"layout.i" => "layout_wrap.cpp",
|
37
|
+
"listmodule.i" => "list_wrap.cpp",
|
38
|
+
"mdi.i" => "mdi_wrap.cpp",
|
39
|
+
"menumodule.i" => "menu_wrap.cpp",
|
40
|
+
"fx3d.i" => "fx3d_wrap.cpp",
|
41
|
+
"scintilla.i" => "scintilla_wrap.cpp",
|
42
|
+
"table-module.i" => "table_wrap.cpp",
|
43
|
+
"text-module.i" => "text_wrap.cpp",
|
44
|
+
"treelist-module.i" => "treelist_wrap.cpp",
|
45
|
+
"ui.i" => "ui_wrap.cpp"
|
46
|
+
}
|
47
|
+
|
48
|
+
|
12
49
|
hoe = Hoe.spec "fxruby" do
|
13
50
|
# ... project specific data ...
|
14
51
|
self.blog_categories = %w{FXRuby}
|
15
52
|
self.clean_globs = [".config", "ext/fox16/Makefile", "ext/fox16/*.o", "ext/fox16/*.bundle", "ext/fox16/mkmf.log", "ext/fox16/conftest.dSYM", "ext/fox16/include/swigrubyrun.h"]
|
16
53
|
developer("Lyle Johnson", "lyle@lylejohnson.name")
|
54
|
+
developer("Lars Kanis", "kanis@comcard.de")
|
17
55
|
self.extra_rdoc_files = ["rdoc-sources", File.join("rdoc-sources", "README.rdoc")]
|
18
56
|
self.remote_rdoc_dir = "doc/api"
|
19
57
|
self.spec_extras = {
|
@@ -25,6 +63,15 @@ hoe = Hoe.spec "fxruby" do
|
|
25
63
|
}
|
26
64
|
self.test_globs = ["test/**/TC_*.rb"]
|
27
65
|
self.version = PKG_VERSION
|
66
|
+
self.readme_file = 'README.rdoc'
|
67
|
+
self.extra_rdoc_files << self.readme_file
|
68
|
+
|
69
|
+
spec_extras[:files] = File.read_utf("Manifest.txt").split(/\r?\n\r?/).reject{|f| f=~/^fox-includes|^web/ }
|
70
|
+
spec_extras[:files] += SWIG_MODULES.values.map{|f| File.join("ext/fox16", f) }
|
71
|
+
spec_extras[:files] << 'ext/fox16/include/inlinestubs.h'
|
72
|
+
spec_extras[:files] << 'ext/fox16/librb.c'
|
73
|
+
spec_extras[:files] << 'doap.rdf'
|
74
|
+
spec_extras[:files] << 'lib/fox16/kwargs.rb'
|
28
75
|
end
|
29
76
|
|
30
77
|
# Make sure extension is built before tests are run
|
@@ -58,34 +105,6 @@ end
|
|
58
105
|
# c:/ruby-1.8.6-p383-preview2/devkit/msys/1.0.11/usr/local/share/swig/1.3.22
|
59
106
|
# before running swig on MinGW.
|
60
107
|
namespace :swig do
|
61
|
-
SWIG = (RUBY_PLATFORM =~ /mingw/) ? "swig-1.3.22.exe" : "swig-1.3.22"
|
62
|
-
SWIGFLAGS = "-fcompact -noruntime -c++ -ruby -no_default -I../fox-includes"
|
63
|
-
SWIG_LIB = `#{SWIG} -swiglib`.chomp
|
64
|
-
SWIG_MODULES = {
|
65
|
-
"core.i" => "core_wrap.cpp",
|
66
|
-
"dcmodule.i" => "dc_wrap.cpp",
|
67
|
-
"dialogs.i" => "dialogs_wrap.cpp",
|
68
|
-
"framesmodule.i" => "frames_wrap.cpp",
|
69
|
-
"iconlistmodule.i" => "iconlist_wrap.cpp",
|
70
|
-
"icons.i" => "icons_wrap.cpp",
|
71
|
-
"image.i" => "image_wrap.cpp",
|
72
|
-
"labelmodule.i" => "label_wrap.cpp",
|
73
|
-
"layout.i" => "layout_wrap.cpp",
|
74
|
-
"listmodule.i" => "list_wrap.cpp",
|
75
|
-
"mdi.i" => "mdi_wrap.cpp",
|
76
|
-
"menumodule.i" => "menu_wrap.cpp",
|
77
|
-
"fx3d.i" => "fx3d_wrap.cpp",
|
78
|
-
"scintilla.i" => "scintilla_wrap.cpp",
|
79
|
-
"table-module.i" => "table_wrap.cpp",
|
80
|
-
"text-module.i" => "text_wrap.cpp",
|
81
|
-
"treelist-module.i" => "treelist_wrap.cpp",
|
82
|
-
"ui.i" => "ui_wrap.cpp"
|
83
|
-
}
|
84
|
-
|
85
|
-
def wrapper_src_file_path(wrapper_src_file_name)
|
86
|
-
File.join("..", "ext", "fox16", wrapper_src_file_name)
|
87
|
-
end
|
88
|
-
|
89
108
|
def sed(wrapper_src_file_name)
|
90
109
|
results = []
|
91
110
|
IO.readlines(wrapper_src_file_name).each do |line|
|
@@ -104,20 +123,21 @@ namespace :swig do
|
|
104
123
|
end
|
105
124
|
|
106
125
|
def swig(swig_interface_file_name, wrapper_src_file_name)
|
107
|
-
|
108
|
-
|
126
|
+
cmd = "#{SWIG} #{SWIGFLAGS} -o #{wrapper_src_file_name} #{swig_interface_file_name}"
|
127
|
+
puts cmd
|
128
|
+
system cmd
|
129
|
+
sed wrapper_src_file_name
|
109
130
|
end
|
110
131
|
|
111
132
|
task :swig_librb => ["ext/fox16/librb.c"]
|
112
|
-
file "ext/fox16/librb.c" do
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
end
|
133
|
+
file "ext/fox16/librb.c" do |task|
|
134
|
+
puts "generate #{task.name}"
|
135
|
+
File.open(task.name, "w") do |io|
|
136
|
+
io.puts "#define SWIG_GLOBAL 1"
|
137
|
+
io.write(IO.read(File.join(SWIG_LIB, "ruby", "precommon.swg")))
|
138
|
+
io.write(IO.read(File.join(SWIG_LIB, "common.swg")))
|
139
|
+
io.write(IO.read(File.join(SWIG_LIB, "ruby", "rubyhead.swg")))
|
140
|
+
io.write(IO.read(File.join(SWIG_LIB, "ruby", "rubydef.swg")))
|
121
141
|
end
|
122
142
|
end
|
123
143
|
|
@@ -130,10 +150,8 @@ namespace :swig do
|
|
130
150
|
|
131
151
|
file cppfile_path => [ifile, 'macros.i', 'common.i', 'fxdefs.i', 'ruby-typemaps.i',
|
132
152
|
'markfuncs.i', 'exceptions.i', 'freefuncs.i', 'macros.i', 'handlers.i'
|
133
|
-
].map{|f| File.join("swig-interfaces", f) } do
|
134
|
-
|
135
|
-
swig(ifile, cppfile)
|
136
|
-
end
|
153
|
+
].map{|f| File.join("swig-interfaces", f) } do |task|
|
154
|
+
swig(File.join("swig-interfaces", ifile), cppfile_path)
|
137
155
|
end
|
138
156
|
end
|
139
157
|
end
|
@@ -171,9 +189,7 @@ namespace :fxruby do
|
|
171
189
|
end
|
172
190
|
|
173
191
|
def make_impl
|
174
|
-
|
175
|
-
ruby "make_impl.rb"
|
176
|
-
end
|
192
|
+
ruby '-Cext/fox16', "make_impl.rb"
|
177
193
|
end
|
178
194
|
|
179
195
|
task :configure => [:scintilla, :setversions, :generate_kwargs_lib]
|
data/Rakefile.cross
ADDED
@@ -0,0 +1,397 @@
|
|
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.8.7:1.9.2'
|
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 zlib tarball
|
37
|
+
LIBZ_VERSION = ENV['LIBZ_VERSION'] || '1.2.5'
|
38
|
+
LIBZ_SOURCE_URI = URI( "http://downloads.sourceforge.net/project/libpng/zlib/#{LIBZ_VERSION}/zlib-#{LIBZ_VERSION}.tar.bz2" )
|
39
|
+
LIBZ_TARBALL = STATIC_SOURCESDIR + File.basename( LIBZ_SOURCE_URI.path )
|
40
|
+
STATIC_LIBZ_BUILDDIR = STATIC_BUILDDIR + LIBZ_TARBALL.basename(".tar.bz2")
|
41
|
+
LIBZ_MAKEFILE = STATIC_LIBZ_BUILDDIR + 'Makefile'
|
42
|
+
LIBZ_A = STATIC_INSTALLDIR + 'lib' + 'libz.a'
|
43
|
+
|
44
|
+
# Fetch libpng tarball
|
45
|
+
LIBPNG_VERSION = ENV['LIBPNG_VERSION'] || '1.5.4'
|
46
|
+
LIBPNG_SOURCE_URI = URI( "http://prdownloads.sourceforge.net/libpng/libpng-#{LIBPNG_VERSION}.tar.gz?download" )
|
47
|
+
LIBPNG_TARBALL = STATIC_SOURCESDIR + File.basename( LIBPNG_SOURCE_URI.path )
|
48
|
+
STATIC_LIBPNG_BUILDDIR = STATIC_BUILDDIR + LIBPNG_TARBALL.basename(".tar.gz")
|
49
|
+
LIBPNG_MAKEFILE = STATIC_LIBPNG_BUILDDIR + 'Makefile'
|
50
|
+
LIBPNG_A = STATIC_INSTALLDIR + 'lib' + 'libpng.a'
|
51
|
+
|
52
|
+
|
53
|
+
# Fetch libjpeg tarball
|
54
|
+
LIBJPEG_VERSION = ENV['LIBJPEG_VERSION'] || '8c'
|
55
|
+
LIBJPEG_SOURCE_URI = URI( "http://www.ijg.org/files/jpegsrc.v#{LIBJPEG_VERSION}.tar.gz" )
|
56
|
+
LIBJPEG_TARBALL = STATIC_SOURCESDIR + File.basename( LIBJPEG_SOURCE_URI.path )
|
57
|
+
STATIC_LIBJPEG_BUILDDIR = STATIC_BUILDDIR + "jpeg-#{LIBJPEG_VERSION}"
|
58
|
+
LIBJPEG_MAKEFILE = STATIC_LIBJPEG_BUILDDIR + 'Makefile'
|
59
|
+
LIBJPEG_A = STATIC_INSTALLDIR + 'lib' + 'libjpeg.a'
|
60
|
+
|
61
|
+
|
62
|
+
# Fetch libtiff tarball
|
63
|
+
LIBTIFF_VERSION = ENV['LIBTIFF_VERSION'] || '3.9.5'
|
64
|
+
LIBTIFF_SOURCE_URI = URI( "http://download.osgeo.org/libtiff/tiff-#{LIBTIFF_VERSION}.tar.gz" )
|
65
|
+
LIBTIFF_TARBALL = STATIC_SOURCESDIR + File.basename( LIBTIFF_SOURCE_URI.path )
|
66
|
+
STATIC_LIBTIFF_BUILDDIR = STATIC_BUILDDIR + LIBTIFF_TARBALL.basename(".tar.gz")
|
67
|
+
LIBTIFF_MAKEFILE = STATIC_LIBTIFF_BUILDDIR + 'Makefile'
|
68
|
+
LIBTIFF_A = STATIC_INSTALLDIR + 'lib' + 'libtiff.a'
|
69
|
+
|
70
|
+
|
71
|
+
# Fetch libfox tarball
|
72
|
+
LIBFOX_VERSION = ENV['LIBFOX_VERSION'] || '1.6.44'
|
73
|
+
LIBFOX_SOURCE_URI = URI( "http://ftp.fox-toolkit.org/pub/fox-#{LIBFOX_VERSION}.tar.gz" )
|
74
|
+
LIBFOX_TARBALL = STATIC_SOURCESDIR + File.basename( LIBFOX_SOURCE_URI.path )
|
75
|
+
STATIC_LIBFOX_BUILDDIR = STATIC_BUILDDIR + LIBFOX_TARBALL.basename(".tar.gz")
|
76
|
+
LIBFOX_MAKEFILE = STATIC_LIBFOX_BUILDDIR + 'Makefile'
|
77
|
+
LIBFOX_A = STATIC_INSTALLDIR + 'lib' + 'libfox.a'
|
78
|
+
|
79
|
+
# Fetch fxscintilla tarball
|
80
|
+
LIBFXSCINTILLA_VERSION = ENV['LIBFXSCINTILLA_VERSION'] || '2.28.0'
|
81
|
+
LIBFXSCINTILLA_SOURCE_URI = URI( "http://download.savannah.gnu.org/releases/fxscintilla/fxscintilla-#{LIBFXSCINTILLA_VERSION}.tar.gz" )
|
82
|
+
LIBFXSCINTILLA_TARBALL = STATIC_SOURCESDIR + File.basename( LIBFXSCINTILLA_SOURCE_URI.path )
|
83
|
+
STATIC_LIBFXSCINTILLA_BUILDDIR = STATIC_BUILDDIR + LIBFXSCINTILLA_TARBALL.basename(".tar.gz")
|
84
|
+
LIBFXSCINTILLA_MAKEFILE = STATIC_LIBFXSCINTILLA_BUILDDIR + 'Makefile'
|
85
|
+
LIBFXSCINTILLA_A = STATIC_INSTALLDIR + 'lib' + 'libfxscintilla.a'
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
# clean intermediate files and folders
|
90
|
+
CLEAN.include( STATIC_BUILDDIR.to_s )
|
91
|
+
|
92
|
+
#####################################################################
|
93
|
+
### C R O S S - C O M P I L A T I O N - T A S K S
|
94
|
+
#####################################################################
|
95
|
+
|
96
|
+
directory STATIC_SOURCESDIR.to_s
|
97
|
+
|
98
|
+
#
|
99
|
+
# Static libz build tasks
|
100
|
+
#
|
101
|
+
directory STATIC_LIBZ_BUILDDIR.to_s
|
102
|
+
|
103
|
+
# libz source file should be stored there
|
104
|
+
file LIBZ_TARBALL => STATIC_SOURCESDIR do |t|
|
105
|
+
# download the source file using wget or curl
|
106
|
+
chdir File.dirname(t.name) do
|
107
|
+
sh "wget '#{LIBZ_SOURCE_URI}' -O #{LIBZ_TARBALL}"
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
# Extract the libz builds
|
112
|
+
file STATIC_LIBZ_BUILDDIR => LIBZ_TARBALL do |t|
|
113
|
+
sh 'tar', '-xjf', LIBZ_TARBALL.to_s, '-C', STATIC_LIBZ_BUILDDIR.parent.to_s
|
114
|
+
rm LIBZ_MAKEFILE
|
115
|
+
end
|
116
|
+
|
117
|
+
LIBZ_ENV = [
|
118
|
+
"CC=#{CROSS_PREFIX}-gcc",
|
119
|
+
"AR=#{CROSS_PREFIX}-ar",
|
120
|
+
"RANLIB=#{CROSS_PREFIX}-ranlib",
|
121
|
+
]
|
122
|
+
|
123
|
+
# generate the makefile in a clean build location
|
124
|
+
file LIBZ_MAKEFILE => [STATIC_LIBZ_BUILDDIR] do |t|
|
125
|
+
chdir( STATIC_LIBZ_BUILDDIR ) do
|
126
|
+
options = [
|
127
|
+
"--prefix=#{STATIC_INSTALLDIR}",
|
128
|
+
]
|
129
|
+
|
130
|
+
configure_path = STATIC_LIBZ_BUILDDIR + 'configure'
|
131
|
+
sh "env #{[LIBZ_ENV, configure_path.to_s, *options].join(" ")}"
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
# generate the makefile in a clean build location
|
136
|
+
task LIBZ_A => LIBZ_MAKEFILE do |t|
|
137
|
+
chdir( STATIC_LIBZ_BUILDDIR ) do
|
138
|
+
sh "make -j#{NUM_CPUS} install 'LDSHAREDLIBC=-lmsvcrt'"
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
#
|
143
|
+
# Static libpng build tasks
|
144
|
+
#
|
145
|
+
directory STATIC_LIBPNG_BUILDDIR.to_s
|
146
|
+
|
147
|
+
# libpng source file should be stored there
|
148
|
+
file LIBPNG_TARBALL => STATIC_SOURCESDIR do |t|
|
149
|
+
# download the source file using wget or curl
|
150
|
+
chdir File.dirname(t.name) do
|
151
|
+
sh "wget '#{LIBPNG_SOURCE_URI}' -O #{LIBPNG_TARBALL}"
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
# Extract the libpng builds
|
156
|
+
file STATIC_LIBPNG_BUILDDIR => LIBPNG_TARBALL do |t|
|
157
|
+
sh 'tar', '-xzf', LIBPNG_TARBALL.to_s, '-C', STATIC_LIBPNG_BUILDDIR.parent.to_s
|
158
|
+
end
|
159
|
+
|
160
|
+
LIBPNG_ENV = [
|
161
|
+
"'CPPFLAGS=-I#{STATIC_INSTALLDIR}/include'",
|
162
|
+
"'LDFLAGS=-L#{STATIC_INSTALLDIR}/lib'",
|
163
|
+
]
|
164
|
+
# generate the makefile in a clean build location
|
165
|
+
file LIBPNG_MAKEFILE => [STATIC_LIBPNG_BUILDDIR, LIBZ_A] do |t|
|
166
|
+
chdir( STATIC_LIBPNG_BUILDDIR ) do
|
167
|
+
options = [
|
168
|
+
"--target=#{CROSS_PREFIX}",
|
169
|
+
"--host=#{CROSS_PREFIX}",
|
170
|
+
"--build=#{RUBY_BUILD}",
|
171
|
+
"--prefix=#{STATIC_INSTALLDIR}",
|
172
|
+
"--disable-shared",
|
173
|
+
]
|
174
|
+
|
175
|
+
configure_path = STATIC_LIBPNG_BUILDDIR + 'configure'
|
176
|
+
sh "env #{[LIBPNG_ENV, configure_path.to_s, *options].join(" ")}"
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
# generate the makefile in a clean build location
|
181
|
+
task LIBPNG_A => [LIBPNG_MAKEFILE, LIBZ_A] do |t|
|
182
|
+
chdir( STATIC_LIBPNG_BUILDDIR ) do
|
183
|
+
sh "make -j#{NUM_CPUS} install"
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
#
|
188
|
+
# Static libjpeg build tasks
|
189
|
+
#
|
190
|
+
directory STATIC_LIBJPEG_BUILDDIR.to_s
|
191
|
+
|
192
|
+
# libjpeg source file should be stored there
|
193
|
+
file LIBJPEG_TARBALL => STATIC_SOURCESDIR do |t|
|
194
|
+
# download the source file using wget or curl
|
195
|
+
chdir File.dirname(t.name) do
|
196
|
+
sh "wget '#{LIBJPEG_SOURCE_URI}' -O #{LIBJPEG_TARBALL}"
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
# Extract the libjpeg builds
|
201
|
+
file STATIC_LIBJPEG_BUILDDIR => LIBJPEG_TARBALL do |t|
|
202
|
+
sh 'tar', '-xzf', LIBJPEG_TARBALL.to_s, '-C', STATIC_LIBJPEG_BUILDDIR.parent.to_s
|
203
|
+
end
|
204
|
+
|
205
|
+
# generate the makefile in a clean build location
|
206
|
+
file LIBJPEG_MAKEFILE => STATIC_LIBJPEG_BUILDDIR do |t|
|
207
|
+
chdir( STATIC_LIBJPEG_BUILDDIR ) do
|
208
|
+
options = [
|
209
|
+
"--target=#{CROSS_PREFIX}",
|
210
|
+
"--host=#{CROSS_PREFIX}",
|
211
|
+
"--build=#{RUBY_BUILD}",
|
212
|
+
"--prefix=#{STATIC_INSTALLDIR}",
|
213
|
+
"--disable-shared",
|
214
|
+
]
|
215
|
+
|
216
|
+
configure_path = STATIC_LIBJPEG_BUILDDIR + 'configure'
|
217
|
+
cmd = [ configure_path.to_s, *options ]
|
218
|
+
sh *cmd
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
# build libjpeg.a
|
223
|
+
task LIBJPEG_A => [LIBJPEG_MAKEFILE] do |t|
|
224
|
+
chdir( STATIC_LIBJPEG_BUILDDIR ) do
|
225
|
+
sh "make -j#{NUM_CPUS} install"
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
#
|
230
|
+
# Static libtiff build tasks
|
231
|
+
#
|
232
|
+
directory STATIC_LIBTIFF_BUILDDIR.to_s
|
233
|
+
|
234
|
+
# libtiff source file should be stored there
|
235
|
+
file LIBTIFF_TARBALL => STATIC_SOURCESDIR do |t|
|
236
|
+
# download the source file using wget or curl
|
237
|
+
chdir File.dirname(t.name) do
|
238
|
+
sh "wget '#{LIBTIFF_SOURCE_URI}' -O #{LIBTIFF_TARBALL}"
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
# Extract the libtiff builds
|
243
|
+
file STATIC_LIBTIFF_BUILDDIR => LIBTIFF_TARBALL do |t|
|
244
|
+
sh 'tar', '-xzf', LIBTIFF_TARBALL.to_s, '-C', STATIC_LIBTIFF_BUILDDIR.parent.to_s
|
245
|
+
end
|
246
|
+
|
247
|
+
LIBTIFF_ENV = [
|
248
|
+
"'CPPFLAGS=-I#{STATIC_INSTALLDIR}/include'",
|
249
|
+
"'LDFLAGS=-L#{STATIC_INSTALLDIR}/lib'",
|
250
|
+
]
|
251
|
+
|
252
|
+
# generate the makefile in a clean build location
|
253
|
+
file LIBTIFF_MAKEFILE => [STATIC_LIBTIFF_BUILDDIR, LIBJPEG_A, LIBZ_A] do |t|
|
254
|
+
chdir( STATIC_LIBTIFF_BUILDDIR ) do
|
255
|
+
options = [
|
256
|
+
"--target=#{CROSS_PREFIX}",
|
257
|
+
"--host=#{CROSS_PREFIX}",
|
258
|
+
"--build=#{RUBY_BUILD}",
|
259
|
+
"--prefix=#{STATIC_INSTALLDIR}",
|
260
|
+
"--disable-shared",
|
261
|
+
"--with-zlib-include-dir=#{STATIC_LIBZ_BUILDDIR}",
|
262
|
+
"--with-zlib-lib-dir=#{File.dirname(LIBZ_A)}",
|
263
|
+
"--with-jpeg-include-dir=#{STATIC_LIBJPEG_BUILDDIR}",
|
264
|
+
"--with-jpeg-lib-dir=#{File.dirname(LIBJPEG_A)}",
|
265
|
+
]
|
266
|
+
|
267
|
+
configure_path = STATIC_LIBTIFF_BUILDDIR + 'configure'
|
268
|
+
sh "env #{[LIBTIFF_ENV, configure_path.to_s, *options].join(" ")}"
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
272
|
+
# build libtiff.a
|
273
|
+
task LIBTIFF_A => [LIBTIFF_MAKEFILE] do |t|
|
274
|
+
chdir( STATIC_LIBTIFF_BUILDDIR ) do
|
275
|
+
sh "make -j#{NUM_CPUS} install"
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
|
280
|
+
#
|
281
|
+
# Static libfox build tasks
|
282
|
+
#
|
283
|
+
directory STATIC_LIBFOX_BUILDDIR.to_s
|
284
|
+
|
285
|
+
# libfox source file should be stored there
|
286
|
+
file LIBFOX_TARBALL => STATIC_SOURCESDIR do |t|
|
287
|
+
# download the source file using wget or curl
|
288
|
+
chdir File.dirname(t.name) do
|
289
|
+
sh "wget '#{LIBFOX_SOURCE_URI}' -O #{LIBFOX_TARBALL}"
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
# Extract the libfox builds
|
294
|
+
file STATIC_LIBFOX_BUILDDIR => LIBFOX_TARBALL do |t|
|
295
|
+
sh 'tar', '-xzf', LIBFOX_TARBALL.to_s, '-C', STATIC_LIBFOX_BUILDDIR.parent.to_s
|
296
|
+
end
|
297
|
+
|
298
|
+
LIBFOX_ENV = [
|
299
|
+
"'CPPFLAGS=-I#{STATIC_INSTALLDIR}/include'",
|
300
|
+
"'LDFLAGS=-L#{STATIC_INSTALLDIR}/lib'",
|
301
|
+
]
|
302
|
+
|
303
|
+
# generate the makefile in a clean build location
|
304
|
+
file LIBFOX_MAKEFILE => [STATIC_LIBFOX_BUILDDIR, LIBJPEG_A, LIBZ_A] do |t|
|
305
|
+
chdir( STATIC_LIBFOX_BUILDDIR ) do
|
306
|
+
options = [
|
307
|
+
"--target=#{CROSS_PREFIX}",
|
308
|
+
"--host=#{CROSS_PREFIX}",
|
309
|
+
"--build=#{RUBY_BUILD}",
|
310
|
+
"--prefix=#{STATIC_INSTALLDIR}",
|
311
|
+
"--disable-shared",
|
312
|
+
"--without-xft",
|
313
|
+
"--without-x",
|
314
|
+
]
|
315
|
+
|
316
|
+
configure_path = STATIC_LIBFOX_BUILDDIR + 'configure'
|
317
|
+
sh "env #{[LIBFOX_ENV, configure_path.to_s, *options].join(" ")}"
|
318
|
+
end
|
319
|
+
end
|
320
|
+
|
321
|
+
# build libfox.a
|
322
|
+
task LIBFOX_A => [LIBFOX_MAKEFILE] do |t|
|
323
|
+
chdir( STATIC_LIBFOX_BUILDDIR ) do
|
324
|
+
sh "make -j#{NUM_CPUS} #{FOX_ENV.join(" ")} install"
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
|
329
|
+
#
|
330
|
+
# Static libfxscintilla build tasks
|
331
|
+
#
|
332
|
+
directory STATIC_LIBFXSCINTILLA_BUILDDIR.to_s
|
333
|
+
|
334
|
+
# libfxscintilla source file should be stored there
|
335
|
+
file LIBFXSCINTILLA_TARBALL => STATIC_SOURCESDIR do |t|
|
336
|
+
# download the source file using wget or curl
|
337
|
+
chdir File.dirname(t.name) do
|
338
|
+
sh "wget '#{LIBFXSCINTILLA_SOURCE_URI}' -O #{LIBFXSCINTILLA_TARBALL}"
|
339
|
+
end
|
340
|
+
end
|
341
|
+
|
342
|
+
# Extract the libfxscintilla builds
|
343
|
+
file STATIC_LIBFXSCINTILLA_BUILDDIR => LIBFXSCINTILLA_TARBALL do |t|
|
344
|
+
sh 'tar', '-xzf', LIBFXSCINTILLA_TARBALL.to_s, '-C', STATIC_LIBFXSCINTILLA_BUILDDIR.parent.to_s
|
345
|
+
end
|
346
|
+
|
347
|
+
FOX_ENV = [
|
348
|
+
"'CFLAGS=-I#{STATIC_INSTALLDIR}/include'",
|
349
|
+
"'CPPFLAGS=-I#{STATIC_INSTALLDIR}/include'",
|
350
|
+
"'LDFLAGS=-L#{STATIC_INSTALLDIR}/lib'",
|
351
|
+
"'FOX_CFLAGS=-I#{STATIC_INSTALLDIR}/include/fox-1.6 -DFOX_1_6'",
|
352
|
+
"'FOX_LIBS=-L#{STATIC_INSTALLDIR}/lib -lFOX-1.6'",
|
353
|
+
]
|
354
|
+
|
355
|
+
# generate the makefile in a clean build location
|
356
|
+
file LIBFXSCINTILLA_MAKEFILE => [STATIC_LIBFXSCINTILLA_BUILDDIR, LIBFOX_A] do |t|
|
357
|
+
chdir( STATIC_LIBFXSCINTILLA_BUILDDIR ) do
|
358
|
+
options = [
|
359
|
+
"--target=#{CROSS_PREFIX}",
|
360
|
+
"--host=#{CROSS_PREFIX}",
|
361
|
+
"--build=#{RUBY_BUILD}",
|
362
|
+
"--prefix=#{STATIC_INSTALLDIR}",
|
363
|
+
"--disable-shared",
|
364
|
+
]
|
365
|
+
|
366
|
+
configure_path = STATIC_LIBFXSCINTILLA_BUILDDIR + 'configure'
|
367
|
+
sh "env #{[FOX_ENV, configure_path.to_s, *options].join(" ")}"
|
368
|
+
end
|
369
|
+
end
|
370
|
+
|
371
|
+
# build libfxscintilla.a
|
372
|
+
task LIBFXSCINTILLA_A => [LIBFXSCINTILLA_MAKEFILE] do |t|
|
373
|
+
chdir( STATIC_LIBFXSCINTILLA_BUILDDIR ) do
|
374
|
+
sh "make -j#{NUM_CPUS} #{FOX_ENV.join(" ")} install"
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
desc "compile static libz libraries"
|
381
|
+
task :static_libs => [ LIBZ_A, LIBPNG_A, LIBJPEG_A, LIBTIFF_A, LIBFOX_A, LIBFXSCINTILLA_A ]
|
382
|
+
|
383
|
+
desc 'cross compile required libs for win32'
|
384
|
+
task :cross => [ :mingw32, :static_libs ]
|
385
|
+
|
386
|
+
task :mingw32 do
|
387
|
+
# Use Rake::ExtensionCompiler helpers to find the proper host
|
388
|
+
unless Rake::ExtensionCompiler.mingw_host then
|
389
|
+
warn "You need to install mingw32 cross compile functionality to be able to continue."
|
390
|
+
warn "Please refer to your distribution/package manager documentation about installation."
|
391
|
+
fail
|
392
|
+
end
|
393
|
+
ENV['CROSS_PREFIX'] = Rake::ExtensionCompiler.mingw_host
|
394
|
+
end
|
395
|
+
|
396
|
+
|
397
|
+
# vim: syntax=ruby
|