win32-api 1.6.1.2-universal-mingw32 → 1.9.1-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b6f98adc93ce159542eff34d770f82cafd104b7a
4
- data.tar.gz: c3356912152cc4a1a855e5f7fed6990c6cab8b73
2
+ SHA256:
3
+ metadata.gz: 50f2020c700c00a8f72649d59a580d017a3418c42db26dc79cd6d379ba589239
4
+ data.tar.gz: d591539fa8826a781bb96131f7a79cc018e2bf4f8bb38b132bdc3d93d1236c86
5
5
  SHA512:
6
- metadata.gz: dedad26960b16f70ed1d6274ab25c025fb69233d0831615503304d17830c3c93f70230095b9914c9529e8bcdf1188dd97d78af4a7123958cd9cebbf614edbf2e
7
- data.tar.gz: 5ed7cfdc147c90bc154fc11ccc4637dbf92c9826eaeb2e0efd07132a379b47282b061da3f637caebc3c03aedaaa42e38a98fa06b7fa32e971c2329d85e144f2d
6
+ metadata.gz: 9f2db91230d8b7a4c360fb698d75a2e30106aa7786b63d9d0536b87d938f1c9771a5d6d8516002ac3ddc0b03086c72b15780ab8ffbc2ca3d28bee8be3dad5fbb
7
+ data.tar.gz: 879067f098f0f684925eaa592009c77e638447ad738935106775f857a81aefe4afc9b2500e5108645fc7e3dbb73866473d8112df00af9628f149f6559b165f56
data/CHANGES CHANGED
@@ -1,3 +1,28 @@
1
+ == 1.9.1 - 14-Jul-2020
2
+ * Handle whether tainted support or not.
3
+
4
+ == 1.9.0 - 6-Jan-2020
5
+ * Add Ruby 2.8 snapshot support.
6
+ * Now includes binaries for Ruby 2.8 both 32 and 64 bit versions.
7
+ * Use RubyInstaller 2.7.0-1 for Ruby 2.7 binaries.
8
+
9
+ == 1.8.0 - 6-Jan-2019
10
+ * Add Ruby 2.7 snapshot support.
11
+ * Now includes binaries for Ruby 2.7 both 32 and 64 bit versions.
12
+ * Use RubyInstaller 2.6.0-1 for Ruby 2.6 binaries.
13
+
14
+ == 1.7.1 - 4-Jan-2018
15
+ * Add Ruby 2.6 snapshot support.
16
+ * Now includes binaries for Ruby 2.6 both 32 and 64 bit versions.
17
+ * Use RubyInstaller 2.5.0-1 for Ruby 2.5 binaries.
18
+
19
+ == 1.7.0 - 28-Nov-2017
20
+ * Add gcc option to fix crash on RubyInstaller2 x86
21
+
22
+ == 1.7.0.pre1 - 16-July-2017
23
+ * Add Ruby 2.5 snapshot support.
24
+ * Now includes binaries for Ruby 2.5 for both 32 and 64 bit versions.
25
+
1
26
  == 1.6.1.2 - 2-Feb-2017
2
27
  * Fix wrong gem packaging.
3
28
 
