Files
wnmj-normal/cocos2d/chipmunk-src/xcode/iphonestatic.command
2026-03-03 13:56:44 +08:00

60 lines
1.8 KiB
Bash

#! /usr/bin/ruby
Dir.chdir(File.dirname($0))
require 'Tempfile'
BUILD_LOG = Tempfile.new("Chipmunk-")
BUILD_LOG_PATH = BUILD_LOG.path
def log(string)
puts string
open(BUILD_LOG_PATH, 'a'){|f| f.puts string}
end
def latest_sdk()
sdks = `xcodebuild -showsdks`.split("\n")
versions = sdks.map do|elt|
# Match only lines with "iphoneos" in them.
m = elt.match(/iphoneos(\d\.\d)/)
(m ? m.captures[0] : "0.0")
end
return versions.max
end
# Or you can pick a specific version string (ex: "5.1")
IOS_SDK_VERSION = latest_sdk()
log("Building using iOS SDK #{IOS_SDK_VERSION}")
VERBOSE = (not ARGV.include?("--quiet"))
def system(command)
log "> #{command}"
result = Kernel.system(VERBOSE ? "#{command} | tee -a #{BUILD_LOG_PATH}; exit ${PIPESTATUS[0]}" : "#{command} >> #{BUILD_LOG_PATH}")
unless $? == 0
log "==========================================="
log "Command failed with status #{$?}: #{command}"
log "Build errors encountered. Aborting build script"
log "Check the build log for more information: #{BUILD_LOG_PATH}"
raise
end
end
OUTPUT_DIR_NAME = "Chipmunk-iPhone"
system "rm -rf #{OUTPUT_DIR_NAME}"
system "mkdir #{OUTPUT_DIR_NAME}"
system "xcodebuild -project Chipmunk6.xcodeproj -sdk iphoneos#{IOS_SDK_VERSION} -configuration Release -target ChipmunkStatic-iPhone"
system "xcodebuild -project Chipmunk6.xcodeproj -sdk iphonesimulator#{IOS_SDK_VERSION} -arch i386 -configuration Debug -target ChipmunkStatic-iPhone"
system "lipo build/Debug-iphonesimulator/libChipmunk-iPhone.a build/Release-iphoneos/libChipmunk-iPhone.a -create -output #{OUTPUT_DIR_NAME}/libChipmunk-iPhone.a"
system "rsync -r --exclude='.*' ../include/chipmunk/ #{OUTPUT_DIR_NAME}"
system "open #{OUTPUT_DIR_NAME}"
puts "Copy #{OUTPUT_DIR_NAME} into your project and enjoy."
BUILD_LOG.delete