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/"
}