@@ -0,0 +1,99 @@
1
+ FROM mcr.microsoft.com/windows/servercore:1903
2
+ LABEL maintainer "Hiroshi Hatake <cosmo0920.wp@gmail.com>"
3
+ LABEL Description="win32-api building docker image"
4
+
5
+ # Do not split this into multiple RUN!
6
+ # Docker creates a layer for every RUN-Statement
7
+ RUN powershell -Command "Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
8
+
9
+ # Ruby 2.0.0
10
+ RUN powershell \
11
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
12
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.0.0-p648.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p648.exe
13
+ RUN cmd /c "C:\rubyinstaller-2.0.0-p648.exe" /silent /dir=c:\ruby200
14
+ RUN powershell \
15
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
16
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.0.0-p648-x64.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p648-x64.exe
17
+ RUN cmd /c "C:\rubyinstaller-2.0.0-p648-x64.exe" /silent /dir=c:\ruby200-x64
18
+ # Ruby 2.1
19
+ RUN powershell \
20
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
21
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.1.9.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.1.9.exe
22
+ RUN cmd /c "C:\rubyinstaller-2.1.9.exe" /silent /dir=c:\ruby21
23
+ RUN powershell \
24
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
25
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.1.9-x64.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.1.9-x64.exe
26
+ RUN cmd /c "C:\rubyinstaller-2.1.9-x64.exe" /silent /dir=c:\ruby21-x64
27
+ # Ruby 2.2
28
+ RUN powershell \
29
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
30
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.2.6.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.6.exe
31
+ RUN cmd /c "C:\rubyinstaller-2.2.6.exe" /silent /dir=c:\ruby22
32
+ RUN powershell \
33
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
34
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.2.6-x64.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.6-x64.exe
35
+ RUN cmd /c "C:\rubyinstaller-2.2.6-x64.exe" /silent /dir=c:\ruby22-x64
36
+ # Ruby 2.3
37
+ RUN powershell \
38
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
39
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.3.3.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.3.exe
40
+ RUN cmd /c "C:\rubyinstaller-2.3.3.exe" /silent /dir=c:\ruby23
41
+ RUN powershell \
42
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
43
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.3.3-x64.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.3-x64.exe
44
+ RUN cmd /c "C:\rubyinstaller-2.3.3-x64.exe" /silent /dir=c:\ruby23-x64
45
+ # Ruby 2.4
46
+ RUN powershell \
47
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
48
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.4.9-1-x86.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.4.9-1/rubyinstaller-2.4.9-1-x86.exe
49
+ RUN cmd /c "C:\rubyinstaller-2.4.9-1-x86.exe" /silent /dir=c:\ruby24
50
+ RUN powershell \
51
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
52
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.4.9-1-x64.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.4.9-1/rubyinstaller-2.4.9-1-x64.exe
53
+ RUN cmd /c "C:\rubyinstaller-2.4.9-1-x64.exe" /silent /dir=c:\ruby24-x64
54
+ # Ruby 2.5
55
+ RUN powershell \
56
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
57
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.5.7-1-x86.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.5.7-1/rubyinstaller-2.5.7-1-x86.exe
58
+ RUN cmd /c "C:\rubyinstaller-2.5.7-1-x86.exe" /silent /dir=c:\ruby25
59
+ RUN powershell \
60
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
61
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.5.7-1-x64.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.5.7-1/rubyinstaller-2.5.7-1-x64.exe
62
+ RUN cmd /c "C:\rubyinstaller-2.5.7-1-x64.exe" /silent /dir=c:\ruby25-x64
63
+ # Ruby 2.6
64
+ RUN powershell \
65
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
66
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.6.5-1-x86.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.5-1/rubyinstaller-2.6.5-1-x86.exe
67
+ RUN cmd /c "C:\rubyinstaller-2.6.5-1-x86.exe" /silent /dir=c:\ruby26
68
+ RUN powershell \
69
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
70
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.6.5-1-x64.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.5-1/rubyinstaller-2.6.5-1-x64.exe
71
+ RUN cmd /c "C:\rubyinstaller-2.6.5-1-x64.exe" /silent /dir=c:\ruby26-x64
72
+
73
+ # Ruby 2.7
74
+ RUN powershell \
75
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
76
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.7.0-1-x86.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.0-1/rubyinstaller-2.7.0-1-x86.exe
77
+ RUN cmd /c "C:\rubyinstaller-2.7.0-1-x86.exe" /silent /dir=c:\ruby27
78
+ RUN powershell \
79
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
80
+ Invoke-WebRequest -OutFile C:\rubyinstaller-2.7.0-1-x64.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.0-1/rubyinstaller-2.7.0-1-x64.exe
81
+ RUN cmd /c "C:\rubyinstaller-2.7.0-1-x64.exe" /silent /dir=c:\ruby27-x64
82
+
83
+ # DevKit
84
+ RUN powershell \
85
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
86
+ Invoke-WebRequest -OutFile C:\DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe
87
+ RUN cmd /c C:\DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe -o"c:\DevKit" -y
88
+ RUN powershell \
89
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
90
+ Invoke-WebRequest -OutFile C:\DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
91
+ RUN cmd /c C:\DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe -o"c:\DevKit64" -y
92
+
93
+ RUN choco install -y git \
94
+ && choco install -y msys2 --params "'/NoPath /NoUpdate /InstallDir:C:\msys64'"
95
+ RUN refreshenv \
96
+ && C:\ruby27\bin\ridk install 2 3 \
97
+ && C:\ruby27-x64\bin\ridk install 2 3
98
+
99
+ ENTRYPOINT ["cmd"]
@@ -0,0 +1,17 @@
1
+ FROM cosmo0920/win32-api:latest
2
+ LABEL maintainer "Hiroshi Hatake <cosmo0920.wp@gmail.com>"
3
+ LABEL Description="win32-api building docker image"
4
+
5
+ # Ruby 2.8
6
+ RUN powershell \
7
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
8
+ Invoke-WebRequest -OutFile C:\rubyinstaller-head-x86-20200106.exe https://ci.appveyor.com/api/buildjobs/n7m98ejuhuu2rn4g/artifacts/packages%2Fri%2Frecipes%2Finstaller-inno%2Frubyinstaller-head-x64.exe
9
+ RUN cmd /c "C:\rubyinstaller-head-x86-20200106.exe" /silent /dir=c:\ruby28
10
+ RUN powershell \
11
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
12
+ Invoke-WebRequest -OutFile C:\rubyinstaller-head-x64-20200106.exe https://ci.appveyor.com/api/buildjobs/n7m98ejuhuu2rn4g/artifacts/packages%2Fri%2Frecipes%2Finstaller-inno%2Frubyinstaller-head-x64.exe
13
+ RUN cmd /c "C:\rubyinstaller-head-x64-20200106.exe" /silent /dir=c:\ruby28-x64
14
+
15
+ RUN mkdir C:\pkg
16
+ COPY build-gem.bat C:\\build-gem.bat
17
+ ENTRYPOINT ["cmd"]
data/MANIFEST CHANGED
@@ -1,6 +1,6 @@
1
1
  * CHANGES
