ffi-compiler 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|