Files
sodalive-ios/work/tests/generate-sub-banner-gesture-project.rb
T

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)