2
2
  * MANIFEST
3
- * README
3
+ * README.md
4
4
  * Rakefile
5
5
  * win32-api.gemspec
6
6
  * ext/extconf.rb
@@ -1,8 +1,10 @@
1
- = Description
1
+ # Description
2
2
  This is a drop-in replacement for the Win32API library currently part of
3
3
  Ruby's standard library.
4
4
 
5
- = Synopsis
5
+ # Synopsis
6
+
7
+ ```ruby
6
8
  require 'win32/api'
7
9
  include Win32
8
10
 
@@ -35,8 +37,9 @@
35
37
  addr = GetProcAddress.call(hlib, 'MessageBeep')
36
38
  func = Win32::API::Function.new(addr, 'L', 'L')
37
39
  func.call(0)
40
+ ```
38
41
 
39
- = Differences between win32-api and Win32API
42
+ # Differences between win32-api and Win32API
40
43
  * This library has callback support
41
44
  * This library supports raw function pointers.
42
45
  * This library supports a separate string type for const char* (S).
@@ -48,9 +51,9 @@
48
51
  * Removed the support for lower case prototype and return types. Always
49
52
  use capital letters.
50
53
 
51
- = Developer's Notes
52
- [NOTE: Some of the information below is now out of date, but explains my
53
- motivation at the time the project was originally created.]
54
+ # Developer's Notes
55
+ NOTE: **Some of the information below is now out of date, but explains my
56
+ motivation at the time the project was originally created.**
54
57
 
55
58
  The current Win32API library that ships with the standard library has been
56
59
  slated for removal from Ruby 2.0 and it will not receive any updates in the
@@ -76,7 +79,7 @@
76
79
  Most importantly, we can now add, modify and fix any features that we feel
77
80
  best benefit our end users.
78
81
 
79
- = Multiple Binaries
82
+ # Multiple Binaries
80
83
  As of win32-api 1.4.8 a binary gem is shipped that contains binaries for
81
84
  both Ruby 1.8, Ruby 1.9, and 2.x. For Ruby 2.x, both 32 and 64 bit binaries
82
85
  are included as of release 1.5.0.
@@ -84,29 +87,29 @@
84
87
  The file under lib/win32 dynamically requires the correct binary based on
85
88
  your version of Ruby.
86
89
 
87
- = Documentation
90
+ # Documentation
88
91
  The source file contains inline RDoc documentation. If you installed
89
92
  this file as a gem, then you have the docs. Run "gem server" and point
90
93
  your browser at http://localhost:8808 to see them.
91
94
 
92
- = Warranty
95
+ # Warranty
93
96
  This package is provided "as is" and without any express or
94
97
  implied warranties, including, without limitation, the implied
95
98
  warranties of merchantability and fitness for a particular purpose.
96
99
 
97
- = Known Issues
100
+ # Known Issues
98
101
  Possible callback issues when dealing with multi-threaded applications.
99
102
 
100
103
  Please submit any bug reports to the project page at
101
- https://github.com/djberg96/win32-api
104
+ https://github.com/cosmo0920/win32-api
102
105
 
103
- == Contributions
106
+ ## Contributions
104
107
  Although this library is free, please consider having your company
105
108
  setup a gittip if used by your company professionally.
106
109
 
107
110
  http://www.gittip.com/djberg96/
108
111
 
109
- = Future Plans
112
+ # Future Plans
110
113
  I really don't have future plans for this library since you should use FFI
111
114
  as your preferred C interface going forward. All of my own projects have
112
115
  since been converted to either use FFI or an analogous OLE interface.
@@ -115,15 +118,17 @@
115
118
  there who are still using it, but I strongly encourage you to convert
116
119
  your projects to FFI when possible.
117
120
 
118
- = Copyright
121
+ # Copyright
119
122
  (C) 2003-2015 Daniel J. Berger
120
- (C) 2016 Hiroshi Hatake
123
+
124
+ (C) 2016-2020 Hiroshi Hatake
125
+
121
126
  All Rights Reserved
122
127
 
123
- = License
128
+ # License
124
129
  Artistic 2.0
125
130
 
126
- = Authors
131
+ # Authors
127
132
  Daniel J. Berger
128
133
  Park Heesob
129
134
  Hiroshi Hatake
