summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/genie/src/actions/xcode/xcode6_project.lua
diff options
context:
space:
mode:
author Julian Sikorski <belegdol+github@gmail.com>2019-09-29 15:30:18 +0200
committer R. Belmont <rb6502@users.noreply.github.com>2019-09-29 09:30:18 -0400
commited2b7e5ef1626c0d6318b6ea71897efbb4356277 (patch)
tree62a84a4a2c804922839dbfa60ec664b84beaaee0 /3rdparty/genie/src/actions/xcode/xcode6_project.lua
parent1bd1288c9e17bdba9544d1e56be7618106fece7e (diff)
Synced with GENie upstream revision e78d6c1 (#5631)
* Synced with GENie upstream revision e78d6c1 * Add Visual Studio 2019 support * Fix hardcoded -m64 * Switch appveyor to Visual Studio 2019 * Fix genie being built as 32-bit * MSVC build is known to be broken currently. Let it fail until all the known issues are fixed. * Update the packages before building * Build with 3 threads Appveyor VMs have only 2 cores and 8 GB RAM. * Enable caching of pacman cache
Diffstat (limited to '3rdparty/genie/src/actions/xcode/xcode6_project.lua')
-rw-r--r--3rdparty/genie/src/actions/xcode/xcode6_project.lua247
1 files changed, 0 insertions, 247 deletions
diff --git a/3rdparty/genie/src/actions/xcode/xcode6_project.lua b/3rdparty/genie/src/actions/xcode/xcode6_project.lua
deleted file mode 100644
index 3ee73127e2a..00000000000
--- a/3rdparty/genie/src/actions/xcode/xcode6_project.lua
+++ /dev/null
@@ -1,247 +0,0 @@
---
--- xcode4_project.lua
--- Generate an Xcode4 C/C++ project.
--- Copyright (c) 2009 Jason Perkins and the Premake project
---
-
-local xcode = premake.xcode
-local xcode6 = xcode.xcode6
-local tree = premake.tree
-
---
--- Create a tree corresponding to what is shown in the Xcode project browser
--- pane, with nodes for files and folders, resources, frameworks, and products.
---
--- @param prj
--- The project being generated.
--- @returns
--- A tree, loaded with metadata, which mirrors Xcode's view of the project.
---
-
-function xcode6.buildprjtree(prj)
- local tr = premake.project.buildsourcetree(prj)
-
- -- create a list of build configurations and assign IDs
- tr.configs = {}
- for _, cfgname in ipairs(prj.solution.configurations) do
- for _, platform in ipairs(prj.solution.xcode.platforms) do
- local cfg = premake.getconfig(prj, cfgname, platform)
- cfg.xcode = {}
- cfg.xcode.targetid = xcode.newid(prj.xcode.projectnode, cfgname)
- cfg.xcode.projectid = xcode.newid(tr, cfgname)
- table.insert(tr.configs, cfg)
- end
- end
-
- -- convert localized resources from their filesystem layout (English.lproj/MainMenu.xib)
- -- to Xcode's display layout (MainMenu.xib/English).
- tree.traverse(tr, {
- onbranch = function(node)
- if path.getextension(node.name) == ".lproj" then
- local lang = path.getbasename(node.name) -- "English", "French", etc.
-
- -- create a new language group for each file it contains
- for _, filenode in ipairs(node.children) do
- local grpnode = node.parent.children[filenode.name]
- if not grpnode then
- grpnode = tree.insert(node.parent, tree.new(filenode.name))
- grpnode.kind = "vgroup"
- end
-
- -- convert the file node to a language node and add to the group
- filenode.name = path.getbasename(lang)
- tree.insert(grpnode, filenode)
- end
-
- -- remove this directory from the tree
- tree.remove(node)
- end
- end
- })
-
- -- fix .xcassets files, they should be treated as a file, not a folder
- tree.traverse(tr, {
- onbranch = function(node)
- if path.getextension(node.name) == ".xcassets" then
- node.children = {}
- end
- end
- })
-
- -- the special folder "Frameworks" lists all linked frameworks
- tr.frameworks = tree.new("Frameworks")
- for cfg in premake.eachconfig(prj) do
- for _, link in ipairs(premake.getlinks(cfg, "system", "fullpath")) do
- local name = path.getname(link)
- if xcode.isframework(name) and not tr.frameworks.children[name] then
- node = tree.insert(tr.frameworks, tree.new(name))
- node.path = link
- end
- end
- end
-
- -- only add it to the tree if there are frameworks to link
- if #tr.frameworks.children > 0 then
- tree.insert(tr, tr.frameworks)
- end
-
- -- the special folder "Products" holds the target produced by the project; this
- -- is populated below
- tr.products = tree.insert(tr, tree.new("Products"))
-
- -- the special folder "Projects" lists sibling project dependencies
- tr.projects = tree.new("Projects")
- for _, dep in ipairs(premake.getdependencies(prj, "sibling", "object")) do
- -- create a child node for the dependency's xcodeproj
- local xcpath = xcode.getxcodeprojname(dep)
- local xcnode = tree.insert(tr.projects, tree.new(path.getname(xcpath)))
- xcnode.path = xcpath
- xcnode.project = dep
- xcnode.productgroupid = xcode.newid(xcnode, "prodgrp")
- xcnode.productproxyid = xcode.newid(xcnode, "prodprox")
- xcnode.targetproxyid = xcode.newid(xcnode, "targprox")
- xcnode.targetdependid = xcode.newid(xcnode, "targdep")
-
- -- create a grandchild node for the dependency's link target
- local cfg = premake.getconfig(dep, prj.configurations[1])
- node = tree.insert(xcnode, tree.new(cfg.linktarget.name))
- node.path = cfg.linktarget.fullpath
- node.cfg = cfg
- end
-
- if #tr.projects.children > 0 then
- tree.insert(tr, tr.projects)
- end
-
- -- Final setup
- tree.traverse(tr, {
- onnode = function(node)
- -- assign IDs to every node in the tree
- node.id = xcode.newid(node)
-
- -- assign build IDs to buildable files
- if xcode.getbuildcategory(node) then
- node.buildid = xcode.newid(node, "build")
- end
-
- -- remember key files that are needed elsewhere
- if string.endswith(node.name, "Info.plist") then
- tr.infoplist = node
- end
- if string.endswith(node.name, ".entitlements") then
- tr.entitlements = node
- end
- end
- }, true)
-
- -- Plug in the product node into the Products folder in the tree. The node
- -- was built in xcode.preparesolution() in xcode_common.lua; it contains IDs
- -- that are necessary for inter-project dependencies
- node = tree.insert(tr.products, prj.xcode.projectnode)
- node.kind = "product"
- node.path = node.cfg.buildtarget.fullpath
- node.cfgsection = xcode.newid(node, "cfg")
- node.resstageid = xcode.newid(node, "rez")
- node.sourcesid = xcode.newid(node, "src")
- node.fxstageid = xcode.newid(node, "fxs")
-
- return tr
-end
-
-
---
--- Generate an Xcode4 .xcodeproj for a Premake project.
---
--- @param prj
--- The Premake project to generate.
---
-
-function xcode6.project(prj)
- local tr = xcode6.buildprjtree(prj)
-
- xcode6.Header(tr)
- xcode6.PBXProject(tr)
-
- xcode.PBXBuildFile(tr)
- xcode.PBXContainerItemProxy(tr)
- xcode.PBXFileReference(tr,prj)
- xcode.PBXFrameworksBuildPhase(tr)
- xcode.PBXGroup(tr)
- xcode.PBXNativeTarget(tr)
- xcode.PBXReferenceProxy(tr)
- xcode.PBXResourcesBuildPhase(tr)
- xcode.PBXShellScriptBuildPhase(tr)
- xcode.PBXSourcesBuildPhase(tr,prj)
- xcode.PBXVariantGroup(tr)
- xcode.PBXTargetDependency(tr)
- xcode.XCBuildConfiguration(tr)
- xcode.XCBuildConfigurationList(tr)
-
- xcode6.PBXConfigsGroup()
- xcode6.Footer(tr)
-end
-
----------------------------------------------------------------------------
--- Section generator functions, in the same order in which they appear
--- in the .pbxproj file
----------------------------------------------------------------------------
-
-function xcode6.Header()
- _p('// !$*UTF8*$!')
- _p('{')
- _p(1,'archiveVersion = 1;')
- _p(1,'classes = {}')
- _p(1,'objectVersion = 46;')
- _p(1,'rootObject = __RootObject_;')
- _p(1,'objects = {')
-end
-
-function xcode6.PBXProject(tr)
- _p(2,'__RootObject_ = {')
- _p(3,'isa = PBXProject;')
- _p(3,'attributes = {LastUpgradeCheck = 9999;};')
- _p(3,'buildConfigurationList = ___RootConfs_;', tr.name)
- _p(3,'compatibilityVersion = "Xcode 3.2";')
- _p(3,'developmentRegion = English;')
- _p(3,'hasScannedForEncodings = 0;')
- _p(3,'knownRegions = (en);')
- _p(3,'mainGroup = ___RootGroup_;')
- _p(3,'projectDirPath = "";')
- _p(3,'projectRoot = "";')
-
- _p(3,'targets = (')
- for _, node in ipairs(tr.products.children) do
- _p(4,'%s /* %s */,', node.targetid, node.name)
- end
- _p(3,');')
-
- if #tr.projects.children > 0 then
- _p(3,'projectReferences = (')
- for _, node in ipairs(tr.projects.children) do
- _p(4,'{')
- _p(5,'ProductGroup = %s /* Products */;', node.productgroupid)
- _p(5,'ProjectRef = %s /* %s */;', node.id, path.getname(node.path))
- _p(4,'},')
- end
- _p(3,');')
- end
-
- _p(2,'};')
- _p('')
-end
-
-function xcode6.PBXConfigsGroup()
- _p(2, "_____Configs_ = {")
- _p(3, "isa = PBXGroup;")
- _p(3, "children = (")
- -- '__PBXFileRef_SGLMath.xcodeproj/Configs/Project.xcconfig'
- _p(3, ");")
- _p(3, "name = Configs;")
- _p(3, "sourceTree = '<group>';")
- _p(2, "};")
-end
-
-function xcode6.Footer()
- _p(1,'};')
- _p('}')
-end