win32-api 1.7.0-universal-mingw32 → 1.9.2-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: 41a72c313fa86b07d5fe937675d37d563c41efb9
4
- data.tar.gz: f12df49826c30fd8903b958e0e26f2082d0696bc
2
+ SHA256:
3
+ metadata.gz: fbda787ddee639f0586e7661d07814ec87374373feb4b0e0be0db1123dcce9cd
4
+ data.tar.gz: 34c0c1da9f2d7d7ba24b53fdfbf6b07953769dc7e8d963e803debf0f39fa0d3c
5
5
  SHA512:
6
- metadata.gz: def9577d7bb25e8fbe94c6f07d34176369475a21a45e4328dace67bacaa5674ba596631396afea239454c45402f769ae4e576c321ea7be5634ee996453c9a978
7
- data.tar.gz: cfa0ade06bbc3ecd88bd72fb3cd1c00b5af3bd389e6841d9387d97e0b1bb90a0758efba061e94d7df5effcaa89e2b435c29475bec8568d4e103dc35f5bd468b0
6
+ metadata.gz: 982edadad844e9bfbe6f3012f959ca2df820a16bce05d70594c1e45901e54d445afae627613455706a719bc99274efc91c08d4fe11e9649ac136ad299c053e68
7
+ data.tar.gz: 5f46486f077ddfda70c4ebebfd5fe2bc060b70fdc7d45a30357f2d4adf1d282eafef4b010967550ffa2dc9cf8dbe6ba23959253fde68302f9a7f5d343f7867aa
data/CHANGES CHANGED
@@ -1,3 +1,24 @@
1
+ == 1.9.2 - 13-Sep-2020
2
+ * Handle Ruby 3.0 snapshot (formerly known as Ruby 2.8).
3
+
4
+ == 1.9.1 - 14-Jul-2020
5
+ * Handle whether tainted support or not.
6
+
7
+ == 1.9.0 - 6-Jan-2020
8
+ * Add Ruby 2.8 snapshot support.
9
+ * Now includes binaries for Ruby 2.8 both 32 and 64 bit versions.
10
+ * Use RubyInstaller 2.7.0-1 for Ruby 2.7 binaries.
11
+
12
+ == 1.8.0 - 6-Jan-2019
13
+ * Add Ruby 2.7 snapshot support.
14
+ * Now includes binaries for Ruby 2.7 both 32 and 64 bit versions.
15
+ * Use RubyInstaller 2.6.0-1 for Ruby 2.6 binaries.
16
+
17
+ == 1.7.1 - 4-Jan-2018
18
+ * Add Ruby 2.6 snapshot support.
19
+ * Now includes binaries for Ruby 2.6 both 32 and 64 bit versions.
20
+ * Use RubyInstaller 2.5.0-1 for Ruby 2.5 binaries.
21
+
1
22
  == 1.7.0 - 28-Nov-2017
2
23
  * Add gcc option to fix crash on RubyInstaller2 x86
3
24
 
@@ -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 3.0
6
+ RUN powershell \
7
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
8
+ Invoke-WebRequest -OutFile C:\rubyinstaller-head-x86-20200911.exe https://ci.appveyor.com/api/buildjobs/trvw8cisuqismasc/artifacts/packages%2Fri%2Frecipes%2Finstaller-inno%2Frubyinstaller-head-x86.exe
9
+ RUN cmd /c "C:\rubyinstaller-head-x86-20200911.exe" /silent /dir=c:\ruby30
10
+ RUN powershell \
11
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
12
+ Invoke-WebRequest -OutFile C:\rubyinstaller-head-x64-20200911.exe https://ci.appveyor.com/api/buildjobs/ufndgf49pysdvpt9/artifacts/packages%2Fri%2Frecipes%2Finstaller-inno%2Frubyinstaller-head-x64.exe
13
+ RUN cmd /c "C:\rubyinstaller-head-x64-20200911.exe" /silent /dir=c:\ruby30-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
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,19 @@
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-2017 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
133
+
128
134
  Park Heesob
