天天看点

Premake 4.1.2 命令行解释

//-------------------------------------------------------------

premake是一款用于自动创建解决方案和项目文件的生成器。

支持跨平台间解决方案与项目的设置设置问题。

同时还解决了各项目间快速度项目设置/宏定义/目标修改等。

目前premake用于FlatFour,ODE,CEGUI,yake,NFS等等项目

//-------------------------------------------------------------

Premake 4.1.2, a build script generator

Copyright (C) 2002-2009 Jason Perkins and the Premake Project

Lua 5.1 Copyright (C) 1994-2008 Lua.org, PUC-Rio

Usage: premake4 [options] action [arguments]

选项开关表:

--cc=[VALUE] : 选择下列指定的C/C++编译器之一:

gcc GNU GCC (gcc/g++)

ow OpenWatcom

--dotnet=[VALUE] : 选择下列指定的.NET编译器之一:

msnet : Microsoft .NET (csc)

mono : Novell Mono (mcs)

pnet : Portable.NET (cscc)

--file=[FILE] : 加载指定的premake脚本文件,默认脚本文件是"premake4.lua"。

--help : 显示帮助信息

--os=[VALUE] : 生成下列指定的操作系统文件之一,默认Microsoft Windows:

bsd : OpenBSD, NetBSD, or FreeBSD

linux : Linux

macosx : Apple Mac OS X

windows : Microsoft Windows

--platform=[VALUE] : 生成到下列目标系统平台体系,默认x32:

x32 32位操作系统

x64 64位操作系统

universal Mac OS X Universal(32或者64位)

universal32 Mac OS X Universal(仅32位)

universal64 Mac OS X Universal(仅64位)

ps3 Playstation 3 (测试中)

xbox360 Xbox 360 (测试中)

--scripts=[PATH] : 额外搜索指定目录的脚本文件

--version : 显示版本信息

动作表:

 clean : 删除所有目标文件和生成文件(生成文件包括*.obj/*.ilk等所有生成出的)

 codeblocks : 生成Code::Blocks 项目与解决方案文件

 codelite : 生成CodeLite 项目与解决方案文件

 gmake : 生成GNU用于POSIX/MinGW/Cygwin 的 makefiles

 vs2002 : 生成Microsoft Visual Studio 2002项目与解决方案文件

 vs2003 : 生成Microsoft Visual Studio 2003项目与解决方案文件

 vs2005 : 生成Microsoft Visual Studio 2005项目与解决方案文件

 vs2008 : 生成Microsoft Visual Studio 2008项目与解决方案文件

更多信息, 参见 http://industriousone.com/premake

//-------------------------------------------------------------

下面是应用例子:

准备工作:在目录下放main.cpp文件,内容要为可以编过的代码文件。

         将premake4.exe放到该目录下 (此文章用到的是Premake 4.1.2)

  创建两个空批处理文件,分别是make.bat和clear.bat

  创建一个主脚本文件mysln.lua (premake采用的是lua脚本,因此你可以使用lua的特性与功能)

填写make.bat文件:

premake4 --file=mysln.lua --os=windows --platform=x32 vs2005

填写clear.bat文件:

premake4 --file=mysln.lua clean

填写mysln.lua文件:

solution "MySolution"

basedir "work"

configurations { "Debug", "Release" }

language "C++"

uuid "726890BF-272F-4cff-BA17-3D21C3D1380F"

includedirs "inc"

project "MyLib"

kind "StaticLib"

includedirs "inc"

files {"*.cpp", "*.h"}

configuration "Debug"

defines { "DEBUG" }

configuration "Release"

defines { "NDEBUG" }

project "MyApp"

kind "StaticLib"

includedirs "inc"

files {"*.cpp", "*.h"}

configuration "Debug"

defines { "DEBUG" }

configuration "Release"

defines { "NDEBUG" }

//-------------------------------------------------------------

继续阅读