correction of the macOs app generation tree

This commit is contained in:
Edouard DUPIN 2014-03-02 17:29:21 +01:00
parent 0e6c61e2ed
commit f1916e0a62
6 changed files with 1536 additions and 20 deletions

View File

@ -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):

View File

@ -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)

View File

@ -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):

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff