diff --git a/lutin/image.py b/lutin/image.py
index 46de944..e245d7f 100644
--- a/lutin/image.py
+++ b/lutin/image.py
@@ -40,7 +40,7 @@ def resize(src_file, dest_file, x, y, cmd_file=None):
if os.path.exists(src_file) == False:
debug.error("Request a resize an image that does not existed : '" + src_file + "'")
cmd_line = "resize Image : " + src_file + " ==> " + dest_file + " newSize=(" + str(x) + "x" + str(y) + ")"
- if False==depend.need_re_build(dest_file, src_file, file_cmd=cmd_file , cmd_line=cmd_line):
+ if depend.need_re_build(dest_file, src_file, file_cmd=cmd_file , cmd_line=cmd_line) == False:
return
# add cmdLine ...
x = get_pow_2_multiple(x)
diff --git a/lutin/module.py b/lutin/module.py
index 5bedb76..034c419 100644
--- a/lutin/module.py
+++ b/lutin/module.py
@@ -476,26 +476,29 @@ class Module:
package_name,
target,
self.sub_heritage_list,
+ flags = self.flags,
name = self.name,
basic_path = self.origin_path)
self.local_heritage.add_lib_static(res_file)
except ValueError:
debug.error(" UN-SUPPORTED link format: '.a'")
- if self.type == 'LIBRARY' \
- or self.type == 'LIBRARY_DYNAMIC':
- try:
- tmp_builder = builder.get_builder_with_output("so");
- list_file = tools.filter_extention(list_sub_file_needed_to_build, tmp_builder.get_input_type())
- if len(list_file) > 0:
- res_file = tmp_builder.link(list_file,
- package_name,
- target,
- self.sub_heritage_list,
- name = self.name,
- basic_path = self.origin_path)
- self.local_heritage.add_lib_dynamic(res_file)
- except ValueError:
- debug.error(" UN-SUPPORTED link format: '.so'/'.dynlib'/'.dll'")
+ if target.support_dynamic_link == True:
+ if self.type == 'LIBRARY' \
+ or self.type == 'LIBRARY_DYNAMIC':
+ try:
+ tmp_builder = builder.get_builder_with_output("so");
+ list_file = tools.filter_extention(list_sub_file_needed_to_build, tmp_builder.get_input_type())
+ if len(list_file) > 0:
+ res_file = tmp_builder.link(list_file,
+ package_name,
+ target,
+ self.sub_heritage_list,
+ flags = self.flags,
+ name = self.name,
+ basic_path = self.origin_path)
+ self.local_heritage.add_lib_dynamic(res_file)
+ except ValueError:
+ debug.error(" UN-SUPPORTED link format: '.so'/'.dynlib'/'.dll'")
try:
tmp_builder = builder.get_builder_with_output("jar");
list_file = tools.filter_extention(list_sub_file_needed_to_build, tmp_builder.get_input_type())
@@ -504,6 +507,7 @@ class Module:
package_name,
target,
self.sub_heritage_list,
+ flags = self.flags,
name = self.name,
basic_path = self.origin_path)
self.local_heritage.add_lib_interpreted('java', res_file)
@@ -513,7 +517,7 @@ class Module:
or self.type == 'BINARY_SHARED' \
or self.type == 'BINARY_STAND_ALONE':
shared_mode = False
- if target.name=="Android":
+ if target.name == "Android":
debug.warning("Android mode ...")
# special case for android ...
for elem in self.sub_heritage_list.src['src']:
@@ -523,8 +527,9 @@ class Module:
shared_mode = True
break;
static_mode = True
- if self.type == 'BINARY_SHARED':
- static_mode = False
+ if target.support_dynamic_link == True:
+ if self.type == 'BINARY_SHARED':
+ static_mode = False
if shared_mode == True:
try:
tmp_builder = builder.get_builder_with_output("so");
@@ -533,6 +538,7 @@ class Module:
package_name,
target,
self.sub_heritage_list,
+ flags = self.flags,
name = self.name,
basic_path = self.origin_path,
static = static_mode)
@@ -547,6 +553,7 @@ class Module:
package_name,
target,
self.sub_heritage_list,
+ flags = self.flags,
name = self.name,
basic_path = self.origin_path)
self.local_heritage.add_sources(res_file)
@@ -559,13 +566,14 @@ class Module:
package_name,
target,
self.sub_heritage_list,
+ flags = self.flags,
name = self.name,
basic_path = self.origin_path,
static = static_mode)
except ValueError:
debug.error(" UN-SUPPORTED link format: '.bin'")
elif self.type == "PACKAGE":
- if target.name=="Android":
+ if target.name == "Android":
# special case for android wrapper:
try:
tmp_builder = builder.get_builder_with_output("so");
@@ -574,6 +582,7 @@ class Module:
package_name,
target,
self.sub_heritage_list,
+ flags = self.flags,
name = "lib" + self.name,
basic_path = self.origin_path)
self.local_heritage.add_sources(res_file)
@@ -587,6 +596,7 @@ class Module:
package_name,
target,
self.sub_heritage_list,
+ flags = self.flags,
name = self.name,
basic_path = self.origin_path)
self.local_heritage.add_sources(res_file)
@@ -599,6 +609,7 @@ class Module:
package_name,
target,
self.sub_heritage_list,
+ flags = self.flags,
name = self.name,
basic_path = self.origin_path)
except ValueError:
diff --git a/lutin/target.py b/lutin/target.py
index ced3c61..df48553 100644
--- a/lutin/target.py
+++ b/lutin/target.py
@@ -134,6 +134,8 @@ class Target:
self.pkg_path_readme_file = "readme.txt"
self.pkg_path_change_log_file = "changelog.txt"
+ # special case for IOS (example) no build dynamicly ...
+ self.support_dynamic_link = True
def update_path_tree(self):
self.path_out = os.path.join("out", self.name + "_" + self.config["arch"] + "_" + self.config["bus-size"], self.config["mode"])
@@ -531,9 +533,9 @@ class Target:
return
if module.get_type() == 'BINARY' \
or module.get_type() == 'BINARY_STAND_ALONE':
- self.make_package_generic_binary(pkg_name, pkg_properties, base_pkg_path, heritage_list, static = True)
+ self.make_package_binary(pkg_name, pkg_properties, base_pkg_path, heritage_list, static = True)
if module.get_type() == 'BINARY_SHARED':
- self.make_package_generic_binary(pkg_name, pkg_properties, base_pkg_path, heritage_list, static = False)
+ self.make_packages_binary(pkg_name, pkg_properties, base_pkg_path, heritage_list, static = False)
if module.get_type() == 'PACKAGE':
debug.info("Can not create package for package");
return
diff --git a/lutin/z_builder/lutinBuilder_binary.py b/lutin/z_builder/lutinBuilder_binary.py
index 1a5efe4..ed9a616 100644
--- a/lutin/z_builder/lutinBuilder_binary.py
+++ b/lutin/z_builder/lutinBuilder_binary.py
@@ -40,7 +40,7 @@ def get_output_type():
##
## @brief Commands for running gcc to link an executable.
##
-def link(file, binary, target, depancy, name, basic_path, static = False):
+def link(file, binary, target, depancy, flags, name, basic_path, static = False):
file_src, file_dst, file_depend, file_cmd, file_warning = target.generate_file(binary, name, basic_path, file, "bin")
debug.extreme_verbose("list files = " + str(depancy.src))
list_static = []
diff --git a/lutin/z_builder/lutinBuilder_libraryDynamic.py b/lutin/z_builder/lutinBuilder_libraryDynamic.py
index bb28c4c..e59f391 100644
--- a/lutin/z_builder/lutinBuilder_libraryDynamic.py
+++ b/lutin/z_builder/lutinBuilder_libraryDynamic.py
@@ -38,7 +38,7 @@ def get_output_type():
##
## @brief Commands for running gcc to link a shared library.
##
-def link(file, binary, target, depancy, name, basic_path, static=False):
+def link(file, binary, target, depancy, flags, name, basic_path, static=False):
file_src, file_dst, file_depend, file_cmd, file_warning = target.generate_file(binary, name, basic_path, file, "lib-shared")
list_static = []
list_dynamic = []
@@ -101,6 +101,10 @@ def link(file, binary, target, depancy, name, basic_path, static=False):
cmd.append(flags["local"]["link"])
except:
pass
+ try:
+ cmd.append(flags["export"]["link"])
+ except:
+ pass
try:
cmd.append(depancy.flags["link"])
except:
diff --git a/lutin/z_builder/lutinBuilder_libraryStatic.py b/lutin/z_builder/lutinBuilder_libraryStatic.py
index 4411b84..7bb51d5 100644
--- a/lutin/z_builder/lutinBuilder_libraryStatic.py
+++ b/lutin/z_builder/lutinBuilder_libraryStatic.py
@@ -38,7 +38,7 @@ def get_output_type():
##
## @brief Commands for running ar.
##
-def link(file, binary, target, depancy, name, basic_path):
+def link(file, binary, target, depancy, flags, name, basic_path):
file_src, file_dst, file_depend, file_cmd, file_warning = target.generate_file(binary, name, basic_path, file, "lib-static")
#$(Q)$(TARGET_AR) $(TARGET_GLOBAL_ARFLAGS) $(PRIVATE_ARFLAGS) $@ $(PRIVATE_ALL_OBJECTS)
cmd = [
diff --git a/lutin/z_target/lutinTarget_Android.py b/lutin/z_target/lutinTarget_Android.py
index 108cf56..d4a8f5b 100644
--- a/lutin/z_target/lutinTarget_Android.py
+++ b/lutin/z_target/lutinTarget_Android.py
@@ -213,7 +213,7 @@ class Target(target.Target):
return self.get_staging_path(binary_name) + self.path_data
"""
- def make_package_generic_binary(self, pkg_name, pkg_properties, base_pkg_path, heritage_list, static):
+ def make_package_binary(self, pkg_name, pkg_properties, base_pkg_path, heritage_list, static):
debug.debug("------------------------------------------------------------------------")
debug.info("Generate package '" + pkg_name + "' v" + tools.version_to_string(pkg_properties["VERSION"]))
debug.debug("------------------------------------------------------------------------")
diff --git a/lutin/z_target/lutinTarget_IOs.py b/lutin/z_target/lutinTarget_IOs.py
index e454b57..5f4a2b1 100644
--- a/lutin/z_target/lutinTarget_IOs.py
+++ b/lutin/z_target/lutinTarget_IOs.py
@@ -82,6 +82,8 @@ class Target(target.Target):
self.pkg_path_lib = "lib"
self.pkg_path_license = "license"
+ # Disable capabiliteis to compile in shared mode
+ self.support_dynamic_link = False
def make_package_binary(self, pkg_name, pkg_properties, base_pkg_path, heritage_list, static):
debug.debug("------------------------------------------------------------------------")
@@ -109,23 +111,23 @@ class Target(target.Target):
# Resize all icon needed for Ios ...
# TODO : Do not regenerate if source resource is not availlable
# TODO : Add a colored background ...
- debug.print_element("pkg", "iTunesArtwork.png", "<==", pkg_properties["ICON"])
+ debug.print_element("pkg", os.path.relpath(pkg_properties["ICON"]), "==>", "iTunesArtwork.png")
image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "iTunesArtwork.png"), 512, 512)
- debug.print_element("pkg", "iTunesArtwork@2x.png", "<==", pkg_properties["ICON"])
+ debug.print_element("pkg", os.path.relpath(pkg_properties["ICON"]), "==>", "iTunesArtwork@2x.png")
image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "iTunesArtwork@2x.png"), 1024, 1024)
- debug.print_element("pkg", "Icon-60@2x.png", "<==", pkg_properties["ICON"])
+ debug.print_element("pkg", os.path.relpath(pkg_properties["ICON"]), "==>", "Icon-60@2x.png")
image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "Icon-60@2x.png"), 120, 120)
- debug.print_element("pkg", "Icon-76.png", "<==", pkg_properties["ICON"])
+ debug.print_element("pkg", os.path.relpath(pkg_properties["ICON"]), "==>", "Icon-76.png")
image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "Icon-76.png"), 76, 76)
- debug.print_element("pkg", "Icon-76@2x.png", "<==", pkg_properties["ICON"])
+ debug.print_element("pkg", os.path.relpath(pkg_properties["ICON"]), "==>", "Icon-76@2x.png")
image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "Icon-76@2x.png"), 152, 152)
- debug.print_element("pkg", "Icon-Small-40.png", "<==", pkg_properties["ICON"])
+ debug.print_element("pkg", os.path.relpath(pkg_properties["ICON"]), "==>", "Icon-Small-40.png")
image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "Icon-Small-40.png"), 40, 40)
- debug.print_element("pkg", "Icon-Small-40@2x.png", "<==", pkg_properties["ICON"])
+ debug.print_element("pkg", os.path.relpath(pkg_properties["ICON"]), "==>", "Icon-Small-40@2x.png")
image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "Icon-Small-40@2x.png"), 80, 80)
- debug.print_element("pkg", "Icon-Small.png", "<==", pkg_properties["ICON"])
+ debug.print_element("pkg", os.path.relpath(pkg_properties["ICON"]), "==>", "Icon-Small.png")
image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "Icon-Small.png"), 29, 29)
- debug.print_element("pkg", "Icon-Small@2x.png", "<==", pkg_properties["ICON"])
+ debug.print_element("pkg", os.path.relpath(pkg_properties["ICON"]), "==>", "Icon-Small@2x.png")
image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "Icon-Small@2x.png"), 58, 58)
## Create the info file:
@@ -177,9 +179,9 @@ class Target(target.Target):
data_file += " \n"
data_file += " \n"
data_file += " CFBundleShortVersionString\n"
- data_file += " "+pkg_properties["VERSION"]+"\n"
+ data_file += " "+tools.version_to_string(pkg_properties["VERSION"])+"\n"
data_file += " CFBundleVersion\n"
- data_file += " "+pkg_properties["VERSION_CODE"]+"\n"
+ data_file += " "+str(pkg_properties["VERSION_CODE"])+"\n"
data_file += " \n"
data_file += " CFBundleResourceSpecification\n"
data_file += " ResourceRules.plist\n"
@@ -312,8 +314,10 @@ class Target(target.Target):
# Must create the tarball of the application
#cd $(TARGET_OUT_FINAL)/; tar -cf $(PROJECT_NAME).tar $(PROJECT_NAME).app
#cd $(TARGET_OUT_FINAL)/; tar -czf $(PROJECT_NAME).tar.gz $(PROJECT_NAME).app
-
if self.sumulator == False:
+ if "APPLE_APPLICATION_IOS_ID" not in pkg_properties:
+ pkg_properties["APPLE_APPLICATION_IOS_ID"] = "00000000"
+ debug.warning("Missing package property : APPLE_APPLICATION_IOS_ID USE " + pkg_properties["APPLE_APPLICATION_IOS_ID"] + " ID ... ==> CAN NOT WORK ..." )
# Create the info file
tmpFile = open(os.path.join(target_outpath, pkg_name + ".xcent"), 'w')
tmpFile.write("\n")
@@ -321,15 +325,12 @@ class Target(target.Target):
tmpFile.write("\n")
tmpFile.write(" \n")
tmpFile.write(" application-identifier\n")
- try:
- tmpFile.write(" " + pkg_properties["APPLE_APPLICATION_IOS_ID"] + "." + pkg_properties["COMPAGNY_TYPE"] + "." + pkg_properties["COMPAGNY_NAME2"] + "." + pkg_name + "\n")
- except:
- debug.error("Missing package property : APPLE_APPLICATION_IOS_ID")
+ tmpFile.write(" " + pkg_properties["APPLE_APPLICATION_IOS_ID"] + "." + pkg_properties["COMPAGNY_TYPE"] + "." + pkg_properties["COMPAGNY_NAME2"] + "." + pkg_name + "\n")
tmpFile.write(" get-task-allow\n")
tmpFile.write(" \n")
tmpFile.write(" keychain-access-groups\n")
tmpFile.write(" \n")
- tmpFile.write(" " + pkg_properties["APPLE_APPLICATION_IOS_ID"] + ".atriasoft.worddown\n")
+ tmpFile.write(" " + pkg_properties["APPLE_APPLICATION_IOS_ID"] + "." + pkg_properties["COMPAGNY_TYPE"] + "." + pkg_properties["COMPAGNY_NAME2"] + "." + pkg_name + "\n")
tmpFile.write(" \n")
tmpFile.write(" \n")
tmpFile.write("\n")
@@ -342,18 +343,12 @@ class Target(target.Target):
debug.error("To sign an application we need to have a signing key in the file '" + iosDevelopperKeyFile + "' \n it is represented like: 'iPhone Developer: Francis DUGENOUX (YRRQE5KGTH)'\n you can obtain it with : 'certtool y | grep \"Developer\"'")
signatureKey = tools.file_read_data(iosDevelopperKeyFile)
signatureKey = re.sub('\n', '', signatureKey)
- cmdLine = 'codesign --force --sign '
- # to get this key ; certtool y | grep "Developer"
+ cmdLine = 'codesign --force --sign '
+ # to get this key ; certtool y | grep "Developer"
cmdLine += ' "' + signatureKey + '" '
cmdLine += ' --entitlements ' + self.get_build_path(pkg_name) + '/worddown.xcent'
cmdLine += ' ' + self.get_staging_path(pkg_name)
multiprocess.run_command(cmdLine)
-
- # --force --sign "iPhone Developer: Edouard DUPIN (SDFGSDFGSDFG)"
- # --resource-rules=/Users/edouarddupin/Library/Developer/Xcode/DerivedData/worddown-cmuvjchgtiteexdiacyqoexsyadg/Build/Products/Debug-iphoneos/worddown.app/ResourceRules.plist
- # --entitlements /Users/edouarddupin/Library/Developer/Xcode/DerivedData/worddown-cmuvjchgtiteexdiacyqoexsyadg/Build/Intermediates/worddown.build/Debug-iphoneos/worddown.build/worddown.xcent
- # /Users/edouarddupin/Library/Developer/Xcode/DerivedData/worddown-cmuvjchgtiteexdiacyqoexsyadg/Build/Products/Debug-iphoneos/worddown.app
-
def createRandomNumber(self, len):
out = ""
diff --git a/lutin/z_target/lutinTarget_Linux.py b/lutin/z_target/lutinTarget_Linux.py
index 2d063d6..95f863d 100644
--- a/lutin/z_target/lutinTarget_Linux.py
+++ b/lutin/z_target/lutinTarget_Linux.py
@@ -73,7 +73,7 @@ class Target(target.Target):
* *--> YY
*--> sources
"""
- def make_package_generic_binary(self, pkg_name, pkg_properties, base_pkg_path, heritage_list, static):
+ def make_package_binary(self, pkg_name, pkg_properties, base_pkg_path, heritage_list, static):
debug.debug("------------------------------------------------------------------------")
debug.info("Generate generic '" + pkg_name + "' v" + tools.version_to_string(pkg_properties["VERSION"]))
debug.debug("------------------------------------------------------------------------")
diff --git a/lutin/z_target/lutinTarget_MacOs.py b/lutin/z_target/lutinTarget_MacOs.py
index 2e03208..adfe3cc 100644
--- a/lutin/z_target/lutinTarget_MacOs.py
+++ b/lutin/z_target/lutinTarget_MacOs.py
@@ -128,8 +128,8 @@ class Target(target.Target):
debug.info("disk image: " + output_file_name)
## user information:
- debug.info("You can have an shell interface by executing : ")
- debug.info(" sudo cp " + shell_file_name + " /usr/local/bin")
+ #debug.info("You can have an shell interface by executing : ")
+ #debug.info(" sudo cp " + shell_file_name + " /usr/local/bin")
def install_package(self, pkg_name):
debug.debug("------------------------------------------------------------------------")
diff --git a/lutin/z_target/lutinTarget_Windows.py b/lutin/z_target/lutinTarget_Windows.py
index 78437e4..79a9830 100644
--- a/lutin/z_target/lutinTarget_Windows.py
+++ b/lutin/z_target/lutinTarget_Windows.py
@@ -70,7 +70,7 @@ class Target(target.Target):
def get_staging_path_data(self, binary_name, heritage_list):
return self.get_staging_path(binary_name) + self.path_data
- def make_package_generic_binary(self, pkg_name, pkg_properties, base_pkg_path, heritage_list, static):
+ def make_package_binary(self, pkg_name, pkg_properties, base_pkg_path, heritage_list, static):
debug.debug("------------------------------------------------------------------------")
debug.info("Generate package '" + pkg_name + "' v" + tools.version_to_string(pkg_properties["VERSION"]))
debug.debug("------------------------------------------------------------------------")