美文网首页
[bazel]-tulsi的使用

[bazel]-tulsi的使用

作者: Sunxxxxx丶 | 来源:发表于2018-08-22 18:37 被阅读254次

    Change log

    目录

    [bazel]-导读
    [bazel]-概念和术语
    [bazel]-bazel的使用
    [bazel]-tulsi的使用
    [bazel]-如何编译
    [bazel]-缓存
    [bazel]-影响缓存命中的因素
    [bazel]-优化
    项目地址

    一.是什么

    tulsi GitHub地址: https://github.com/bazelbuild/tulsi

    tulsi使用: https://tulsi.bazel.build/docs/gettingstarted.html

    tulsi使用Bazel的BUILD中的信息来生成Xcode Project.
    注意.他只是用来帮我们生成Xcode Project文件的.
    至于编译和签名都还是Bazel干的事.

    二.安装

    step1: git clone https://github.com/bazelbuild/tulsi.git

    step2: open src/Tulsi.xcodeproj

    step3: Run Tulsi.xcodeproj

    step4: 获取编译产物Tulsi.app

    image

    三.怎么用

    step1:

    将前面编译生成的tulsi.app复制到GXBazelShell文件夹下的tools目录下

    image.png

    step2: Create a new Tulsi project

    首先打开tulsi软件 -> Create New project
    输入你app的名字.如universal

    image.png

    step3: Choose the WORKSPACE file

    点击Workspace location右边的那一排灰字.
    选择刚才创建的WORKSPACE文件.

    image.png

    step4:

    这里是给项目中添加任何BUILD文件的位置,以及设置Bazel二进制文件的路径,该二进制文件将用于生成Xcode项目和编译.
    现在我们要创建的是universal这个target的project.
    所以应该选择universal目录下的BUILD文件.

    image.png

    注意:

    这一步你可以指定使用的bazel的路径.
    如上图.我指定的是/usr/local.....下的bazel.
    但是这样的话.每个开发使用的bazel就可以能不统一.
    (例如A开发安装的是0.15.2版本.B开发安装的是0.17.2版本.)

    所以我们可以将bazel放在workspace目录下.并上传到git仓库里.
    如下.我就将bazel放在了//:workspace/bin/bazel/0.17.2目录下了.

    image.png

    然后所有开发都必须将工程clone到同一目录下.(如/opt/bazel-workspace)
    那么在创建tulsi配置文件的时候就可以将bazel的路径修改为/opt/bazel-workspace/bin/bazel/0.17.2/下的bazel了.
    这样所有人都使用的是同一个bazel版本了.

    这里我们可以再优化一下.
    将/opt/bazel-workspace/bin/bazel/0.17.2/bazel-0.17.2..win-x86_64 做一个软链bazel-wrapper.放在workspace根目录下.
    然后tulsi配置文件就将bazel的路径设置为/opt/bazel-workspace/bazel-wrapper.
    以后你想升级bazel.就只需要更改bazel-wrapper的真实路径就可以了.就不用修改tulsi的配置文件了.

    step5: shared options

    默认即可

    image.png

    step6: Create project generator configs

    点击顶部的configs选项
    然后点击'+'号.会弹出如下弹窗
    弹窗会让你选择存放路径.即存放生成的.tulsiproj文件的路径

    image.png

    step7: 选择该tulsiproj文件与哪个app关联

    image.png

    step8: 自定义配置configs 默认即可

    image.png

    step9: 选择target

    image.png

    step10: 给你的target取个名字.

    image.png image.png

    step11.点击右下角的generate按钮.选择保存路径即可

    image.png

    step: over

    至此大功告成.当你点击Generate后tulsi会自动帮你生成xcodeproj文件.然后帮你打开.如下

    在这个project下.你的开发跟原来一模一样.

    唯一的潜在区别就是当你点击run按钮的时候.

    Xcode走的是Build Phases -> Run Script -> bazel_build.py这个脚本.

    让bazel帮你编译.

    image.png

    优化

    这里的universal.tulsi.tulsiproj其实就是个模板.
    告诉tulsi怎么生成我们想要的xcodeproj文件.
    所以这里的universal.xcodeproj应该加入到.gitignore文件里.

    image.png

    使用优化

    每个人拉取你的工程时.都要用tulsi软件去生成这个.xcodeproj文件.
    这样太麻烦了.

    tulsi给我们提供了通过命令行来创建.xcodeproj文件的方式.
    我们可以在根目录下创建build.sh脚本.
    在这个脚本里调用tulsi的命令创建.xcodeproj文件

    #!/bin/sh
    set -e
    
    echo "通过//universal/universal.tulsi.tulsiproj文件生成universal.xcodeproj文件"
    ./tools/Tulsi.app/Contents/MacOS/Tulsi -- genconfig --genconfig universal/universal.tulsi.tulsiproj:universal
    
    

    这样当别人要运行你的项目时.

    只需要两步
    1.git clone你的仓库.
    2,运行build.sh脚本.

    下一篇:[bazel]-如何编译

    相关文章

      网友评论

          本文标题:[bazel]-tulsi的使用

          本文链接:https://www.haomeiwen.com/subject/csnyiftx.html