Premake可以自動生成多個平臺的MakeFile,用lua編寫的工程定義文件,用它來生成不同平臺的工程文件,這裏主要講一下用於創建Visual Studio。
主要流程是:利用批處理文件調用premake.exe調用.lua配置文件,從而生成vs配置文件。
一、下載premake
Premake官網:https://premake.github.io/
將解壓後的Premake.exe放置到需要編譯的目錄下(最好與lua文件和批處理文件放置在同一目錄)
二、創建代碼文件、資源文件等(包括:”**.h,**.cpp,**.c,**.ui,**.qrc,**.hpp”等,以及分類文件夾)
三、創建Premake.lua配置文件,寫入解決方案配置,即工程屬性配置
(具體語句對應配置參考:https://github.com/premake/premake-core/wiki)
-- A solution contains projects, and defines the available configurations(公共部分定義)
--解決方案名稱
workspace "ExeTest"
configurations {"Release","Debug"}
location "build"
--輸出目錄
targetdir "bin"
-- 項目字符集(Default/MBCS/Unicode/ASCII)
characterset " MBCS "
--文件分組
vpaths
{
["Header Files"] = {"**.h", "**.hpp"},
["Source Files"] = {"**.c", "**.cpp"},
["Form Files"] = {"**.ui"},
["Generated Files"] = {"**moc_*.cpp", "**qrc_*.cpp", "**ui_*.h"},
["Resource Files"] = {"**.qrc"},
}
filter{ "configurations:Debug"}
--指定編譯或鏈接過程中的標識。Symbols允許編譯出調試信息
flags { "Symbols" }
-- 配置屬性-C/C++-代碼生成-運行庫
runtime "Debug"
--預定義
defines { "NDEBUG" }
--輸出後綴
targetsuffix "_d"
filter{}
filter { "configurations:Release"}
--指定編譯或鏈接過程中的標識。(Symbols允許編譯出調試信息)
flags { "Symbols" }
-- 配置屬性=>運行庫(Debug/ Release)
runtime "Release"
-- 配置屬性=>優化:是否開啓優化
optimize "Speed"
--預定義
defines { "NDEBUG" }
filter {}
-- A project defines one build target
--項目名稱
project "ExeTest"
--配置類型
kind "ConsoleApp"
language "C++"
--附加庫目錄
libdirs
{
}
--附加依賴項
links
{
}
--包含代碼文件
files
{
"ExeTest/*.h",
"ExeTest/*.cpp"
}
--附加包含目錄
includedirs
{
"$(3rd)/rapidjson/include/"
}