作者dannypsnl (秦書)
看板C_and_CPP
標題[作品] 純設定的編譯系統
時間Thu Jun 14 20:42:22 2018
專案名稱: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
-----
Sent from JPTT on my HMD Global TA-1003.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.201.152
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1528980146.A.0E4.html
1F:推 Neisseria: 這種東西做到完全體就會很像 Homebrew 06/15 14:35
2F:→ Neisseria: 在類 Unix 系統上,其實已經有解決方案了 06/15 14:36
3F:→ Neisseria: Windows 上大概會像 vcpkg 或 conan 之類的軟體 06/15 14:36
4F:→ Neisseria: 也可以看看 MSYS2 06/15 14:37
5F:推 Neisseria: 由於 Windows 沒有 /usr 或 /usr/local 這種固定的位置 06/15 14:44
6F:→ Neisseria: 可能要去翻翻 vcpkg 或 conan,看他們如何處理 06/15 14:44
7F:→ dannypsnl: 應該是環境變數? 06/28 22:30