2013-05-30 33 views
0

是否有可能在文件名中生成帶點的文件的目標?我不需要他們的目標名稱,只是它產生的文件名,所以例如boost build:目標文件名中的點

lib [email protected] : ... 

是完全正常的,如果它產生libAuthorization.Plugin.so,如果我可以從其他目標使用它:

exe Application : ... : <library>[email protected] ... 

由於使用點是公司慣例,我不能只是使用下劃線。

一個選項是改變目標名稱的一些要求 - 比如<name>

我也不能使用簡單的重命名發佈步驟,因爲應用程序必須鏈接到libAuthorization.Plugin.so而不是libAuthorization_Plugin.so。但如果有其他可能的話,我也可以使用它。

構建過程本身在Linux下使用gcc運行。

回答

1

對於任何複雜的命名方案,您可以使用<標記>功能。爲了您的目的,它可能看起來像這樣:

import regex ; 
import type ; 

rule at-to-dot (name : type : property-set) 
{ 
    local name = [ regex.replace $(name) @ . ] ; 
    local ext = [ type.generated-target-suffix $(type) : $(property-set) ] ; 
    return $(name).$(ext) ; 
} 

lib [email protected] : bbb.cpp : <tag>@at-to-dot ; 
+0

可否請你德看看http://stackoverflow.com/questions/11599986/boost-build-sources-with-the-same-name?rq= 1以及?我瀏覽了boost-build郵件列表,發現了一些東西,但它已經7歲了,還沒有完成。現在我要寫一些複雜的規則來處理它(通過命名帶有路徑的對象文件),但是我想知道是否有更簡單的方法... –

相關問題