我有不同的庫和可執行文件作爲我的層次結構中的子項目。他們大多數是守護進程。所以我有他們相應的cfg
文件,這些應用程序在啓動時讀取。CMake安裝前後的一致配置文件路徑
我有兩個問題。
- 讓我們有一個簡單的方案:單個項目沒有層次結構。我必須使用/不使用
install
運行應用程序。所以,如果我把一個安裝指令,以保持cfg在/etc
我可以得到一個恆定的cfg路徑。但在我不希望安裝的情況下。我想在執行make
之後立即運行可執行文件。那麼如何管理cfg,這種方式可以使用/不使用install
? - 接下來是我的場景,我有一個子項目的層次結構。監視器需要
a.cfg
和b.cfg
。所有cfg都分開保存在另一個子項目中。這個設計是否可用?我可以在這種情況下解決從a
,b
和monitor
到cfg文件的路徑嗎?
但是我可以在monitor.cfg中包含include指令來包含a.cfg和b.cfg。但是,這歸結於同樣的問題。使用/不安裝時尋址cfg文件的路徑。
abcd
cfg # configuration files
abcd # to be copied to /etc/abcd on install
a.cfg # configuration
b.cfg
monitor.cfg
includes/cfg
sources
-> libabcd-cfg.so # target library that abstracts configurations as objects
components
a: cfg # sub project a (requires abcd/a.cfg)
-> a # target executable
b: cfg # sub project b (requires abcd/b.cfg)
-> b # target executable
monitor: cfg # sub project monitor (requires abcd/a.cfg, b.cfg, monitor.cfg)
-> monitor # target executable
一個簡單的解決方案是將一組的全局搜索路徑在類似cfg/includes/cfg/defs.h
,首先搜索在.
,然後在/etc
搜索。但是,保存在不同項目.
中的配置文件將不起作用。