crosswalk源码 的编译过程
crosswalk 官方:https://github.com/crosswalk-project
編譯環境 Ubuntu 16.04
crosswalk 支持的Ubuntu版本 12.04 、14.04、14.10、15.04、15.10、16.04。
編譯Android平臺上的Crosswalk,你首先應該設置 XWALK_OS_ANDROID環境變量:
export XWALK_OS_ANDROID=1創建一個源碼目錄:
mkdir crosswalk cd crosswalk如果沒有安裝 depot_tools 先安裝、已安裝跳過該步驟
//安裝depot_tools: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git //添加到環境變量里: export PATH="$PATH:/xxx/xxx/depot_tools"自動生成gclient的配置文件(.gclient):
gclient config --name src/xwalk https://github.com/crosswalk-project/crosswalk.git在.gclient文件 下添加:
target_os = ['android']在包含.gclient文件的目錄下,獲取源碼:
gclient syncgclient sync 如果報錯(未找到解決辦法):
//錯誤信息root@md:~/crosswalk# gclient syncRunning depot tools as root is sad.Syncing projects: 100% (1/1), done.________ running 'vpython src/xwalk/tools/fetch_deps.py -v' in '/home/ws/crosswalk'Traceback (most recent call last):File "src/xwalk/tools/fetch_deps.py", line 86, in <module>sys.exit(main())File "src/xwalk/tools/fetch_deps.py", line 81, in maindeps_fetcher.DoGclientSyncForChromium() File "src/xwalk/tools/fetch_deps.py", line 56, in DoGclientSyncForChromiumgclient_utils.CheckCallAndFilterAndHeader(gclient_cmd,AttributeError: 'module' object has no attribute 'CheckCallAndFilterAndHeader'Error: Command 'vpython src/xwalk/tools/fetch_deps.py -v' returned non-zero exit status 1 in /home/ws/crosswalkTraceback (most recent call last):File "src/xwalk/tools/fetch_deps.py", line 86, in <module>sys.exit(main())File "src/xwalk/tools/fetch_deps.py", line 81, in main deps_fetcher.DoGclientSyncForChromium()File "src/xwalk/tools/fetch_deps.py", line 56, in DoGclientSyncForChromiumgclient_utils.CheckCallAndFilterAndHeader(gclient_cmd,AttributeError: 'module' object has no attribute 'CheckCallAndFilterAndHeader'可以嘗試下面這條命令:(非常的慢,還容易失敗,失敗了只能重新運行這個命令,看運氣、網速)
記得給.gclient-xwalk添加:
然后運行命令:
gclient sync --verbose --reset --force --with_branch_heads --delete_unversioned_trees --gclientfile=.gclient-xwalk為Android平臺的Crosswalk安裝依賴關系:
cd src ./build/install-build-deps-android.sh編譯:
gn args out/Default在彈出來的頁面放入一下代碼保存退出即可:
import("//xwalk/build/android.gni") is_debug = false target_os = "android" ffmpeg_branding = "Chrome" proprietary_codecs = true rtc_initialize_ffmpeg = true rtc_use_h264 = true target_cpu = "arm" enable_nacl = false symbol_level = 0 remove_webcore_debug_symbols = true use_aura = false use_ozone = false enable_plugins = false disable_bundled_extensions = true v8_use_snapshot = true enable_webrtc = true is_official_build = true v8_enable_i18n_support = false disable_ftp_support = true disable_libfuzzer = true如果報錯:
../../third_party/android_tools/sdk/extras/google/google_play_services/libproject/google-play-services_lib/res does not exist類似的文件找不到可以手動下載對應的文件然后放入對應的位置即可
wget https://dl-ssl.google.com/android/repository/google_play_services_8298000_r28.zip //無報錯則忽略。通過工具和嵌入式庫,編譯Android版Crosswalk的主要部分,你可以運行:
ninja -C out/Default xwalk_core_library這樣將會在out/Default下創建一個名為xwalk_core_library的目錄,目錄中包含有特定平臺(例如X86或者ARM版)的Crosswalk庫,這些庫可以將Crosswalk嵌入到項目中。
編譯Crosswalk的運行時庫(在Crosswalk共享模式下,一個可以作為應用的runtime的APK),運行:
ninja -C out/Default xwalk_runtime_lib_apk這將會在out/Default/apks下生成一個名稱為XWalkRuntimeLib.apk的APK。
為了構造一個簡單的web應用APK(為了快速安裝/目標測試),只要執行:
ninja -C out/Default xwalk_app_template_apk這將會在out/Default/apks下生成一個名稱為XWalkAppTemplate.apk的APK。
總結
以上是生活随笔為你收集整理的crosswalk源码 的编译过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础编程题
- 下一篇: QMetaMethod::invoke: