mirror of
https://github.com/yonaskolb/XcodeGen.git
synced 2026-03-18 20:02:25 +00:00
50 lines
1.8 KiB
Ruby
50 lines
1.8 KiB
Ruby
class Xcodegen < Formula
|
|
desc "Tool that generates your Xcode project from a project spec"
|
|
homepage "https://github.com/yonaskolb/XcodeGen"
|
|
url "https://github.com/yonaskolb/XcodeGen/archive/1.9.0.tar.gz"
|
|
sha256 "51987022c8095c21ce3a7e93f93912d5fb533d909970c03eeab148897bf0e2c4"
|
|
head "https://github.com/yonaskolb/XcodeGen.git"
|
|
|
|
depends_on :xcode
|
|
|
|
def install
|
|
# libxml2 has to be included in ISYSTEM_PATH for building one of
|
|
# dependencies. It didn't happen automatically before Xcode 9.3
|
|
# so homebrew patched environment variable to get it work.
|
|
# But since Xcode 9.3 includes it already, the build will fail
|
|
# because of redefinition of libxml2 module.
|
|
# It's a bug of homebrew but before it's fixed, it's easier
|
|
# to provide in-place workaround for now.
|
|
# Please remove this once homebrew is patched.
|
|
|
|
# step 1: capture old value and patch environment
|
|
if OS::Mac::Xcode.version >= Version.new("9.3") then
|
|
old_isystem_paths = ENV["HOMEBREW_ISYSTEM_PATHS"]
|
|
ENV["HOMEBREW_ISYSTEM_PATHS"] = old_isystem_paths.gsub("/usr/include/libxml2", "")
|
|
end
|
|
|
|
# step 2: usual build
|
|
system "make", "install", "PREFIX=#{prefix}"
|
|
|
|
# step 3: restoring environment to pristine state
|
|
ENV["HOMEBREW_ISYSTEM_PATHS"] = old_isystem_paths if defined? old_isystem_paths
|
|
end
|
|
|
|
test do
|
|
(testpath/"xcodegen.yml").write <<-EOS.undent
|
|
name: GeneratedProject
|
|
targets:
|
|
TestProject:
|
|
type: application
|
|
platform: iOS
|
|
sources: TestProject
|
|
settings:
|
|
PRODUCT_BUNDLE_IDENTIFIER: com.test
|
|
PRODUCT_NAME: TestProject
|
|
EOS
|
|
Dir.mkdir(File.join(testpath, "TestProject"))
|
|
system("#{bin}/XcodeGen --spec #{File.join(testpath, "xcodegen.yml")}")
|
|
system("xcodebuild --project #{File.join(testpath, "GeneratedProject.xcodeproj")}")
|
|
end
|
|
end
|