mini_portile2 2.8.2 → 2.8.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/CHANGELOG.md +7 -0
- data/lib/mini_portile2/mini_portile_cmake.rb +13 -2
- data/lib/mini_portile2/version.rb +1 -1
- data/test/test_cmake.rb +41 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51973caa0015d6919e11d6e081cec2e26f146cf329e5f2ec9b34b97e1485d13a
|
4
|
+
data.tar.gz: e5a8eeb01caa0e047ba7d0c75e19e726b18aa8af4fa6fc89e40367671d8bc919
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7711d008192576bddd38a396a372581cfff4e6e2ec48c95ac669c61db470bad9a9e508cf314ab6fa859069477262c1c8c7d30beb043d3ce6a571c80351ef0e79
|
7
|
+
data.tar.gz: 553bc5519d22489492ee5eb16c80048731523a1cf45e8f7eb3c2f5a29de9b0a61bfa350894cbd0a82a769c6972ddd1083deb379b262f53ea9092a6e4abb910cd
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'mini_portile2/mini_portile'
|
2
|
+
require 'open3'
|
2
3
|
|
3
4
|
class MiniPortileCMake < MiniPortile
|
4
5
|
def configure_prefix
|
@@ -11,9 +12,9 @@ class MiniPortileCMake < MiniPortile
|
|
11
12
|
end
|
12
13
|
|
13
14
|
def configure_defaults
|
14
|
-
if MiniPortile.mswin?
|
15
|
+
if MiniPortile.mswin? && generator_available?('NMake')
|
15
16
|
['-G', 'NMake Makefiles']
|
16
|
-
elsif MiniPortile.mingw?
|
17
|
+
elsif MiniPortile.mingw? && generator_available?('MSYS')
|
17
18
|
['-G', 'MSYS Makefiles']
|
18
19
|
else
|
19
20
|
[]
|
@@ -48,4 +49,14 @@ class MiniPortileCMake < MiniPortile
|
|
48
49
|
def cmake_cmd
|
49
50
|
(ENV["CMAKE"] || @cmake_command || "cmake").dup
|
50
51
|
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def generator_available?(generator_type)
|
56
|
+
stdout_str, status = Open3.capture2("#{cmake_cmd} --help")
|
57
|
+
|
58
|
+
raise 'Unable to determine whether CMake supports #{generator_type} Makefile generator' unless status.success?
|
59
|
+
|
60
|
+
stdout_str.include?("#{generator_type} Makefiles")
|
61
|
+
end
|
51
62
|
end
|
data/test/test_cmake.rb
CHANGED
@@ -59,7 +59,7 @@ class TestCMake < TestCase
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
class TestCMakeConfig <
|
62
|
+
class TestCMakeConfig < TestCMake
|
63
63
|
def test_make_command_configuration
|
64
64
|
MiniPortile.stub(:mswin?, false) do
|
65
65
|
without_env("MAKE") do
|
@@ -77,6 +77,30 @@ class TestCMakeConfig < TestCase
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
+
def test_configure_defaults_with_unix_makefiles
|
81
|
+
Open3.stub(:capture2, cmake_help_mock('Unix')) do
|
82
|
+
MiniPortile.stub(:mingw?, true) do
|
83
|
+
assert_equal([], @recipe.configure_defaults)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_configure_defaults_with_msys_makefiles
|
89
|
+
Open3.stub(:capture2, cmake_help_mock('MSYS')) do
|
90
|
+
MiniPortile.stub(:mingw?, true) do
|
91
|
+
assert_equal(['-G', 'MSYS Makefiles'], @recipe.configure_defaults)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_configure_defaults_with_nmake_makefiles
|
97
|
+
Open3.stub(:capture2, cmake_help_mock('NMake')) do
|
98
|
+
MiniPortile.stub(:mswin?, true) do
|
99
|
+
assert_equal(['-G', 'NMake Makefiles'], @recipe.configure_defaults)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
80
104
|
def test_cmake_command_configuration
|
81
105
|
without_env("CMAKE") do
|
82
106
|
assert_equal("cmake", MiniPortileCMake.new("test", "1.0.0").cmake_cmd)
|
@@ -87,4 +111,20 @@ class TestCMakeConfig < TestCase
|
|
87
111
|
assert_equal("asdf", MiniPortileCMake.new("test", "1.0.0", cmake_command: "xyzzy").cmake_cmd)
|
88
112
|
end
|
89
113
|
end
|
114
|
+
|
115
|
+
private
|
116
|
+
|
117
|
+
def cmake_help_mock(generator_type)
|
118
|
+
open3_mock = MiniTest::Mock.new
|
119
|
+
cmake_script = <<~SCRIPT
|
120
|
+
echo "The following generators are available on this platform (* marks default):"
|
121
|
+
echo "* #{generator_type} Makefiles = Generates standard #{generator_type.upcase} makefiles."
|
122
|
+
SCRIPT
|
123
|
+
|
124
|
+
exit_status = MiniTest::Mock.new
|
125
|
+
exit_status.expect(:success?, true)
|
126
|
+
expected_output = [cmake_script, exit_status]
|
127
|
+
open3_mock.expect(:call, expected_output, ['cmake --help'])
|
128
|
+
open3_mock
|
129
|
+
end
|
90
130
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini_portile2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luis Lavena
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-07-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|