GCC のラッパーとして機能する python スクリプトを作成しています。GCC が取るオプションのほとんどは argparse で簡単に処理できますが、私は "-Wl,option" オプションに苦労しています。コンマの後にすべてを保存したいので、次のことを試しました:
parser = argparse.ArgumentParser()
parser.add_argument("-Wl,", help="Option to pass to linker.")
known, unknown = parser.parse_known_args()
print(known)
print(unknown)
ただし、次のようにスクリプトを実行すると:
python foo.py -Wl,foo
次の出力が得られます。
Namespace(E=False, S=False, Wl,=None, c=False, optimization=None, shared=False, target=None)
['-Wl,foo']
これは、-Wl オプションが認識されなかったことを示しています。
add_argument 行を次のように変更できます。
parser.add_argument("-W", help="Option to pass to linker.")
これは機能し、W オプションに「l,foo」を格納しますが、GCC は警告フラグに -W を使用するため、それらを -Wl オプションから分離しておきたいと考えています。
不明な引数のリストを調べてそのように処理することはできましたが、問題に対するより洗練された解決策があることを望んでいました。任意のヒント?