読者です 読者をやめる 読者になる 読者になる

チリペヂィア

リンクフリー。サンプルコードなどは関連記事内でライセンスについて明示されない限り商用利用なども自由に行って構いませんが、自己責任でお願いします。またこれら日記内容の著作権自体は放棄していません。引用部分については引用元の権利に従ってください。

Doxygenのレイアウト出力する-lオプションが失敗した

ので、ソースパッケージの方に入ってるlayout_default.xmlをコピーしたらそれで良かったという話。

ちなみに、Doxygenなんじゃらほいって人はがぞーけんさくしてみると、Doxygenとはコードコメントの自動文書化ツールで、どんなHTMLヘルプが作れるかだいたいわかります*1

で表示項目や順番なんかをいじくりたい時は、表示内容の全てをxmlで指定するわけですが、もちろんゼロベースで書くのはしんどいため、Doxygenに問い合わせてひな形を得る必要があります。それがドキュメントにもある通り

doxygen -l

でデフォルトのレイアウトxmlがDoxygenLayout.xmlとして出力できる事になってますが…失敗しちゃったんですね。

症状としてはxmlが謎のエンコードで出力されてしまい、大量のエンコ不能な空白に混じってとぎれとぎれにアスキー文字が出現する感じです。その文字列自体は人間なら読んで読めないことは無いという印象…もちろんxmlとしては崩壊しているので根気よく手修正する必要があります。でも量が多いのでその方法はすぐサジを投げました。なおDoxygen1.8.10/Win8.1-64bit環境で、32bit版も64bit版も大差なかったです。あとなんか出力するxmlファイル名を少し変えると空白の量が変化していました。ナンダコレ…。

ついでにちょっとソース追いかけてみたんですが、layout_default.xmlをベースにヘッダーファイル化してそれをリソースとしてビルドしてるようで、-lオプションを実行するとそのxmlリソースを内部の独自ストリーム出力クラスでutf8出力する流れっぽいので、やはりどっかでエンコ失敗してる気配(勘)。ストリーム出力のところが一番怪しいです(勘)。

とは言え、個人的にはxmlさえゲットできればいいやという事で、内部フロー的にやっぱこのlayout_default.xmlで良いのねと大方推測できたため捜査を打ち切りました。そもそもの目的だった、ツリービューのレイアウトを編集できたので良かったです(小並

もし同様のお悩みをお抱えでしたらソースをDLすると良いかもよ!

なんかDoxygenはクソツールみたいな日記になってしまいましたがどっこい神ツールなのでオススメですよ!*2

*1:細かい見た目も結構カスタマイズできます。ただリッチに画像を多用したり今どき風にオシャレなレイアウトにしたりするのはわりと苦手です。Web出力専用ではないためWeb以外とも互換のききそうな範囲でしかカスタマイズできない感じ。

*2:日本語pdf出力しようとすると地獄の道をたどることになりますがWebヘルプを作る場合は実にスイーツ