jazzy 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -0
- data/Gemfile.lock +12 -18
- data/README.md +18 -8
- data/bin/sourcekitten +0 -0
- data/jazzy.gemspec +1 -1
- data/lib/jazzy/config.rb +30 -3
- data/lib/jazzy/doc_builder.rb +10 -20
- data/lib/jazzy/docset_builder.rb +1 -1
- data/lib/jazzy/gem_version.rb +1 -1
- data/lib/jazzy/jazzy_markdown.rb +1 -1
- data/lib/jazzy/source_declaration.rb +4 -0
- data/lib/jazzy/source_document.rb +3 -2
- data/lib/jazzy/sourcekitten.rb +28 -20
- data/lib/jazzy/themes/apple/assets/js/jquery.min.js +2 -2
- data/lib/jazzy/themes/fullwidth/assets/js/jquery.min.js +2 -2
- data/lib/jazzy/themes/jony/assets/js/jquery.min.js +2 -2
- data/spec/integration_spec.rb +2 -1
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6439cb8dc035d69bb0243f06e3b7140b079dd6892840b49e015be636efa7ff64
|
4
|
+
data.tar.gz: fc97247251923d0f385637721405435e2a3211110c14369876767e2572a25175
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4049263b20f10ed92f23f23971df8d2fd57a58d95f0312fd34c5c36f1be170b6889ea82a31f3a972505025d69e4ce3f0b55343b17794ccff06bde3a46d87db3c
|
7
|
+
data.tar.gz: 10ac755d262c1a19c451b8dce5969924bd95f1f5601ae5f76c2fb748ac6f74d92b3bc6240334a185da3a6a8987a29ea3cc27c138b666d6e95ed0ed9ea930d833
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,46 @@
|
|
1
|
+
## 0.11.0
|
2
|
+
|
3
|
+
##### Breaking
|
4
|
+
|
5
|
+
* None.
|
6
|
+
|
7
|
+
##### Enhancements
|
8
|
+
|
9
|
+
* Sass support now provided by `libsass` via `sassc` instead of the
|
10
|
+
deprecated Ruby Sass gem.
|
11
|
+
[John Fairhurst](https://github.com/johnfairh)
|
12
|
+
|
13
|
+
* Update bundled jQuery to 3.4.1 (all themes).
|
14
|
+
[Paul Idstein](https://github.com/idstein)
|
15
|
+
|
16
|
+
* Support Xcode 11 Swift projects that pass a response file to the Swift
|
17
|
+
compiler.
|
18
|
+
[John Fairhurst](https://github.com/johnfairh)
|
19
|
+
[#1087](https://github.com/realm/jazzy/issues/1087)
|
20
|
+
|
21
|
+
* Generate Swift docs from a Swift Package Manager package without
|
22
|
+
requiring an Xcode project file. Add `--swift-build-tool` to choose
|
23
|
+
the build method if both `.xcodeproj` and `Package.swift` files are
|
24
|
+
present. Add `--build-tool-flags` as a preferred alias for
|
25
|
+
`--xcodebuild-flags`.
|
26
|
+
[John Fairhurst](https://github.com/johnfairh)
|
27
|
+
[#487](https://github.com/realm/jazzy/issues/487)
|
28
|
+
|
29
|
+
##### Bug Fixes
|
30
|
+
|
31
|
+
* Preserve non-latin characters in guide filenames and heading IDs.
|
32
|
+
[John Fairhurst](https://github.com/johnfairh)
|
33
|
+
[#1091](https://github.com/realm/jazzy/issues/1091)
|
34
|
+
|
35
|
+
* Generate correct html for custom categories containing special
|
36
|
+
characters.
|
37
|
+
[John Fairhurst](https://github.com/johnfairh)
|
38
|
+
[#945](https://github.com/realm/jazzy/issues/945)
|
39
|
+
|
40
|
+
* Fix crash on files with misplaced documentation comments.
|
41
|
+
[John Fairhurst](https://github.com/johnfairh)
|
42
|
+
[#1083](https://github.com/realm/jazzy/issues/1083)
|
43
|
+
|
1
44
|
## 0.10.0
|
2
45
|
|
3
46
|
##### Breaking
|
data/Gemfile.lock
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
jazzy (0.
|
4
|
+
jazzy (0.11.0)
|
5
5
|
cocoapods (~> 1.5)
|
6
6
|
mustache (~> 1.1)
|
7
7
|
open4
|
8
8
|
redcarpet (~> 3.4)
|
9
9
|
rouge (>= 2.0.6, < 4.0)
|
10
|
-
|
10
|
+
sassc (~> 2.1)
|
11
11
|
sqlite3 (~> 1.3)
|
12
12
|
xcinvoke (~> 0.3.0)
|
13
13
|
|
14
14
|
GEM
|
15
15
|
remote: https://rubygems.org/
|
16
16
|
specs:
|
17
|
-
CFPropertyList (3.0.
|
17
|
+
CFPropertyList (3.0.1)
|
18
18
|
activesupport (4.2.11.1)
|
19
19
|
i18n (~> 0.7)
|
20
20
|
minitest (~> 5.1)
|
@@ -33,10 +33,10 @@ GEM
|
|
33
33
|
clintegracon (0.7.0)
|
34
34
|
colored (~> 1.2)
|
35
35
|
diffy
|
36
|
-
cocoapods (1.7.
|
36
|
+
cocoapods (1.7.5)
|
37
37
|
activesupport (>= 4.0.2, < 5)
|
38
38
|
claide (>= 1.0.2, < 2.0)
|
39
|
-
cocoapods-core (= 1.7.
|
39
|
+
cocoapods-core (= 1.7.5)
|
40
40
|
cocoapods-deintegrate (>= 1.0.3, < 2.0)
|
41
41
|
cocoapods-downloader (>= 1.2.2, < 2.0)
|
42
42
|
cocoapods-plugins (>= 1.0.0, < 2.0)
|
@@ -52,7 +52,7 @@ GEM
|
|
52
52
|
nap (~> 1.0)
|
53
53
|
ruby-macho (~> 1.4)
|
54
54
|
xcodeproj (>= 1.10.0, < 2.0)
|
55
|
-
cocoapods-core (1.7.
|
55
|
+
cocoapods-core (1.7.5)
|
56
56
|
activesupport (>= 4.0.2, < 6)
|
57
57
|
fuzzy_match (~> 2.0.4)
|
58
58
|
nap (~> 1.0)
|
@@ -62,7 +62,7 @@ GEM
|
|
62
62
|
nap
|
63
63
|
cocoapods-search (1.0.0)
|
64
64
|
cocoapods-stats (1.1.0)
|
65
|
-
cocoapods-trunk (1.
|
65
|
+
cocoapods-trunk (1.4.0)
|
66
66
|
nap (>= 0.8, < 2.0)
|
67
67
|
netrc (~> 0.11)
|
68
68
|
cocoapods-try (1.1.0)
|
@@ -130,11 +130,8 @@ GEM
|
|
130
130
|
rainbow (2.2.2)
|
131
131
|
rake
|
132
132
|
rake (10.5.0)
|
133
|
-
|
134
|
-
|
135
|
-
ffi (~> 1.0)
|
136
|
-
redcarpet (3.4.0)
|
137
|
-
rouge (3.4.1)
|
133
|
+
redcarpet (3.5.0)
|
134
|
+
rouge (3.10.0)
|
138
135
|
rubocop (0.49.0)
|
139
136
|
parallel (~> 1.10)
|
140
137
|
parser (>= 2.3.3.1, < 3.0)
|
@@ -145,11 +142,8 @@ GEM
|
|
145
142
|
ruby-macho (1.4.0)
|
146
143
|
ruby-progressbar (1.10.1)
|
147
144
|
safe_yaml (1.0.5)
|
148
|
-
|
149
|
-
|
150
|
-
sass-listen (4.0.0)
|
151
|
-
rb-fsevent (~> 0.9, >= 0.9.4)
|
152
|
-
rb-inotify (~> 0.9, >= 0.9.7)
|
145
|
+
sassc (2.2.0)
|
146
|
+
ffi (~> 1.9)
|
153
147
|
sawyer (0.8.2)
|
154
148
|
addressable (>= 2.3.5)
|
155
149
|
faraday (> 0.8, < 2.0)
|
@@ -166,7 +160,7 @@ GEM
|
|
166
160
|
hashdiff (>= 0.4.0, < 2.0.0)
|
167
161
|
xcinvoke (0.3.0)
|
168
162
|
liferaft (~> 0.0.6)
|
169
|
-
xcodeproj (1.
|
163
|
+
xcodeproj (1.12.0)
|
170
164
|
CFPropertyList (>= 2.3.3, < 4.0)
|
171
165
|
atomos (~> 0.1.3)
|
172
166
|
claide (>= 1.0.2, < 2.0)
|
data/README.md
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
Both Swift and Objective-C projects are supported.
|
10
10
|
|
11
|
-
*
|
11
|
+
*SwiftPM support was recently added, so please report any issues you find.*
|
12
12
|
|
13
13
|
Instead of parsing your source files, `jazzy` hooks into [Clang][clang] and
|
14
14
|
[SourceKit][sourcekit] to use the [AST][ast] representation of your code and
|
@@ -23,9 +23,8 @@ unacceptable behavior to [info@realm.io](mailto:info@realm.io).
|
|
23
23
|
|
24
24
|
## Requirements
|
25
25
|
|
26
|
-
*
|
27
|
-
|
28
|
-
`--swift-version` configuration option to succeed.
|
26
|
+
* Development tools that can build the project you wish to document. Jazzy supports
|
27
|
+
both [Xcode][xcode] and [Swift Package Manager][spm] projects.
|
29
28
|
|
30
29
|
## Installation
|
31
30
|
|
@@ -41,8 +40,9 @@ common problems.
|
|
41
40
|
Run `jazzy` from your command line. Run `jazzy -h` for a list of additional options.
|
42
41
|
|
43
42
|
If your Swift module is the first thing to build, and it builds fine when running
|
44
|
-
`xcodebuild` without any arguments from the root of your project, then
|
45
|
-
`jazzy` (without any arguments) from the root of your project should
|
43
|
+
`xcodebuild` or `swift build` without any arguments from the root of your project, then
|
44
|
+
just running `jazzy` (without any arguments) from the root of your project should
|
45
|
+
succeed too!
|
46
46
|
|
47
47
|
You can set options for your project’s documentation in a configuration file,
|
48
48
|
`.jazzy.yaml` by default. For a detailed explanation and an exhaustive list of
|
@@ -83,13 +83,22 @@ jazzy \
|
|
83
83
|
--github_url https://github.com/realm/realm-cocoa \
|
84
84
|
--github-file-prefix https://github.com/realm/realm-cocoa/tree/v0.96.2 \
|
85
85
|
--module-version 0.96.2 \
|
86
|
-
--
|
86
|
+
--build-tool-arguments -scheme,RealmSwift \
|
87
87
|
--module RealmSwift \
|
88
88
|
--root-url https://realm.io/docs/swift/0.96.2/api/ \
|
89
89
|
--output docs/swift_output \
|
90
90
|
--theme docs/themes
|
91
91
|
```
|
92
92
|
|
93
|
+
This is how docs are generated for a project that uses the Swift Package Manager:
|
94
|
+
|
95
|
+
```shell
|
96
|
+
jazzy \
|
97
|
+
--module DeckOfPlayingCards \
|
98
|
+
--swift-build-tool spm \
|
99
|
+
--build-tool-arguments -Xswiftc,-swift-version,-Xswiftc,5
|
100
|
+
```
|
101
|
+
|
93
102
|
### Objective-C
|
94
103
|
|
95
104
|
To generate documentation for Objective-C headers, you must pass the following
|
@@ -116,7 +125,7 @@ jazzy \
|
|
116
125
|
--github_url https://github.com/realm/realm-cocoa \
|
117
126
|
--github-file-prefix https://github.com/realm/realm-cocoa/tree/v2.2.0 \
|
118
127
|
--module-version 2.2.0 \
|
119
|
-
--
|
128
|
+
--build-tool-arguments --objc,Realm/Realm.h,--,-x,objective-c,-isysroot,$(xcrun --show-sdk-path),-I,$(pwd) \
|
120
129
|
--module Realm \
|
121
130
|
--root-url https://realm.io/docs/objc/2.2.0/api/ \
|
122
131
|
--output docs/objc_output \
|
@@ -326,3 +335,4 @@ read [our blog](https://realm.io/news) or say hi on twitter
|
|
326
335
|
[SourceKitten]: https://github.com/jpsim/SourceKitten "SourceKitten"
|
327
336
|
[bundler]: https://rubygems.org/gems/bundler
|
328
337
|
[mustache]: https://mustache.github.io "Mustache"
|
338
|
+
[spm]: https://swift.org/package-manager/ "Swift Package Manager"
|
data/bin/sourcekitten
CHANGED
Binary file
|
data/jazzy.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_runtime_dependency 'open4'
|
23
23
|
spec.add_runtime_dependency 'redcarpet', '~> 3.4'
|
24
24
|
spec.add_runtime_dependency 'rouge', ['>= 2.0.6', '< 4.0']
|
25
|
-
spec.add_runtime_dependency '
|
25
|
+
spec.add_runtime_dependency 'sassc', '~> 2.1'
|
26
26
|
spec.add_runtime_dependency 'sqlite3', '~> 1.3'
|
27
27
|
spec.add_runtime_dependency 'xcinvoke', '~> 0.3.0'
|
28
28
|
|
data/lib/jazzy/config.rb
CHANGED
@@ -79,6 +79,14 @@ module Jazzy
|
|
79
79
|
@all_config_attrs << Attribute.new(name, **opts)
|
80
80
|
end
|
81
81
|
|
82
|
+
def self.alias_config_attr(name, forward, **opts)
|
83
|
+
alias_method name.to_s, forward.to_s
|
84
|
+
alias_method "#{name}=", "#{forward}="
|
85
|
+
alias_method "#{name}_configured", "#{forward}_configured"
|
86
|
+
alias_method "#{name}_configured=", "#{forward}_configured="
|
87
|
+
@all_config_attrs << Attribute.new(name, **opts)
|
88
|
+
end
|
89
|
+
|
82
90
|
class << self
|
83
91
|
attr_reader :all_config_attrs
|
84
92
|
end
|
@@ -146,11 +154,16 @@ module Jazzy
|
|
146
154
|
'Default: .jazzy.yaml in source directory or ancestor'],
|
147
155
|
parse: ->(cf) { expand_path(cf) }
|
148
156
|
|
149
|
-
config_attr :
|
150
|
-
command_line: ['-
|
151
|
-
description: 'Arguments to forward to xcodebuild'
|
157
|
+
config_attr :build_tool_arguments,
|
158
|
+
command_line: ['-b', '--build-tool-arguments arg1,arg2,…argN', Array],
|
159
|
+
description: 'Arguments to forward to xcodebuild, swift build, or ' \
|
160
|
+
'sourcekitten.',
|
152
161
|
default: []
|
153
162
|
|
163
|
+
alias_config_attr :xcodebuild_arguments, :build_tool_arguments,
|
164
|
+
command_line: ['-x', '--xcodebuild-arguments arg1,arg2,…argN', Array],
|
165
|
+
description: 'Back-compatibility alias for build_tool_arguments.'
|
166
|
+
|
154
167
|
config_attr :sourcekitten_sourcefile,
|
155
168
|
command_line: ['-s', '--sourcekitten-sourcefile FILEPATH'],
|
156
169
|
description: 'File generated from sourcekitten output to parse',
|
@@ -192,6 +205,20 @@ module Jazzy
|
|
192
205
|
end
|
193
206
|
end
|
194
207
|
|
208
|
+
SWIFT_BUILD_TOOLS = %w[spm xcodebuild].freeze
|
209
|
+
|
210
|
+
config_attr :swift_build_tool,
|
211
|
+
command_line: "--swift-build-tool #{SWIFT_BUILD_TOOLS.join(' | ')}",
|
212
|
+
description: 'Control whether Jazzy uses Swift Package Manager or '\
|
213
|
+
'xcodebuild to build the module to be documented. By '\
|
214
|
+
'default it uses xcodebuild if there is a .xcodeproj '\
|
215
|
+
'file in the source directory.',
|
216
|
+
parse: ->(tool) do
|
217
|
+
return tool.to_sym if SWIFT_BUILD_TOOLS.include?(tool)
|
218
|
+
raise "Unsupported swift_build_tool #{tool}, "\
|
219
|
+
"supported values: #{SWIFT_BUILD_TOOLS.join(', ')}"
|
220
|
+
end
|
221
|
+
|
195
222
|
# ──────── Metadata ────────
|
196
223
|
|
197
224
|
config_attr :author_name,
|
data/lib/jazzy/doc_builder.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
require 'mustache'
|
3
3
|
require 'pathname'
|
4
|
-
require '
|
4
|
+
require 'sassc'
|
5
5
|
|
6
6
|
require 'jazzy/config'
|
7
7
|
require 'jazzy/doc'
|
@@ -55,21 +55,13 @@ module Jazzy
|
|
55
55
|
def self.build(options)
|
56
56
|
if options.sourcekitten_sourcefile
|
57
57
|
stdout = options.sourcekitten_sourcefile.read
|
58
|
+
elsif options.podspec_configured
|
59
|
+
pod_documenter = PodspecDocumenter.new(options.podspec)
|
60
|
+
stdout = pod_documenter.sourcekitten_output(options)
|
58
61
|
else
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
else
|
63
|
-
stdout = Dir.chdir(options.source_directory) do
|
64
|
-
arguments = SourceKitten.arguments_from_options(options)
|
65
|
-
SourceKitten.run_sourcekitten(arguments)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
unless $?.success?
|
69
|
-
warn 'Please pass in xcodebuild arguments using -x'
|
70
|
-
warn 'If build arguments are correct, please file an issue on ' \
|
71
|
-
'https://github.com/realm/jazzy/issues'
|
72
|
-
exit $?.exitstatus || 1
|
62
|
+
stdout = Dir.chdir(options.source_directory) do
|
63
|
+
arguments = SourceKitten.arguments_from_options(options)
|
64
|
+
SourceKitten.run_sourcekitten(arguments)
|
73
65
|
end
|
74
66
|
end
|
75
67
|
|
@@ -95,10 +87,9 @@ module Jazzy
|
|
95
87
|
def self.each_doc(output_dir, docs, &block)
|
96
88
|
docs.each do |doc|
|
97
89
|
next unless doc.render_as_page?
|
98
|
-
#
|
99
|
-
path = output_dir +
|
90
|
+
# Filepath is relative to documentation root:
|
91
|
+
path = output_dir + doc.filepath
|
100
92
|
block.call(doc, path)
|
101
|
-
next if doc.name == 'index'
|
102
93
|
each_doc(
|
103
94
|
output_dir,
|
104
95
|
doc.children,
|
@@ -198,8 +189,7 @@ module Jazzy
|
|
198
189
|
assets_directory = Config.instance.theme_directory + 'assets'
|
199
190
|
FileUtils.cp_r(assets_directory.children, destination)
|
200
191
|
Pathname.glob(destination + 'css/**/*.scss').each do |scss|
|
201
|
-
|
202
|
-
css = Sass::Engine.new(contents, syntax: :scss).render
|
192
|
+
css = SassC::Engine.new(scss.read).render
|
203
193
|
css_filename = scss.sub(/\.scss$/, '')
|
204
194
|
css_filename.open('w') { |f| f.write(css) }
|
205
195
|
FileUtils.rm scss
|
data/lib/jazzy/docset_builder.rb
CHANGED
@@ -78,7 +78,7 @@ module Jazzy
|
|
78
78
|
'searchIndex (name, type, path);')
|
79
79
|
source_module.all_declarations.select(&:type).each do |doc|
|
80
80
|
db.execute('INSERT OR IGNORE INTO searchIndex(name, type, path) ' \
|
81
|
-
'VALUES (?, ?, ?);', [doc.name, doc.type.dash_type, doc.
|
81
|
+
'VALUES (?, ?, ?);', [doc.name, doc.type.dash_type, doc.filepath])
|
82
82
|
end
|
83
83
|
end
|
84
84
|
end
|
data/lib/jazzy/gem_version.rb
CHANGED
data/lib/jazzy/jazzy_markdown.rb
CHANGED
@@ -20,6 +20,7 @@ module Jazzy
|
|
20
20
|
def self.make_index(readme_path)
|
21
21
|
SourceDocument.new.tap do |sd|
|
22
22
|
sd.name = 'index'
|
23
|
+
sd.url = sd.name + '.html'
|
23
24
|
sd.readme_path = readme_path
|
24
25
|
end
|
25
26
|
end
|
@@ -36,8 +37,8 @@ module Jazzy
|
|
36
37
|
Config.instance
|
37
38
|
end
|
38
39
|
|
39
|
-
def
|
40
|
-
name.downcase.strip.tr(' ', '-').gsub(/[
|
40
|
+
def url_name
|
41
|
+
name.downcase.strip.tr(' ', '-').gsub(/[^[[:word:]]-]/, '')
|
41
42
|
end
|
42
43
|
|
43
44
|
def content(source_module)
|
data/lib/jazzy/sourcekitten.rb
CHANGED
@@ -126,12 +126,11 @@ module Jazzy
|
|
126
126
|
# @return [Hash] input docs with URLs
|
127
127
|
def self.make_doc_urls(docs)
|
128
128
|
docs.each do |doc|
|
129
|
-
if
|
130
|
-
# Create HTML page for this doc if it has children or is root-level
|
129
|
+
if doc.render_as_page?
|
131
130
|
doc.url = (
|
132
131
|
subdir_for_doc(doc) +
|
133
132
|
[sanitize_filename(doc) + '.html']
|
134
|
-
).join('/')
|
133
|
+
).map { |path| ERB::Util.url_encode(path) }.join('/')
|
135
134
|
doc.children = make_doc_urls(doc.children)
|
136
135
|
else
|
137
136
|
# Don't create HTML page for this doc if it doesn't have children
|
@@ -140,8 +139,8 @@ module Jazzy
|
|
140
139
|
warn 'A compile error prevented ' + doc.fully_qualified_name +
|
141
140
|
' from receiving a unique USR. Documentation may be ' \
|
142
141
|
'incomplete. Please check for compile errors by running ' \
|
143
|
-
'`xcodebuild ' \
|
144
|
-
"
|
142
|
+
'`xcodebuild` or `swift build` with arguments ' \
|
143
|
+
"`#{Config.instance.build_tool_arguments.shelljoin}`."
|
145
144
|
end
|
146
145
|
id = doc.usr
|
147
146
|
unless id
|
@@ -159,17 +158,17 @@ module Jazzy
|
|
159
158
|
end
|
160
159
|
# rubocop:enable Metrics/MethodLength
|
161
160
|
|
162
|
-
# Determine the subdirectory in which a doc should be placed
|
161
|
+
# Determine the subdirectory in which a doc should be placed.
|
162
|
+
# Guides in the root for back-compatibility.
|
163
|
+
# Declarations under outer namespace type (Structures, Classes, etc.)
|
163
164
|
def self.subdir_for_doc(doc)
|
164
|
-
|
165
|
-
# Class, etc).
|
165
|
+
return [] if doc.type.markdown?
|
166
166
|
top_level_decl = doc.namespace_path.first
|
167
|
-
if top_level_decl
|
168
|
-
# File program elements under top ancestor’s type (Struct, Class, etc.)
|
167
|
+
if top_level_decl.type.name
|
169
168
|
[top_level_decl.type.plural_url_name] +
|
170
169
|
doc.namespace_ancestors.map(&:name)
|
171
170
|
else
|
172
|
-
#
|
171
|
+
# Category - in the root
|
173
172
|
[]
|
174
173
|
end
|
175
174
|
end
|
@@ -183,22 +182,31 @@ module Jazzy
|
|
183
182
|
end.select { |x| x }.flatten(1)
|
184
183
|
end
|
185
184
|
|
185
|
+
def self.use_spm?(options)
|
186
|
+
options.swift_build_tool == :spm ||
|
187
|
+
(!options.swift_build_tool_configured &&
|
188
|
+
Dir['*.xcodeproj'].empty?)
|
189
|
+
end
|
190
|
+
|
186
191
|
# Builds SourceKitten arguments based on Jazzy options
|
187
192
|
def self.arguments_from_options(options)
|
188
193
|
arguments = ['doc']
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
194
|
+
if options.objc_mode
|
195
|
+
arguments += objc_arguments_from_options(options)
|
196
|
+
else
|
197
|
+
arguments += ['--spm'] if use_spm?(options)
|
198
|
+
if options.module_name_configured
|
199
|
+
arguments += ['--module-name', options.module_name]
|
200
|
+
end
|
201
|
+
arguments += ['--']
|
202
|
+
end
|
203
|
+
|
204
|
+
arguments + options.build_tool_arguments
|
197
205
|
end
|
198
206
|
|
199
207
|
def self.objc_arguments_from_options(options)
|
200
208
|
arguments = []
|
201
|
-
if options.
|
209
|
+
if options.build_tool_arguments.empty?
|
202
210
|
arguments += ['--objc', options.umbrella_header.to_s, '--', '-x',
|
203
211
|
'objective-c', '-isysroot',
|
204
212
|
`xcrun --show-sdk-path --sdk #{options.sdk}`.chomp,
|