@@ -0,0 +1,32 @@
1
+ ## Prerequisites
2
+
3
+ * Docker for Windows
4
+
5
+ ### Release step
6
+
7
+ Check the latest ruby-head-YYYYmmDD image:
8
+ https://hub.docker.com/r/cosmo0920/win32-api/tags?page=1&name=ruby-head
9
+
10
+ ```powershell
11
+ PS> mkdir pkg
12
+ PS> docker run -it -v $PWD\pkg:C:\pkg cosmo0920/win32-api:ruby-head-AWESOMEDATE
13
+ ```
14
+
15
+ Build universal gem:
16
+
17
+ ```cmd
18
+ > .\build-gem.bat
19
+ ```
20
+
21
+ Copy built universal gem into mounted directory:
22
+
23
+ ```cmd
24
+ > copy C:\win32-api\win32-api-*.gem C:\pkg
25
+ ```
26
+
27
+ Then, exit and push built gem:
28
+
29
+ ```cmd
30
+ > exit
31
+ > gem push win32-api-*.gem
32
+ ```
data/Rakefile CHANGED
@@ -59,54 +59,73 @@ namespace 'gem' do
59
59
  end
60
60
 
61
61
  desc 'Build a binary gem'
62
- task :binary, :ruby2_32, :ruby2_64, :ruby21, :ruby21_64, :ruby22, :ruby22_64, :ruby23_32, :ruby23_64, :ruby24_32, :ruby24_64 do |task, args|
62
+ task :binary, :ruby2_32, :ruby2_64, :ruby21, :ruby21_64, :ruby22, :ruby22_64, :ruby23_32, :ruby23_64, :ruby24_32, :ruby24_64, :ruby25_32, :ruby25_64, :ruby_26_32, :ruby26_64, :ruby27_32, :ruby27_64, :ruby28_32, :ruby28_64 do |task, args|
63
63
  # These are just what's on my system at the moment. Adjust as needed.
64
+ # ri refers to RubyInstaller, ruby 2.3 and prev were built with RubyInstaller (:ri),
65
+ # 2.4 and later with RubyInstaller2 (:ri2)
66
+ # pre variable allows local builds with ruby & DevKit not at drive root
67
+
68
+ dk_path = {}
69
+ if ENV['APPVEYOR'] =~ /true/i
70
+ pre = "C:"
71
+ dk_path[:ri] = "C:/ruby23/DevKit/bin;C:/ruby23/DevKit/mingw/bin"
72
+ dk_path[:ri_64] = "C:/ruby23-x64/DevKit/bin;C:/ruby23-x64/DevKit/mingw/bin"
73
+ else
74
+ ENV['BASEPATH'] = ENV['PATH'].gsub(/\\/, '/')
75
+ pre = "C:"
76
+ dk_path[:ri] = "#{pre}/Devkit/bin;#{pre}/Devkit/mingw/bin"
77
+ dk_path[:ri_64] = "#{pre}/Devkit64/bin;#{pre}/Devkit64/mingw/bin"
78
+ end
79
+ # at present, Appveyor & local DevKit paths match for ri2
80
+ dk_path[:ri2] = "C:/msys64/usr/bin;C:/msys64/mingw32/bin"
81
+ dk_path[:ri2_64] = "C:/msys64/usr/bin;C:/msys64/mingw64/bin"
82
+
64
83
  args.with_defaults(
65
84
  {
66
- :ruby2_32 => {:path => "c:/ruby200/bin/ruby", :msys => :msys1},
67
- :ruby2_64 => {:path => "c:/ruby200-x64/bin/ruby", :msys => :msys1},
68
- :ruby21_32 => {:path => "c:/ruby21/bin/ruby", :msys => :msys1},
69
- :ruby21_64 => {:path => "c:/ruby21-x64/bin/ruby", :msys => :msys1},
70
- :ruby22_32 => {:path => "c:/ruby22/bin/ruby", :msys => :msys1},
71
- :ruby22_64 => {:path => "c:/ruby22-x64/bin/ruby", :msys => :msys1},
72
- :ruby23_32 => {:path => "c:/ruby23/bin/ruby", :msys => :msys1},
73
- :ruby23_64 => {:path => "c:/ruby23-x64/bin/ruby", :msys => :msys1},
74
- :ruby24_32 => {:path => "c:/ruby24/bin/ruby", :msys => :msys2},
75
- :ruby24_64 => {:path => "c:/ruby24-x64/bin/ruby", :msys => :msys2}
85
+ :ruby2_32 => {:path => "#{pre}/ruby200/bin", :ri => :ri, :omit => false},
86
+ :ruby2_64 => {:path => "#{pre}/ruby200-x64/bin", :ri => :ri_64, :omit => false},
87
+ :ruby21_32 => {:path => "#{pre}/ruby21/bin", :ri => :ri, :omit => false},
88
+ :ruby21_64 => {:path => "#{pre}/ruby21-x64/bin", :ri => :ri_64, :omit => false},
89
+ :ruby22_32 => {:path => "#{pre}/ruby22/bin", :ri => :ri, :omit => false},
90
+ :ruby22_64 => {:path => "#{pre}/ruby22-x64/bin", :ri => :ri_64, :omit => false},
91
+ :ruby23_32 => {:path => "#{pre}/ruby23/bin", :ri => :ri, :omit => false},
92
+ :ruby23_64 => {:path => "#{pre}/ruby23-x64/bin", :ri => :ri_64, :omit => false},
93
+ :ruby24_32 => {:path => "#{pre}/ruby24/bin", :ri => :ri2, :omit => false},
94
+ :ruby24_64 => {:path => "#{pre}/ruby24-x64/bin", :ri => :ri2_64, :omit => false},
95
+ :ruby25_32 => {:path => "#{pre}/ruby25/bin", :ri => :ri2, :omit => false},
96
+ :ruby25_64 => {:path => "#{pre}/ruby25-x64/bin", :ri => :ri2_64, :omit => false},
97
+ :ruby26_32 => {:path => "#{pre}/ruby26/bin", :ri => :ri2, :omit => false},
98
+ :ruby26_64 => {:path => "#{pre}/ruby26-x64/bin", :ri => :ri2_64, :omit => false},
99
+ :ruby27_32 => {:path => "#{pre}/ruby27/bin", :ri => :ri2, :omit => true},
100
+ :ruby27_64 => {:path => "#{pre}/ruby27-x64/bin", :ri => :ri2_64, :omit => true},
101
+ :ruby28_32 => {:path => "#{pre}/ruby28/bin", :ri => :ri2, :omit => true},
102
+ :ruby28_64 => {:path => "#{pre}/ruby28-x64/bin", :ri => :ri2_64, :omit => true},
76
103
  }
77
104
  )