135
+
129
136
  Hiroshi Hatake
@@ -0,0 +1,41 @@
1
+ ## Prerequisites
2
+
3
+ * Docker for Windows
4
+
5
+ ### Release step
6
+
7
+ #### Fat GEM
8
+
9
+ Check the latest ruby-head-YYYYmmDD image:
10
+ https://hub.docker.com/r/cosmo0920/win32-api/tags?page=1&name=ruby-head
11
+
12
+ ```powershell
13
+ PS> mkdir pkg
14
+ PS> docker run -it -v $PWD\pkg:C:\pkg cosmo0920/win32-api:ruby-head-AWESOMEDATE
15
+ ```
16
+
17
+ Build universal gem:
18
+
19
+ ```cmd
20
+ > .\build-gem.bat
21
+ ```
22
+
23
+ Copy built universal gem into mounted directory:
24
+
25
+ ```cmd
26
+ > copy C:\win32-api\win32-api-*.gem C:\pkg
27
+ ```
28
+
29
+ Then, exit and push built gem:
30
+
31
+ ```cmd
32
+ > exit
33
+ > gem push win32-api-*.gem
34
+ ```
35
+
36
+ #### Non Fat GEM
37
+
38
+ ```cmd
39
+ > rake gem:create
40
+ > gem push win32-api-*.gem
41
+ ```
data/Rakefile CHANGED
@@ -59,63 +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, :ruby30_32, :ruby30_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},
76
- :ruby25_32 => {:path => "c:/ruby25/bin/ruby", :msys => :msys2},
77
- :ruby25_64 => {:path => "c:/ruby25-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
+ :ruby30_32 => {:path => "#{pre}/ruby30/bin", :ri => :ri2, :omit => true},
102
+ :ruby30_64 => {:path => "#{pre}/ruby30-x64/bin", :ri => :ri2_64, :omit => true},
78
103
  }
79
104
  )
80
105
 
81
106
  Rake::Task[:clobber].invoke
82
107
 
83
- args.each{ |key|
84
- default_path = ENV['PATH']
85
-
86
- spec = eval(IO.read('win32-api.gemspec'))
108
+ default_path = ENV['PATH']
87
109
 
88
- if spec.version.prerelease? && !File.exist?("#{key.last[:path]}.exe")
89
- puts "#{key.last[:path]} does not exist! Skip."
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."
90
114
  next
91
115
  end
92
116
 
93
- if key.last[:msys] == :msys1
94
- # Adjust devkit paths as needed.
95
- if `"#{key.last[:path]}" -v` =~ /x64/i
96
- ENV['PATH'] = "C:/Devkit64/bin;C:/Devkit64/mingw/bin;" + ENV['PATH']
97
- else
98
- ENV['PATH'] = "C:/Devkit/bin;C:/Devkit/mingw/bin;" + ENV['PATH']
99
- end
100
- elsif key.last[:msys] == :msys2
101
- ENV.delete('RI_DEVKIT')
102
- # Adjust devkit paths as needed.
103
- if `"#{key.last[:path]}" -v` =~ /x64/i
104
- ENV['PATH'] = "C:/msys64/usr/bin;C:/msys64/mingw64/bin;" + ENV['PATH']
105
- else
106
- ENV['PATH'] = "C:/msys64/usr/bin;C:/msys64/mingw32/bin;" + ENV['PATH']
107
- end
108
- end
117
+ bld_path = "#{key.last[:path]};#{dk_path[key.last[:ri]]};#{ENV['BASEPATH']}"
109
118
  mkdir_p "lib/win32/#{key.first}/win32"
110
119
 
111
120
  Dir.chdir('ext') do
121
+ ENV['PATH'] = bld_path
112
122
  sh "make distclean" rescue nil
113
- sh "#{key.last[:path]} extconf.rb"
123
+ sh "ruby extconf.rb"
114
124
  sh "make"
125
+ sh "strip --strip-unneeded -p api.so"
126
+ ENV['PATH'] = default_path
115
127
  cp 'api.so', "../lib/win32/#{key.first}/win32/api.so"
116
128
  end
117
-
118
- ENV['PATH'] = default_path
119
129
  }
