|
Post by jontara on Sept 20, 2017 5:36:49 GMT
Since 6.0 beta, rake run:iphone and rake device:iphone:production seems to always rebuild everything. I don't think this has always been the case?
Not sure, maybe not rhorunner, but everything else, including app, Rhodes extensions, and any extensions in app.
Has anyone else noticed this?
I wonder if it might be some temporary situation since it is still beta, perhaps there were some build issues and the build script was changed to just always clean?
This happens even if I immediately run rake run:iphone right after a build completes. (NO changes made to code).
It's gotten quite problematical, as I have a native extension that takes some considerable time to compile. (It has a 3MB C file...)
|
|
|
Post by jontara on Sept 20, 2017 16:33:21 GMT
I edited the heading above. I originally thought this might just be when build for simulator, but now I see it is true for build for device as well.
I see in build output that it does rm -rf build for every extension, whether app extension or Rhodes built-in extension.
The output says (first time) even when building immediately after a successful build with no changes.
Here is a small excerpt of build log as an example. This was the SECOND build immediately after successful build.
$SHELL ./build digest-sha1 extension ! ** Invoke default (first_time) ** Invoke build:all (first_time) ** Invoke build:config (first_time) ** Execute build:config ** Execute build:all rm -rf build rm -rf /Users/jon/workspace/spatvis/mobile_app/build/ios/spatial_vis/production/hardware/project/iphone/build/rhorunner.build/Release-iphoneos/rhorunner.build/libdigest-sha1.a PWD: /Users/jon/.rvm/gems/ruby-2.3.5@rhodes-6-0-stable-319a5000/gems/rhodes-6.0.0/lib/extensions/digest-sha1/ext/iphone CMD: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild build -target Dsha1 -configuration Release -sdk iphoneos10.3 /Users/jon/.rvm/gems/ruby-2.3.5@rhodes-6-0-stable-319a5000/gems/rhodes-6.0.0/lib/build/jake.rb:477: warning: Insecure world writable dir /Users/jon/.rvm/gems/ruby-2.3.5@rhodes-6-0-stable-319a5000/gems/rhodes-6.0.0/lib/extensions/digest-sha1/ext/iphone/. in PATH, mode 040777 ▸ Building Dsha1/Dsha1 [Release] ▸ Check Dependencies ▸ Precompiling Dsha1_Prefix.pch ▸ Precompiling Dsha1_Prefix.pch ▸ Compiling sha1init.c ▸ Compiling sha1.c ▸ Compiling sha1init.c ▸ Compiling sha1.c ▸ Building library libDsha1.a ▸ Building library libDsha1.a ▸ Build Succeeded cp ./build/Release-iphoneos/libDsha1.a /Users/jon/workspace/spatvis/mobile_app/build/ios/spatial_vis/production/hardware/project/iphone/build/rhorunner.build/Release-iphoneos/rhorunner.build/libdigest-sha1.a ** Execute default [INFO] build extension FINISH :/Users/jon/.rvm/gems/ruby-2.3.5@rhodes-6-0-stable-319a5000/gems/rhodes-6.0.0/lib/extensions/digest-sha1/ext [INFO] build extension START :/Users/jon/workspace/spatvis/mobile_app/build/ios/spatial_vis/production/hardware/extensions/Grading/ext $SHELL ./build Grading extension ! ** Invoke default (first_time) ** Invoke build:all (first_time) ** Invoke build:config (first_time) ** Execute build:config ** Execute build:all rm -rf build rm -rf /Users/jon/workspace/spatvis/mobile_app/build/ios/spatial_vis/production/hardware/project/iphone/build/rhorunner.build/Release-iphoneos/rhorunner.build/libGrading.a PWD: /Users/jon/workspace/spatvis/mobile_app/build/ios/spatial_vis/production/hardware/extensions/Grading/ext/platform/iphone CMD: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild build -target Grading -configuration Release -sdk iphoneos10.3 ▸ Building Grading/Grading [Release] ▸ Check Dependencies ▸ Precompiling Grading_Prefix.pch ▸ Precompiling Grading_Prefix.pch ▸ Precompiling Grading_Prefix.pch ▸ Precompiling Grading_Prefix.pch ▸ Compiling Grading.m ▸ Compiling GradingFactorySingleton.m ▸ Compiling GradingSetup.m ▸ Compiling GradingSingleton.m
|
|
|
Post by Dmitry Soldatenkov on Sept 29, 2017 14:06:05 GMT
If you use ./build script for build extension then you can full control of building and , for example, just copy already builded lib into target folder without rebuild. Also we have internal mechanism for check if extenson whoudl be rebuilded in case of you do not use ./build script but use XCode project. You can see taht mechanizm in very bif extension - CoreApi - github.com/rhomobile/rhodes/blob/master/lib/commonAPI/coreapi/ext.yml#L6-L8But I comment line with define check file list because in some case we have problems with some defines in code. So I will fix it in future. If you do not switch between pure javascript applications and ruby applications building - you can uncomment this line and decrease build time.
|
|