omniidlはPython2.4でやろ♪ -OpenRTM-aist

Windows上でOpenRTM-aist-0.4.2のRTCをつくろうとしてRTCTemplateかRTCBuilderからソリューションを生成してもIDLコンパイルができないとコンパイルが通りません。
先日同僚がでくわしたのは、xxxSkel.cc/hhやxxxStub.cc/hhは生成されるのにxxx.hhが生成されず、コンパイルが通らないという現象です。
xxxSkel.cc/hhやxxxStub.cc/hhが生成されるということはIDLコンパイルが通っているのかと思いきやそうでもないようです。
生成されたvcprojファイルのビルド前イベントには下記のようなコマンドが書かれています。

set PATH=$(rtm_path);%PYTHON_ROOT%\\;%PATH%
for %%x in (*.idl) do rtm-skelwrapper.py --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=%%x
for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) %%x

xxx.idlがある数の分だけ反復するループですが。
rtm-skelwrapper.pyでxxxSkel.cc/hhやxxxStub.cc/hhが生成されているのかな?プロパティシートのユーザーマクロによると
"$(rtm_idlc)" -> omniidl
"$(rtm_idlflags)" -> -bcxx -Wba -nf
つまりIDLコンパイルは以下のようなコマンドが実行されるという意味でしょうか。

omniidl -bcxx -Wba -nf xxx.idl

bcxxはC++コンパイルオプション、つまりccやhhファイルを生成するという意味ですかね。しかし、これを実行してもbcxxオプションは実行できないと言われてしまう。

結論からいうと原因はpythonのバージョン。
IDLコンパイルするためにはomniidl.exeを用いるわけですが、そのomniidl.exeはOpenRTM-aistのomniORBインストールフォルダ配下にもありますが、上記のコマンドのとおり、Python直下にあるomniidl.exeを使用することを指示しています。
ところがPython2.5をPYTHON_ROOTに設定していると、Python2.5がC++のIDLコンパイルをサポートしていないのでコンパイルが通らないことでこの現象が発生していました。
というわけでomniidlを用いてIDLコンパイルする場合はPython2.4をインストールするというのが対策です。