Files
XcodeGen/Formula/xcodegen.rb
T
Valerii Hiora 5ce17487e1 Added workaround for brew & Xcode 9.3 compatibility
`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.

Fixes #283
2018-04-10 09:36:01 +03:00

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.8.0.tar.gz"
sha256 "fed2da98f176f18d3b761b76def4c3324d4a9a5c77cc7392388042db33dc9cee"
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