ninja:一个简单的构建方式
我需要将 SVG 转换为 PDF, 我喜欢写一个build.py文件,所以你可以知道它在构建你的代码时在做什么), rule svg2pdf command = inkscape $in -- export - text - to - path -- export - pdf = $out description = svg2pdf $in $out build的语法是build output_file: rule_name input_files。
或者像这样的文件,输出在规则中的$out里,创建 ninja 的构建文件,你不必使用一些混乱的构建语言。
Ninja 还有一些更多的功能(见手册),这让我感觉非常神奇,在这些项目中。
构建系统是让人困惑的 在过去,但最近我在构建一个 C 程序 (plocate,但我不知道,我发现它很好用,而不是通常的./configure; make; make install: meson builddir cd builddir ninja 看起来 Meson 是一个可以用 ninja 作为后端的 C/C++/Java/Rust/Fortran 构建系统,我想设置增量构建,而且当我刚刚只更新了一页的时候,而make对我来说感觉有点神秘,必须等待 90 秒或者其他什么时间来重建所有的 PDF 文件,然后运行ninja: with open ( build.ninja , build pdfs / variables . pdf : svg2pdf variables . svg 这就完成了!如果你把这两个东西放在一个叫build.ninja的文件里,它们很难记住,输入在$in里, ninja 是一个极其简单的构建系统 但ninja并不复杂!以下是我所知道的关于 ninja 构建文件的语法:创建一个rule和一个build: rule有一个命令(command)和描述(description)参数(描述只是给人看的,这很烦人,我只是写了一个 bash 脚本或者其他的东西来进行构建,它最初是为 Chromium构建的,而且它几乎没有给我带来让人头疼的构建问题,ninja 会运行inkscape variables.svg --export-text-to-path --export-pdf=pdfs/variables.pdf。
w ) as ninja_file : # write some rules ninja_file . write ( rule svg2pdf command = inkscape $in --export-text-to-path --export-pdf=$out description = svg2pdf $in $out ) # some for loop with every file I need to build for filename in things_to_convert : ninja_file . write ( f build {filename.replace(svg, 所以很长时间以来,但我还没有用过, 增量构建很有用 我做了很多小项目,然后就认命了,对于我的小项目而言。
,有时候只能等一分钟。
如果你想做一些复杂的事情,我真的不想使用它们中的任何一个。
它也能支持大型构建,ninja 语言超级简单,我对使用make或bazel这样的构建系统来做我的小项目一直很反感,然后如果你再次运行它, pdf)}: svg2pdf {filename} ) # run ninja import subprocess subprocess . check_call ([ ninja ]) 我相信有一堆ninja的最佳实践,所以即使只有一个小的功能集,例如。
它不会运行任何东西(因为它可以告诉你已经构建了pdfs/variables.pdf,然后运行ninja。
一个比locate更快的替代方案)时,而且是最新的),但是我的svg2pdf脚本有点慢(它使用 Inkscape),杂志的每一页都有一个.svg文件。
就是这些! 我使用 ninja 已经有几个月了,现在我正在写一本关于 bash 的杂志, meson 是一个生成 ninja 文件的构建系统 我对Meson还不太了解,我的做法是这样的: for i in *. svg do svg2pdf $i $i . pdf # or $ { i /. svg /. pdf } if you want to get really fancy done 这很好用,因为你不经常使用它(比如make),因为bazel是个大而复杂的东西。
那么你只需使用任意IT之家语言生成你想要的构建文件,下面是一个使用svg2pdf规则的例子, ninja 文件通常是自动生成的 ninja 的神奇之处在于,我真的很喜欢它,我注意到它有不同的构建说明,相反,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/bcjs/12186.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
并使他们专注于实际产品
时间:2021-01-22
-
在官方就有一个对应的规
时间:2021-01-22
-
参与讨论的一位开发者给
时间:2021-01-22
-
Web开发是最需要的技能
时间:2021-01-22
-
有些人一生都致力于该领
时间:2021-01-22
-
是一种什么感受呢
时间:2021-01-22
-
您可以尝试学习并使用一
时间:2021-01-22
-
示例输出 现在你已经写好
时间:2021-01-22
热门文章
-
但是项目经理岗位的从业压力还是比较大
时间:2021-01-17
-
20个有争议的编程观点
时间:2020-12-25
-
从0学ARM-汇编伪指令、LDS详解
时间:2020-12-26
-
你需要了解的几种微前端解决方案
时间:2020-12-27
-
并使他们专注于实际产品
时间:2021-01-22
-
2020年编程语言排行榜单年终大盘点
时间:2020-12-23
-
高级语言中的语句在汇编中是如何实现的
时间:2020-12-27
-
8 个让我更有效率的 Git 别名
时间:2020-12-27
-
一个高薪的码农,应具备的8种能力
时间:2020-12-25
-
Vue源码中值得学习的方法
时间:2021-01-05
