天天看點

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

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

繼續閱讀