[作品] 纯设定的编译系统

楼主: dannypsnl (秦书)   2018-06-14 20:42:22
专案名称:cdog https://github.com/dannypsnl/cdog
目的是让写脚本的时间可以拿去考虑更重要的事情,目前只支援了 build 指令
用法是在专案目录底下建立名为 cdog.toml 的档案
建立 src 目录,建立 main.cc 档案印个 hello, world
随后下 cdog build 就能在 专案目录/build 底下看到跟专案目录同名的执行档了
如果你建立的是 src/lib.cc,那就会产生一个静态程式库(对,我忘记把使用方需要的 headers 产生出来了),一样以专案名称为名 lib专案目录.a
所有程式码都会在src底下(src是可以设定的)
src会是include_dir之一,所以你可以简单的建立 src/foo.h, src/foo.cc 然后在 main.cc(lib.cc亦同) 里引用就可以使用foo中的程式,foo.cc 会因为 foo.h 被编译(目前只支援 cc 这个副档名,编译器是写死的 clang++),所以不要让两个同开头的header跟Implementation没有关连
目前计画中的是 install 与 get 两个指令
install 是发布到系统中,get 才是取得第三方程式库
另外就是让使用者指定额外的 include_dirs 跟 ld_paths,这样就算第三方程式库不支援至少也能用
关于版本设定,目前的打算是直接用版控软件,这样就不会有版控跟设定档的版本不同的问题,相对的专案就需要设定它指定到特定版本所使用的指令,例如一个用git的专案就要设定成"git checkout"(或是看能不能整合现有的专案如conan, vcpkg)
这是一个原型专案,希望各位能给一些意见,想参与开发也非常欢迎XD
作者: Neisseria (Neisseria)   2018-06-15 14:35:00
这种东西做到完全体就会很像 Homebrew在类 Unix 系统上,其实已经有解决方案了Windows 上大概会像 vcpkg 或 conan 之类的软件也可以看看 MSYS2由于 Windows 没有 /usr 或 /usr/local 这种固定的位置可能要去翻翻 vcpkg 或 conan,看他们如何处理
楼主: dannypsnl (秦书)   2018-06-28 22:30:00
应该是环境变量?

Links booklink

Contact Us: admin [ a t ] ucptt.com