forked from mirror/tinyxml2
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
1.8 KiB
Lua
96 lines
1.8 KiB
Lua
--
|
|
-- Requires: Premake 5 (https://premake.github.io/)
|
|
-- Usage: premake5 --file=premake5.lua [project / makefile format, refer to premake5 --help] --target=[target from below]
|
|
--
|
|
|
|
-- target option
|
|
tbl_target_values =
|
|
{
|
|
{ "windows", "VS2015 projects targeting Windows 32/64 bits" },
|
|
{ "macosx", "Xcode4 projects targeting OS X" },
|
|
}
|
|
|
|
newoption
|
|
{
|
|
trigger = "target",
|
|
description = "Build environment and target to generate projects for.",
|
|
allowed = tbl_target_values
|
|
}
|
|
|
|
-- validation
|
|
target_env = _OPTIONS["target"]
|
|
if not target_env then
|
|
print "Command-line option --target is required with one of the following values:"
|
|
for _, v in ipairs(tbl_target_values) do
|
|
print(v[1])
|
|
end
|
|
os.exit(1)
|
|
end
|
|
|
|
-- solution
|
|
workspace "tinyxml2"
|
|
|
|
tbl_platforms = {}
|
|
if target_env == "windows" then
|
|
tbl_platforms = {
|
|
"x86",
|
|
"x64",
|
|
}
|
|
elseif target_env == "macosx" then
|
|
tbl_platforms = {
|
|
"Universal64"
|
|
}
|
|
end
|
|
platforms(tbl_platforms)
|
|
|
|
tbl_configurations = {
|
|
"Debug",
|
|
"Release",
|
|
}
|
|
configurations(tbl_configurations)
|
|
|
|
sln_location = ".projects/"..target_env
|
|
location(sln_location)
|
|
|
|
bin_location = ".artifacts/"..target_env
|
|
obj_location = ".intermediate/"..target_env
|
|
|
|
for _, p in ipairs(tbl_platforms) do
|
|
for _, c in ipairs(tbl_configurations) do
|
|
local pc = p.."-"..c
|
|
filter{ "platforms:"..p, c }
|
|
targetdir(bin_location.."/"..pc)
|
|
libdirs(bin_location.."/"..pc)
|
|
objdir(obj_location.."/"..pc)
|
|
end
|
|
end
|
|
|
|
filter("not Release")
|
|
optimize "Debug"
|
|
symbols "On"
|
|
filter{ "Release" }
|
|
optimize "Full"
|
|
filter{}
|
|
|
|
-- projects
|
|
project "tinyxml2"
|
|
|
|
kind "staticlib"
|
|
|
|
files {
|
|
"tinyxml2.h",
|
|
"tinyxml2.cpp"
|
|
}
|
|
|
|
project "xmltest"
|
|
|
|
kind "consoleapp"
|
|
|
|
links {
|
|
"tinyxml2"
|
|
}
|
|
|
|
files {
|
|
"xmltest.cpp"
|
|
}
|