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