Added premake5 build configuration with projects for Windows & Mac.
- updated .gitignore with the .projects / .artifacts directories.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -7,6 +7,8 @@ tinyxml2/tinyxml2-cbp/bin/
|
||||
tinyxml2/tinyxml2-cbp/obj/
|
||||
tinyxml2/bin/
|
||||
tinyxml2/temp/
|
||||
.artifacts/
|
||||
.projects/
|
||||
*.sdf
|
||||
*.suo
|
||||
*.opensdf
|
||||
|
||||
95
premake5.lua
Normal file
95
premake5.lua
Normal file
@@ -0,0 +1,95 @@
|
||||
--
|
||||
-- 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"
|
||||
}
|
||||
Reference in New Issue
Block a user