libusb 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/History.md +5 -0
- data/Rakefile +106 -85
- data/ext/extconf.rb +1 -1
- data/lib/libusb/version_gem.rb +1 -1
- metadata +13 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c66fa9a97ecf163d05713d9e124447d8de0cef6e
|
4
|
+
data.tar.gz: 54c7ec8a19d226fbbd21fec0f2d0372252ba691c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7da5f1b663be5de6dd92d4d5c1e8487cfb8238d83e6e94201e4771bf378c82ff998fbcf55b8d568ae329f9de0165fcbdc064953523212c45eed19059735adedb
|
7
|
+
data.tar.gz: eacb7067b56c6e454178679e880b986a0f393b1548f111e5ad9eba3cc5f256c222f70c616dc4bcb5fcee2d0c205286486ca23f9bafb62d3960536443359a5e81
|
data/History.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
0.3.3 / 2013-04-05
|
2
|
+
------------------
|
3
|
+
* Build and package binary x64 version of libusb for Windows in addition to x86.
|
4
|
+
* Fix build on Windows from source gem (although may take almost an hour).
|
5
|
+
|
1
6
|
0.3.2 / 2013-02-16
|
2
7
|
------------------
|
3
8
|
* Don't enforces DevKit installation on Windows.
|
data/Rakefile
CHANGED
@@ -2,10 +2,11 @@
|
|
2
2
|
# -*- ruby -*-
|
3
3
|
|
4
4
|
require 'bundler/gem_tasks'
|
5
|
+
require 'rubygems/package_task'
|
5
6
|
require 'pathname'
|
6
7
|
require 'uri'
|
7
|
-
require '
|
8
|
-
require 'rake/
|
8
|
+
require 'ostruct'
|
9
|
+
require 'rake/clean'
|
9
10
|
|
10
11
|
task :gem => :build
|
11
12
|
task :compile do
|
@@ -20,17 +21,8 @@ task :travis=>:compile do
|
|
20
21
|
end
|
21
22
|
task :default => :test
|
22
23
|
|
23
|
-
# Cross-compilation constants
|
24
24
|
COMPILE_HOME = Pathname( "./tmp" ).expand_path
|
25
25
|
STATIC_SOURCESDIR = COMPILE_HOME + 'sources'
|
26
|
-
STATIC_BUILDDIR = COMPILE_HOME + 'builds'
|
27
|
-
RUBY_BUILD = RbConfig::CONFIG["host"]
|
28
|
-
CROSS_PREFIX = begin
|
29
|
-
Rake::ExtensionCompiler.mingw_host
|
30
|
-
rescue => err
|
31
|
-
$stderr.puts "Cross-compilation disabled -- %s" % [ err.message ]
|
32
|
-
'unknown'
|
33
|
-
end
|
34
26
|
|
35
27
|
# Fetch tarball from sourceforge
|
36
28
|
# LIBUSB_VERSION = ENV['LIBUSB_VERSION'] || '1.0.9'
|
@@ -52,26 +44,11 @@ LIBUSB_TARBALL = STATIC_SOURCESDIR + File.basename( LIBUSB_SOURCE_URI
|
|
52
44
|
# LIBUSB_SOURCE_URI = URI( "http://git.libusb.org/?p=libusb-pbatard.git;a=snapshot;h=#{LIBUSB_VERSION};sf=tbz2" )
|
53
45
|
# LIBUSB_TARBALL = STATIC_SOURCESDIR + "libusb-pbatard-#{LIBUSB_VERSION}.tar.bz2"
|
54
46
|
|
55
|
-
# Static libusb build vars
|
56
|
-
STATIC_LIBUSB_BUILDDIR = STATIC_BUILDDIR + LIBUSB_TARBALL.basename(".tar.bz2")
|
57
|
-
LIBUSB_CONFIGURE = STATIC_LIBUSB_BUILDDIR + 'configure'
|
58
|
-
LIBUSB_MAKEFILE = STATIC_LIBUSB_BUILDDIR + 'Makefile'
|
59
|
-
LIBUSB_DLL = STATIC_LIBUSB_BUILDDIR + 'libusb/.libs/libusb-1.0.dll'
|
60
|
-
|
61
47
|
EXT_BUILDDIR = Pathname( "./ext" ).expand_path
|
62
48
|
EXT_LIBUSB_BUILDDIR = EXT_BUILDDIR + LIBUSB_TARBALL.basename(".tar.bz2")
|
63
49
|
|
64
|
-
#####################################################################
|
65
|
-
### C R O S S - C O M P I L A T I O N - T A S K S
|
66
|
-
#####################################################################
|
67
|
-
|
68
50
|
directory STATIC_SOURCESDIR.to_s
|
69
51
|
|
70
|
-
#
|
71
|
-
# Static libusb build tasks
|
72
|
-
#
|
73
|
-
directory STATIC_LIBUSB_BUILDDIR.to_s
|
74
|
-
|
75
52
|
# libusb source file should be stored there
|
76
53
|
file LIBUSB_TARBALL => STATIC_SOURCESDIR do |t|
|
77
54
|
# download the source file using wget or curl
|
@@ -81,74 +58,118 @@ file LIBUSB_TARBALL => STATIC_SOURCESDIR do |t|
|
|
81
58
|
end
|
82
59
|
end
|
83
60
|
|
84
|
-
# Extract the libusb builds
|
85
|
-
file STATIC_LIBUSB_BUILDDIR => LIBUSB_TARBALL do |t|
|
86
|
-
sh 'tar', '-xjf', LIBUSB_TARBALL.to_s, '-C', STATIC_LIBUSB_BUILDDIR.parent.to_s
|
87
|
-
LIBUSB_MAKEFILE.unlink if LIBUSB_MAKEFILE.exist?
|
88
|
-
end
|
89
61
|
|
90
|
-
|
91
|
-
|
92
|
-
sh "sh autogen.sh && make distclean"
|
93
|
-
end
|
94
|
-
end
|
62
|
+
class CrossLibrary < OpenStruct
|
63
|
+
include Rake::DSL
|
95
64
|
|
96
|
-
|
97
|
-
|
98
|
-
]
|
99
|
-
|
100
|
-
# generate the makefile in a clean build location
|
101
|
-
file LIBUSB_MAKEFILE => LIBUSB_CONFIGURE do |t|
|
102
|
-
Dir.chdir( STATIC_LIBUSB_BUILDDIR ) do
|
103
|
-
options = [
|
104
|
-
"--target=#{CROSS_PREFIX}",
|
105
|
-
"--host=#{CROSS_PREFIX}",
|
106
|
-
"--build=#{RUBY_BUILD}",
|
107
|
-
]
|
65
|
+
def initialize(ruby_platform, host_platform)
|
66
|
+
super()
|
108
67
|
|
109
|
-
|
110
|
-
|
111
|
-
end
|
112
|
-
end
|
68
|
+
self.ruby_platform = ruby_platform
|
69
|
+
self.host_platform = host_platform
|
113
70
|
|
114
|
-
|
115
|
-
|
116
|
-
Dir.chdir( STATIC_LIBUSB_BUILDDIR ) do
|
117
|
-
sh 'make'
|
118
|
-
end
|
119
|
-
end
|
71
|
+
self.static_builddir = COMPILE_HOME + 'builds' + ruby_platform
|
72
|
+
self.ruby_build = RbConfig::CONFIG["host"]
|
120
73
|
|
121
|
-
#
|
122
|
-
|
123
|
-
|
124
|
-
|
74
|
+
# Static libusb build vars
|
75
|
+
self.static_libusb_builddir = static_builddir + LIBUSB_TARBALL.basename(".tar.bz2")
|
76
|
+
self.libusb_configure = static_libusb_builddir + 'configure'
|
77
|
+
self.libusb_makefile = static_libusb_builddir + 'Makefile'
|
78
|
+
self.libusb_dll = static_libusb_builddir + 'libusb/.libs/libusb-1.0.dll'
|
79
|
+
|
80
|
+
#
|
81
|
+
# Static libusb build tasks
|
82
|
+
#
|
83
|
+
CLEAN.include static_libusb_builddir.to_s
|
84
|
+
|
85
|
+
directory static_libusb_builddir.to_s
|
125
86
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
87
|
+
# Extract the libusb builds
|
88
|
+
file static_libusb_builddir => LIBUSB_TARBALL do |t|
|
89
|
+
sh 'tar', '-xjf', LIBUSB_TARBALL.to_s, '-C', static_libusb_builddir.parent.to_s
|
90
|
+
libusb_makefile.unlink if libusb_makefile.exist?
|
91
|
+
end
|
92
|
+
|
93
|
+
file libusb_configure => static_libusb_builddir do |t|
|
94
|
+
Dir.chdir( static_libusb_builddir ) do
|
95
|
+
sh "sh autogen.sh && make distclean"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
libusb_env = [
|
100
|
+
"CFLAGS='-fno-omit-frame-pointer'",
|
101
|
+
]
|
102
|
+
|
103
|
+
# generate the makefile in a clean build location
|
104
|
+
file libusb_makefile => libusb_configure do |t|
|
105
|
+
Dir.chdir( static_libusb_builddir ) do
|
106
|
+
options = [
|
107
|
+
"--target=#{host_platform}",
|
108
|
+
"--host=#{host_platform}",
|
109
|
+
"--build=#{ruby_build}",
|
110
|
+
]
|
111
|
+
|
112
|
+
configure_path = static_libusb_builddir + 'configure'
|
113
|
+
sh "env #{[libusb_env, configure_path.to_s, *options].join(" ")}"
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
# make libusb-1.0.dll
|
118
|
+
task libusb_dll => [ libusb_makefile ] do |t|
|
119
|
+
Dir.chdir( static_libusb_builddir ) do
|
120
|
+
sh 'make'
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
task "libusb_dll:#{ruby_platform}" => libusb_dll
|
125
|
+
|
126
|
+
desc "compile static libusb libraries"
|
127
|
+
task :libusb_dll => "libusb_dll:#{ruby_platform}"
|
128
|
+
|
129
|
+
desc 'Cross compile libusb for win32'
|
130
|
+
task :cross => [ "libusb_dll:#{ruby_platform}" ] do |t|
|
131
|
+
spec = Gem::Specification::load("libusb.gemspec")
|
132
|
+
spec.instance_variable_set(:"@cache_file", nil) if spec.respond_to?(:cache_file)
|
133
|
+
spec.platform = Gem::Platform.new(ruby_platform)
|
134
|
+
spec.files << "lib/#{File.basename(libusb_dll)}"
|
135
|
+
spec.files -= `git ls-files ext`.split("\n")
|
136
|
+
spec.extensions = []
|
137
|
+
|
138
|
+
# Generate a package for this gem
|
139
|
+
pkg = Gem::PackageTask.new(spec) do |pkg|
|
140
|
+
pkg.need_zip = false
|
141
|
+
pkg.need_tar = false
|
142
|
+
# Do not copy any files per PackageTask, because
|
143
|
+
# we need the files from the platform specific directory
|
144
|
+
pkg.package_files.clear
|
145
|
+
end
|
146
|
+
|
147
|
+
# copy files of the gem to pkg directory
|
148
|
+
file pkg.package_dir_path => spec.files do
|
149
|
+
spec.files.each do |fn|
|
150
|
+
next if fn == "lib/#{File.basename(libusb_dll)}"
|
151
|
+
f = File.join(pkg.package_dir_path, fn)
|
152
|
+
fdir = File.dirname(f)
|
153
|
+
mkdir_p(fdir) if !File.exist?(fdir)
|
154
|
+
rm_f f
|
155
|
+
safe_ln(fn, f)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
# copy libusb.dll to pkg directory
|
159
|
+
file pkg.package_dir_path => [libusb_dll] do
|
160
|
+
f = "#{pkg.package_dir_path}/lib/#{File.basename(libusb_dll)}"
|
161
|
+
rm_f f
|
162
|
+
safe_ln libusb_dll, f
|
163
|
+
end
|
164
|
+
end
|
142
165
|
end
|
143
166
|
end
|
144
167
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
fail
|
151
|
-
end
|
168
|
+
CrossLibraries = [
|
169
|
+
['i386-mingw32', 'i686-w64-mingw32'],
|
170
|
+
['x64-mingw32', 'x86_64-w64-mingw32'],
|
171
|
+
].map do |ruby_platform, host_platform|
|
172
|
+
CrossLibrary.new ruby_platform, host_platform
|
152
173
|
end
|
153
174
|
|
154
175
|
desc "Download and update bundled libusb(x)"
|
data/ext/extconf.rb
CHANGED
@@ -24,7 +24,7 @@ rescue LoadError
|
|
24
24
|
|
25
25
|
old_dir = Dir.pwd
|
26
26
|
Dir.chdir libusb_dir
|
27
|
-
cmd = "
|
27
|
+
cmd = "sh configure --prefix=#{root_dir} && make && make install"
|
28
28
|
puts cmd
|
29
29
|
system cmd
|
30
30
|
raise "libusb build exited with #{$?.exitstatus}" if $?.exitstatus!=0
|
data/lib/libusb/version_gem.rb
CHANGED
metadata
CHANGED
@@ -1,62 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libusb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Lars Kanis
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-04-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: ffi
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '1.0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '1.0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake-compiler
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0.6'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0.6'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: bundler
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
description: LIBUSB is a Ruby binding that gives Ruby programmers access to arbitrary
|
@@ -171,6 +164,7 @@ files:
|
|
171
164
|
- test/test_libusb_version.rb
|
172
165
|
homepage: http://github.com/larskanis/libusb
|
173
166
|
licenses: []
|
167
|
+
metadata: {}
|
174
168
|
post_install_message:
|
175
169
|
rdoc_options:
|
176
170
|
- --main
|
@@ -179,21 +173,19 @@ rdoc_options:
|
|
179
173
|
require_paths:
|
180
174
|
- lib
|
181
175
|
required_ruby_version: !ruby/object:Gem::Requirement
|
182
|
-
none: false
|
183
176
|
requirements:
|
184
|
-
- -
|
177
|
+
- - '>='
|
185
178
|
- !ruby/object:Gem::Version
|
186
179
|
version: '0'
|
187
180
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
|
-
none: false
|
189
181
|
requirements:
|
190
|
-
- -
|
182
|
+
- - '>='
|
191
183
|
- !ruby/object:Gem::Version
|
192
184
|
version: '0'
|
193
185
|
requirements: []
|
194
186
|
rubyforge_project: libusb
|
195
|
-
rubygems_version:
|
187
|
+
rubygems_version: 2.0.0.rc.2
|
196
188
|
signing_key:
|
197
|
-
specification_version:
|
189
|
+
specification_version: 4
|
198
190
|
summary: Access USB devices from Ruby via libusb-1.0
|
199
191
|
test_files: []
|