framework-generate 1.2.1 → 1.3.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: 84e2965c2ac296c9af44b62f96bfbc75664cd215
4
- data.tar.gz: ae5a490b1f77bdd69d571366006bba1fdf0364ba
3
+ metadata.gz: 6b81c50a7da8dfadc9b6fbcbc508b23d17133fa2
4
+ data.tar.gz: 94d3ec140450a8acd5c66e04f860f41ed5724c14
5
5
  SHA512:
6
- metadata.gz: 328f80bae08682e9719719b2ae50f0c17a186d434e9d529d483bc322260c19fe7b4ab1ef98b66cfb4f4ccd7528ecf337b60cfa7df883c01826d3205ed8e20f5f
7
- data.tar.gz: 5c144f6adf9838396a04ec423111925f5a37de8d7a810724350dba2d07446e5ea91d67af31f4182e7fc88fef1e07c9c1db536e0912e62910917bdb0531f0fec9
6
+ metadata.gz: 4386f7b10a8492ec0d2f3c3190a0124cbcdcdfaee6794f8b4eda599af9259c0fc347a354a0cc3ee1e4f4c7b30fd8d4b3907937351bf57cdee26c8d389cd5bfbe
7
+ data.tar.gz: a29f3fd9148dbeb4923426828331bcca0ae0bfba632cf4ad3ff360f37117cc7cb21851c5844e52dcd8a6a24d2777cefc9e330b8ddf5914c52a10039089645317
data/README.md CHANGED
@@ -24,6 +24,10 @@ framework-generate
24
24
 
25
25
  To view the full `FrameworkSpec` documentation see the [`docs`](docs/FrameworkSpec.md) folder.
26
26
 
27
+ ### Sample FrameworkSpec Files
28
+
29
+ Don't know where to start? Some FrameworkSpec files exist [here](https://github.com/petester42/framework-specs) for a couple projects. It can be a good place to start!
30
+
27
31
  ## Contributing
28
32
 
29
33
  Love framework-generate but want to make it even better?
@@ -88,6 +88,12 @@ module FrameworkGenerate
88
88
  settings['CLANG_WARN_SUSPICIOUS_MOVE'] = 'YES'
89
89
  settings['ENABLE_STRICT_OBJC_MSGSEND'] = 'YES'
90
90
  settings['GCC_NO_COMMON_BLOCKS'] = 'YES'
91
+ settings['CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING'] = 'YES'
92
+ settings['CLANG_WARN_COMMA'] = 'YES'
93
+ settings['CLANG_WARN_NON_LITERAL_NULL_CONVERSION'] = 'YES'
94
+ settings['CLANG_WARN_OBJC_LITERAL_CONVERSION'] = 'YES'
95
+ settings['CLANG_WARN_RANGE_LOOP_ANALYSIS'] = 'YES'
96
+ settings['CLANG_WARN_STRICT_PROTOTYPES'] = 'YES'
91
97
 
92
98
  settings
93
99
  end
@@ -129,6 +135,11 @@ module FrameworkGenerate
129
135
 
130
136
  scheme.add_build_target(created_target)
131
137
 
138
+ unless scheme.launch_action.nil?
139
+ target.add_launch_arguments(scheme.launch_action)
140
+ target.add_environment_variables(scheme.launch_action)
141
+ end
142
+
132
143
  if created_target.test_target_type?
133
144
  scheme.add_test_target(created_target)
134
145
  end
@@ -3,9 +3,9 @@ require 'fileutils'
3
3
 
4
4
  module FrameworkGenerate
5
5
  class Target
6
- 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, :enable_code_coverage
6
+ 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, :enable_code_coverage, :launch_arguments, :environment_variables
7
7
 
8
- 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, enable_code_coverage = false)
8
+ 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, enable_code_coverage = false, launch_arguments = nil, environment_variables = nil)
9
9
  @name = name
10
10
  @platforms = platforms
11
11
  @language = language
@@ -22,6 +22,8 @@ module FrameworkGenerate
22
22
  @test_target = test_target
23
23
  @is_safe_for_extensions = is_safe_for_extensions
24
24
  @enable_code_coverage = enable_code_coverage
25
+ @launch_arguments = launch_arguments
26
+ @environment_variables = environment_variables
25
27
 
26
28
  yield(self) if block_given?
27
29
  end
@@ -32,6 +34,12 @@ module FrameworkGenerate
32
34
 
33
35
  def target_build_settings(settings)
34
36
  settings.delete('CODE_SIGN_IDENTITY')
37
+ settings.delete('CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING')
38
+ settings.delete('CLANG_WARN_COMMA')
39
+ settings.delete('CLANG_WARN_NON_LITERAL_NULL_CONVERSION')
40
+ settings.delete('CLANG_WARN_OBJC_LITERAL_CONVERSION')
41
+ settings.delete('CLANG_WARN_RANGE_LOOP_ANALYSIS')
42
+ settings.delete('CLANG_WARN_STRICT_PROTOTYPES')
35
43
 
36
44
  settings['INFOPLIST_FILE'] = @info_plist
37
45
  settings['PRODUCT_BUNDLE_IDENTIFIER'] = @bundle_id
@@ -236,6 +244,26 @@ module FrameworkGenerate
236
244
  add_build_scripts(target, @post_build_scripts)
237
245
  end
238
246
 
247
+ def add_launch_arguments(launch_action)
248
+ return if @launch_arguments.nil?
249
+
250
+ command_line_arguments = @launch_arguments.map do |launch_arguement|
251
+ { argument: launch_arguement, enabled: true }
252
+ end
253
+
254
+ launch_action.command_line_arguments = Xcodeproj::XCScheme::CommandLineArguments.new(command_line_arguments)
255
+ end
256
+
257
+ def add_environment_variables(launch_action)
258
+ return if @environment_variables.nil?
259
+
260
+ environment_variables = @environment_variables.map do |key, value|
261
+ { key: key, value: value, enabled: true }
262
+ end
263
+
264
+ launch_action.environment_variables = Xcodeproj::XCScheme::EnvironmentVariables.new(environment_variables)
265
+ end
266
+
239
267
  def create(project, language, scripts_directory)
240
268
  name = @name
241
269
  type = @type
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: framework-generate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre-Marc Airoldi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-02 00:00:00.000000000 Z
11
+ date: 2017-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xcodeproj
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.4.0
19
+ version: 1.5.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.0.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 1.4.0
29
+ version: 1.5.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.0.0
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  version: '0'
70
70
  requirements: []
71
71
  rubyforge_project:
72
- rubygems_version: 2.6.12
72
+ rubygems_version: 2.5.1
73
73
  signing_key:
74
74
  specification_version: 4
75
75
  summary: Tool to generate an Xcode framework project