私は設定が{"VulkanDebug", "VulkanRelease", "OpenGLDebug", "OpenGLRelease"}
の事前作成メークファイルプロジェクトを使用しており、DEBUG/RELEASE
とVULKAN/OPENGL
のトークンをbuildCommands
のスクリプトに渡したいとします。premakeでビルドコマンドに追加する
たとえば、構成がVulkanRelease
の場合、ビルドコマンドはscript.bat VULKAN RELEASE
であり、スクリプトはこれらのトークンの処理を決定します。
私の理想的なソリューションは、(無効なロジックを使用して)です:script.bat
、VULKAN
、およびRELEASE
:私は通常の方法buildcommands
を使用する場合は
buildcommands { "script.bat" }
filter "configurations:*Vulkan*"
buildcommands.append(" VULKAN")
rebuildcommands.append(" VULKAN")
filter "configurations:*OpenGL*"
buildcommands.append(" OPENGL")
rebuildcommands.append(" OPENGL")
filter "configurations:*Debug*"
buildcommands.append(" DEBUG")
rebuildcommands.append(" DEBUG")
filter "configurations:*Release*"
buildcommands.append(" RELEASE")
rebuildcommands.append(" RELEASE")
、Visual Studioは、3つの別々に実行するコマンドとさせて頂きます。
私はいくつかの回避策がありますが、それらはすべて私に醜いと感じます。まず、構成名全体を引数としてスクリプトに渡し、そこで解析します。本当にそれをまとめる議論のファンではありません。 2番目は、premakeスクリプトのコマンドライン引数をVULKAN
またはOPENGL
に作成し、設定としてDEBUG
とRELEASE
しか持たないことです。私が知っている限り、これは残虐なようなVulkanとOpenGLのための別々のプロジェクトファイルを生成します。最後に、各構成に対して完全なビルドコマンドを提供することができました。この3番目のオプションは一番いいようですが、より多くの設定(とすべての可能な順列)を追加するとスクリプトが長くなります。
したがって、premakeに追加のサポートがあり、私がそれについて知りませんでしたら、問題ありません!さもなければ私が知らないこれを行うもっとクリーンな方法があるかもしれません。読んでくれてありがとう。