120
130
 
121
131
  text = <<HERE
@@ -171,6 +181,30 @@ begin
171
181
  end
172
182
  end
173
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
+ when '3'
200
+ if RbConfig::CONFIG['MINOR'] == '0'
201
+ if RbConfig::CONFIG['arch'] =~ /x64/i
202
+ require File.join(File.dirname(__FILE__), 'ruby30_64/win32/api')
203
+ else
204
+ require File.join(File.dirname(__FILE__), 'ruby30_32/win32/api')
205
+ end
206
+ end
207
+
174
208
  end
175
209
  rescue LoadError
176
210
  require File.join(File.dirname(__FILE__), '../../ext/api')
@@ -1,61 +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
15
  - ruby --version
10
16
  - gem --version
11
- - IF %msys2%==1 ridk.cmd enable
12
- - IF %msys2%==1 gem install bundler --force
17
+ # Assume we can use the version of bundler that Appveyor has packaged with each ruby version
13
18
  - bundle install
19
+
14
20
  build: off
21
+
15
22
  test_script:
16
- - bundle exec rake gem:binary
17
- - IF %msys2%==0 bundle exec rake test:all
18
- - IF %msys2%==1 ridk.cmd exec bundle exec rake test:all
23
+ - rake gem:binary
24
+ - rake -rdevkit test:all
19
25
 
20
26
  environment:
21
27
  matrix:
22
- - ruby_version: "24-x64"
23
- devkit64: C:\Ruby23-x64\DevKit
24
- devkit32: C:\Ruby23\DevKit
25
- msys2: 1
26
- - ruby_version: "24"
27
- devkit64: C:\Ruby23-x64\DevKit
28
- devkit32: C:\Ruby23\DevKit
29
- msys2: 1
30
- - ruby_version: "23-x64"
31
- devkit64: C:\Ruby23-x64\DevKit
32
- devkit32: C:\Ruby23\DevKit
33
- msys2: 0
34
- - ruby_version: "23"
35
- devkit64: C:\Ruby23-x64\DevKit
36
- devkit32: C:\Ruby23\DevKit
37
- msys2: 0
38
- - ruby_version: "22-x64"
39
- devkit64: C:\Ruby23-x64\DevKit
40
- devkit32: C:\Ruby23\DevKit
41
- msys2: 0
42
- - ruby_version: "22"
43
- devkit64: C:\Ruby23-x64\DevKit
44
- devkit32: C:\Ruby23\DevKit
45
- msys2: 0
46
- - ruby_version: "21-x64"
47
- devkit64: C:\Ruby23-x64\DevKit
48
- devkit32: C:\Ruby23\DevKit
49
- msys2: 0
50
- - ruby_version: "21"
51
- devkit64: C:\Ruby23-x64\DevKit
52
- devkit32: C:\Ruby23\DevKit
53
- msys2: 0
54
- - ruby_version: "200-x64"
55
- devkit64: C:\Ruby23-x64\DevKit
56
- devkit32: C:\Ruby23\DevKit
57
- msys2: 0
58
- - ruby_version: "200"
59
- devkit64: C:\Ruby23-x64\DevKit
60
- devkit32: C:\Ruby23\DevKit
61
- 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
@@ -16,28 +16,34 @@
16
16
  #define RARRAY_LEN(a) (RARRAY(a)->len)
17
17
  #endif
18
18
 
