3

かなりよく構造化されたソースツリーに数千の.cppファイルと関連するヘッダーを含むソフトウェアプロジェクトをtupビルドシステムに移植するための最良の方法は何ですか?

ツリーが次のようになっている場合:

colors/                                                                            
 primaries/
  red.cpp 
  green.cpp
  blue.cpp
 fruity/
  orange.cpp
  grape.cpp
 grayscale/
  white.cpp
  gray.cpp
  black.cpp
some/annoying/nesting/animals/
    horse.cpp
    bear.cpp

それぞれに数十のターゲットファイルがある数十のカテゴリの場合、Tuprules.tupを共有することでほとんど同じである場合でも、1回限りのシェルスクリプトを記述して各ディレクトリにTupfileをダンプするのはかなりエレガントでないソリューションのようです。 。tupを使用してこのようなプロジェクトを構築するための、適切な「ベストプラクティス」、できれば移植可能な方法は何ですか?

4

2 に答える 2

0

tupのマンページから、tupは外部シェルスクリプトの実行をサポートしています。

      run ./script args
          Runs an external script with the given arguments to generate
          :-rules. This is an advanced feature that can be used when the
          standard Tupfile syntax is too simplistic for a complex program.
          The script is expected to write the :-rules to stdout. No other
          Tupfile commands are allowed - for example, the script cannot
          create $-variables or !-macros, but it can output :-rules that use
          those features. As a simple example, consider if a command must be
          executed 5 times, but there are no input files to use tup's
          foreach keyword. An external script called 'build.sh' could be
          written as follows:

必要なtupルールを生成するスクリプトをトリガーすることもできますが、シェルに依存しているため、これは移植性がないと思います。

于 2012-11-15T22:43:45.400 に答える