[Top Page][Edit][Discussion][Edit History][All Pages][Recent Changes][->Japanese]

HSP3コマンドラインコンパイラ

HSP3のコマンドラインで行うコンパイラプログラムのソースを公開します。
環境のある方はどんどん修正お願いします。


使用方法

hspcmp.dllを利用していますのでEXEと同じディレクトリに置いてください。
EXEにパスを通しておけばどこからでもコンパイルできます。

現状は

hspcmp <HSP ソース>

という使い方しかできません。
注:
現在のところEXEと同じディレクトリに標準HSPランタイム(hsprt)が必要です。出来ればランタイムの場所とランタイム名をオプションで指定できるようにしたいです。

実行すると自動的にstart.axにコンパイルしてpackfileを作成しEXEにします。
ソースは非常に適当に仕上げてあるので改善頂けると助かります。

hspcmp:compile.bat

  • ソースをまとめてコンパイルするバッチファイルです。MSVC++用です。

hspcmp:hspcmp.c

  • コマンドラインコンパイラのmainソースです。(詳細説明略)

hspcmp:packfile.c

  • packfileを操作する関数のファイルです。中途実装。

hspcmp:help.c

  • ヘルプとバージョン情報を表示する関数のファイルです。

hspcmp:hspcmp.h

  • 一部の関数の定義など。中途実装。

実装できるといいなという機能

  • 引数(コマンドラインスイッチ)
    • 作成する実行ファイル名を指定
    • packfileに追加するファイルを指定
    • 具体例(日本語だと非常にかっこ悪かったため適当に英語にして間違えていたり)
      hspcmp [<HSP source>] [<packfile of additional files>...(default:start.ax)] [/<option1>] [/<option2>] [/<option3>...] [/h or /? <of help>]
      
    • 引数が指定されていなかったりエラーの場合は/hを自動指定
    • コンパイルのみでEXEにしないオプション
    • (既にコンパイル済みの場合)コンパイルするスクリプトを省略しpackfileへの追加のみを行うオプション
    • 上記に加え、packfileを上書きせずpackfileに追加するオプション(packfileに含まれているファイルは消えない)
    • 指定の場所にEXEを出力するオプション(現在はカレントディレクトリ固定)
    • 使用するランタイムの場所,名前を指定
  • その他、スクリプトエディタから行えるすべての機能を実装+α

現時点の仕様・その他(判明部分)

  • コマンドライン引数がスクリプトソースのみしか指定できない
    • 任意の実行ファイル名に出来ない
    • ランタイムやpackfileに含めるファイルの指定などほとんどの操作ができない
    • その他
  • カレントディレクトリによって動作が異なる(?)
    • packfileなどの作成される場所はカレントディレクトリになっている
  • 不具合が多かったり動作不安定だったりすると思う
    • 不要な部分や、しなくてはいけない処理をしていなかったり・・・
  • もう少しhspcmp.cの中の関数を別のファイルに分割したい
    • 見やすさ向上のため
  • 随時追加予定