私のMercurialリポジトリrepo1にはfoo
という名前のカスタムターゲットがあります。それが何を気にしないでください。私は別のリポジトリrepo2も持っています。これはrepo1のサブポとして使いたいものです。 repo2はrepo1と同様の方法で開発され、同様のことをやっているfoo
という名前のカスタムターゲットもあります(もちろんrepo2ディレクトリの場合)。Mercurialリポジトリとサブリポジトリの間のターゲット名の競合を処理する方法は?
私はCMakeLists.txt
にadd_subdirectory(relative/path/to/repo2)
とrepo1ためにCMakeを実行しようとすると、私が手:
CMake Error at CMakeLists.txt:123 (add_custom_target):
add_custom_target cannot create target "foo" because another target with
the same name already exists. The existing target is a custom target
created in source directory
私はちょうどリポジトリの名前でカスタムターゲットの名前の前に付けることができたとし、それが粗溶液のように思えますこの問題に。私は、make foo
が概念的にrepo1とrepo2の両方で同じことをするという事実のようなものです。私はここでもっとスマートなことができますか?
'I種類の 'FOOを作る' 概念的に、同じことをしているという事実のように、 repo1とrepo2の両方で使用することができます。 ' - あなたが期待している' make foo'の動作は何ですか? repo1とrepo2の両方で 'foo'をビルドしますか?またはrepo1で 'foo'だけをビルドしますか?最後の場合は 'add_subdirectory'の代わりに' ExternalProject_Add'を使います。 – Tsyvarev
@Tsyvarev:実際にはどちらのオプションでも大丈夫です(例えば、 'foo'が' cloc'や 'ctags'を実行している場合など)。しかし、この質問を読んでいる他の人はどちらかの好みを持つかもしれません。あなたは答えにあなたの提案をすることができますか? – einpoklum