ソースツリーにprotobufプロトファイルがあります。すべての変更時と最初の実行時にプロトファイルからソースファイルを生成したい(たとえば、新しいプロトファイルを作成する)。次に、これらのソースファイルから共有ライブラリをコンパイルし、ソースツリーに保存します。
私の目標を達成するための最良の方法は何ですか?
私は自分で解決策を見つけました:
from waflib import Build, Utils, TaskGen
def build(bld):
bld.post_mode = Build.POST_LAZY
# some bld(...) tasks that generate source files.
bld.shlib(source='main.cc', dynamic_source='**/*.cc', target='test')
@TaskGen.feature('cxxshlib')
@TaskGen.before('process_source')
def dynamic_post(self):
if not getattr(self, 'dynamic_source', None):
return
self.source = Utils.to_list(self.source)
self.source.extend(self.path.get_bld().ant_glob(self.dynamic_source))