私は複数の小さな実行可能ファイルで構成されるプロジェクトに取り組んでいます。実行ファイルは、ターミナル(またはコマンドプロンプト)から実行されることを意図しており、任意のプログラミング言語で記述することができます。解釈された言語で書かれたものはunixyシステム用のシバンラインを持っていますが、ファイル拡張子はWindows上のPATHEXT環境変数に追加されています。cmake(または他のポータブルビルドツール)を使ってファイル拡張子を取り除く方法は?
すべてのプログラミング言語との両方の主要なプラットフォームのグループ間で一貫性のある実行ファイルの使用状況を作るために、私はunixyシステム上の解釈プログラムのファイル名からファイルの拡張子を除去する必要があります。 (「一貫性のある使用」とは、ファイル拡張子を指定することなく、起動するプログラムの名前を入力するだけです)。
具体的には、次のCMakeListsファイルのように記述します。
project (Mixed Example)
add_executable (banana banana.cpp)
add_executable (grape grape.hs)
add_script? (orange orange.py)
add_script? (strawberry strawberry.lua)
install (TARGETS banana grape orange strawberry DESTINATION bin)
それから私は私がorange.py
とstrawberry.lua
のファイル拡張子は条件付きで取り除かれたくながらbanana.cpp
とgrape.hs
は、プラットフォームに応じて、通常の方法でコンパイルすることにしたいです。
banana grape orange strawberry
およびWindows上で以下:したがって、bin
ディレクトリはunixyシステム上で以下のファイルが含まれている必要があり
banana.exe grape.exe orange.py strawberry.lua
はどのように私はそれを行うのですか?
も新しいルールにこれを作るための方法があるので、私はすべてのスクリプトのために手動で名前の変更を指定する必要はありません:
install (FILES ...
複数回、あなたが行うことができますか?さらに重要なことは、すべてのスクリプトのインストール方法を2回(つまり、UNIXの場合は1回、WIN32の場合は1回)という定義方法で自分自身を節約できますか? – Julian@Julianこれをどのように行うことができるかを示す情報を追加しました。 – Fraser
ありがとう、それはまさに私が探していたものと思われます! – Julian