correction of the macOs app generation tree
This commit is contained in:
parent
0e6c61e2ed
commit
f1916e0a62
@ -246,7 +246,7 @@ class ExtProjectGeneratorXCode(lutinExtProjectGenerator.ExtProjectGenerator):
|
|||||||
realBasePath = realBasePath[:-1]
|
realBasePath = realBasePath[:-1]
|
||||||
debug.debug("add data file : " + str(srcList))
|
debug.debug("add data file : " + str(srcList))
|
||||||
for realName,destName in srcList:
|
for realName,destName in srcList:
|
||||||
tools.copy_file(realBasePath+'/'+realName, 'out/iOs/' + self.name + '.xcodeproj/data/' + destName, force=True)
|
tools.copy_file(realBasePath+'/'+realName, 'out/iOs/' + self.name + '/data/' + destName, force=True)
|
||||||
self.add_files("data", 'out/iOs/' + self.name + 'xcodeprj/data', [destName])
|
self.add_files("data", 'out/iOs/' + self.name + 'xcodeprj/data', [destName])
|
||||||
|
|
||||||
def add_data_folder(self, basePath, srcList):
|
def add_data_folder(self, basePath, srcList):
|
||||||
|
@ -122,7 +122,8 @@ class Module:
|
|||||||
# create the command line befor requesting start:
|
# create the command line befor requesting start:
|
||||||
cmdLine=lutinTools.list_to_str([
|
cmdLine=lutinTools.list_to_str([
|
||||||
target.xx,
|
target.xx,
|
||||||
"-o", file_dst ,
|
"-o", file_dst,
|
||||||
|
target.sysroot,
|
||||||
target.global_include_cc,
|
target.global_include_cc,
|
||||||
lutinTools.add_prefix("-I",self.export_path),
|
lutinTools.add_prefix("-I",self.export_path),
|
||||||
lutinTools.add_prefix("-I",self.local_path),
|
lutinTools.add_prefix("-I",self.local_path),
|
||||||
@ -156,6 +157,7 @@ class Module:
|
|||||||
cmdLine=lutinTools.list_to_str([
|
cmdLine=lutinTools.list_to_str([
|
||||||
target.cc,
|
target.cc,
|
||||||
"-o", file_dst ,
|
"-o", file_dst ,
|
||||||
|
target.sysroot,
|
||||||
target.global_include_cc,
|
target.global_include_cc,
|
||||||
lutinTools.add_prefix("-I",self.export_path),
|
lutinTools.add_prefix("-I",self.export_path),
|
||||||
lutinTools.add_prefix("-I",self.local_path),
|
lutinTools.add_prefix("-I",self.local_path),
|
||||||
@ -188,7 +190,8 @@ class Module:
|
|||||||
# create the command line befor requesting start:
|
# create the command line befor requesting start:
|
||||||
cmdLine=lutinTools.list_to_str([
|
cmdLine=lutinTools.list_to_str([
|
||||||
target.xx,
|
target.xx,
|
||||||
"-o", file_dst ,
|
"-o", file_dst,
|
||||||
|
target.sysroot,
|
||||||
target.global_include_cc,
|
target.global_include_cc,
|
||||||
lutinTools.add_prefix("-I",self.export_path),
|
lutinTools.add_prefix("-I",self.export_path),
|
||||||
lutinTools.add_prefix("-I",self.local_path),
|
lutinTools.add_prefix("-I",self.local_path),
|
||||||
@ -221,6 +224,7 @@ class Module:
|
|||||||
cmdLine=lutinTools.list_to_str([
|
cmdLine=lutinTools.list_to_str([
|
||||||
target.cc,
|
target.cc,
|
||||||
"-o", file_dst,
|
"-o", file_dst,
|
||||||
|
target.sysroot,
|
||||||
target.global_include_cc,
|
target.global_include_cc,
|
||||||
lutinTools.add_prefix("-I",self.export_path),
|
lutinTools.add_prefix("-I",self.export_path),
|
||||||
lutinTools.add_prefix("-I",self.local_path),
|
lutinTools.add_prefix("-I",self.local_path),
|
||||||
@ -328,6 +332,7 @@ class Module:
|
|||||||
cmdLine=lutinTools.list_to_str([
|
cmdLine=lutinTools.list_to_str([
|
||||||
target.xx,
|
target.xx,
|
||||||
"-o", file_dst,
|
"-o", file_dst,
|
||||||
|
target.sysroot,
|
||||||
target.global_sysroot,
|
target.global_sysroot,
|
||||||
file_src,
|
file_src,
|
||||||
depancy.src,
|
depancy.src,
|
||||||
@ -417,6 +422,10 @@ class Module:
|
|||||||
or fileExt == "MM":
|
or fileExt == "MM":
|
||||||
resFile = self.compile_mm_to_o(file, packageName, target, subHeritage)
|
resFile = self.compile_mm_to_o(file, packageName, target, subHeritage)
|
||||||
listSubFileNeededTobuild.append(resFile)
|
listSubFileNeededTobuild.append(resFile)
|
||||||
|
elif fileExt == "m" \
|
||||||
|
or fileExt == "M":
|
||||||
|
resFile = self.compile_m_to_o(file, packageName, target, subHeritage)
|
||||||
|
listSubFileNeededTobuild.append(resFile)
|
||||||
else:
|
else:
|
||||||
debug.verbose(" TODO : gcc " + self.originFolder + "/" + file)
|
debug.verbose(" TODO : gcc " + self.originFolder + "/" + file)
|
||||||
# when multiprocess availlable, we need to synchronize here ...
|
# when multiprocess availlable, we need to synchronize here ...
|
||||||
@ -675,11 +684,12 @@ class Module:
|
|||||||
debug.verbose("add a module to the project generator :" + self.name)
|
debug.verbose("add a module to the project generator :" + self.name)
|
||||||
debug.verbose("local path :" + self.originFolder)
|
debug.verbose("local path :" + self.originFolder)
|
||||||
projectMng.add_files(self.name, self.originFolder, self.src)
|
projectMng.add_files(self.name, self.originFolder, self.src)
|
||||||
projectMng.add_data_file(self.originFolder, self.files)
|
#projectMng.add_data_file(self.originFolder, self.files)
|
||||||
projectMng.add_data_folder(self.originFolder, self.folders)
|
#projectMng.add_data_folder(self.originFolder, self.folders)
|
||||||
|
"""
|
||||||
for depend in self.depends:
|
for depend in self.depends:
|
||||||
target.project_add_module(depend, projectMng, addedModule)
|
target.project_add_module(depend, projectMng, addedModule)
|
||||||
|
"""
|
||||||
|
|
||||||
def create_project(self, target, projectMng):
|
def create_project(self, target, projectMng):
|
||||||
projectMng.set_project_name(self.name)
|
projectMng.set_project_name(self.name)
|
||||||
@ -712,6 +722,7 @@ def load_module(target, name):
|
|||||||
for mod in moduleList:
|
for mod in moduleList:
|
||||||
if mod[0] == name:
|
if mod[0] == name:
|
||||||
sys.path.append(os.path.dirname(mod[1]))
|
sys.path.append(os.path.dirname(mod[1]))
|
||||||
|
debug.verbose("import module : '" + __startModuleName + name + "'")
|
||||||
theModule = __import__(__startModuleName + name)
|
theModule = __import__(__startModuleName + name)
|
||||||
#try:
|
#try:
|
||||||
tmpElement = theModule.create(target)
|
tmpElement = theModule.create(target)
|
||||||
|
@ -77,6 +77,8 @@ class Target:
|
|||||||
# output staging files list :
|
# output staging files list :
|
||||||
self.listFinalFile=[]
|
self.listFinalFile=[]
|
||||||
|
|
||||||
|
self.sysroot=""
|
||||||
|
|
||||||
self.externProjectManager = None
|
self.externProjectManager = None
|
||||||
|
|
||||||
def set_use_of_extern_build_tool(self, mode):
|
def set_use_of_extern_build_tool(self, mode):
|
||||||
|
@ -14,7 +14,7 @@ class Target(lutinTarget.Target):
|
|||||||
# http://devs.openttd.org/~truebrain/compile-farm/apple-darwin9.txt
|
# http://devs.openttd.org/~truebrain/compile-farm/apple-darwin9.txt
|
||||||
lutinTarget.Target.__init__(self, "IOs", typeCompilator, debugMode, generatePackage, "", cross)
|
lutinTarget.Target.__init__(self, "IOs", typeCompilator, debugMode, generatePackage, "", cross)
|
||||||
|
|
||||||
self.folder_bin="/IOS"
|
self.folder_bin=""
|
||||||
self.folder_lib="/lib"
|
self.folder_lib="/lib"
|
||||||
self.folder_data="/Resources"
|
self.folder_data="/Resources"
|
||||||
self.folder_doc="/doc"
|
self.folder_doc="/doc"
|
||||||
@ -24,12 +24,17 @@ class Target(lutinTarget.Target):
|
|||||||
self.suffix_binary=''
|
self.suffix_binary=''
|
||||||
self.suffix_package=''
|
self.suffix_package=''
|
||||||
|
|
||||||
|
self.sysroot = "-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk"
|
||||||
|
|
||||||
|
self.global_flags_ld.append("-mios-simulator-version-min=7.0")
|
||||||
|
self.global_flags_cc.append("-mios-simulator-version-min=7.0")
|
||||||
|
|
||||||
#add a project generator:
|
#add a project generator:
|
||||||
self.externProjectManager = lutinExtProjectGeneratorXCode.ExtProjectGeneratorXCode()
|
#self.externProjectManager = lutinExtProjectGeneratorXCode.ExtProjectGeneratorXCode()
|
||||||
|
|
||||||
|
|
||||||
def get_staging_folder(self, binaryName):
|
def get_staging_folder(self, binaryName):
|
||||||
return lutinTools.get_run_folder() + self.folder_out + self.folder_staging + "/" + binaryName + ".app/Contents/"
|
return lutinTools.get_run_folder() + self.folder_out + self.folder_staging + "/" + binaryName + ".app/"
|
||||||
|
|
||||||
def get_staging_folder_data(self, binaryName):
|
def get_staging_folder_data(self, binaryName):
|
||||||
return self.get_staging_folder(binaryName) + self.folder_data + "/"
|
return self.get_staging_folder(binaryName) + self.folder_data + "/"
|
||||||
@ -50,26 +55,119 @@ class Target(lutinTarget.Target):
|
|||||||
tmpFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
|
tmpFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
|
||||||
tmpFile.write("<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n")
|
tmpFile.write("<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n")
|
||||||
tmpFile.write("<plist version=\"1.0\">\n")
|
tmpFile.write("<plist version=\"1.0\">\n")
|
||||||
tmpFile.write(" <dict>\n")
|
tmpFile.write(" <dict>\n")
|
||||||
tmpFile.write(" <key>CFBundleExecutableFile</key>\n")
|
tmpFile.write(" <key>CFBundleDevelopmentRegion</key>\n")
|
||||||
tmpFile.write(" <string>"+pkgName+"</string>\n")
|
tmpFile.write(" <string>en</string>\n")
|
||||||
tmpFile.write(" <key>CFBundleName</key>\n")
|
tmpFile.write(" <key>CFBundleDisplayName</key>\n")
|
||||||
tmpFile.write(" <string>"+pkgName+"</string>\n")
|
tmpFile.write(" <string>" + pkgProperties["NAME"] + "</string>\n")
|
||||||
tmpFile.write(" <key>CFBundleIdentifier</key>\n")
|
tmpFile.write(" <key>CFBundleExecutable</key>\n")
|
||||||
tmpFile.write(" <string>com."+pkgProperties["COMPAGNY_NAME2"]+"."+pkgName+"</string>\n")
|
tmpFile.write(" <string>" + pkgName + "</string>\n")
|
||||||
tmpFile.write(" <key>CFBundleIconFile</key>\n")
|
tmpFile.write(" <key>CFBundleIdentifier</key>\n")
|
||||||
tmpFile.write(" <string>icon.icns</string>\n")
|
tmpFile.write(" <string>com." + pkgProperties["COMPAGNY_NAME2"] + "." + pkgName + "</string>\n")
|
||||||
|
"""
|
||||||
|
tmpFile.write(" <key>CFBundleIconFile</key>\n")
|
||||||
|
tmpFile.write(" <string>icon.icns</string>\n")
|
||||||
|
"""
|
||||||
|
tmpFile.write(" <key>CFBundleInfoDictionaryVersion</key>\n")
|
||||||
|
tmpFile.write(" <string>6.0</string>\n")
|
||||||
|
tmpFile.write(" <key>CFBundleName</key>\n")
|
||||||
|
tmpFile.write(" <string>projectName</string>\n")
|
||||||
|
tmpFile.write(" <key>CFBundlePackageType</key>\n")
|
||||||
|
tmpFile.write(" <string>APPL</string>\n")
|
||||||
|
tmpFile.write(" <key>CFBundleShortVersionString</key>\n")
|
||||||
|
tmpFile.write(" <string>1.0</string>\n")
|
||||||
|
tmpFile.write(" <key>CFBundleSignature</key>\n")
|
||||||
|
tmpFile.write(" <string>????</string>\n")
|
||||||
|
"""
|
||||||
|
tmpFile.write(" <key>CFBundleSupportedPlatforms</key>\n")
|
||||||
|
tmpFile.write(" <array>\n")
|
||||||
|
tmpFile.write(" <string>iPhoneSimulator</string>\n")
|
||||||
|
tmpFile.write(" </array>\n")
|
||||||
|
tmpFile.write(" <key>CFBundleVersion</key>\n")
|
||||||
|
tmpFile.write(" <string>1.0</string>\n")
|
||||||
|
tmpFile.write(" <key>DTPlatformName</key>\n")
|
||||||
|
tmpFile.write(" <string>iphonesimulator</string>\n")
|
||||||
|
tmpFile.write(" <key>DTSDKName</key>\n")
|
||||||
|
tmpFile.write(" <string>iphonesimulator7.0</string>\n")
|
||||||
|
tmpFile.write(" <key>LSRequiresIPhoneOS</key>\n")
|
||||||
|
tmpFile.write(" <true/>\n")
|
||||||
|
tmpFile.write(" <key>UIDeviceFamily</key>\n")
|
||||||
|
tmpFile.write(" <array>\n")
|
||||||
|
tmpFile.write(" <integer>1</integer>\n")
|
||||||
|
tmpFile.write(" <integer>2</integer>\n")
|
||||||
|
tmpFile.write(" </array>\n")
|
||||||
|
"""
|
||||||
|
"""
|
||||||
|
tmpFile.write(" <key>UILaunchImages</key>\n")
|
||||||
|
tmpFile.write(" <array>\n")
|
||||||
|
tmpFile.write(" <dict>\n")
|
||||||
|
tmpFile.write(" <key>UILaunchImageMinimumOSVersion</key>\n")
|
||||||
|
tmpFile.write(" <string>7.0</string>\n")
|
||||||
|
tmpFile.write(" <key>UILaunchImageName</key>\n")
|
||||||
|
tmpFile.write(" <string>LaunchImage-700-568h</string>\n")
|
||||||
|
tmpFile.write(" <key>UILaunchImageOrientation</key>\n")
|
||||||
|
tmpFile.write(" <string>Portrait</string>\n")
|
||||||
|
tmpFile.write(" <key>UILaunchImageSize</key>\n")
|
||||||
|
tmpFile.write(" <string>{320, 568}</string>\n")
|
||||||
|
tmpFile.write(" </dict>\n")
|
||||||
|
tmpFile.write(" </array>\n")
|
||||||
|
"""
|
||||||
|
"""
|
||||||
|
tmpFile.write(" <key>UIMainStoryboardFile</key>\n")
|
||||||
|
tmpFile.write(" <string>Main_iPhone</string>\n")
|
||||||
|
tmpFile.write(" <key>UIMainStoryboardFile~ipad</key>\n")
|
||||||
|
tmpFile.write(" <string>Main_iPad</string>\n")
|
||||||
|
"""
|
||||||
|
"""
|
||||||
|
tmpFile.write(" <key>UIRequiredDeviceCapabilities</key>\n")
|
||||||
|
tmpFile.write(" <array>\n")
|
||||||
|
tmpFile.write(" <string>armv7</string>\n")
|
||||||
|
tmpFile.write(" </array>\n")
|
||||||
|
tmpFile.write(" <key>UIStatusBarHidden</key>\n")
|
||||||
|
tmpFile.write(" <true/>\n")
|
||||||
|
tmpFile.write(" <key>UISupportedInterfaceOrientations</key>\n")
|
||||||
|
tmpFile.write(" <array>\n")
|
||||||
|
tmpFile.write(" <string>UIInterfaceOrientationPortrait</string>\n")
|
||||||
|
tmpFile.write(" <string>UIInterfaceOrientationLandscapeLeft</string>\n")
|
||||||
|
tmpFile.write(" <string>UIInterfaceOrientationLandscapeRight</string>\n")
|
||||||
|
tmpFile.write(" </array>\n")
|
||||||
|
tmpFile.write(" <key>UISupportedInterfaceOrientations~ipad</key>\n")
|
||||||
|
tmpFile.write(" <array>\n")
|
||||||
|
tmpFile.write(" <string>UIInterfaceOrientationPortrait</string>\n")
|
||||||
|
tmpFile.write(" <string>UIInterfaceOrientationPortraitUpsideDown</string>\n")
|
||||||
|
tmpFile.write(" <string>UIInterfaceOrientationLandscapeLeft</string>\n")
|
||||||
|
tmpFile.write(" <string>UIInterfaceOrientationLandscapeRight</string>\n")
|
||||||
|
tmpFile.write(" </array>\n")
|
||||||
|
"""
|
||||||
tmpFile.write(" </dict>\n")
|
tmpFile.write(" </dict>\n")
|
||||||
tmpFile.write("</plist>\n")
|
tmpFile.write("</plist>\n")
|
||||||
tmpFile.write("\n\n")
|
tmpFile.write("\n\n")
|
||||||
tmpFile.flush()
|
tmpFile.flush()
|
||||||
tmpFile.close()
|
tmpFile.close()
|
||||||
|
"""
|
||||||
|
builtin-infoPlistUtility
|
||||||
|
/Users/edouarddupin/dev/exampleProjectXcode/projectName/projectName/projectName-Info.plist
|
||||||
|
-genpkginfo
|
||||||
|
/Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Products/Debug-iphonesimulator/projectName.app/PkgInfo
|
||||||
|
-expandbuildsettings
|
||||||
|
-format binary
|
||||||
|
-platform iphonesimulator
|
||||||
|
-additionalcontentfile /Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Intermediates/projectName.build/Debug-iphonesimulator/projectName.build/assetcatalog_generated_info.plist
|
||||||
|
-o /Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Products/Debug-iphonesimulator/projectName.app/Info.plist
|
||||||
|
"""
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Products/Debug-iphonesimulator/projectName.app/projectName -o /Users/edouarddupin/Library/Developer/Xcode/DerivedData/projectName-gwycnyyzohokcmalgodeucqppxro/Build/Products/Debug-iphonesimulator/projectName.app.dSYM
|
||||||
|
|
||||||
infoFile=self.get_staging_folder(pkgName) + "/PkgInfo"
|
infoFile=self.get_staging_folder(pkgName) + "/PkgInfo"
|
||||||
# Create the info file
|
# Create the info file
|
||||||
tmpFile = open(infoFile, 'w')
|
tmpFile = open(infoFile, 'w')
|
||||||
tmpFile.write("APPL?????")
|
tmpFile.write("APPL????")
|
||||||
tmpFile.flush()
|
tmpFile.flush()
|
||||||
tmpFile.close()
|
tmpFile.close()
|
||||||
|
# Simulateur folder :
|
||||||
|
#~/Library/Application\ Support/iPhone\ Simulator/7.0.3/Applications/
|
||||||
|
# must have a 'uuidgen' UID generate value with this elemennt ...
|
||||||
|
# get the bundle path : ==> maybe usefull in MocOS ...
|
||||||
|
# NSLog(@"%@",[[NSBundle mainBundle] bundlePath]);
|
||||||
|
|
||||||
# Must create the tarball of the application
|
# Must create the tarball of the application
|
||||||
#cd $(TARGET_OUT_FINAL)/; tar -cf $(PROJECT_NAME).tar $(PROJECT_NAME).app
|
#cd $(TARGET_OUT_FINAL)/; tar -cf $(PROJECT_NAME).tar $(PROJECT_NAME).app
|
||||||
|
@ -53,6 +53,8 @@ class Target(lutinTarget.Target):
|
|||||||
tmpFile.write(" <string>"+pkgName+"</string>\n")
|
tmpFile.write(" <string>"+pkgName+"</string>\n")
|
||||||
tmpFile.write(" <key>CFBundleIdentifier</key>\n")
|
tmpFile.write(" <key>CFBundleIdentifier</key>\n")
|
||||||
tmpFile.write(" <string>com."+pkgProperties["COMPAGNY_NAME2"]+"."+pkgName+"</string>\n")
|
tmpFile.write(" <string>com."+pkgProperties["COMPAGNY_NAME2"]+"."+pkgName+"</string>\n")
|
||||||
|
tmpFile.write(" <key>CFBundleSignature</key>\n")
|
||||||
|
tmpFile.write(" <string>????</string>\n")
|
||||||
tmpFile.write(" <key>CFBundleIconFile</key>\n")
|
tmpFile.write(" <key>CFBundleIconFile</key>\n")
|
||||||
tmpFile.write(" <string>icon.icns</string>\n")
|
tmpFile.write(" <string>icon.icns</string>\n")
|
||||||
tmpFile.write(" </dict>\n")
|
tmpFile.write(" </dict>\n")
|
||||||
@ -63,7 +65,7 @@ class Target(lutinTarget.Target):
|
|||||||
infoFile=self.get_staging_folder(pkgName) + "/PkgInfo"
|
infoFile=self.get_staging_folder(pkgName) + "/PkgInfo"
|
||||||
# Create the info file
|
# Create the info file
|
||||||
tmpFile = open(infoFile, 'w')
|
tmpFile = open(infoFile, 'w')
|
||||||
tmpFile.write("APPL?????")
|
tmpFile.write("APPL????")
|
||||||
tmpFile.flush()
|
tmpFile.flush()
|
||||||
tmpFile.close()
|
tmpFile.close()
|
||||||
|
|
||||||
|
1403
xcodeprojExporter.py
Normal file
1403
xcodeprojExporter.py
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user