我使用的是premake生成文件的項目與配置:{"VulkanDebug", "VulkanRelease", "OpenGLDebug", "OpenGLRelease"}
並想通過DEBUG/RELEASE
和VULKAN/OPENGL
令牌中的腳本buildCommands
。追加到buildcommands在premake
例如,配置爲VulkanRelease
時,生成命令爲script.bat VULKAN RELEASE
,腳本負責決定如何處理這些令牌。
我的理想解決方案(使用無效邏輯):
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")
如果我使用buildcommands
正常的方式,Visual Studio會認爲這是三個獨立的命令來執行:script.bat
,VULKAN
,並RELEASE
。
我有幾個解決方法,但他們都覺得對我來說很醜。首先是將整個配置名稱作爲參數傳遞給腳本並在那裏解析它。並非真正把這樣的爭論聚集在一起。第二種是爲VULKAN
或OPENGL
創建預製腳本的命令行參數,並且只有DEBUG
和RELEASE
作爲配置。據我所知,這將爲Vulkan和OpenGL生成單獨的項目文件,這似乎是過度殺傷性的。最後,我可以爲每個配置提供完整的構建命令。這第三個選項似乎是最好的,但一旦我添加更多配置(以及所有可能的排列組合),它將使腳本更長。
所以,如果premake有附加支持,我不知道它,那麼非問題!否則,可能會有一種更清晰的方式來做到這一點,但我不知道。謝謝閱讀。