Added basic iOS support to XCode4
This commit is contained in:
parent
a12423f7dc
commit
98a14ff624
@ -23,6 +23,22 @@
|
||||
kind = "list",
|
||||
}
|
||||
|
||||
p.api.register {
|
||||
name = "xcodecodesigningidentity",
|
||||
scope = "config",
|
||||
kind = "string",
|
||||
}
|
||||
|
||||
p.api.register {
|
||||
name = "iosfamily",
|
||||
scope = "config",
|
||||
kind = "string",
|
||||
allowed = {
|
||||
"iPhone/iPod touch",
|
||||
"iPad",
|
||||
"Universal",
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
-- Register the Xcode exporters.
|
||||
@ -35,7 +51,6 @@
|
||||
|
||||
-- Xcode always uses Mac OS X path and naming conventions
|
||||
|
||||
targetos = "macosx",
|
||||
toolset = "clang",
|
||||
|
||||
-- The capabilities of this action
|
||||
|
@ -17,6 +17,7 @@
|
||||
local wks
|
||||
|
||||
function suite.setup()
|
||||
_TARGET_OS = "macosx"
|
||||
p.action.set('xcode4')
|
||||
wks = test.createWorkspace()
|
||||
end
|
||||
|
@ -49,6 +49,7 @@
|
||||
end
|
||||
|
||||
function suite.setup()
|
||||
_TARGET_OS = "macosx"
|
||||
p.action.set('xcode4')
|
||||
io.eol = "\n"
|
||||
xcode.used_ids = { } -- reset the list of generated IDs
|
||||
|
@ -18,6 +18,7 @@
|
||||
local wks, prj
|
||||
|
||||
function suite.setup()
|
||||
_TARGET_OS = "macosx"
|
||||
p.action.set('xcode4')
|
||||
wks = test.createWorkspace()
|
||||
end
|
||||
|
@ -23,6 +23,7 @@
|
||||
end
|
||||
|
||||
function suite.setup()
|
||||
_TARGET_OS = "macosx"
|
||||
p.action.set('xcode4')
|
||||
xcode.used_ids = { } -- reset the list of generated IDs
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
end
|
||||
|
||||
function suite.setup()
|
||||
_TARGET_OS = "macosx"
|
||||
p.action.set('xcode4')
|
||||
p.eol("\n")
|
||||
xcode.used_ids = { } -- reset the list of generated IDs
|
||||
@ -1095,6 +1096,123 @@
|
||||
]]
|
||||
end
|
||||
|
||||
function suite.XCBuildConfigurationTarget_OnIOS()
|
||||
_TARGET_OS = "ios"
|
||||
prepare()
|
||||
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
|
||||
test.capture [[
|
||||
[MyProject:Debug] /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CONFIGURATION_BUILD_DIR = bin/Debug;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
INSTALL_PATH = /usr/local/bin;
|
||||
PRODUCT_NAME = MyProject;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
]]
|
||||
end
|
||||
|
||||
function suite.XCBuildConfigurationTarget_OnIOSMinVersion()
|
||||
_TARGET_OS = "ios"
|
||||
systemversion "8.3"
|
||||
prepare()
|
||||
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
|
||||
test.capture [[
|
||||
[MyProject:Debug] /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CONFIGURATION_BUILD_DIR = bin/Debug;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
INSTALL_PATH = /usr/local/bin;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
|
||||
PRODUCT_NAME = MyProject;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
]]
|
||||
end
|
||||
|
||||
function suite.XCBuildConfigurationTarget_OnIOSMinMaxVersion()
|
||||
_TARGET_OS = "ios"
|
||||
systemversion "8.3:9.1"
|
||||
prepare()
|
||||
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
|
||||
test.capture [[
|
||||
[MyProject:Debug] /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CONFIGURATION_BUILD_DIR = bin/Debug;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
INSTALL_PATH = /usr/local/bin;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
|
||||
PRODUCT_NAME = MyProject;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
]]
|
||||
end
|
||||
|
||||
function suite.XCBuildConfigurationTarget_OnIOSCodeSigningIdentity()
|
||||
_TARGET_OS = "ios"
|
||||
xcodecodesigningidentity "Premake Developers"
|
||||
prepare()
|
||||
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
|
||||
test.capture [[
|
||||
[MyProject:Debug] /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Premake Developers";
|
||||
CONFIGURATION_BUILD_DIR = bin/Debug;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
INSTALL_PATH = /usr/local/bin;
|
||||
PRODUCT_NAME = MyProject;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
]]
|
||||
end
|
||||
|
||||
function suite.XCBuildConfigurationTarget_OnIOSFamily()
|
||||
_TARGET_OS = "ios"
|
||||
iosfamily "Universal"
|
||||
prepare()
|
||||
xcode.XCBuildConfiguration_Target(tr, tr.products.children[1], tr.configs[1])
|
||||
test.capture [[
|
||||
[MyProject:Debug] /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CONFIGURATION_BUILD_DIR = bin/Debug;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
INSTALL_PATH = /usr/local/bin;
|
||||
PRODUCT_NAME = MyProject;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
]]
|
||||
end
|
||||
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
-- XCBuildConfiguration_Project tests
|
||||
|
@ -943,6 +943,27 @@
|
||||
settings['EXCLUDED_SOURCE_FILE_NAMES'] = fileNameList
|
||||
end
|
||||
settings['PRODUCT_NAME'] = cfg.buildtarget.basename
|
||||
|
||||
if os.istarget(p.IOS) then
|
||||
settings['SDKROOT'] = 'iphoneos'
|
||||
|
||||
settings['CODE_SIGN_IDENTITY[sdk=iphoneos*]'] = cfg.xcodecodesigningidentity or 'iPhone Developer'
|
||||
|
||||
local minOSVersion = project.systemversion(cfg)
|
||||
if minOSVersion ~= nil then
|
||||
settings['IPHONEOS_DEPLOYMENT_TARGET'] = minOSVersion
|
||||
end
|
||||
|
||||
local families = {
|
||||
['iPhone/iPod touch'] = '1',
|
||||
['iPad'] = '2',
|
||||
['Universal'] = '1,2',
|
||||
}
|
||||
local family = families[cfg.iosfamily]
|
||||
if family then
|
||||
settings['TARGETED_DEVICE_FAMILY'] = family
|
||||
end
|
||||
end
|
||||
|
||||
--ms not by default ...add it manually if you need it
|
||||
--settings['COMBINE_HIDPI_IMAGES'] = 'YES'
|
||||
|
@ -1105,6 +1105,7 @@
|
||||
"aix",
|
||||
"bsd",
|
||||
"haiku",
|
||||
"ios",
|
||||
"linux",
|
||||
"macosx",
|
||||
"solaris",
|
||||
|
@ -34,6 +34,7 @@
|
||||
premake.CSHARP = "C#"
|
||||
premake.GCC = "gcc"
|
||||
premake.HAIKU = "haiku"
|
||||
premake.IOS = "ios"
|
||||
premake.LINUX = "linux"
|
||||
premake.MACOSX = "macosx"
|
||||
premake.MAKEFILE = "Makefile"
|
||||
|
Loading…
Reference in New Issue
Block a user