Forráskód Böngészése

For Travis CI - fix packaging for iOS platform. [ci package]

Yao Wei Tjong 姚伟忠 11 éve
szülő
commit
c7fe5f6267
2 módosított fájl, 17 hozzáadás és 10 törlés
  1. 14 9
      Rakefile
  2. 3 1
      Source/CMakeLists.txt

+ 14 - 9
Rakefile

@@ -92,8 +92,11 @@ task :travis_ci_package_upload do
   else
   else
     platform_prefix = ''
     platform_prefix = ''
   end
   end
-  if ENV['XCODE']
-    xcode_build(ENV['IOS'], "#{platform_prefix}Build/Urho3D.xcodeproj", 'package') or abort 'Failed to make binary package'
+  if ENV['IOS']     # There is a bug in CMake/CPack that causes the 'package' scheme failed to build for IOS platform, workaround by calling cpack directly
+    xcode_build(ENV['IOS'], "#{platform_prefix}Build/Urho3D.xcodeproj", 'doc', false) or abort 'Failed to generate documentation'
+    system "cd #{platform_prefix}Build && cpack -G TGZ" or abort 'Failed to make binary package'
+  elsif ENV['XCODE']
+    xcode_build(ENV['IOS'], "#{platform_prefix}Build/Urho3D.xcodeproj", 'package', false) or abort 'Failed to make binary package'
   else
   else
     system "cd #{platform_prefix}Build && make package" or abort 'Failed to make binary package'
     system "cd #{platform_prefix}Build && make package" or abort 'Failed to make binary package'
   end
   end
@@ -208,13 +211,15 @@ def xcode_travis_ci()
   xcode_build(ENV['IOS'], "#{platform_prefix}Build/generated/externallib/#{platform_prefix}Build/Scaffolding.xcodeproj") or abort 'Failed to configure/build/test temporary project using Urho3D as external library'
   xcode_build(ENV['IOS'], "#{platform_prefix}Build/generated/externallib/#{platform_prefix}Build/Scaffolding.xcodeproj") or abort 'Failed to configure/build/test temporary project using Urho3D as external library'
 end
 end
 
 
-def xcode_build(ios, project, scheme = 'ALL_BUILD')
-  # Save auto-created schemes from Xcode project file
-  system "ruby -i -pe 'gsub(/refType = 0; /, %q{})' #{project}/project.pbxproj" or 'Failed to remove legacy refType attributes from the generated Xcode project file'
-  system "ruby -i -e 'puts ARGF.read.gsub(/buildSettings = \\{\n\s*?\\};\n\s*?buildStyles = \(.*?\);/m, %q{})' #{project}/project.pbxproj" or 'Failed to remove unsupported PBXProject attributes from the generated Xcode project file'
-  xcproj = Xcodeproj::Project.open(project)
-  xcproj.recreate_user_schemes
-  xcproj.save or true   # There is a bug in this gem, it does not appear to exit with proper exit status (assume always success for now)
+def xcode_build(ios, project, scheme = 'ALL_BUILD', auto = true)
+  if auto
+    # Save auto-created schemes from Xcode project file
+    system "ruby -i -pe 'gsub(/refType = 0; /, %q{})' #{project}/project.pbxproj" or 'Failed to remove legacy refType attributes from the generated Xcode project file'
+    system "ruby -i -e 'puts ARGF.read.gsub(/buildSettings = \\{\n\s*?\\};\n\s*?buildStyles = \(.*?\);/m, %q{})' #{project}/project.pbxproj" or 'Failed to remove unsupported PBXProject attributes from the generated Xcode project file'
+    xcproj = Xcodeproj::Project.open(project)
+    xcproj.recreate_user_schemes
+    xcproj.save     # There is a bug in this gem, it does not appear to exit with proper exit status (assume always success for now)
+  end
   sdk = ios.to_i == 1 ? '-sdk iphonesimulator' : ''
   sdk = ios.to_i == 1 ? '-sdk iphonesimulator' : ''
   if ENV['PACKAGE_UPLOAD']
   if ENV['PACKAGE_UPLOAD']
     configuration = 'Release'
     configuration = 'Release'

+ 3 - 1
Source/CMakeLists.txt

@@ -98,7 +98,9 @@ if (ANDROID)
 elseif (RASPI)
 elseif (RASPI)
     set (CPACK_SYSTEM_NAME Raspberry-Pi)
     set (CPACK_SYSTEM_NAME Raspberry-Pi)
 elseif (IOS)
 elseif (IOS)
-    set (CPACK_SYSTEM_NAME IOS)
+    set (CPACK_SYSTEM_NAME iOS)
+elseif (APPLE)
+    set (CPACK_SYSTEM_NAME OSX)
 elseif (WIN32)
 elseif (WIN32)
     set (CPACK_GENERATOR ZIP)
     set (CPACK_GENERATOR ZIP)
 endif ()
 endif ()