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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fef9f1fd34ff8648f028e22665e5303fd78d10ad
4
- data.tar.gz: f3a85739d37b7898864147aa60a4883673e247ab
3
+ metadata.gz: c52393e7d7a5c188978e2e98c037d962f496e8ee
4
+ data.tar.gz: f88232ba8e3b446421127c2caee605f2607dcdf2
5
5
  SHA512:
6
- metadata.gz: 3fd36151284c6c0e5647ec11b72d33df7b3d686372a3bf389357398df0176a0dbe03a2772a9228577b25470dd646078828f8fb38ed62ffec2070bad8323c331c
7
- data.tar.gz: 1778457b557ee4a09bf9cd41b573202ddfefc338abdc833ac9af6acb2d553fe154cdbd65135b8fe9dc781acd30b7f4ac09b8048aef219e8110b0d0a192880fdd
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, :platforms, :language, :targets
5
+ attr_accessor :name, :targets
6
6
 
7
- def initialize(name = nil, platforms = nil, language = nil, targets = 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}, #{platforms}, #{language}, #{targets}>"
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: framework-generate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre-Marc Airoldi