78
105
 
79
106
  Rake::Task[:clobber].invoke
80
107
 
81
- args.each{ |key|
82
- default_path = ENV['PATH']
83
-
84
- if key.last[:msys] == :msys1
85
- # Adjust devkit paths as needed.
86
- if `"#{key.last[:path]}" -v` =~ /x64/i
87
- ENV['PATH'] = "C:/Devkit64/bin;C:/Devkit64/mingw/bin;" + ENV['PATH']
88
- else
89
- ENV['PATH'] = "C:/Devkit/bin;C:/Devkit/mingw/bin;" + ENV['PATH']
90
- end
91
- elsif key.last[:msys] == :msys2
92
- ENV.delete('RI_DEVKIT')
93
- # Adjust devkit paths as needed.
94
- if `"#{key.last[:path]}" -v` =~ /x64/i
95
- ENV['PATH'] = "C:/msys64/usr/bin;C:/msys64/mingw64/bin;" + ENV['PATH']
96
- else
97
- ENV['PATH'] = "C:/msys64/usr/bin;C:/msys64/mingw32/bin;" + ENV['PATH']
98
- end
108
+ default_path = ENV['PATH']
109
+
110
+ args.each { |key|
111
+ # These lines are used for trunk build.
112
+ if key.last[:omit] && !File.exist?("#{key.last[:path]}/ruby.exe")
113
+ puts "#{key.last[:path]}/ruby does not exist! Skip."
114
+ next
99
115
  end
116
+
117
+ bld_path = "#{key.last[:path]};#{dk_path[key.last[:ri]]};#{ENV['BASEPATH']}"
100
118
  mkdir_p "lib/win32/#{key.first}/win32"
101
119
 
102
120
  Dir.chdir('ext') do
121
+ ENV['PATH'] = bld_path
103
122
  sh "make distclean" rescue nil
104
- sh "#{key.last[:path]} extconf.rb"
123
+ sh "ruby extconf.rb"
105
124
  sh "make"
125
+ sh "strip --strip-unneeded -p api.so"
126
+ ENV['PATH'] = default_path
106
127
  cp 'api.so', "../lib/win32/#{key.first}/win32/api.so"
107
128
  end
108
-
109
- ENV['PATH'] = default_path
110
129
  }
111
130
 
112
131
  text = <<HERE
@@ -154,6 +173,38 @@ begin
154
173
  end
155
174
  end
156
175
 
176
+ if RbConfig::CONFIG['MINOR'] == '5'
177
+ if RbConfig::CONFIG['arch'] =~ /x64/i
178
+ require File.join(File.dirname(__FILE__), 'ruby25_64/win32/api')
179
+ else
180
+ require File.join(File.dirname(__FILE__), 'ruby25_32/win32/api')
181
+ end
182
+ end
183
+
184
+ if RbConfig::CONFIG['MINOR'] == '6'
185
+ if RbConfig::CONFIG['arch'] =~ /x64/i
186
+ require File.join(File.dirname(__FILE__), 'ruby26_64/win32/api')
187
+ else
188
+ require File.join(File.dirname(__FILE__), 'ruby26_32/win32/api')
189
+ end
190
+ end
191
+
192
+ if RbConfig::CONFIG['MINOR'] == '7'
193
+ if RbConfig::CONFIG['arch'] =~ /x64/i
194
+ require File.join(File.dirname(__FILE__), 'ruby27_64/win32/api')
195
+ else
196
+ require File.join(File.dirname(__FILE__), 'ruby27_32/win32/api')
197
+ end
198
+ end
199
+
200
+ if RbConfig::CONFIG['MINOR'] == '8'
201
+ if RbConfig::CONFIG['arch'] =~ /x64/i
202
+ require File.join(File.dirname(__FILE__), 'ruby28_64/win32/api')
203
+ else
204
+ require File.join(File.dirname(__FILE__), 'ruby28_32/win32/api')
205
+ end
206
+ end
207
+
157
208
  end
158
209
  rescue LoadError
159
210
  require File.join(File.dirname(__FILE__), '../../ext/api')
@@ -1,65 +1,46 @@
1
1
  version: '{build}'
2
2
 
3
+ init:
4
+ # use a minimal path
5
+ - set PATH=C:\ruby%ruby_version%\bin;C:\Program Files\7-Zip;C:\Program Files\AppVeyor\BuildAgent;C:\Program Files\Git\cmd;C:\Windows\system32
6
+ # Load ruby trunk build
7
+ - if %ruby_version%==_trunk (
8
+ appveyor DownloadFile https://ci.appveyor.com/api/projects/MSP-Greg/ruby-loco/artifacts/ruby_trunk.7z -FileName C:\ruby_trunk.7z &
9
+ 7z x C:\ruby_trunk.7z -oC:\ruby_trunk
10
+ )
11
+
3
12
  platform: x64
4
13
 
5
14
  install:
6
- - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
7
- - "%devkit64%\\devkitvars.bat"
8
- - "%devkit32%\\devkitvars.bat"
9
- - ps: Start-FileDownload https://github.com/larskanis/rubyinstaller2/releases/download/2.4.0-7/rubyinstaller-2.4.0-7-x86.exe
10
- - rubyinstaller-2.4.0-7-x86.exe TYPE=full /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /CLOSEAPPLICATIONS /NORESTARTAPPLICATIONS /DIR="C:\Ruby24"
11
- - ps: Start-FileDownload https://github.com/larskanis/rubyinstaller2/releases/download/2.4.0-7/rubyinstaller-2.4.0-7-x64.exe
12
- - rubyinstaller-2.4.0-7-x64.exe TYPE=full /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /CLOSEAPPLICATIONS /NORESTARTAPPLICATIONS /DIR="C:\Ruby24-x64"
13
15
  - ruby --version
14
16
  - gem --version
15
- - IF %msys2%==1 ridk.cmd enable
16
- - IF %msys2%==1 gem install bundler
17
+ # Assume we can use the version of bundler that Appveyor has packaged with each ruby version
17
18
  - bundle install
19
+
18
20
  build: off
21
+
19
22
  test_script:
20
- - bundle exec rake gem:binary
21
- - IF %msys2%==0 bundle exec rake test:all
22
- - IF %msys2%==1 ridk.cmd exec bundle exec rake test:all
23
+ - rake gem:binary
24
+ - rake -rdevkit test:all
23
25
 
24
26
  environment:
25
27
  matrix:
26
- - ruby_version: "24-x64"
27
- devkit64: C:\Ruby23-x64\DevKit
28
- devkit32: C:\Ruby23\DevKit
29
- msys2: 1
30
- - ruby_version: "24"
31
- devkit64: C:\Ruby23-x64\DevKit
32
- devkit32: C:\Ruby23\DevKit
33
- msys2: 1
34
- - ruby_version: "23-x64"
35
- devkit64: C:\Ruby23-x64\DevKit
36
- devkit32: C:\Ruby23\DevKit
37
- msys2: 0
38
- - ruby_version: "23"
39
- devkit64: C:\Ruby23-x64\DevKit
40
- devkit32: C:\Ruby23\DevKit
41
- msys2: 0
42
- - ruby_version: "22-x64"
43
- devkit64: C:\Ruby23-x64\DevKit
44
- devkit32: C:\Ruby23\DevKit
45
- msys2: 0
46
- - ruby_version: "22"
47
- devkit64: C:\Ruby23-x64\DevKit
48
- devkit32: C:\Ruby23\DevKit
49
- msys2: 0
50
- - ruby_version: "21-x64"
51
- devkit64: C:\Ruby23-x64\DevKit
52
- devkit32: C:\Ruby23\DevKit
53
- msys2: 0
54
- - ruby_version: "21"
55
- devkit64: C:\Ruby23-x64\DevKit
56
- devkit32: C:\Ruby23\DevKit
57
- msys2: 0
58
- - ruby_version: "200-x64"
59
- devkit64: C:\Ruby23-x64\DevKit
60
- devkit32: C:\Ruby23\DevKit
61
- msys2: 0
62
- - ruby_version: "200"
63
- devkit64: C:\Ruby23-x64\DevKit
64
- devkit32: C:\Ruby23\DevKit
65
- msys2: 0
28
+ - ruby_version: _trunk
29
+ - ruby_version: 26-x64
30
+ - ruby_version: 26
31
+ - ruby_version: 25-x64
32
+ - ruby_version: 25
33
+ - ruby_version: 24-x64
34
+ - ruby_version: 24
35
+ - ruby_version: 23-x64
36
+ - ruby_version: 23
37
+ - ruby_version: 22-x64
38
+ - ruby_version: 22
39
+ - ruby_version: 21-x64
40
+ - ruby_version: 21
41
+ - ruby_version: 200-x64
42
+ - ruby_version: 200
43
+
44
+ matrix:
45
+ allow_failures:
46
+ - ruby_version: _trunk
@@ -0,0 +1,3 @@
1
+ git clone https://github.com/cosmo0920/win32-api win32-api
2
+ cd win32-api
3
+ rake -rdevkit gem:binary
@@ -37,7 +37,7 @@
37
37
 
38
38
 
39
39
  #define MAX_BUF 1024
40
- #define WINDOWS_API_VERSION "1.6.1.2"
40
+ #define WINDOWS_API_VERSION "1.9.1"
41
41
 
42
42
  #define _T_VOID 0
43
43
  #define _T_LONG 1
@@ -288,8 +288,10 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self)
288
288
  if(NIL_P(v_return))
