Develop and Download Open Source Software

Browse Subversion Repository

Contents of /script/vcprogen.dox

Parent Directory Parent Directory | Revision Log Revision Log


Revision 179 - (show annotations) (download)
Wed Dec 19 09:00:27 2007 UTC (16 years, 3 months ago) by satofumi
File size: 3499 byte(s)
fix gui/SdlSurface.cpp's bug

1 /*!
2 \page vcprogen_page Visual Studio .NET 2003 の vcproj 生成ツール
3
4 \section vcprogen_what_section 何をするのか
5
6 Visual Studio .NET 2003 のプロジェクトファイルを生成するためのスクリプト。exe を出力するタイプのプロジェクトと、lib を生成するためのプロジェクトが生成できればよいとする。\n
7 いちいち GUI でプロジェクト設定を行うのは面倒なのですよ...。
8
9 出力タイプ
10 - exe ... *.cpp, *.h から exe ファイルを作るための vcproj を生成
11 - lib ... *.cpp, *.h, Makefile.am から配布用の include/, lib を生成
12
13 \n
14 その他
15 - Debug, Release の両方の設定を出力
16
17 \n
18 プロジェクトについての設定は、スクリプト実行時の引数、および設定ファイルにて指定するものとする。
19
20 <hr>
21
22 \section vcprogen_imple_section 実装
23
24 exe と lib 用のどちらのプロジェクトを生成するかにより、特別に処理すべき内容が異なるので、それぞれの場合毎の実装を行う。このスクリプトが提供するのは、プロジェクトファイルの提供までであって、そのプロジェクト内のファイルを生成したりはしない。
25
26 \n
27 \subsection vcprogen_exe_section exe ファイル生成用の処理
28
29 \b 実現したいこと
30 - *.c, *.cpp を「ソースファイル」に設定
31 - *.h を「ヘッダファイル」に設定
32 - 追加のインクルードパスを設定
33 - 追加のライブラリを設定
34 - ライブラリの読み込みパスを設定
35 - 実行時のライブラリサーチパス(あるのか?)を設定
36 - 必要で、system に配置されていない DLL があった場合に、実行フォルダにコピー
37 - GUID の設定を変更
38
39 くらいか?\n
40 この程度であれば、XML の キー指定でタグ置換を行えばよさそう。ただし、Debug, Release の両方への設定が簡単に指定できることが望ましい。
41
42 \n
43 \subsection vcprogen_lib_section exe ファイル生成用の処理
44
45 基本的には, exe と同じ事が実現できればよい。ただし、ライブラリ生成では、そのライブラリの include 用ファイルも生成できると便利なことがある。この生成を、Makefile.am から行えるようにする。同様に、ライブラリのソースコードの情報も Makefile.am から取得できるようにする。つまり、
46
47 - Makefile.am から
48 - include/ に配置するファイル情報を取得
49 - コンパイルするファイル情報を取得
50
51 という感じ。ただし、Makefile.am 内で指定されている .h は必要だが、ソース情報は必要ない場合がある。従って、Makefile.am から何の情報を取り出すかは明確に区別する。
52 そんな感じ。
53
54 <hr>
55
56 \section vcprogen_usage_section 実行方法
57
58 基本的には、置換すべき情報を格納したファイルを指定して処理を行う。ただし、Makefile.am は `find ...` のようにコマンドラインで渡した方が便利な場合があるので、渡せるようにする。従ってコマンド実行例としては、
59
60 \verbatim
61 % ruby vcprogen.rb --name followLine --type exe --sources followLine.cpp
62 % ruby vcprogen.rb --name vxv --type lib --codes `find . -name "Makefilea.am"`
63 % ruby vcprogen.rb vxv_proj.txt --headers `find . -name "Makefile.am"` \
64 --sources `find . -name "Makefile.am" ! -path "*/c/*"` \endverbatim
65 となる。
66
67 <hr>
68
69 \section vcprogen_proj_section 実行例
70
71 vxv2 の Makefile.am から lib 生成用の vxv2.pcproj を作る例は以下の通り。
72
73 \verbatim
74 % ruby vcprogen.rb --name vxv2 --type lib --mask "cpp,h" \
75 --headers "`find ${VXV2_PATH} -name "Makefile.am"`" \
76 --sources "`find ${VXV2_PATH} -name "Makefile.am" \
77 ! -path "*/monitor/*" ! -path "*/guiCtrl/*" ! -path "*/example/*" \
78 ! -path "*/tools/*"`" vxv2_cfg.txt \endverbatim
79
80 \n
81 sample_cfg.txt の中身
82 \include sample_cfg.txt
83
84 \n
85 followLine.exe 用の followLine.vcproj を作る例は以下の通り。
86
87 \verbatim
88 % ruby ${VCPROGEN} --name followLine --type exe --sources "followLine.cpp" \endverbatim
89
90 <hr>
91
92 \section vcprogen_download_section スクリプトのソースコード
93
94 こんな感じ
95
96 \include vcprogen.rb
97
98 以上
99 */

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26