ffi-compiler 0.1.2 → 0.1.3
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
- data/Rakefile +3 -9
- data/ffi-compiler.gemspec +2 -1
- data/lib/ffi-compiler/compile_task.rb +3 -0
- data/lib/ffi-compiler/ffi-compiler.iml +14 -0
- data/lib/ffi-compiler/loader.rb +12 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87b97ccecbaf39ef45a53f9337e6ecade626e876
|
4
|
+
data.tar.gz: a24d4e75bc369faf590da123fe91b281f85cda09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8359cadf2f988f7099fd167a657af27ce8b1ebfb57bf459a84ef48ce6dda08c66b38ccd138e8e04fff954daeedd7bf8fe8cbe96958f41c114e8615ce7e11331
|
7
|
+
data.tar.gz: de1f3dbd908f0144c19ba89d290e6a6d39e35c35686eba25784c045536b0b5ecc71ecd865411c5b4564b74f0c956bb4660d663b3672092a9e9fb786bc8929a54
|
data/Rakefile
CHANGED
@@ -1,12 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'rubygems/
|
2
|
+
require 'rubygems/tasks'
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
end
|
7
|
-
|
8
|
-
Gem::PackageTask.new(gem_spec) do |pkg|
|
9
|
-
pkg.need_zip = true
|
10
|
-
pkg.need_tar = true
|
11
|
-
pkg.package_dir = 'pkg'
|
4
|
+
Gem::Tasks.new do |t|
|
5
|
+
t.scm.tag.format = '%s'
|
12
6
|
end
|
data/ffi-compiler.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'ffi-compiler'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.3'
|
4
4
|
s.author = 'Wayne Meissner'
|
5
5
|
s.email = 'wmeissner@gmail.com'
|
6
6
|
s.homepage = 'http://wiki.github.com/ffi/ffi'
|
@@ -13,4 +13,5 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.add_dependency 'rake'
|
14
14
|
s.add_dependency 'ffi', '>= 1.0.0'
|
15
15
|
s.add_development_dependency 'rspec'
|
16
|
+
s.add_development_dependency 'rubygems-tasks'
|
16
17
|
end
|
@@ -123,6 +123,9 @@ module FFI
|
|
123
123
|
CLEAN.include(obj_file)
|
124
124
|
end
|
125
125
|
|
126
|
+
# create all the directories for the output files
|
127
|
+
obj_files.map { |f| File.dirname(f) }.sort.uniq.map { |d| directory d }
|
128
|
+
|
126
129
|
desc "Build dynamic library"
|
127
130
|
file lib_name => obj_files do |t|
|
128
131
|
sh "#{ld} #{so_flags} -o #{t.name} #{t.prerequisites.join(' ')} #{ld_flags} #{libs}"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<module type="RUBY_MODULE" version="4">
|
3
|
+
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
4
|
+
<exclude-output />
|
5
|
+
<content url="file://$MODULE_DIR$">
|
6
|
+
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
|
7
|
+
</content>
|
8
|
+
<orderEntry type="jdk" jdkName="RVM: ruby-1.9.3-p392" jdkType="RUBY_SDK" />
|
9
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
10
|
+
<orderEntry type="library" scope="PROVIDED" name="ffi (v1.4.0, RVM: ruby-1.9.3-p392) [gem]" level="application" />
|
11
|
+
<orderEntry type="library" scope="PROVIDED" name="rake (v10.0.3, RVM: ruby-1.9.3-p392) [gem]" level="application" />
|
12
|
+
</component>
|
13
|
+
</module>
|
14
|
+
|
data/lib/ffi-compiler/loader.rb
CHANGED
@@ -8,7 +8,7 @@ module FFI
|
|
8
8
|
def self.find(name, start_path = nil)
|
9
9
|
library = Platform.system.map_library_name(name)
|
10
10
|
root = false
|
11
|
-
Pathname.new(start_path ||
|
11
|
+
Pathname.new(start_path || caller_path(caller[0])).ascend do |path|
|
12
12
|
Dir.glob("#{path}/**/{#{FFI::Platform::ARCH}-#{FFI::Platform::OS}/#{library},#{library}}") do |f|
|
13
13
|
return f
|
14
14
|
end
|
@@ -20,6 +20,17 @@ module FFI
|
|
20
20
|
end
|
21
21
|
raise LoadError.new("cannot find '#{name}' library")
|
22
22
|
end
|
23
|
+
|
24
|
+
def self.caller_path(line = caller[0])
|
25
|
+
if FFI::Platform::OS == 'windows'
|
26
|
+
drive = line[0..1]
|
27
|
+
path = line[2..-1].split(/:/)[0]
|
28
|
+
full_path = drive + path
|
29
|
+
else
|
30
|
+
full_path = line.split(/:/)[0]
|
31
|
+
end
|
32
|
+
File.dirname full_path
|
33
|
+
end
|
23
34
|
end
|
24
35
|
end
|
25
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-compiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wayne Meissner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubygems-tasks
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: Ruby FFI library
|
56
70
|
email: wmeissner@gmail.com
|
57
71
|
executables: []
|
@@ -67,6 +81,7 @@ files:
|
|
67
81
|
- lib/ffi-compiler/exporter.rb
|
68
82
|
- lib/ffi-compiler/fake_ffi/ffi-compiler/loader.rb
|
69
83
|
- lib/ffi-compiler/fake_ffi/ffi.rb
|
84
|
+
- lib/ffi-compiler/ffi-compiler.iml
|
70
85
|
- lib/ffi-compiler/loader.rb
|
71
86
|
- lib/ffi-compiler/platform.rb
|
72
87
|
- lib/ffi-compiler/task.rb
|