289
289
  v_return = rb_str_new2("L");
290
290
 
291
+ #if defined TAINTING_SUPPORT
291
292
  SafeStringValue(v_dll);
292
293
  SafeStringValue(v_proc);
294
+ #endif
293
295
 
294
296
  hLibrary = LoadLibrary(TEXT(RSTRING_PTR(v_dll)));
295
297
 
@@ -356,7 +358,9 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self)
356
358
  // Push the numeric prototypes onto our int array for later use.
357
359
 
358
360
  for(i = 0; i < RARRAY_LEN(v_proto); i++){
361
+ #if defined TAINTING_SUPPORT
359
362
  SafeStringValue(RARRAY_PTR(v_proto)[i]);
363
+ #endif
360
364
  switch(*(TCHAR*)StringValuePtr(RARRAY_PTR(v_proto)[i])){
361
365
  case 'L':
362
366
  ptr->prototype[i] = _T_LONG;
@@ -391,7 +395,9 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self)
391
395
  ptr->return_type = _T_VOID;
392
396
  }
393
397
  else{
398
+ #if defined TAINTING_SUPPORT
394
399
  SafeStringValue(v_return);
400
+ #endif
395
401
  switch(*RSTRING_PTR(v_return)){
396
402
  case 'L':
397
403
  ptr->return_type = _T_LONG;
@@ -482,7 +488,9 @@ static VALUE func_init(int argc, VALUE* argv, VALUE self){
482
488
  // Push the numeric prototypes onto our int array for later use.
483
489
 
484
490
  for(i = 0; i < RARRAY_LEN(v_proto); i++){
491
+ #if defined TAINTING_SUPPORT
485
492
  SafeStringValue(RARRAY_PTR(v_proto)[i]);
493
+ #endif
486
494
  switch(*(char*)StringValuePtr(RARRAY_PTR(v_proto)[i])){
487
495
  case 'L':
488
496
  ptr->prototype[i] = _T_LONG;
@@ -517,7 +525,9 @@ static VALUE func_init(int argc, VALUE* argv, VALUE self){
517
525
  ptr->return_type = _T_VOID;
518
526
  }
519
527
  else{
528
+ #if defined TAINTING_SUPPORT
520
529
  SafeStringValue(v_return);
530
+ #endif
521
531
  switch(*RSTRING_PTR(v_return)){
522
532
  case 'L':
523
533
  ptr->return_type = _T_LONG;
@@ -42,6 +42,38 @@ begin
42
42
  end
43
43
  end
44
44
 
45
+ if RbConfig::CONFIG['MINOR'] == '5'
46
+ if RbConfig::CONFIG['arch'] =~ /x64/i
47
+ require File.join(File.dirname(__FILE__), 'ruby25_64/win32/api')
48
+ else
49
+ require File.join(File.dirname(__FILE__), 'ruby25_32/win32/api')
50
+ end
51
+ end
52
+
53
+ if RbConfig::CONFIG['MINOR'] == '6'
54
+ if RbConfig::CONFIG['arch'] =~ /x64/i
55
+ require File.join(File.dirname(__FILE__), 'ruby26_64/win32/api')
56
+ else
57
+ require File.join(File.dirname(__FILE__), 'ruby26_32/win32/api')
58
+ end
59
+ end
60
+
61
+ if RbConfig::CONFIG['MINOR'] == '7'
62
+ if RbConfig::CONFIG['arch'] =~ /x64/i
63
+ require File.join(File.dirname(__FILE__), 'ruby27_64/win32/api')
64
+ else
65
+ require File.join(File.dirname(__FILE__), 'ruby27_32/win32/api')
66
+ end
67
+ end
68
+
69
+ if RbConfig::CONFIG['MINOR'] == '8'
70
+ if RbConfig::CONFIG['arch'] =~ /x64/i
71
+ require File.join(File.dirname(__FILE__), 'ruby28_64/win32/api')
72
+ else
73
+ require File.join(File.dirname(__FILE__), 'ruby28_32/win32/api')
74
+ end
75
+ end
76
+
45
77
  end
46
78
  rescue LoadError
47
79
  require File.join(File.dirname(__FILE__), '../../ext/api')
@@ -18,7 +18,7 @@ class TC_Win32_API < Test::Unit::TestCase
18
18
  end
19
19
 
20
20
  def test_version
21
- assert_equal('1.6.1.2', API::VERSION)
21
+ assert_equal('1.9.1', API::VERSION)
22
22
  end
23
23
 
24
24
  def test_constructor_basic
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'win32-api'
5
- spec.version = '1.6.1.2'
5
+ spec.version = '1.9.1'
6
6
  spec.authors = ['Daniel J. Berger', 'Park Heesob', 'Hiroshi Hatake']
7
7
  spec.license = 'Artistic-2.0'
8
8
  spec.email = 'djberg96@gmail.com'
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
14
14
 
15
15
  spec.required_ruby_version = '>= 1.8.2'
16
- spec.extra_rdoc_files = ['README', 'CHANGES', 'MANIFEST', 'ext/win32/api.c']
16
+ spec.extra_rdoc_files = ['CHANGES', 'MANIFEST', 'ext/win32/api.c']
17
17
 
18
18
  spec.add_development_dependency('test-unit', '>= 2.5.0')
19
19
  spec.add_development_dependency('rake')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: win32-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1.2
4
+ version: 1.9.1
5
5
  platform: universal-mingw32
6
6
  authors:
7
7
  - Daniel J. Berger
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-02-02 00:00:00.000000000 Z
13
+ date: 2020-07-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: test-unit
@@ -49,18 +49,20 @@ email: djberg96@gmail.com
49
49
  executables: []
50
50
  extensions: []
51
51
  extra_rdoc_files:
52
- - README
53
52
  - CHANGES
54
53
  - MANIFEST
55
54
  - ext/win32/api.c
56
55
  files:
57
56
  - CHANGES
57
+ - Dockerfile
58
+ - Dockerfile.trunk
58
59
  - Gemfile
59
- - Gemfile.lock
60
60
  - MANIFEST
61
- - README
61
+ - README.md
62
+ - RELEASE.md
62
63
  - Rakefile
63
64
  - appveyor.yml
65
+ - build-gem.bat
64
66
  - ext/win32/api.c
65
67
  - lib/win32/api.rb
66
68
  - lib/win32/ruby21_32/win32/api.so
@@ -71,6 +73,13 @@ files:
71
73
  - lib/win32/ruby23_64/win32/api.so
72
74
  - lib/win32/ruby24_32/win32/api.so
73
75
  - lib/win32/ruby24_64/win32/api.so
76
+ - lib/win32/ruby25_32/win32/api.so
77
+ - lib/win32/ruby25_64/win32/api.so
78
+ - lib/win32/ruby26_32/win32/api.so
79
+ - lib/win32/ruby26_64/win32/api.so
80
+ - lib/win32/ruby27_32/win32/api.so
81
+ - lib/win32/ruby27_64/win32/api.so
82
+ - lib/win32/ruby28_64/win32/api.so
74
83
  - lib/win32/ruby2_32/win32/api.so
75
84
  - lib/win32/ruby2_64/win32/api.so
76
85
  - test/test_win32_api.rb
@@ -96,8 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
105
  - !ruby/object:Gem::Version
97
106
  version: '0'
98
107
  requirements: []
99
- rubyforge_project:
100
- rubygems_version: 2.6.8
108
+ rubygems_version: 3.1.2
101
109
  signing_key:
102
110
  specification_version: 4
103
111
  summary: A superior replacement for Win32API
@@ -1,24 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- win32-api (1.6.1.2)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- power_assert (0.4.1)
10
- rake (12.0.0)
11
- test-unit (3.2.3)
12
- power_assert
13
-
14
- PLATFORMS
15
- x64-mingw32
16
- x86-mingw32
17
-
18
- DEPENDENCIES
19
- rake
20
- test-unit (>= 2.5.0)
21
- win32-api!
22
-
23
- BUNDLED WITH
24
- 1.14.2