libusb 0.3.2-x86-mingw32 → 0.3.3-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.
- checksums.yaml +7 -0
- data/History.md +5 -0
- data/Rakefile +106 -85
- data/lib/libusb/version_gem.rb +1 -1
- metadata +13 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d2c894dae24af0c81cbd13674b7d617eade2b4ea
|
4
|
+
data.tar.gz: 866da61a097f24465d196786f7fffe7bc333e1f8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 766589c249ee17b352fa7d5488f08c4f6551ee95c80efdfa326771e51dac53b683c1bfb1d55cbe9e7ba6d1e447a861ba35bd21f6978f25d385c12c805bfdfcb4
|
7
|
+
data.tar.gz: 4251831f5ed597ed1ac458dd3b041d037cb2bd61b27cb44c3e7ae19b78eebb4d2de002e062c1fec3b3589f8d01bd44283e57e9047d681a46ed799eba37383374
|
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/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: x86-mingw32
|
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
|
@@ -106,6 +99,7 @@ files:
|
|
106
99
|
- lib/libusb-1.0.dll
|
107
100
|
homepage: http://github.com/larskanis/libusb
|
108
101
|
licenses: []
|
102
|
+
metadata: {}
|
109
103
|
post_install_message:
|
110
104
|
rdoc_options:
|
111
105
|
- --main
|
@@ -114,21 +108,19 @@ rdoc_options:
|
|
114
108
|
require_paths:
|
115
109
|
- lib
|
116
110
|
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
-
none: false
|
118
111
|
requirements:
|
119
|
-
- -
|
112
|
+
- - '>='
|
120
113
|
- !ruby/object:Gem::Version
|
121
114
|
version: '0'
|
122
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
-
none: false
|
124
116
|
requirements:
|
125
|
-
- -
|
117
|
+
- - '>='
|
126
118
|
- !ruby/object:Gem::Version
|
127
119
|
version: '0'
|
128
120
|
requirements: []
|
129
121
|
rubyforge_project: libusb
|
130
|
-
rubygems_version:
|
122
|
+
rubygems_version: 2.0.0.rc.2
|
131
123
|
signing_key:
|
132
|
-
specification_version:
|
124
|
+
specification_version: 4
|
133
125
|
summary: Access USB devices from Ruby via libusb-1.0
|
134
126
|
test_files: []
|