预制脚本的语法
Syntax of premake scripts
谁能给我解释一下 premake 脚本的语法是什么意思?预制脚本是有效的 lua 脚本。那么下面代码中的solution
、configurations
、project
是什么?变量?关键词?
-- A solution contains projects, and defines the available configurations
solution "MyApplication"
configurations { "Debug", "Release" }
-- A project defines one build target
project "MyApplication"
kind "ConsoleApp"
language "C++"
files { "**.h", "**.cpp" }
configuration "Debug"
defines { "DEBUG" }
flags { "Symbols" }
configuration "Release"
defines { "NDEBUG" }
flags { "Optimize" }
编辑:它们是函数调用。那么这部分怎么样
configuration "Debug"
defines { "DEBUG" }
flags { "Symbols" }
configuration "Release"
defines { "NDEBUG" }
flags { "Optimize" }
执行了吗? defines
和 flags
调用将根据 configuartion
?
的上下文调用
函数
如果函数只接受一个参数,即 table 或字符串,则括号可以省略。参考3.4.10 - Function Calls.
此外,在您的示例中,缩进是任意的。你可以这样写:
project("MyApplication")
kind("ConsoleApp")
language("C++")
files({"**.h", "**.cpp"})
它会和原来的一样好。
关于第二件事。很可能 configuration
和相关的 defines
和 flags
在一些隐藏的本地状态上运行。当您调用 configuration
时,它会更改此本地状态以引用例如"Debug"
配置等所有后续调用也参考此本地状态。如:
do
local state
function set_state (name)
state = name
end
function print_with_suffix (suffix)
print(state, suffix)
end
end
set_state("hello")
print_with_suffix("world") --> hello world
谁能给我解释一下 premake 脚本的语法是什么意思?预制脚本是有效的 lua 脚本。那么下面代码中的solution
、configurations
、project
是什么?变量?关键词?
-- A solution contains projects, and defines the available configurations
solution "MyApplication"
configurations { "Debug", "Release" }
-- A project defines one build target
project "MyApplication"
kind "ConsoleApp"
language "C++"
files { "**.h", "**.cpp" }
configuration "Debug"
defines { "DEBUG" }
flags { "Symbols" }
configuration "Release"
defines { "NDEBUG" }
flags { "Optimize" }
编辑:它们是函数调用。那么这部分怎么样
configuration "Debug"
defines { "DEBUG" }
flags { "Symbols" }
configuration "Release"
defines { "NDEBUG" }
flags { "Optimize" }
执行了吗? defines
和 flags
调用将根据 configuartion
?
函数
如果函数只接受一个参数,即 table 或字符串,则括号可以省略。参考3.4.10 - Function Calls.
此外,在您的示例中,缩进是任意的。你可以这样写:
project("MyApplication")
kind("ConsoleApp")
language("C++")
files({"**.h", "**.cpp"})
它会和原来的一样好。
关于第二件事。很可能 configuration
和相关的 defines
和 flags
在一些隐藏的本地状态上运行。当您调用 configuration
时,它会更改此本地状态以引用例如"Debug"
配置等所有后续调用也参考此本地状态。如:
do
local state
function set_state (name)
state = name
end
function print_with_suffix (suffix)
print(state, suffix)
end
end
set_state("hello")
print_with_suffix("world") --> hello world