19
- #if defined(HAVE_LONG_LONG) && SIZEOF_SIZE_T > SIZEOF_LONG
20
- # define NUM2SIZET(x) ((size_t)NUM2ULL(x))
21
- # define NUM2SSIZET(x) ((ssize_t)NUM2LL(x))
22
- #else
23
- # define NUM2SIZET(x) NUM2ULONG(x)
24
- # define NUM2SSIZET(x) NUM2LONG(x)
19
+ /* Use Ruby defined macro definitions. */
20
+ #if !defined(NUM2SIZET) && !defined(NUM2SSIZET)
21
+ # if defined(HAVE_LONG_LONG) && SIZEOF_SIZE_T > SIZEOF_LONG
22
+ # define NUM2SIZET(x) ((size_t)NUM2ULL(x))
23
+ # define NUM2SSIZET(x) ((ssize_t)NUM2LL(x))
24
+ # else
25
+ # define NUM2SIZET(x) NUM2ULONG(x)
26
+ # define NUM2SSIZET(x) NUM2LONG(x)
27
+ # endif
25
28
  #endif
26
29
 
27
- #if SIZEOF_SIZE_T > SIZEOF_LONG && defined(HAVE_LONG_LONG)
28
- # define SIZET2NUM(v) ULL2NUM(v)
29
- # define SSIZET2NUM(v) LL2NUM(v)
30
- #elif SIZEOF_SIZE_T == SIZEOF_LONG
31
- # define SIZET2NUM(v) ULONG2NUM(v)
32
- # define SSIZET2NUM(v) LONG2NUM(v)
33
- #else
34
- # define SIZET2NUM(v) UINT2NUM(v)
35
- # define SSIZET2NUM(v) INT2NUM(v)
30
+ /* Use Ruby defined macro definitions. */
31
+ #if !defined(SIZET2NUM) && !defined(SSIZET2NUM)
32
+ # if SIZEOF_SIZE_T > SIZEOF_LONG && defined(HAVE_LONG_LONG)
33
+ # define SIZET2NUM(v) ULL2NUM(v)
34
+ # define SSIZET2NUM(v) LL2NUM(v)
35
+ # elif SIZEOF_SIZE_T == SIZEOF_LONG
36
+ # define SIZET2NUM(v) ULONG2NUM(v)
37
+ # define SSIZET2NUM(v) LONG2NUM(v)
38
+ # else
39
+ # define SIZET2NUM(v) UINT2NUM(v)
40
+ # define SSIZET2NUM(v) INT2NUM(v)
41
+ # endif
36
42
  #endif
37
43
 
38
44
 
39
45
  #define MAX_BUF 1024
40
- #define WINDOWS_API_VERSION "1.7.0"
46
+ #define WINDOWS_API_VERSION "1.9.2"
41
47
 
42
48
  #define _T_VOID 0
43
49
  #define _T_LONG 1
@@ -288,8 +294,10 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self)
288
294
  if(NIL_P(v_return))
289
295
  v_return = rb_str_new2("L");
290
296
 
297
+ #if defined TAINTING_SUPPORT
291
298
  SafeStringValue(v_dll);
292
299
  SafeStringValue(v_proc);
300
+ #endif
293
301
 
294
302
  hLibrary = LoadLibrary(TEXT(RSTRING_PTR(v_dll)));
295
303
 
@@ -356,7 +364,9 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self)
356
364
  // Push the numeric prototypes onto our int array for later use.
357
365
 
358
366
  for(i = 0; i < RARRAY_LEN(v_proto); i++){
367
+ #if defined TAINTING_SUPPORT
359
368
  SafeStringValue(RARRAY_PTR(v_proto)[i]);
369
+ #endif
360
370
  switch(*(TCHAR*)StringValuePtr(RARRAY_PTR(v_proto)[i])){
361
371
  case 'L':
362
372
  ptr->prototype[i] = _T_LONG;
@@ -391,7 +401,9 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self)
391
401
  ptr->return_type = _T_VOID;
392
402
  }
