framework-generate 0.2.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|