いくつかのTCPサーバーへのクロスプラットフォームライブラリを使用したライブビデオストリーミング用のシンプルなコンソールアプリケーションプロジェクトがあります。WindowsからLinuxとMacOSXに手動で移植しました。これで、同じコードを使用する3つのプロジェクトがあり、それぞれが手動で作成され、テストされています。現在、プロジェクトファイルの更新プロセスを自動化するために、premakeluaプロジェクト作成ファイルを作成しようとしています。
luaファイルの作成を開始しました
premakeluaビルドファイルにlibリンクの配列があります。プロジェクトに必要なlibリンクの配列があります。
それらのいくつかは、それらのいくつかを繰り返すようなものです(たとえば、Windowsには「openal32」があり(Windows 7 64ビットバージョンでも)、Linuxでは「openal」という名前があり、MacOSXでは「OpenAL.framework」という名前があります。 (そして、openALを含めるためのmac osの唯一のオプション)
linkdirsプロパティを設定しています-すべてのシステムに1つ
libdirs {
"/opt/local/lib",
"/System/Libarary/Frameworks",
"/Library/Frameworks",
"/usr/lib",
"/usr/local/lib" }
dirsへのリンクは、おそらくMac OS X(デフォルトでにインストールされるMac Portsを使用しているため)およびLinux(ほとんどの場合、すべてを、場合によってはに/opt/local/lib
自動インストールするapp-getアナログを使用するため)で機能します。しかし、Windowsでは、ffmpegがどこにあるか、またはBoostがインストールされている場所がわからないため(おそらく、各プログラマーはWindowsのLibsとHeadersをどこに保持するかについて独自の考えを持っています...)、premakeから簡単なものが必要です。usr/lib
/usr/local/lib
配列に含まれるユーザー定義のライブラリディレクトリを追加するアクションと、libdirs
配列と同じものincludedirs
。複数のディレクトリを追加できる必要があります。
そのようなことを可能にする方法は?
私は次のような「オプションベースのシステム」を作成しようとしました
newoption {
trigger = "libsPath",
value = "PATH",
description = "Choose a particular directory for general libs search"
}
if not _OPTIONS["libsPath"] then
_OPTIONS["libsPath"] = NULL
end
libdirs {
"/opt/local/lib",
"/System/Libarary/Frameworks",
"/Library/Frameworks",
"/usr/lib",
"/usr/local/lib",
_OPTIONS["libsPath"]
}
しかし、それはウィンドウズでは機能しないようです...どうすればいいですか?