50 lines
2.0 KiB
Ruby
50 lines
2.0 KiB
Ruby
require 'xcodeproj'
|
|
|
|
root, output, kingfisher = ARGV
|
|
project = Xcodeproj::Project.new("#{output}/Gesture.xcodeproj")
|
|
app = project.new_target(:application, 'Gesture', :ios, '16.6')
|
|
tests = project.new_target(:ui_test_bundle, 'GestureUITests', :ios, '16.6')
|
|
sources = %w[
|
|
SodaLive/Sources/V2/Component/Banner/SubBanner.swift
|
|
SodaLive/Sources/V2/Component/Banner/SubBannerCarousel.swift
|
|
SodaLive/Sources/UI/Theme/Color.swift
|
|
SodaLive/Sources/UI/Theme/Spacing.swift
|
|
SodaLive/Sources/Extensions/ColorExtension.swift
|
|
SodaLive/Sources/Extensions/FontModifier.swift
|
|
work/tests/SubBannerGestureHarness.swift
|
|
]
|
|
sources.each do |path|
|
|
source = path.end_with?('/SubBannerCarousel.swift') && ARGV[3] ? ARGV[3] : "#{root}/#{path}"
|
|
app.source_build_phase.add_file_reference(project.main_group.new_file(source))
|
|
end
|
|
tests.source_build_phase.add_file_reference(project.main_group.new_file("#{root}/work/tests/SubBannerGestureUITests.swift"))
|
|
tests.add_dependency(app)
|
|
[app, tests].each do |target|
|
|
target.build_configurations.each do |configuration|
|
|
configuration.build_settings.merge!({
|
|
'PRODUCT_BUNDLE_IDENTIFIER' => "invalid.sodalive.gesturefix.#{target.name}",
|
|
'GENERATE_INFOPLIST_FILE' => 'YES',
|
|
'CODE_SIGNING_ALLOWED' => 'NO',
|
|
'SWIFT_VERSION' => '5.0',
|
|
'TARGETED_DEVICE_FAMILY' => '1',
|
|
'ARCHS' => 'x86_64',
|
|
'SWIFT_OPTIMIZATION_LEVEL' => '-Onone'
|
|
})
|
|
end
|
|
end
|
|
app.build_configurations.each do |configuration|
|
|
configuration.build_settings.merge!({
|
|
'SWIFT_INCLUDE_PATHS' => "\"#{kingfisher}\"",
|
|
'OTHER_LDFLAGS' => ['$(inherited)', "\"#{kingfisher}/Kingfisher.o\""],
|
|
'INFOPLIST_KEY_UILaunchScreen_Generation' => 'YES'
|
|
})
|
|
end
|
|
tests.build_configurations.each { |configuration| configuration.build_settings['TEST_TARGET_NAME'] = 'Gesture' }
|
|
project.save
|
|
scheme = Xcodeproj::XCScheme.new
|
|
scheme.add_build_target(app)
|
|
scheme.add_build_target(tests)
|
|
scheme.set_launch_target(app)
|
|
scheme.add_test_target(tests)
|
|
scheme.save_as(project.path, 'Gesture', true)
|