diff options
author | 2019-09-29 15:30:18 +0200 | |
---|---|---|
committer | 2019-09-29 09:30:18 -0400 | |
commit | ed2b7e5ef1626c0d6318b6ea71897efbb4356277 (patch) | |
tree | 62a84a4a2c804922839dbfa60ec664b84beaaee0 /3rdparty/genie/src/actions/xcode/xcode6_project.lua | |
parent | 1bd1288c9e17bdba9544d1e56be7618106fece7e (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.lua | 247 |
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 |