393
403
  else{
404
+ #if defined TAINTING_SUPPORT
394
405
  SafeStringValue(v_return);
406
+ #endif
395
407
  switch(*RSTRING_PTR(v_return)){
396
408
  case 'L':
397
409
  ptr->return_type = _T_LONG;
@@ -482,7 +494,9 @@ static VALUE func_init(int argc, VALUE* argv, VALUE self){
482
494
  // Push the numeric prototypes onto our int array for later use.
483
495
 
484
496
  for(i = 0; i < RARRAY_LEN(v_proto); i++){
497
+ #if defined TAINTING_SUPPORT
485
498
  SafeStringValue(RARRAY_PTR(v_proto)[i]);
499
+ #endif
486
500
  switch(*(char*)StringValuePtr(RARRAY_PTR(v_proto)[i])){
487
501
  case 'L':
488
502
  ptr->prototype[i] = _T_LONG;
@@ -517,7 +531,9 @@ static VALUE func_init(int argc, VALUE* argv, VALUE self){
517
531
  ptr->return_type = _T_VOID;
518
532
  }
519
533
  else{
534
+ #if defined TAINTING_SUPPORT
520
535
  SafeStringValue(v_return);
536
+ #endif
521
537
  switch(*RSTRING_PTR(v_return)){
522
538
  case 'L':
523
539
  ptr->return_type = _T_LONG;
@@ -50,6 +50,30 @@ begin
50
50
  end
51
51
  end
52
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
+ when '3'
69
+ if RbConfig::CONFIG['MINOR'] == '0'
70
+ if RbConfig::CONFIG['arch'] =~ /x64/i
71
+ require File.join(File.dirname(__FILE__), 'ruby30_64/win32/api')
72
+ else
73
+ require File.join(File.dirname(__FILE__), 'ruby30_32/win32/api')
74
+ end
75
+ end
76
+
53
77
  end
54
78
  rescue LoadError
55
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.2', API::VERSION)
22
22
  end
23
23
 
24
24
  def test_constructor_basic
@@ -2,18 +2,18 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'win32-api'
5
- spec.version = '1.7.0'
5
+ spec.version = '1.9.2'
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'
9
- spec.homepage = 'http://github.com/djberg96/win32-api'
9
+ spec.homepage = 'http://github.com/cosmo0920/win32-api'
10
10
  spec.summary = 'A superior replacement for Win32API'
11
11
  spec.test_files = Dir['test/test*']
12
12
  spec.extensions = ['ext/extconf.rb']
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,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: win32-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.9.2
5
5
  platform: universal-mingw32
6
6
  authors:
7
7
  - Daniel J. Berger
8
8
  - Park Heesob
9
9
  - Hiroshi Hatake
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-11-28 00:00:00.000000000 Z
13
+ date: 2020-09-13 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
@@ -73,17 +75,23 @@ files:
73
75
  - lib/win32/ruby24_64/win32/api.so
74
76
  - lib/win32/ruby25_32/win32/api.so
75
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
76
82
  - lib/win32/ruby2_32/win32/api.so
77
83
  - lib/win32/ruby2_64/win32/api.so
84
+ - lib/win32/ruby30_32/win32/api.so
85
+ - lib/win32/ruby30_64/win32/api.so
78
86
  - test/test_win32_api.rb
79
87
  - test/test_win32_api_callback.rb
80
88
  - test/test_win32_api_function.rb
81
89
  - win32-api.gemspec
82
- homepage: http://github.com/djberg96/win32-api
90
+ homepage: http://github.com/cosmo0920/win32-api
83
91
  licenses:
84
92
  - Artistic-2.0
85
93
  metadata: {}
86
- post_install_message:
94
+ post_install_message:
87
95
  rdoc_options: []
88
96
  require_paths:
89
97
  - lib
@@ -98,9 +106,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
106
  - !ruby/object:Gem::Version
99
107
  version: '0'
100
108
  requirements: []
101
- rubyforge_project:
102
- rubygems_version: 2.6.13
103
- signing_key:
109
+ rubygems_version: 3.2.0.rc.1
110
+ signing_key:
104
111
  specification_version: 4
105
112
  summary: A superior replacement for Win32API
106
113
  test_files:
@@ -1,24 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- win32-api (1.7.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- power_assert (1.0.2)
10
- rake (12.0.0)
11
- test-unit (3.2.5)
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.15.4