xcmake 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2961706110bfe1fab8a879beffd05f50aaadd42ad6ba83fc761400abd3c930cc
4
+ data.tar.gz: ee92a8f0cbbe81798e2d922db01bee9cb209213a2737d0d264115111ffe24860
5
+ SHA512:
6
+ metadata.gz: 11ddb88f9d19952058419e8a35fea38e05e351a9d17e0aec54edebf59d3ecca6998e8718283ff3b84c2eb3fe29cf752903e34f40ed93f2e07922dd7b17e74a3e
7
+ data.tar.gz: 9c3bed0e355f8163563dd569fdc5993151249804eb4b0fe52afa3bb08ca934fa98870c2f0a935e29e2d448da83b16a8f444285b9071445aadcccf18b068f2ed8
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ /.bundle/
2
+ /.idea/
3
+ /.yardoc
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /vendor/
11
+ .DS_Store
12
+
13
+ /test/test_project/*
14
+ /test/test_project/TestProject/*
15
+ !project.yml
16
+ !scaffold.yml
17
+ !.keep
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.5.1
5
+ before_install: gem install bundler -v 1.16.1
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,35 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ xcmake (0.1.0)
5
+ colorize (~> 0.8.1)
6
+ thor (~> 0.20.0)
7
+ xcodeproj (~> 1.5.7)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ CFPropertyList (3.0.0)
13
+ atomos (0.1.2)
14
+ claide (1.0.2)
15
+ colored2 (3.1.2)
16
+ colorize (0.8.1)
17
+ minitest (5.11.3)
18
+ nanaimo (0.2.5)
19
+ thor (0.20.0)
20
+ xcodeproj (1.5.7)
21
+ CFPropertyList (>= 2.3.3, < 4.0)
22
+ atomos (~> 0.1.2)
23
+ claide (>= 1.0.2, < 2.0)
24
+ colored2 (~> 3.1)
25
+ nanaimo (~> 0.2.4)
26
+
27
+ PLATFORMS
28
+ ruby
29
+
30
+ DEPENDENCIES
31
+ minitest (~> 5.0)
32
+ xcmake!
33
+
34
+ BUNDLED WITH
35
+ 1.16.1
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2018 kenta.motoyanagi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,27 @@
1
+ # Xcmake
2
+
3
+ Xcode resource genetator for command line.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'xcmake'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install xcmake
20
+
21
+ ## Usage
22
+
23
+ TODO
24
+
25
+ ## License
26
+
27
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,31 @@
1
+ require "fileutils"
2
+ require "bundler/gem_tasks"
3
+ require "rake/testtask"
4
+
5
+ Rake::TestTask.new(:test) do |t|
6
+ t.libs << "test"
7
+ t.libs << "lib"
8
+ t.test_files = FileList["test/**/*_test.rb"]
9
+ end
10
+
11
+ task :default => :test
12
+
13
+ namespace :project do
14
+ desc "Rebuilding Xcode test project"
15
+ task rebuild: %w(remove create)
16
+
17
+ desc "Create Xcode test project"
18
+ task :create do
19
+ Dir.chdir("test/test_project") do
20
+ Dir.mkdir("TestProject") unless Dir.exist?("TestProject")
21
+ exec("xcodegen")
22
+ end
23
+ end
24
+
25
+ desc "Remove Xcode test project"
26
+ task :remove do
27
+ Dir.glob("test/test_project/*") do |path|
28
+ FileUtils.rm_rf(path) unless File.file?(path)
29
+ end
30
+ end
31
+ end
data/bin/setup ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ROOT_DIR = File.expand_path("..", __dir__)
4
+ VENDOR_DIR = File.join(ROOT_DIR, "vendor", "bundle")
5
+
6
+ if !Dir.exist?(VENDOR_DIR)
7
+ Dir.chdir(ROOT_DIR) do
8
+ exec("bundle install --path=vendor/bundle")
9
+ end
10
+ end
data/bin/xcmake ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "xcmake"
4
+
5
+ Xcmake::Cli.start
data/lib/xcmake.rb ADDED
@@ -0,0 +1,7 @@
1
+ require "xcmake/logger"
2
+ require "xcmake/helpers/xcodeproj_helper"
3
+ require "xcmake/cli"
4
+ require "xcmake/generator"
5
+ require "xcmake/version"
6
+ require "xcmake/source_builder/swift_builder"
7
+ require "xcmake/source_builder/plist_builder"
data/lib/xcmake/cli.rb ADDED
@@ -0,0 +1,101 @@
1
+ require "yaml"
2
+ require "thor"
3
+ require "xcmake/logger"
4
+
5
+ module Xcmake
6
+ class Cli < Thor
7
+ include Xcmake::Logger
8
+
9
+ desc "target [NAME]", "Generate new target."
10
+ method_option :project, aliases: "-p", desc: "Project path. If unspecified, use `*.xcodeproj` in the current directory."
11
+ method_option :type, aliases: "-t", desc: "Target type. Default is 'framework'."
12
+ method_option :delete, aliases: "-d", desc: "Delete target."
13
+ def target(name)
14
+ project_path = options[:project] || default_project!
15
+
16
+ g = Xcmake::Generator.new(project_path)
17
+
18
+ if options[:delete]
19
+ g.delete_target(name)
20
+ else
21
+ type = options[:type] || "framework"
22
+ g.create_target(name, type.to_sym)
23
+ end
24
+ end
25
+
26
+ desc "group [NAME]", "Generate new group."
27
+ method_option :project, aliases: "-p", desc: "Project path. If unspecified, use `*.xcodeproj` in the current directory."
28
+ method_option :delete, aliases: "-d", desc: "Delete group."
29
+ def group(name)
30
+ project_path = options[:project] || default_project!
31
+
32
+ g = Xcmake::Generator.new(project_path)
33
+
34
+ if options[:delete]
35
+ g.delete_group(name)
36
+ else
37
+ g.create_group(name)
38
+ end
39
+ end
40
+
41
+ desc "source [NAME]", "Generate source file."
42
+ method_option :project, aliases: "-p", desc: "Project path. If unspecified, use `*.xcodeproj` in the current directory."
43
+ method_option :delete, aliases: "-d", desc: "Delete source file."
44
+ def source(name)
45
+ project_path = options[:project] || default_project!
46
+
47
+ g = Xcmake::Generator.new(project_path)
48
+
49
+ if options[:delete]
50
+ else
51
+ g.create_source(name)
52
+ end
53
+ end
54
+
55
+ desc "scaffold [NAME]", "Generate scaffold files."
56
+ method_option :project, aliases: "-p", desc: "Project path. If unspecified, use `*.xcodeproj` in the current directory."
57
+ def scaffold(name)
58
+ project_path = options[:project] || default_project!
59
+
60
+ g = Xcmake::Generator.new(project_path)
61
+
62
+ structure = load_scaffold_structure(project_path)
63
+
64
+ structure["sources"].each do |s|
65
+ if s["target"]["name"] == s["group"]
66
+ group_path = s["target"]["name"]
67
+ elsif s["group"].to_s.empty?
68
+ group_path = s["target"]["name"]
69
+ else
70
+ group_path = "#{s["target"]["name"]}/#{s["group"]}"
71
+ end
72
+
73
+ g.create_target(s["target"]["name"], s["target"]["type"])
74
+ g.create_group(group_path) unless s["group"].to_s.empty?
75
+ g.create_source("#{group_path}/#{s['prefix']}#{name}#{s['suffix']}", nil)
76
+ end
77
+ end
78
+
79
+ private
80
+
81
+ def default_project!
82
+ project_paths = Dir.glob("#{Dir.pwd}/*.xcodeproj")
83
+
84
+ if project_paths.empty?
85
+ log_error!("xcodeproj not found. please give option `-p [project path]` and try it.")
86
+ end
87
+
88
+ if project_paths.size > 1
89
+ log_error!("found many xcodeproj. please give option `-p [project path]` and try it.")
90
+ end
91
+
92
+ project_paths.first
93
+ end
94
+
95
+ def load_scaffold_structure(project_path, scaffold_config_file="scaffold.yml")
96
+ scaffold_path = File.join(project_path, "..", scaffold_config_file)
97
+ yaml_data = File.read(scaffold_path)
98
+ YAML.load(yaml_data)
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,150 @@
1
+ require "fileutils"
2
+ require "pathname"
3
+ require "xcodeproj"
4
+
5
+ module Xcmake
6
+ class Generator
7
+ include Xcmake::Logger
8
+ include Xcmake::XcodeprojHelper
9
+
10
+ def initialize(project_path)
11
+ @project = Xcodeproj::Project.open(project_path)
12
+ end
13
+
14
+ def create_target(name, type, platform=:ios, lang=:swift)
15
+ find_target_with_path(name).tap do |target|
16
+ unless target.nil?
17
+ log_info("Target\t'#{name}' already exists.")
18
+ return
19
+ end
20
+ end
21
+
22
+ target = @project.new_target(type, name, platform, nil, nil, lang)
23
+
24
+ create_group(name)
25
+ create_source(
26
+ File.join(name, "Info.plist"),
27
+ File.expand_path("../../templates/default.plist.erb", __dir__)
28
+ )
29
+
30
+ @project.main_group.find_subpath(name).tap do |group|
31
+ target.add_file_references(group.files)
32
+ target.build_configuration_list.set_setting("INFOPLIST_FILE", "$(SRCROOT)/#{name}/Info.plist")
33
+ end
34
+
35
+ log_info("Target\t'#{name}' created!!")
36
+ @project.save
37
+ end
38
+
39
+ def delete_target(name)
40
+ log_info("`delete_target` now working...")
41
+ end
42
+
43
+ def create_group(name)
44
+ group_dir_path = File.join(project_root, name)
45
+
46
+ if group_paths.map(&:to_s).include?(group_dir_path)
47
+ log_info("Group\t'#{name}' already exists.")
48
+ return
49
+ end
50
+
51
+ groups = name.split("/")
52
+ base_path = File.join(project_root, @project.main_group.path.to_s)
53
+ create_group_recursive(groups, @project.main_group, base_path)
54
+
55
+ FileUtils.mkdir_p(group_dir_path)
56
+
57
+ log_info("Group\t'#{name}' created!!")
58
+ @project.save
59
+ end
60
+
61
+ def delete_group(name)
62
+ delete_group_recursive(name)
63
+ @project.save
64
+ end
65
+
66
+ def create_source(name, template=nil)
67
+ dir_path = File.dirname(name)
68
+ file_name = File.basename(name)
69
+
70
+ group = find_group_with_path(dir_path).tap do |r|
71
+ if r.nil?
72
+ log_error!("group path not found. please set NAME to [GROUP_PATH]/[FILE_NAME] and try it!")
73
+ end
74
+ end
75
+
76
+ File.join(group.real_path, file_name).tap do |file_path|
77
+ if File.exist?(file_path)
78
+ log_info("Source\t'#{name}' already exists.")
79
+ return
80
+ end
81
+ end
82
+
83
+ file_ref = group.new_file(file_name)
84
+
85
+ find_target_with_path(dir_path).tap { |r| r&.add_file_references([file_ref]) }
86
+
87
+ file_path = file_ref.real_path
88
+ file_ext = File.extname(file_path)
89
+
90
+ data =
91
+ case file_ext
92
+ when ".swift" then
93
+ params = parameter_for_swift(file_name, dir_path.split("/").first)
94
+ SwiftBuilder.new(template).build(params)
95
+ when ".plist" then
96
+ params = parameter_for_plist(:framework)
97
+ PlistBuilder.new(template).build(params)
98
+ else
99
+ log_error!("File type `#{file_ext}` is not supported.")
100
+ end
101
+
102
+ File.write(file_path, data)
103
+
104
+ log_info("Source\t'#{name}' created!!")
105
+ @project.save
106
+ end
107
+
108
+ private
109
+
110
+ def create_group_recursive(groups, parent_group, path)
111
+ new_group_name = groups.shift
112
+ new_group_path = File.join(path, new_group_name)
113
+
114
+ next_group = parent_group.children.find { |g| g.path == new_group_name }
115
+
116
+ if next_group.nil?
117
+ next_group = parent_group.new_group(new_group_name, new_group_path)
118
+ end
119
+
120
+ if !groups.empty?
121
+ create_group_recursive(groups, next_group, new_group_path)
122
+ end
123
+ end
124
+
125
+ def delete_group_recursive(path, main_target=true)
126
+ return if is_target_path?(path)
127
+
128
+ target_group = @project.main_group.find_subpath(path)
129
+
130
+ return if target_group.nil?
131
+
132
+ if main_target || target_group.children.empty?
133
+ FileUtils.rm_rf(target_group.real_path)
134
+ target_group.parent.clear
135
+ log_info("Removed group: #{path}")
136
+ end
137
+
138
+ next_path = Pathname.new(path).dirname.to_s
139
+ delete_group_recursive(next_path, false)
140
+ end
141
+
142
+ def parameter_for_swift(name, target, organaizer=nil)
143
+ { name: name, target: target, organizer: organaizer }
144
+ end
145
+
146
+ def parameter_for_plist(type)
147
+ { type: type }
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,24 @@
1
+ module Xcmake
2
+ module XcodeprojHelper
3
+ def project_root
4
+ @project.path.dirname.to_s
5
+ end
6
+
7
+ def group_paths
8
+ @project.main_group.recursive_children_groups.map(&:real_path).uniq
9
+ end
10
+
11
+ def is_target_path?(path)
12
+ @project.targets.map(&:name).include?(path)
13
+ end
14
+
15
+ def find_group_with_path(path)
16
+ @project.main_group.find_subpath(path)
17
+ end
18
+
19
+ def find_target_with_path(path)
20
+ target_name = path.split("/").first
21
+ @project.targets.find { |t| t.name == target_name }
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,36 @@
1
+ require "logger"
2
+ require "colorize"
3
+
4
+ module Xcmake::Logger
5
+ def log_info(text)
6
+ stdout_logger.info(text.green)
7
+ end
8
+
9
+ def log_error(text)
10
+ stdout_logger.error(text.red)
11
+ end
12
+
13
+ def log_error!(text)
14
+ log_error(text)
15
+ exit 1
16
+ end
17
+
18
+ private
19
+
20
+ def stdout_logger
21
+ create_logger(STDOUT)
22
+ end
23
+
24
+ def stderr_logger
25
+ create_logger(STDERR)
26
+ end
27
+
28
+ def create_logger(output)
29
+ logger = Logger.new(output)
30
+ logger.progname = "Xcmake"
31
+ logger.formatter = proc { |severity, datetime, progname, message|
32
+ "#{progname} : #{message}\n"
33
+ }
34
+ logger
35
+ end
36
+ end
@@ -0,0 +1,16 @@
1
+ module Xcmake
2
+ class PlistBuilder
3
+ include Xcmake::Logger
4
+
5
+ def initialize(template_path=nil)
6
+ template_path = template_path || File.expand_path("../../../templates/default.plist.erb", __dir__)
7
+ log_error!("Template not found: #{template_path}") unless File.exist?(template_path)
8
+ @template = File.read(template_path)
9
+ end
10
+
11
+ def build(params={})
12
+ params = params
13
+ ERB.new(@template, nil, "-").result(binding)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ require "erb"
2
+ require "date"
3
+
4
+ module Xcmake
5
+ class SwiftBuilder
6
+ include Xcmake::Logger
7
+
8
+ def initialize(template_path=nil)
9
+ template_path = template_path || File.expand_path("../../../templates/default.swift.erb", __dir__)
10
+ log_error!("Template not found: #{template_path}") unless File.exist?(template_path)
11
+ @template = File.read(template_path)
12
+ end
13
+
14
+ def build(params={})
15
+ params = params
16
+ ERB.new(@template, nil, "-").result(binding)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,3 @@
1
+ module Xcmake
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string>$(EXECUTABLE_NAME)</string>
9
+ <key>CFBundleIdentifier</key>
10
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11
+ <key>CFBundleInfoDictionaryVersion</key>
12
+ <string>6.0</string>
13
+ <key>CFBundleName</key>
14
+ <string>$(PRODUCT_NAME)</string>
15
+ <key>CFBundlePackageType</key>
16
+ <% if params[:type] == :framework -%>
17
+ <string>FMWK</string>
18
+ <key>CFBundleShortVersionString</key>
19
+ <% end -%>
20
+ <string>1.0</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>$(CURRENT_PROJECT_VERSION)</string>
23
+ <key>NSPrincipalClass</key>
24
+ <string></string>
25
+ </dict>
26
+ </plist>
@@ -0,0 +1,13 @@
1
+ //
2
+ // <%= params[:name] %>.swift
3
+ <% if !params[:target].nil? -%>
4
+ // <%= params[:target] %>
5
+ <% end; -%>
6
+ //
7
+ // Created by <%= `whoami`.chomp %> on <%= Date.today.strftime("%Y/%m/%d") %>.
8
+ <% if !params[:organizer].nil? -%>
9
+ // Copyright © <%= Date.today.strftime("%Y") %> <%= params[:organizer] %>. All rights reserved.
10
+ <% end -%>
11
+ //
12
+
13
+ import Foundation
data/xcmake.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ lib = File.expand_path("../lib", __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "xcmake/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "xcmake"
7
+ spec.version = Xcmake::VERSION
8
+ spec.authors = ["k-motoyan"]
9
+ spec.email = ["k.motoyan888@gmail.com"]
10
+
11
+ spec.summary = "Xcode resource genetator for command line."
12
+ spec.description = ""
13
+ spec.homepage = "https://github.com/k-motoyan/xcmake"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
+ f.match(%r{^(test|spec|features)/})
18
+ end
19
+ spec.bindir = "bin"
20
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_dependency "xcodeproj", "~> 1.5.7"
24
+ spec.add_dependency "thor", "~> 0.20.0"
25
+ spec.add_dependency "colorize", "~> 0.8.1"
26
+
27
+ spec.add_development_dependency "minitest", "~> 5.0"
28
+ end
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xcmake
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - k-motoyan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-04-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: xcodeproj
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.5.7
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.5.7
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.20.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.20.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: colorize
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.8.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.8.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ description: ''
70
+ email:
71
+ - k.motoyan888@gmail.com
72
+ executables:
73
+ - setup
74
+ - xcmake
75
+ extensions: []
76
+ extra_rdoc_files: []
77
+ files:
78
+ - ".gitignore"
79
+ - ".travis.yml"
80
+ - Gemfile
81
+ - Gemfile.lock
82
+ - LICENSE.txt
83
+ - README.md
84
+ - Rakefile
85
+ - bin/setup
86
+ - bin/xcmake
87
+ - lib/xcmake.rb
88
+ - lib/xcmake/cli.rb
89
+ - lib/xcmake/generator.rb
90
+ - lib/xcmake/helpers/xcodeproj_helper.rb
91
+ - lib/xcmake/logger.rb
92
+ - lib/xcmake/source_builder/plist_builder.rb
93
+ - lib/xcmake/source_builder/swift_builder.rb
94
+ - lib/xcmake/version.rb
95
+ - templates/default.plist.erb
96
+ - templates/default.swift.erb
97
+ - xcmake.gemspec
98
+ homepage: https://github.com/k-motoyan/xcmake
99
+ licenses:
100
+ - MIT
101
+ metadata: {}
102
+ post_install_message:
103
+ rdoc_options: []
104
+ require_paths:
105
+ - lib
106
+ required_ruby_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ required_rubygems_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ requirements: []
117
+ rubyforge_project:
118
+ rubygems_version: 2.7.6
119
+ signing_key:
120
+ specification_version: 4
121
+ summary: Xcode resource genetator for command line.
122
+ test_files: []