[作品] 純設定的編譯系統

作者: 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