簡體   English   中英

SConscript和SConstruct文件之間的區別?

[英]difference between SConscript and SConstruct files?

作為scons的新手,我面臨着在一個倉庫中使用通用的頂層構建轉換具有多個模塊的項目。 每個模塊已經有一個SConstruct文件-允許自己構建它們。

閱讀分層的scons設置后,我看到的想法是使用頂級SConstruct,它使用SConscript()函數加載子項目的構建文件,並且這些文件被稱為SConscript。 我發現其余信息有些含糊(或者是TLDR?)-因此

  • 想知道是否要求這些低級腳本成為SConscript文件?
  • IOW,SConscripts和SConstructs之間是否存在語義/范圍/評估上的區別,除了一個旨在作為入口點,而另一個只是“子構建文件”?
  • 在將那些子項目的SConstruct重構為同一層調用SConscript並將它們鏈接到頂層Sconstruct時,有什么意義嗎?

謝謝!

按順序回答您的問題

  1. 在SConscript()調用中指定路徑和文件名后,任何低級文件都無法被調用。
  2. 每個SConscript在其自己的范圍內進行評估。 您可以通過出口()(或SConscripts出口=參數)傳遞,並通過導入帶入SConscript(無論你最終會調用它)()。
  3. 如果你想要做的任何中央/頂級配置傳播到您的子項目完全取決於。 仍然可以通過子項目的SConstruct中的Import()語句來完成此操作,然后檢查是否已定義了您希望導入的變量(通過try / except也許)

這個子項目有SConstructs已經完成。 在子項目的SConstructs中使用Import(),然后在使用前驗證您希望傳遞的內容是否存在,這樣可能會更清潔。 包裝是用大量的評論,為什么你正在做的,所以如果子項目也使用獨立的..

這回答了你的問題了嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM