framework-generate 0.2.0 → 1.0.0
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/README.md +0 -6
- data/lib/framework-generate/project.rb +5 -19
- data/lib/framework-generate/target.rb +14 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c52393e7d7a5c188978e2e98c037d962f496e8ee
|
4
|
+
data.tar.gz: f88232ba8e3b446421127c2caee605f2607dcdf2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '05933b66155c86b44c8d4c76d8dcbb4d45d4f700cf7d84b61c934b6592b89395e685bbe20edf1a69457df2c7f9c6370635d9d19be2dfa160e99f5a17c52a3584'
|
7
|
+
data.tar.gz: 32a88d51219ce0e3b4fd51c8515823e41c2bbe7020e5ffdfe36d3ad97f60e884e6b065f63abdd679bdcb47a1fbfec02e207308d924cf90164e2092f37db813dd
|
data/README.md
CHANGED
@@ -21,12 +21,6 @@ framework-generate
|
|
21
21
|
|
22
22
|
To view the full `FrameworkSpec` documentation see the [`docs`](docs/FrameworkSpec.md) folder.
|
23
23
|
|
24
|
-
## Todo
|
25
|
-
|
26
|
-
- [X] Add documentation
|
27
|
-
- [ ] Add tests
|
28
|
-
- [ ] Release 1.0
|
29
|
-
|
30
24
|
## License
|
31
25
|
|
32
26
|
This project is licensed under the terms of the MIT license. See the [LICENSE](LICENSE) file.
|
@@ -2,12 +2,10 @@ require 'xcodeproj'
|
|
2
2
|
|
3
3
|
module FrameworkGenerate
|
4
4
|
class Project
|
5
|
-
attr_accessor :name, :
|
5
|
+
attr_accessor :name, :targets
|
6
6
|
|
7
|
-
def initialize(name = nil,
|
7
|
+
def initialize(name = nil, targets = nil)
|
8
8
|
@name = name
|
9
|
-
@platforms = platforms
|
10
|
-
@language = language
|
11
9
|
@targets = targets
|
12
10
|
|
13
11
|
yield(self) if block_given?
|
@@ -19,7 +17,7 @@ module FrameworkGenerate
|
|
19
17
|
end
|
20
18
|
|
21
19
|
def to_s
|
22
|
-
"Project<#{name}, #{
|
20
|
+
"Project<#{name}, #{targets}>"
|
23
21
|
end
|
24
22
|
|
25
23
|
# DSL
|
@@ -83,19 +81,9 @@ module FrameworkGenerate
|
|
83
81
|
|
84
82
|
def general_build_settings(settings)
|
85
83
|
settings['SDKROOT'] = 'macosx'
|
86
|
-
settings['SUPPORTED_PLATFORMS'] = FrameworkGenerate::Platform::supported_platforms(@platforms)
|
87
84
|
settings['TARGETED_DEVICE_FAMILY'] = '1,2,3,4'
|
88
|
-
settings['MACOSX_DEPLOYMENT_TARGET'] = FrameworkGenerate::Platform::deployment_target(@platforms, :macos)
|
89
|
-
settings['IPHONEOS_DEPLOYMENT_TARGET'] = FrameworkGenerate::Platform::deployment_target(@platforms, :ios)
|
90
|
-
settings['TVOS_DEPLOYMENT_TARGET'] = FrameworkGenerate::Platform::deployment_target(@platforms, :tvos)
|
91
|
-
settings['WATCHOS_DEPLOYMENT_TARGET'] = FrameworkGenerate::Platform::deployment_target(@platforms, :watchos)
|
92
85
|
settings['CODE_SIGN_IDENTITY'] = ''
|
93
86
|
settings['COMBINE_HIDPI_IMAGES'] = 'YES'
|
94
|
-
settings['FRAMEWORK_SEARCH_PATHS[sdk=macosx*]'] = FrameworkGenerate::Platform::search_paths(@platforms, :macos)
|
95
|
-
settings['FRAMEWORK_SEARCH_PATHS[sdk=iphone*]'] = FrameworkGenerate::Platform::search_paths(@platforms, :ios)
|
96
|
-
settings['FRAMEWORK_SEARCH_PATHS[sdk=appletv*]'] = FrameworkGenerate::Platform::search_paths(@platforms, :tvos)
|
97
|
-
settings['FRAMEWORK_SEARCH_PATHS[sdk=watch*]'] = FrameworkGenerate::Platform::search_paths(@platforms, :watchos)
|
98
|
-
settings['SWIFT_VERSION'] = @language.version
|
99
87
|
settings['SWIFT_OPTIMIZATION_LEVEL'] = '-Owholemodule'
|
100
88
|
settings['CLANG_WARN_INFINITE_RECURSION'] = 'YES'
|
101
89
|
settings['CLANG_WARN_SUSPICIOUS_MOVE'] = 'YES'
|
@@ -106,8 +94,6 @@ module FrameworkGenerate
|
|
106
94
|
end
|
107
95
|
|
108
96
|
def test_build_settings(settings)
|
109
|
-
settings['SUPPORTED_PLATFORMS'] = FrameworkGenerate::Platform::supported_platforms(@platforms, true)
|
110
|
-
|
111
97
|
settings['LD_RUNPATH_SEARCH_PATHS'] = '$(inherited) @executable_path/Frameworks @loader_path/Frameworks'
|
112
98
|
settings['LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]'] = '$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks'
|
113
99
|
|
@@ -134,7 +120,7 @@ module FrameworkGenerate
|
|
134
120
|
|
135
121
|
scheme = Xcodeproj::XCScheme.new
|
136
122
|
|
137
|
-
created_target = target.create(project, language)
|
123
|
+
created_target = target.create(project, target.language)
|
138
124
|
|
139
125
|
scheme.add_build_target(created_target)
|
140
126
|
|
@@ -143,7 +129,7 @@ module FrameworkGenerate
|
|
143
129
|
end
|
144
130
|
|
145
131
|
if target.test_target != nil
|
146
|
-
created_test_target = target.test_target.create(project, language)
|
132
|
+
created_test_target = target.test_target.create(project, target.language)
|
147
133
|
created_test_target.add_dependency(created_target)
|
148
134
|
|
149
135
|
scheme.add_test_target(created_test_target)
|
@@ -2,10 +2,12 @@ require 'xcodeproj'
|
|
2
2
|
|
3
3
|
module FrameworkGenerate
|
4
4
|
class Target
|
5
|
-
attr_accessor :name, :info_plist, :bundle_id, :header, :include_files, :exclude_files, :resource_files, :dependencies, :type, :pre_build_scripts, :post_build_scripts, :test_target, :is_safe_for_extensions
|
5
|
+
attr_accessor :name, :platforms, :language, :info_plist, :bundle_id, :header, :include_files, :exclude_files, :resource_files, :dependencies, :type, :pre_build_scripts, :post_build_scripts, :test_target, :is_safe_for_extensions
|
6
6
|
|
7
|
-
def initialize(name = nil, info_plist = nil, bundle_id = nil, header = nil, include_files = nil, exclude_files = nil, resource_files = nil, dependencies = nil, type = :framework, pre_build_scripts = nil, post_build_scripts = nil, test_target = nil, is_safe_for_extensions = false)
|
7
|
+
def initialize(name = nil, platforms = nil, language = nil, info_plist = nil, bundle_id = nil, header = nil, include_files = nil, exclude_files = nil, resource_files = nil, dependencies = nil, type = :framework, pre_build_scripts = nil, post_build_scripts = nil, test_target = nil, is_safe_for_extensions = false)
|
8
8
|
@name = name
|
9
|
+
@platforms = platforms
|
10
|
+
@language = language
|
9
11
|
@info_plist = info_plist
|
10
12
|
@bundle_id = bundle_id
|
11
13
|
@header = header
|
@@ -32,6 +34,16 @@ module FrameworkGenerate
|
|
32
34
|
settings['INFOPLIST_FILE'] = @info_plist
|
33
35
|
settings['PRODUCT_BUNDLE_IDENTIFIER'] = @bundle_id
|
34
36
|
settings['APPLICATION_EXTENSION_API_ONLY'] = @is_safe_for_extensions ? 'YES' : 'NO';
|
37
|
+
settings['SUPPORTED_PLATFORMS'] = FrameworkGenerate::Platform::supported_platforms(@platforms)
|
38
|
+
settings['MACOSX_DEPLOYMENT_TARGET'] = FrameworkGenerate::Platform::deployment_target(@platforms, :macos)
|
39
|
+
settings['IPHONEOS_DEPLOYMENT_TARGET'] = FrameworkGenerate::Platform::deployment_target(@platforms, :ios)
|
40
|
+
settings['TVOS_DEPLOYMENT_TARGET'] = FrameworkGenerate::Platform::deployment_target(@platforms, :tvos)
|
41
|
+
settings['WATCHOS_DEPLOYMENT_TARGET'] = FrameworkGenerate::Platform::deployment_target(@platforms, :watchos)
|
42
|
+
settings['FRAMEWORK_SEARCH_PATHS[sdk=macosx*]'] = FrameworkGenerate::Platform::search_paths(@platforms, :macos)
|
43
|
+
settings['FRAMEWORK_SEARCH_PATHS[sdk=iphone*]'] = FrameworkGenerate::Platform::search_paths(@platforms, :ios)
|
44
|
+
settings['FRAMEWORK_SEARCH_PATHS[sdk=appletv*]'] = FrameworkGenerate::Platform::search_paths(@platforms, :tvos)
|
45
|
+
settings['FRAMEWORK_SEARCH_PATHS[sdk=watch*]'] = FrameworkGenerate::Platform::search_paths(@platforms, :watchos)
|
46
|
+
settings['SWIFT_VERSION'] = @language.version
|
35
47
|
|
36
48
|
settings
|
37
49
|
end
|