Compare commits
	
		
			21 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 5065c7b6ee | |||
| b497e09dd0 | |||
| 75d1490a59 | |||
| ddff6f82b9 | |||
| 4067d6266e | |||
| fcd357e452 | |||
| 3c186dc92e | |||
| 0b33c94680 | |||
| 6c416c9fef | |||
| fc6493f441 | |||
| 16c019ac5b | |||
| 328681d44b | |||
| fbf7d2dbad | |||
| 5f008a153e | |||
| 4d82e31d40 | |||
| c913e19ccf | |||
| 62ac51e78b | |||
| ce407605c9 | |||
| 8336411ec2 | |||
| fd58b31c26 | |||
| fa1b618896 | 
							
								
								
									
										69
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					#language: python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sudo: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					branches:
 | 
				
			||||||
 | 
					  only:
 | 
				
			||||||
 | 
					    - master
 | 
				
			||||||
 | 
					    - dev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					addons:
 | 
				
			||||||
 | 
					  apt:
 | 
				
			||||||
 | 
					    sources:
 | 
				
			||||||
 | 
					      - ubuntu-toolchain-r-test
 | 
				
			||||||
 | 
					    packages:
 | 
				
			||||||
 | 
					      - g++-4.9
 | 
				
			||||||
 | 
					      - expect
 | 
				
			||||||
 | 
					      - binutils-mingw-w64-i686 # 32bit MinGW
 | 
				
			||||||
 | 
					      - gcc-mingw-w64-i686
 | 
				
			||||||
 | 
					      - g++-mingw-w64-i686
 | 
				
			||||||
 | 
					      - binutils-mingw-w64-x86-64 # 64bit MinGW
 | 
				
			||||||
 | 
					      - gcc-mingw-w64-x86-64
 | 
				
			||||||
 | 
					      - g++-mingw-w64-x86-64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					matrix:
 | 
				
			||||||
 | 
					  include:
 | 
				
			||||||
 | 
					    - os: linux
 | 
				
			||||||
 | 
					      env: CONF=release BUILDER=gcc TARGET=Linux TAG=Linux
 | 
				
			||||||
 | 
					      compiler: gcc
 | 
				
			||||||
 | 
					    - os: linux
 | 
				
			||||||
 | 
					      env: CONF=debug BUILDER=clang TARGET=Linux
 | 
				
			||||||
 | 
					      compiler: clang
 | 
				
			||||||
 | 
					    - os: linux
 | 
				
			||||||
 | 
					      env: CONF=release BUILDER=gcc TARGET=Windows TAG=Mingw
 | 
				
			||||||
 | 
					      compiler: gcc
 | 
				
			||||||
 | 
					    - os: linux
 | 
				
			||||||
 | 
					      env: CONF=release BUILDER=gcc TARGET=Android TAG=Android DISABLE_PACKAGE=-p
 | 
				
			||||||
 | 
					      compiler: gcc
 | 
				
			||||||
 | 
					    - os: osx
 | 
				
			||||||
 | 
					      env: CONF=release BUILDER=clang TARGET=MacOs TAG=MacOs
 | 
				
			||||||
 | 
					      compiler: clang
 | 
				
			||||||
 | 
					    - os: osx
 | 
				
			||||||
 | 
					      env: CONF=release BUILDER=clang TARGET=IOs TAG=IOs
 | 
				
			||||||
 | 
					      compiler: clang
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install:
 | 
				
			||||||
 | 
					  - cd ..
 | 
				
			||||||
 | 
					  # download NDK
 | 
				
			||||||
 | 
					  - if [ "$TAG" == "Android" ]; then
 | 
				
			||||||
 | 
					        git clone --depth 1 --branch master https://github.com/HeeroYui/android-download-tool;
 | 
				
			||||||
 | 
					        ./android-download-tool/dl-android.sh;
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  - git clone --depth 1 --branch master https://github.com/atria-soft/ci.git
 | 
				
			||||||
 | 
					  - cd -
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					before_script:
 | 
				
			||||||
 | 
					  - ./setup.py build
 | 
				
			||||||
 | 
					  - export PYTHONPATH=$PYTHONPATH:./lutin/build/lib.linux-x86_64-2.7/:./lutin/build/lib.linux-x86_64-2.7/lutin/:./lutin/build/lib:./lutin/build/lib/lutin/
 | 
				
			||||||
 | 
					  - cd ..
 | 
				
			||||||
 | 
					  - pwd
 | 
				
			||||||
 | 
					  - ls -l *
 | 
				
			||||||
 | 
					  - ./ci/build_send.py --tag=$TAG --status=START;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					script:
 | 
				
			||||||
 | 
					  - ./lutin/build/scripts-2.7/lutin -w -j4 -C -P -t$TARGET -c $BUILDER $COMPILATOR_OPTION $BUS -m $CONF $GCOV $DISABLE_PACKAGE test-c; STATUS=$?
 | 
				
			||||||
 | 
					  - ./ci/build_send.py --tag=$TAG --status="$STATUS";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					notifications:
 | 
				
			||||||
 | 
					  email:
 | 
				
			||||||
 | 
					    - yui.heero@gmail.com
 | 
				
			||||||
							
								
								
									
										43
									
								
								README.rst
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								README.rst
									
									
									
									
									
								
							@@ -3,9 +3,52 @@ Lutin
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
`lutin` is a generic builder and package maker is a FREE software tool.
 | 
					`lutin` is a generic builder and package maker is a FREE software tool.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. image:: https://badge.fury.io/py/lutin.png
 | 
					.. image:: https://badge.fury.io/py/lutin.png
 | 
				
			||||||
    :target: https://pypi.python.org/pypi/lutin
 | 
					    :target: https://pypi.python.org/pypi/lutin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Release (master)
 | 
				
			||||||
 | 
					----------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. image:: https://travis-ci.org/HeeroYui/lutin.svg?branch=master
 | 
				
			||||||
 | 
					    :target: https://travis-ci.org/HeeroYui/lutin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=master&tag=Linux
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=master&tag=MacOs
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=master&tag=Mingw
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=master&tag=Android
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=master&tag=IOs
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Developement (dev)
 | 
				
			||||||
 | 
					------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. image:: https://travis-ci.org/HeeroYui/lutin.svg?branch=dev
 | 
				
			||||||
 | 
					    :target: https://travis-ci.org/HeeroYui/lutin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=dev&tag=Linux
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=dev&tag=MacOs
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=dev&tag=Mingw
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=dev&tag=Android
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					.. image:: http://atria-soft.com/ci/build/HeeroYui/lutin.svg?branch=dev&tag=IOs
 | 
				
			||||||
 | 
					    :target: http://atria-soft.com/ci/HeeroYui/lutin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Instructions
 | 
					Instructions
 | 
				
			||||||
------------
 | 
					------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										42
									
								
								bin/lutin
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								bin/lutin
									
									
									
									
									
								
							@@ -17,6 +17,7 @@ import lutin.module as module
 | 
				
			|||||||
import lutin.target as target
 | 
					import lutin.target as target
 | 
				
			||||||
import lutin.env as env
 | 
					import lutin.env as env
 | 
				
			||||||
import lutin.multiprocess as multiprocess
 | 
					import lutin.multiprocess as multiprocess
 | 
				
			||||||
 | 
					import lutin.tools as tools
 | 
				
			||||||
 | 
					
 | 
				
			||||||
myArgs = arguments.LutinArg()
 | 
					myArgs = arguments.LutinArg()
 | 
				
			||||||
myArgs.add(arguments.ArgDefine("h", "help", desc="Display this help"))
 | 
					myArgs.add(arguments.ArgDefine("h", "help", desc="Display this help"))
 | 
				
			||||||
@@ -66,7 +67,8 @@ def usage(full=False):
 | 
				
			|||||||
	for mod in listOfAllModule:
 | 
						for mod in listOfAllModule:
 | 
				
			||||||
		data_print = "		"
 | 
							data_print = "		"
 | 
				
			||||||
		if full == False:
 | 
							if full == False:
 | 
				
			||||||
			if    mod["type"][:6] == "BINARY":
 | 
								if     mod["type"] != None \
 | 
				
			||||||
 | 
								   and mod["type"][:6] == "BINARY":
 | 
				
			||||||
				data_print += color['blue']
 | 
									data_print += color['blue']
 | 
				
			||||||
				if mod["sub-type"] == "":
 | 
									if mod["sub-type"] == "":
 | 
				
			||||||
					data_print += "* "
 | 
										data_print += "* "
 | 
				
			||||||
@@ -78,9 +80,11 @@ def usage(full=False):
 | 
				
			|||||||
					data_print += "S "
 | 
										data_print += "S "
 | 
				
			||||||
				else:
 | 
									else:
 | 
				
			||||||
					data_print += "  "
 | 
										data_print += "  "
 | 
				
			||||||
			elif mod["type"] == "PACKAGE":
 | 
								elif     mod["type"] != None \
 | 
				
			||||||
 | 
								     and mod["type"] == "PACKAGE":
 | 
				
			||||||
				data_print += color['red'] + "# "
 | 
									data_print += color['red'] + "# "
 | 
				
			||||||
			elif    mod["type"][:7] == "LIBRARY":
 | 
								elif     mod["type"] != None \
 | 
				
			||||||
 | 
								     and mod["type"][:7] == "LIBRARY":
 | 
				
			||||||
				data_print += color['yellow'] + "  "
 | 
									data_print += color['yellow'] + "  "
 | 
				
			||||||
			else:
 | 
								else:
 | 
				
			||||||
				data_print += color['default'] + "  "
 | 
									data_print += color['default'] + "  "
 | 
				
			||||||
@@ -89,9 +93,11 @@ def usage(full=False):
 | 
				
			|||||||
		data_print += mod["name"] + color['default']
 | 
							data_print += mod["name"] + color['default']
 | 
				
			||||||
		if full == False:
 | 
							if full == False:
 | 
				
			||||||
			data_print += "\r\t\t\t\t\t\t\t"
 | 
								data_print += "\r\t\t\t\t\t\t\t"
 | 
				
			||||||
			if mod["license"] != "":
 | 
								if     mod["license"] != None \
 | 
				
			||||||
 | 
								   and mod["license"] != "":
 | 
				
			||||||
				data_print += color['yellow'] + " [" + mod["license"] + "]" + color['default']
 | 
									data_print += color['yellow'] + " [" + mod["license"] + "]" + color['default']
 | 
				
			||||||
			if mod["version"] != []:
 | 
								if     mod["version"] != None \
 | 
				
			||||||
 | 
								   and mod["version"] != []:
 | 
				
			||||||
				version_ID = tools.version_to_string(mod["version"])
 | 
									version_ID = tools.version_to_string(mod["version"])
 | 
				
			||||||
				data_print += color['blue'] + " (" + version_ID + ")" + color['default']
 | 
									data_print += color['blue'] + " (" + version_ID + ")" + color['default']
 | 
				
			||||||
			"""
 | 
								"""
 | 
				
			||||||
@@ -106,11 +112,14 @@ def usage(full=False):
 | 
				
			|||||||
		if mod["description"] != "":
 | 
							if mod["description"] != "":
 | 
				
			||||||
			print("			" + mod["description"])
 | 
								print("			" + mod["description"])
 | 
				
			||||||
		if full == True:
 | 
							if full == True:
 | 
				
			||||||
			if mod["type"] != "":
 | 
								if     mod["type"] != None \
 | 
				
			||||||
 | 
								   and mod["type"] != "":
 | 
				
			||||||
				print("				Type:     " + mod["type"])
 | 
									print("				Type:     " + mod["type"])
 | 
				
			||||||
			if mod["sub-type"] != "":
 | 
								if     mod["sub-type"] != None \
 | 
				
			||||||
 | 
								   and mod["sub-type"] != "":
 | 
				
			||||||
				print("				Sub-Type: " + mod["sub-type"])
 | 
									print("				Sub-Type: " + mod["sub-type"])
 | 
				
			||||||
			if mod["version"] != []:
 | 
								if     mod["version"] != None \
 | 
				
			||||||
 | 
								   and mod["version"] != []:
 | 
				
			||||||
				version_ID = ""
 | 
									version_ID = ""
 | 
				
			||||||
				for id in mod["version"]:
 | 
									for id in mod["version"]:
 | 
				
			||||||
					if len(version_ID) != 0:
 | 
										if len(version_ID) != 0:
 | 
				
			||||||
@@ -120,14 +129,19 @@ def usage(full=False):
 | 
				
			|||||||
							version_ID+="."
 | 
												version_ID+="."
 | 
				
			||||||
					version_ID += str(id)
 | 
										version_ID += str(id)
 | 
				
			||||||
				print("				version:  " + color['blue'] + version_ID + color['default'])
 | 
									print("				version:  " + color['blue'] + version_ID + color['default'])
 | 
				
			||||||
			if     mod["compagny-type"] != "" \
 | 
								if     mod["compagny-type"] != None \
 | 
				
			||||||
 | 
								   and mod["compagny-name"] != None \
 | 
				
			||||||
 | 
								   and mod["compagny-type"] != "" \
 | 
				
			||||||
			   and mod["compagny-name"] != "":
 | 
								   and mod["compagny-name"] != "":
 | 
				
			||||||
				print("				compagny: " + color['purple'] + mod["compagny-type"] + "/" + mod["compagny-name"] + color['default'])
 | 
									print("				compagny: " + color['purple'] + mod["compagny-type"] + "/" + mod["compagny-name"] + color['default'])
 | 
				
			||||||
			elif mod["compagny-name"] != "":
 | 
								elif     mod["compagny-name"] != None \
 | 
				
			||||||
 | 
								     and mod["compagny-name"] != "":
 | 
				
			||||||
				print("				compagny: " + color['purple'] + mod["compagny-name"] + color['default'])
 | 
									print("				compagny: " + color['purple'] + mod["compagny-name"] + color['default'])
 | 
				
			||||||
			if mod["license"] != "":
 | 
								if     mod["license"] != None \
 | 
				
			||||||
 | 
								   and mod["license"] != "":
 | 
				
			||||||
				print("				license:  " + color['yellow'] + mod["license"] + color['default'])
 | 
									print("				license:  " + color['yellow'] + mod["license"] + color['default'])
 | 
				
			||||||
			if mod["maintainer"] != []:
 | 
								if     mod["maintainer"] != None \
 | 
				
			||||||
 | 
								   and mod["maintainer"] != []:
 | 
				
			||||||
				print("				maintainers:")
 | 
									print("				maintainers:")
 | 
				
			||||||
				for elem in mod["maintainer"]:
 | 
									for elem in mod["maintainer"]:
 | 
				
			||||||
					print("					" + str(elem))
 | 
										print("					" + str(elem))
 | 
				
			||||||
@@ -178,7 +192,7 @@ def parseGenericArg(argument, active):
 | 
				
			|||||||
		if active==True:
 | 
							if active==True:
 | 
				
			||||||
			debug.enable_color()
 | 
								debug.enable_color()
 | 
				
			||||||
		return True
 | 
							return True
 | 
				
			||||||
	elif argument.get_option_name() == "force":
 | 
						elif argument.get_option_name() == "force-build":
 | 
				
			||||||
		if active==True:
 | 
							if active==True:
 | 
				
			||||||
			env.set_force_mode(True)
 | 
								env.set_force_mode(True)
 | 
				
			||||||
		return True
 | 
							return True
 | 
				
			||||||
@@ -270,7 +284,7 @@ for argument in localArgument:
 | 
				
			|||||||
			my_target = None
 | 
								my_target = None
 | 
				
			||||||
	else:
 | 
						else:
 | 
				
			||||||
		if argument.get_option_name() != "":
 | 
							if argument.get_option_name() != "":
 | 
				
			||||||
			debug.warning("Can not understand argument : '" + argument.get_option_nName() + "'")
 | 
								debug.warning("Can not understand argument : '" + argument.get_option_name() + "'")
 | 
				
			||||||
			usage()
 | 
								usage()
 | 
				
			||||||
		else:
 | 
							else:
 | 
				
			||||||
			#load the target if needed :
 | 
								#load the target if needed :
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,7 +40,7 @@ def resize(src_file, dest_file, x, y, cmd_file=None):
 | 
				
			|||||||
	if os.path.exists(src_file) == False:
 | 
						if os.path.exists(src_file) == False:
 | 
				
			||||||
		debug.error("Request a resize an image that does not existed : '" + src_file + "'")
 | 
							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) + ")"
 | 
						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
 | 
							return
 | 
				
			||||||
	# add cmdLine ...
 | 
						# add cmdLine ...
 | 
				
			||||||
	x = get_pow_2_multiple(x)
 | 
						x = get_pow_2_multiple(x)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -83,17 +83,17 @@ class Module:
 | 
				
			|||||||
		self.origin_path = tools.get_current_path(self.origin_file)
 | 
							self.origin_path = tools.get_current_path(self.origin_file)
 | 
				
			||||||
		self.local_heritage = heritage.heritage(self, None)
 | 
							self.local_heritage = heritage.heritage(self, None)
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		self.package_prop = { "COMPAGNY_TYPE" : set(""),
 | 
							self.package_prop = { "COMPAGNY_TYPE" : "",
 | 
				
			||||||
		                      "COMPAGNY_NAME" : set(""),
 | 
							                      "COMPAGNY_NAME" : "",
 | 
				
			||||||
		                      "COMPAGNY_NAME2" : set(""),
 | 
							                      "COMPAGNY_NAME2" : "",
 | 
				
			||||||
		                      "MAINTAINER" : set([]),
 | 
							                      "MAINTAINER" : [],
 | 
				
			||||||
		                      #"ICON" : set(""),
 | 
							                      #"ICON" : set(""),
 | 
				
			||||||
		                      "SECTION" : set([]),
 | 
							                      "SECTION" : [],
 | 
				
			||||||
		                      "PRIORITY" : set(""),
 | 
							                      "PRIORITY" : "",
 | 
				
			||||||
		                      "DESCRIPTION" : set(""),
 | 
							                      "DESCRIPTION" : "",
 | 
				
			||||||
		                      "VERSION" : [0,0,0],
 | 
							                      "VERSION" : [0,0,0],
 | 
				
			||||||
		                      "VERSION_CODE" : "",
 | 
							                      "VERSION_CODE" : "",
 | 
				
			||||||
		                      "NAME" : set("no-name"), # name of the application
 | 
							                      "NAME" : "no-name", # name of the application
 | 
				
			||||||
		                      "ANDROID_MANIFEST" : "", # By default generate the manifest
 | 
							                      "ANDROID_MANIFEST" : "", # By default generate the manifest
 | 
				
			||||||
		                      "ANDROID_RESOURCES" : [],
 | 
							                      "ANDROID_RESOURCES" : [],
 | 
				
			||||||
		                      "ANDROID_APPL_TYPE" : "APPL", # the other mode is "WALLPAPER" ... and later "WIDGET"
 | 
							                      "ANDROID_APPL_TYPE" : "APPL", # the other mode is "WALLPAPER" ... and later "WIDGET"
 | 
				
			||||||
@@ -135,9 +135,10 @@ class Module:
 | 
				
			|||||||
			"-Wreturn-type",
 | 
								"-Wreturn-type",
 | 
				
			||||||
			#"-Wint-to-pointer-cast",
 | 
								#"-Wint-to-pointer-cast",
 | 
				
			||||||
			"-Wno-write-strings",
 | 
								"-Wno-write-strings",
 | 
				
			||||||
			"-Woverloaded-virtual",
 | 
					 | 
				
			||||||
			"-Wnon-virtual-dtor",
 | 
					 | 
				
			||||||
			"-Wno-unused-variable"]);
 | 
								"-Wno-unused-variable"]);
 | 
				
			||||||
 | 
							self.compile_flags('c++', [
 | 
				
			||||||
 | 
								"-Woverloaded-virtual",
 | 
				
			||||||
 | 
								"-Wnon-virtual-dtor"]);
 | 
				
			||||||
		#only for gcc : "-Wunused-variable", "-Wunused-but-set-variable",
 | 
							#only for gcc : "-Wunused-variable", "-Wunused-but-set-variable",
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	##
 | 
						##
 | 
				
			||||||
@@ -476,11 +477,13 @@ class Module:
 | 
				
			|||||||
						                            package_name,
 | 
											                            package_name,
 | 
				
			||||||
						                            target,
 | 
											                            target,
 | 
				
			||||||
						                            self.sub_heritage_list,
 | 
											                            self.sub_heritage_list,
 | 
				
			||||||
 | 
											                            flags = self.flags,
 | 
				
			||||||
						                            name = self.name,
 | 
											                            name = self.name,
 | 
				
			||||||
						                            basic_path = self.origin_path)
 | 
											                            basic_path = self.origin_path)
 | 
				
			||||||
						self.local_heritage.add_lib_static(res_file)
 | 
											self.local_heritage.add_lib_static(res_file)
 | 
				
			||||||
				except ValueError:
 | 
									except ValueError:
 | 
				
			||||||
					debug.error(" UN-SUPPORTED link format:  '.a'")
 | 
										debug.error(" UN-SUPPORTED link format:  '.a'")
 | 
				
			||||||
 | 
								if target.support_dynamic_link == True:
 | 
				
			||||||
				if    self.type == 'LIBRARY' \
 | 
									if    self.type == 'LIBRARY' \
 | 
				
			||||||
				   or self.type == 'LIBRARY_DYNAMIC':
 | 
									   or self.type == 'LIBRARY_DYNAMIC':
 | 
				
			||||||
					try:
 | 
										try:
 | 
				
			||||||
@@ -491,6 +494,7 @@ class Module:
 | 
				
			|||||||
							                            package_name,
 | 
												                            package_name,
 | 
				
			||||||
							                            target,
 | 
												                            target,
 | 
				
			||||||
							                            self.sub_heritage_list,
 | 
												                            self.sub_heritage_list,
 | 
				
			||||||
 | 
												                            flags = self.flags,
 | 
				
			||||||
							                            name = self.name,
 | 
												                            name = self.name,
 | 
				
			||||||
							                            basic_path = self.origin_path)
 | 
												                            basic_path = self.origin_path)
 | 
				
			||||||
							self.local_heritage.add_lib_dynamic(res_file)
 | 
												self.local_heritage.add_lib_dynamic(res_file)
 | 
				
			||||||
@@ -504,6 +508,7 @@ class Module:
 | 
				
			|||||||
					                            package_name,
 | 
										                            package_name,
 | 
				
			||||||
					                            target,
 | 
										                            target,
 | 
				
			||||||
					                            self.sub_heritage_list,
 | 
										                            self.sub_heritage_list,
 | 
				
			||||||
 | 
										                            flags = self.flags,
 | 
				
			||||||
					                            name = self.name,
 | 
										                            name = self.name,
 | 
				
			||||||
					                            basic_path = self.origin_path)
 | 
										                            basic_path = self.origin_path)
 | 
				
			||||||
					self.local_heritage.add_lib_interpreted('java', res_file)
 | 
										self.local_heritage.add_lib_interpreted('java', res_file)
 | 
				
			||||||
@@ -513,7 +518,7 @@ class Module:
 | 
				
			|||||||
		     or self.type == 'BINARY_SHARED' \
 | 
							     or self.type == 'BINARY_SHARED' \
 | 
				
			||||||
		     or self.type == 'BINARY_STAND_ALONE':
 | 
							     or self.type == 'BINARY_STAND_ALONE':
 | 
				
			||||||
			shared_mode = False
 | 
								shared_mode = False
 | 
				
			||||||
			if target.name=="Android":
 | 
								if target.name == "Android":
 | 
				
			||||||
				debug.warning("Android mode ...")
 | 
									debug.warning("Android mode ...")
 | 
				
			||||||
				# special case for android ...
 | 
									# special case for android ...
 | 
				
			||||||
				for elem in self.sub_heritage_list.src['src']:
 | 
									for elem in self.sub_heritage_list.src['src']:
 | 
				
			||||||
@@ -523,6 +528,7 @@ class Module:
 | 
				
			|||||||
						shared_mode = True
 | 
											shared_mode = True
 | 
				
			||||||
						break;
 | 
											break;
 | 
				
			||||||
			static_mode = True
 | 
								static_mode = True
 | 
				
			||||||
 | 
								if target.support_dynamic_link == True:
 | 
				
			||||||
				if self.type == 'BINARY_SHARED':
 | 
									if self.type == 'BINARY_SHARED':
 | 
				
			||||||
					static_mode = False
 | 
										static_mode = False
 | 
				
			||||||
			if shared_mode == True:
 | 
								if shared_mode == True:
 | 
				
			||||||
@@ -533,6 +539,7 @@ class Module:
 | 
				
			|||||||
					                            package_name,
 | 
										                            package_name,
 | 
				
			||||||
					                            target,
 | 
										                            target,
 | 
				
			||||||
					                            self.sub_heritage_list,
 | 
										                            self.sub_heritage_list,
 | 
				
			||||||
 | 
										                            flags = self.flags,
 | 
				
			||||||
					                            name = self.name,
 | 
										                            name = self.name,
 | 
				
			||||||
					                            basic_path = self.origin_path,
 | 
										                            basic_path = self.origin_path,
 | 
				
			||||||
					                            static = static_mode)
 | 
										                            static = static_mode)
 | 
				
			||||||
@@ -547,6 +554,7 @@ class Module:
 | 
				
			|||||||
						                            package_name,
 | 
											                            package_name,
 | 
				
			||||||
						                            target,
 | 
											                            target,
 | 
				
			||||||
						                            self.sub_heritage_list,
 | 
											                            self.sub_heritage_list,
 | 
				
			||||||
 | 
											                            flags = self.flags,
 | 
				
			||||||
						                            name = self.name,
 | 
											                            name = self.name,
 | 
				
			||||||
						                            basic_path = self.origin_path)
 | 
											                            basic_path = self.origin_path)
 | 
				
			||||||
						self.local_heritage.add_sources(res_file)
 | 
											self.local_heritage.add_sources(res_file)
 | 
				
			||||||
@@ -559,13 +567,14 @@ class Module:
 | 
				
			|||||||
					                            package_name,
 | 
										                            package_name,
 | 
				
			||||||
					                            target,
 | 
										                            target,
 | 
				
			||||||
					                            self.sub_heritage_list,
 | 
										                            self.sub_heritage_list,
 | 
				
			||||||
 | 
										                            flags = self.flags,
 | 
				
			||||||
					                            name = self.name,
 | 
										                            name = self.name,
 | 
				
			||||||
					                            basic_path = self.origin_path,
 | 
										                            basic_path = self.origin_path,
 | 
				
			||||||
					                            static = static_mode)
 | 
										                            static = static_mode)
 | 
				
			||||||
				except ValueError:
 | 
									except ValueError:
 | 
				
			||||||
					debug.error(" UN-SUPPORTED link format:  '.bin'")
 | 
										debug.error(" UN-SUPPORTED link format:  '.bin'")
 | 
				
			||||||
		elif self.type == "PACKAGE":
 | 
							elif self.type == "PACKAGE":
 | 
				
			||||||
			if target.name=="Android":
 | 
								if target.name == "Android":
 | 
				
			||||||
				# special case for android wrapper:
 | 
									# special case for android wrapper:
 | 
				
			||||||
				try:
 | 
									try:
 | 
				
			||||||
					tmp_builder = builder.get_builder_with_output("so");
 | 
										tmp_builder = builder.get_builder_with_output("so");
 | 
				
			||||||
@@ -574,6 +583,7 @@ class Module:
 | 
				
			|||||||
					                            package_name,
 | 
										                            package_name,
 | 
				
			||||||
					                            target,
 | 
										                            target,
 | 
				
			||||||
					                            self.sub_heritage_list,
 | 
										                            self.sub_heritage_list,
 | 
				
			||||||
 | 
										                            flags = self.flags,
 | 
				
			||||||
					                            name = "lib" + self.name,
 | 
										                            name = "lib" + self.name,
 | 
				
			||||||
					                            basic_path = self.origin_path)
 | 
										                            basic_path = self.origin_path)
 | 
				
			||||||
					self.local_heritage.add_sources(res_file)
 | 
										self.local_heritage.add_sources(res_file)
 | 
				
			||||||
@@ -587,6 +597,7 @@ class Module:
 | 
				
			|||||||
						                            package_name,
 | 
											                            package_name,
 | 
				
			||||||
						                            target,
 | 
											                            target,
 | 
				
			||||||
						                            self.sub_heritage_list,
 | 
											                            self.sub_heritage_list,
 | 
				
			||||||
 | 
											                            flags = self.flags,
 | 
				
			||||||
						                            name = self.name,
 | 
											                            name = self.name,
 | 
				
			||||||
						                            basic_path = self.origin_path)
 | 
											                            basic_path = self.origin_path)
 | 
				
			||||||
						self.local_heritage.add_sources(res_file)
 | 
											self.local_heritage.add_sources(res_file)
 | 
				
			||||||
@@ -599,6 +610,7 @@ class Module:
 | 
				
			|||||||
					                            package_name,
 | 
										                            package_name,
 | 
				
			||||||
					                            target,
 | 
										                            target,
 | 
				
			||||||
					                            self.sub_heritage_list,
 | 
										                            self.sub_heritage_list,
 | 
				
			||||||
 | 
										                            flags = self.flags,
 | 
				
			||||||
					                            name = self.name,
 | 
										                            name = self.name,
 | 
				
			||||||
					                            basic_path = self.origin_path)
 | 
										                            basic_path = self.origin_path)
 | 
				
			||||||
				except ValueError:
 | 
									except ValueError:
 | 
				
			||||||
@@ -1040,7 +1052,7 @@ def get_module_option(the_module, name):
 | 
				
			|||||||
	if "get_type" in dir(the_module):
 | 
						if "get_type" in dir(the_module):
 | 
				
			||||||
		type = the_module.get_type()
 | 
							type = the_module.get_type()
 | 
				
			||||||
	else:
 | 
						else:
 | 
				
			||||||
		debug.debug(" fundtion get_type() must be provided in the module: " + name)
 | 
							debug.debug(" function get_type() must be provided in the module: " + name)
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	if "get_sub_type" in dir(the_module):
 | 
						if "get_sub_type" in dir(the_module):
 | 
				
			||||||
		sub_type = the_module.get_sub_type()
 | 
							sub_type = the_module.get_sub_type()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -134,6 +134,8 @@ class Target:
 | 
				
			|||||||
		self.pkg_path_readme_file = "readme.txt"
 | 
							self.pkg_path_readme_file = "readme.txt"
 | 
				
			||||||
		self.pkg_path_change_log_file = "changelog.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):
 | 
						def update_path_tree(self):
 | 
				
			||||||
		self.path_out = os.path.join("out", self.name + "_" + self.config["arch"] + "_" + self.config["bus-size"], self.config["mode"])
 | 
							self.path_out = os.path.join("out", self.name + "_" + self.config["arch"] + "_" + self.config["bus-size"], self.config["mode"])
 | 
				
			||||||
@@ -142,6 +144,9 @@ class Target:
 | 
				
			|||||||
		self.path_build = os.path.join("build", self.config["compilator"])
 | 
							self.path_build = os.path.join("build", self.config["compilator"])
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	def create_number_from_version_string(self, data):
 | 
						def create_number_from_version_string(self, data):
 | 
				
			||||||
 | 
							tmp_data = data.split("-")
 | 
				
			||||||
 | 
							if len(tmp_data) > 1:
 | 
				
			||||||
 | 
								data = tmp_data[0]
 | 
				
			||||||
		list = data.split(".")
 | 
							list = data.split(".")
 | 
				
			||||||
		if len(list) == 1:
 | 
							if len(list) == 1:
 | 
				
			||||||
			list.append("0")
 | 
								list.append("0")
 | 
				
			||||||
@@ -528,9 +533,9 @@ class Target:
 | 
				
			|||||||
			return
 | 
								return
 | 
				
			||||||
		if    module.get_type() == 'BINARY' \
 | 
							if    module.get_type() == 'BINARY' \
 | 
				
			||||||
		   or module.get_type() == 'BINARY_STAND_ALONE':
 | 
							   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':
 | 
							if module.get_type() == 'BINARY_SHARED':
 | 
				
			||||||
			self.make_package_generic_binary(pkg_name, pkg_properties, base_pkg_path, heritage_list, static = False)
 | 
								self.make_package_binary(pkg_name, pkg_properties, base_pkg_path, heritage_list, static = False)
 | 
				
			||||||
		if module.get_type() == 'PACKAGE':
 | 
							if module.get_type() == 'PACKAGE':
 | 
				
			||||||
			debug.info("Can not create package for package");
 | 
								debug.info("Can not create package for package");
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,6 +50,8 @@ def remove_path_and_sub_path(path):
 | 
				
			|||||||
def remove_file(path):
 | 
					def remove_file(path):
 | 
				
			||||||
	if os.path.isfile(path):
 | 
						if os.path.isfile(path):
 | 
				
			||||||
		os.remove(path)
 | 
							os.remove(path)
 | 
				
			||||||
 | 
						elif os.path.islink(path):
 | 
				
			||||||
 | 
							os.remove(path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def file_size(path):
 | 
					def file_size(path):
 | 
				
			||||||
	if not os.path.isfile(path):
 | 
						if not os.path.isfile(path):
 | 
				
			||||||
@@ -91,6 +93,7 @@ def file_write_data(path, data, only_if_new=False):
 | 
				
			|||||||
		if old_data == data:
 | 
							if old_data == data:
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
	#real write of data:
 | 
						#real write of data:
 | 
				
			||||||
 | 
						create_directory_of_file(path)
 | 
				
			||||||
	file = open(path, "w")
 | 
						file = open(path, "w")
 | 
				
			||||||
	file.write(data)
 | 
						file.write(data)
 | 
				
			||||||
	file.close()
 | 
						file.close()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,7 +40,7 @@ def get_output_type():
 | 
				
			|||||||
##
 | 
					##
 | 
				
			||||||
## @brief Commands for running gcc to link an executable.
 | 
					## @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")
 | 
						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))
 | 
						debug.extreme_verbose("list files = " + str(depancy.src))
 | 
				
			||||||
	list_static = []
 | 
						list_static = []
 | 
				
			||||||
@@ -99,9 +99,10 @@ def link(file, binary, target, depancy, name, basic_path, static = False):
 | 
				
			|||||||
			lib_name = elem[len(lib_path)+len(target.prefix_lib)+1:-len(target.suffix_lib_dynamic)]
 | 
								lib_name = elem[len(lib_path)+len(target.prefix_lib)+1:-len(target.suffix_lib_dynamic)]
 | 
				
			||||||
			cmd.append("-L" + lib_path)
 | 
								cmd.append("-L" + lib_path)
 | 
				
			||||||
			cmd.append("-l" + lib_name)
 | 
								cmd.append("-l" + lib_name)
 | 
				
			||||||
 | 
							if     target.name != "MacOs" \
 | 
				
			||||||
 | 
							   and target.name != "Android":
 | 
				
			||||||
			if len(list_dynamic) > 0:
 | 
								if len(list_dynamic) > 0:
 | 
				
			||||||
				cmd.append("-Wl,-R$ORIGIN/../lib/")
 | 
									cmd.append("-Wl,-R$ORIGIN/../lib/")
 | 
				
			||||||
			pass
 | 
					 | 
				
			||||||
	except:
 | 
						except:
 | 
				
			||||||
		pass
 | 
							pass
 | 
				
			||||||
	try:
 | 
						try:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,7 +38,7 @@ def get_output_type():
 | 
				
			|||||||
##
 | 
					##
 | 
				
			||||||
## @brief Commands for running gcc to link a shared library.
 | 
					## @brief Commands for running gcc to link a shared library.
 | 
				
			||||||
##
 | 
					##
 | 
				
			||||||
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, "jar")
 | 
						file_src, file_dst, file_depend, file_cmd, file_warning = target.generate_file(binary, name, basic_path, file, "jar")
 | 
				
			||||||
	#create command Line
 | 
						#create command Line
 | 
				
			||||||
	cmd = [
 | 
						cmd = [
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,7 +38,7 @@ def get_output_type():
 | 
				
			|||||||
##
 | 
					##
 | 
				
			||||||
## @brief Commands for running gcc to link a shared library.
 | 
					## @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")
 | 
						file_src, file_dst, file_depend, file_cmd, file_warning = target.generate_file(binary, name, basic_path, file, "lib-shared")
 | 
				
			||||||
	list_static = []
 | 
						list_static = []
 | 
				
			||||||
	list_dynamic = []
 | 
						list_dynamic = []
 | 
				
			||||||
@@ -91,7 +91,7 @@ def link(file, binary, target, depancy, name, basic_path, static=False):
 | 
				
			|||||||
			lib_name = elem[len(lib_path)+len(target.prefix_lib)+1:-len(target.suffix_lib_dynamic)]
 | 
								lib_name = elem[len(lib_path)+len(target.prefix_lib)+1:-len(target.suffix_lib_dynamic)]
 | 
				
			||||||
			cmd.append("-L" + lib_path)
 | 
								cmd.append("-L" + lib_path)
 | 
				
			||||||
			cmd.append("-l" + lib_name)
 | 
								cmd.append("-l" + lib_name)
 | 
				
			||||||
		if     target != "MacOs" \
 | 
							if     target.name != "MacOs" \
 | 
				
			||||||
		   and target.name != "Android":
 | 
							   and target.name != "Android":
 | 
				
			||||||
			if len(list_dynamic) > 0:
 | 
								if len(list_dynamic) > 0:
 | 
				
			||||||
				cmd.append("-Wl,-R$ORIGIN/../lib/")
 | 
									cmd.append("-Wl,-R$ORIGIN/../lib/")
 | 
				
			||||||
@@ -101,6 +101,10 @@ def link(file, binary, target, depancy, name, basic_path, static=False):
 | 
				
			|||||||
		cmd.append(flags["local"]["link"])
 | 
							cmd.append(flags["local"]["link"])
 | 
				
			||||||
	except:
 | 
						except:
 | 
				
			||||||
		pass
 | 
							pass
 | 
				
			||||||
 | 
						try:
 | 
				
			||||||
 | 
							cmd.append(flags["export"]["link"])
 | 
				
			||||||
 | 
						except:
 | 
				
			||||||
 | 
							pass
 | 
				
			||||||
	try:
 | 
						try:
 | 
				
			||||||
		cmd.append(depancy.flags["link"])
 | 
							cmd.append(depancy.flags["link"])
 | 
				
			||||||
	except:
 | 
						except:
 | 
				
			||||||
@@ -123,6 +127,12 @@ def link(file, binary, target, depancy, name, basic_path, static=False):
 | 
				
			|||||||
		# get the file size of the non strip file
 | 
							# get the file size of the non strip file
 | 
				
			||||||
		originSize = tools.file_size(file_dst);
 | 
							originSize = tools.file_size(file_dst);
 | 
				
			||||||
		debug.print_element("SharedLib(strip)", name, "", "")
 | 
							debug.print_element("SharedLib(strip)", name, "", "")
 | 
				
			||||||
 | 
							if target.name == "MacOs":
 | 
				
			||||||
 | 
								cmdLineStrip=tools.list_to_str([
 | 
				
			||||||
 | 
									target.strip,
 | 
				
			||||||
 | 
									"-u",
 | 
				
			||||||
 | 
									file_dst])
 | 
				
			||||||
 | 
							else:
 | 
				
			||||||
			cmdLineStrip=tools.list_to_str([
 | 
								cmdLineStrip=tools.list_to_str([
 | 
				
			||||||
				target.strip,
 | 
									target.strip,
 | 
				
			||||||
				file_dst])
 | 
									file_dst])
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,7 +38,7 @@ def get_output_type():
 | 
				
			|||||||
##
 | 
					##
 | 
				
			||||||
## @brief Commands for running ar.
 | 
					## @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")
 | 
						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)
 | 
						#$(Q)$(TARGET_AR) $(TARGET_GLOBAL_ARFLAGS) $(PRIVATE_ARFLAGS) $@ $(PRIVATE_ALL_OBJECTS)
 | 
				
			||||||
	cmd = [
 | 
						cmd = [
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,10 +17,12 @@ class System(system.System):
 | 
				
			|||||||
		system.System.__init__(self)
 | 
							system.System.__init__(self)
 | 
				
			||||||
		# create some HELP:
 | 
							# create some HELP:
 | 
				
			||||||
		self.help="SDK: Android SDK basic interface java\n"
 | 
							self.help="SDK: Android SDK basic interface java\n"
 | 
				
			||||||
 | 
							# jar file:
 | 
				
			||||||
 | 
							jar_file_path=os.path.join(target.path_sdk, "platforms", "android-" + str(target.board_id), "android.jar")
 | 
				
			||||||
		# TODO : Check if the android sdk android.jar is present ...
 | 
							# TODO : Check if the android sdk android.jar is present ...
 | 
				
			||||||
		self.valid = True
 | 
							self.valid = True
 | 
				
			||||||
		# todo : create a searcher of the presence of the library:
 | 
							# todo : create a searcher of the presence of the library:
 | 
				
			||||||
		self.add_export_SRC(target.path_sdk + "/platforms/android-" + str(target.boardId) + "/android.jar")
 | 
							self.add_export_SRC(jar_file_path)
 | 
				
			||||||
		self.add_export_flag_LD("-ldl")
 | 
							self.add_export_flag_LD("-ldl")
 | 
				
			||||||
		self.add_export_flag_LD("-llog")
 | 
							self.add_export_flag_LD("-llog")
 | 
				
			||||||
		self.add_export_flag_LD("-landroid")
 | 
							self.add_export_flag_LD("-landroid")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -87,80 +87,96 @@ class Target(target.Target):
 | 
				
			|||||||
		self.pkg_path_lib = "data/lib/armeabi"
 | 
							self.pkg_path_lib = "data/lib/armeabi"
 | 
				
			||||||
		self.pkg_path_license = "license"
 | 
							self.pkg_path_license = "license"
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		# board id at 15 is for android 4.0.3 and more ... (note: API 14 has been removed ...)
 | 
							# If the env variable is not define, find the newest version of the BOARD_ID (Note: 0: autofind)
 | 
				
			||||||
		self.boardId = 15
 | 
							self.board_id = int(os.getenv('PROJECT_NDK_BOARD_ID', "0"))
 | 
				
			||||||
		self.global_flags_cc.append("-D__ANDROID_BOARD_ID__=" + str(self.boardId))
 | 
							if self.board_id != 0:
 | 
				
			||||||
 | 
								# check if element existed :
 | 
				
			||||||
 | 
								if not os.path.isdir(self.path_sdk +"/platforms/android-" + str(self.board_id)):
 | 
				
			||||||
 | 
									debug.error("Specify PROJECT_NDK_BOARD_ID env variable and the BOARD_ID does not exit ... : " + str(self.board_id) + "==> auto-search")
 | 
				
			||||||
 | 
									self.board_id = 0
 | 
				
			||||||
 | 
							if self.board_id == 0:
 | 
				
			||||||
 | 
								debug.debug("Auto-search BOARD-ID")
 | 
				
			||||||
 | 
								for iii in reversed(range(0, 50)):
 | 
				
			||||||
 | 
									debug.debug("try: " + os.path.join(self.path_sdk, "platforms", "android-" + str(iii)))
 | 
				
			||||||
 | 
									if os.path.isdir(os.path.join(self.path_sdk, "platforms", "android-" + str(iii))):
 | 
				
			||||||
 | 
										debug.debug("Find BOARD-ID : " + str(iii))
 | 
				
			||||||
 | 
										self.board_id = iii
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
							if self.board_id == 0:
 | 
				
			||||||
 | 
								debug.error("Can not find BOARD-ID ==> update your android SDK")
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							self.global_flags_cc.append("-D__ANDROID_BOARD_ID__=" + str(self.board_id))
 | 
				
			||||||
		if arch == "armv5" or arch == "armv7":
 | 
							if arch == "armv5" or arch == "armv7":
 | 
				
			||||||
			self.global_include_cc.append("-I" + self.path_ndk +"/platforms/android-" + str(self.boardId) + "/arch-arm/usr/include/")
 | 
								self.global_include_cc.append("-I" + os.path.join(self.path_ndk, "platforms", "android-" + str(self.board_id), "arch-arm", "usr", "include"))
 | 
				
			||||||
		elif arch == "mips":
 | 
							elif arch == "mips":
 | 
				
			||||||
			self.global_include_cc.append("-I" + self.path_ndk +"/platforms/android-" + str(self.boardId) + "/arch-mips/usr/include/")
 | 
								self.global_include_cc.append("-I" + os.path.join(self.path_ndk, "platforms", "android-" + str(self.board_id), "arch-mips", "usr", "include"))
 | 
				
			||||||
		elif arch == "x86":
 | 
							elif arch == "x86":
 | 
				
			||||||
			self.global_include_cc.append("-I" + self.path_ndk +"/platforms/android-" + str(self.boardId) + "/arch-x86/usr/include/")
 | 
								self.global_include_cc.append("-I" + os.path.join(self.path_ndk, "platforms", "android-" + str(self.board_id), "arch-x86", "usr", "include"))
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if True:
 | 
							if True:
 | 
				
			||||||
			if self.config["compilator"] == "clang":
 | 
								if self.config["compilator"] == "clang":
 | 
				
			||||||
				if self.boardId < 21:
 | 
									if self.board_id < 21:
 | 
				
			||||||
					debug.error("Clang work only with the board wersion >= 21 : android 5.x.x")
 | 
										debug.error("Clang work only with the board wersion >= 21 : android 5.x.x")
 | 
				
			||||||
				self.global_flags_cc.append("-D__STDCPP_LLVM__")
 | 
									self.global_flags_cc.append("-D__STDCPP_LLVM__")
 | 
				
			||||||
				# llvm-libc++ : BSD | MIT
 | 
									# llvm-libc++ : BSD | MIT
 | 
				
			||||||
				self.global_include_cc.append("-gcc-toolchain " + self.path_ndk +"/sources/android/support/include")
 | 
									self.global_include_cc.append("-gcc-toolchain " + os.path.join(self.path_ndk, "sources", "android", "support", "include"))
 | 
				
			||||||
				self.global_include_cc.append("-I" + self.path_ndk +"/sources/android/support/include")
 | 
									self.global_include_cc.append("-I" + os.path.join(self.path_ndk, "sources", "android", "support", "include"))
 | 
				
			||||||
				self.global_include_cc.append("-I" + self.path_ndk +"/sources/cxx-stl/llvm-libc++/libcxx/include/")
 | 
									self.global_include_cc.append("-I" + os.path.join(self.path_ndk, "sources", "cxx-stl", "llvm-libc++", "libcxx", "include"))
 | 
				
			||||||
				if arch == "armv5":
 | 
									if arch == "armv5":
 | 
				
			||||||
					stdCppBasePath = self.path_ndk +"/sources/cxx-stl/llvm-libc++/libcxx/libs/armeabi/"
 | 
										stdCppBasePath = os.path.join(self.path_ndk, "sources", "cxx-stl", "llvm-libc++", "libcxx", "libs", "armeabi")
 | 
				
			||||||
					self.global_include_cc.append("-I" + stdCppBasePath + "include/")
 | 
										self.global_include_cc.append("-I" + os.path.join(stdCppBasePath, "include"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "libc++_static.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "libc++_static.a"))
 | 
				
			||||||
				elif arch == "armv7":
 | 
									elif arch == "armv7":
 | 
				
			||||||
					# The only one tested ... ==> but we have link error ...
 | 
										# The only one tested ... ==> but we have link error ...
 | 
				
			||||||
					self.global_flags_cc.append("-target armv7-none-linux-androideabi")
 | 
										self.global_flags_cc.append("-target armv7-none-linux-androideabi")
 | 
				
			||||||
					self.global_flags_cc.append("-march=armv7-a")
 | 
										self.global_flags_cc.append("-march=armv7-a")
 | 
				
			||||||
					self.global_flags_cc.append("-mfpu=vfpv3-d16")
 | 
										self.global_flags_cc.append("-mfpu=vfpv3-d16")
 | 
				
			||||||
					self.global_flags_cc.append("-mhard-float")
 | 
										self.global_flags_cc.append("-mhard-float")
 | 
				
			||||||
					stdCppBasePath = self.path_ndk +"/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/"
 | 
										stdCppBasePath = os.path.join(self.path_ndk, "sources", "cxx-stl", "llvm-libc++", "libs", "armeabi-v7a")
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "thumb/libc++_static.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "thumb", "libc++_static.a"))
 | 
				
			||||||
					self.global_flags_ld.append("-target armv7-none-linux-androideabi")
 | 
										self.global_flags_ld.append("-target armv7-none-linux-androideabi")
 | 
				
			||||||
					self.global_flags_ld.append("-Wl,--fix-cortex-a8")
 | 
										self.global_flags_ld.append("-Wl,--fix-cortex-a8")
 | 
				
			||||||
					self.global_flags_ld.append("-Wl,--no-warn-mismatch")
 | 
										self.global_flags_ld.append("-Wl,--no-warn-mismatch")
 | 
				
			||||||
					self.global_flags_ld.append("-lm_hard")
 | 
										self.global_flags_ld.append("-lm_hard")
 | 
				
			||||||
				elif arch == "mips":
 | 
									elif arch == "mips":
 | 
				
			||||||
					stdCppBasePath = self.path_ndk +"/sources/cxx-stl/llvm-libc++/libcxx/libs/mips/"
 | 
										stdCppBasePath = os.path.join(self.path_ndk, "sources", "cxx-stl", "llvm-libc++", "libcxx", "libs", "mips")
 | 
				
			||||||
					self.global_include_cc.append("-I" + stdCppBasePath + "include/")
 | 
										self.global_include_cc.append("-I" + os.path.join(stdCppBasePath + "include"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "libc++_static.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath + "libc++_static.a"))
 | 
				
			||||||
				elif arch == "x86":
 | 
									elif arch == "x86":
 | 
				
			||||||
					stdCppBasePath = self.path_ndk +"/sources/cxx-stl/llvm-libc++/libcxx/libs/x86/"
 | 
										stdCppBasePath = os.path.join(self.path_ndk, "sources", "cxx-stl", "llvm-libc++", "libcxx", "libs", "x86")
 | 
				
			||||||
					self.global_include_cc.append("-I" + stdCppBasePath + "include/")
 | 
										self.global_include_cc.append("-I" + os.path.join(stdCppBasePath, "include"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "libc++_static.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "libc++_static.a"))
 | 
				
			||||||
			else:
 | 
								else:
 | 
				
			||||||
				self.global_flags_cc.append("-D__STDCPP_GNU__")
 | 
									self.global_flags_cc.append("-D__STDCPP_GNU__")
 | 
				
			||||||
				# GPL v3 (+ exception link for gcc compilator)
 | 
									# GPL v3 (+ exception link for gcc compilator)
 | 
				
			||||||
				self.global_include_cc.append("-I" + self.path_ndk +"/sources/cxx-stl/gnu-libstdc++/" + gccVersion + "/include/")
 | 
									self.global_include_cc.append("-I" + os.path.join(self.path_ndk, "sources", "cxx-stl", "gnu-libstdc++", gccVersion, "include"))
 | 
				
			||||||
				self.global_include_cc.append("-I" + self.path_ndk +"/sources/android/support/include/")
 | 
									self.global_include_cc.append("-I" + os.path.join(self.path_ndk, "sources", "android", "support", "include"))
 | 
				
			||||||
				if arch == "armv5":
 | 
									if arch == "armv5":
 | 
				
			||||||
					stdCppBasePath = self.path_ndk +"/sources/cxx-stl/gnu-libstdc++/" + gccVersion + "/libs/armeabi/"
 | 
										stdCppBasePath = os.path.join(self.path_ndk, "sources", "cxx-stl", "gnu-libstdc++", gccVersion, "libs", "armeabi")
 | 
				
			||||||
					self.global_include_cc.append("-I" + stdCppBasePath + "include/")
 | 
										self.global_include_cc.append("-I" + os.path.join(stdCppBasePath, "include"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "thumb/libgnustl_static.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "thumb", "libgnustl_static.a"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "thumb/libsupc++.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "thumb", "libsupc++.a"))
 | 
				
			||||||
				elif arch == "armv7":
 | 
									elif arch == "armv7":
 | 
				
			||||||
					stdCppBasePath = self.path_ndk +"/sources/cxx-stl/gnu-libstdc++/" + gccVersion + "/libs/armeabi-v7a/"
 | 
										stdCppBasePath = os.path.join(self.path_ndk, "sources", "cxx-stl", "gnu-libstdc++", gccVersion, "libs", "armeabi-v7a")
 | 
				
			||||||
					self.global_include_cc.append("-I" + stdCppBasePath + "include/")
 | 
										self.global_include_cc.append("-I" + os.path.join(stdCppBasePath, "include"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "thumb/libgnustl_static.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "thumb", "libgnustl_static.a"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "thumb/libsupc++.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "thumb", "libsupc++.a"))
 | 
				
			||||||
				elif arch == "mips":
 | 
									elif arch == "mips":
 | 
				
			||||||
					stdCppBasePath = self.path_ndk +"/sources/cxx-stl/gnu-libstdc++/" + gccVersion + "/libs/mips/"
 | 
										stdCppBasePath = os.path.join(self.path_ndk, "sources", "cxx-stl", "gnu-libstdc++", gccVersion, "libs", "mips")
 | 
				
			||||||
					self.global_include_cc.append("-I" + stdCppBasePath + "include/")
 | 
										self.global_include_cc.append("-I" + os.path.join(stdCppBasePath, "include/"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "libgnustl_static.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "libgnustl_static.a"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "libsupc++.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "libsupc++.a"))
 | 
				
			||||||
				elif arch == "x86":
 | 
									elif arch == "x86":
 | 
				
			||||||
					stdCppBasePath = self.path_ndk +"/sources/cxx-stl/gnu-libstdc++/" + gccVersion + "/libs/x86/"
 | 
										stdCppBasePath = os.path.join(self.path_ndk, "sources", "cxx-stl", "gnu-libstdc++", gccVersion, "libs", "x86")
 | 
				
			||||||
					self.global_include_cc.append("-I" + stdCppBasePath + "include/")
 | 
										self.global_include_cc.append("-I" + os.path.join(stdCppBasePath, "include"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "libgnustl_static.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "libgnustl_static.a"))
 | 
				
			||||||
					self.global_flags_ld.append(         stdCppBasePath + "libsupc++.a")
 | 
										self.global_flags_ld.append(         os.path.join(stdCppBasePath, "libsupc++.a"))
 | 
				
			||||||
		else :
 | 
							else :
 | 
				
			||||||
			self.global_include_cc.append("-I" + self.path_ndk +"/sources/cxx-stl/system/include/")
 | 
								self.global_include_cc.append("-I" + os.path.join(self.path_ndk, "sources", "cxx-stl", "system", "include"))
 | 
				
			||||||
			self.global_include_cc.append("-I" + self.path_ndk +"/sources/cxx-stl/stlport/stlport/")
 | 
								self.global_include_cc.append("-I" + os.path.join(self.path_ndk, "sources", "cxx-stl", "stlport", "stlport"))
 | 
				
			||||||
			self.global_flags_ld.append(self.path_ndk +"/platforms/android-" + str(self.boardId) + "/arch-arm/usr/lib/libstdc++.a")
 | 
								self.global_flags_ld.append(os.path.join(self.path_ndk, "platforms", "android-" + str(self.board_id), "arch-arm", "usr", "lib", "libstdc++.a"))
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		self.global_sysroot = "--sysroot=" + self.path_ndk +"/platforms/android-" + str(self.boardId) + "/arch-arm"
 | 
							self.global_sysroot = "--sysroot=" + os.path.join(self.path_ndk, "platforms", "android-" + str(self.board_id), "arch-arm")
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		self.global_flags_cc.append("-D__ARM_ARCH_5__")
 | 
							self.global_flags_cc.append("-D__ARM_ARCH_5__")
 | 
				
			||||||
		self.global_flags_cc.append("-D__ARM_ARCH_5T__")
 | 
							self.global_flags_cc.append("-D__ARM_ARCH_5T__")
 | 
				
			||||||
@@ -208,12 +224,19 @@ class Target(target.Target):
 | 
				
			|||||||
				return True
 | 
									return True
 | 
				
			||||||
		return False
 | 
							return False
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						def convert_name_application(self, pkg_name):
 | 
				
			||||||
 | 
							value = pkg_name.lower()
 | 
				
			||||||
 | 
							value = value.replace(' ', '')
 | 
				
			||||||
 | 
							value = value.replace('-', '')
 | 
				
			||||||
 | 
							value = value.replace('_', '')
 | 
				
			||||||
 | 
							return value
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	"""
 | 
						"""
 | 
				
			||||||
	def get_staging_path_data(self, binary_name):
 | 
						def get_staging_path_data(self, binary_name):
 | 
				
			||||||
		return self.get_staging_path(binary_name) + self.path_data
 | 
							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.debug("------------------------------------------------------------------------")
 | 
				
			||||||
		debug.info("Generate package '" + pkg_name + "' v" + tools.version_to_string(pkg_properties["VERSION"]))
 | 
							debug.info("Generate package '" + pkg_name + "' v" + tools.version_to_string(pkg_properties["VERSION"]))
 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
							debug.debug("------------------------------------------------------------------------")
 | 
				
			||||||
@@ -266,16 +289,27 @@ class Target(target.Target):
 | 
				
			|||||||
		pkg_name_application_name = pkg_name
 | 
							pkg_name_application_name = pkg_name
 | 
				
			||||||
		if self.config["mode"] == "debug":
 | 
							if self.config["mode"] == "debug":
 | 
				
			||||||
			pkg_name_application_name += "debug"
 | 
								pkg_name_application_name += "debug"
 | 
				
			||||||
 | 
							debug.info("ploppppp: " + str(pkg_properties))
 | 
				
			||||||
		# FINAL_path_JAVA_PROJECT
 | 
							# FINAL_path_JAVA_PROJECT
 | 
				
			||||||
		self.path_java_project = os.path.join(target_outpath,
 | 
							self.path_java_project = os.path.join(target_outpath,
 | 
				
			||||||
		                                      "src",
 | 
							                                      "src")
 | 
				
			||||||
		                                      pkg_properties["COMPAGNY_TYPE"],
 | 
							if pkg_properties["COMPAGNY_TYPE"] != "":
 | 
				
			||||||
		                                      pkg_properties["COMPAGNY_NAME2"],
 | 
								self.path_java_project = os.path.join(self.path_java_project,
 | 
				
			||||||
 | 
								                                      pkg_properties["COMPAGNY_TYPE"])
 | 
				
			||||||
 | 
							if pkg_properties["COMPAGNY_NAME2"] != "":
 | 
				
			||||||
 | 
								self.path_java_project = os.path.join(self.path_java_project,
 | 
				
			||||||
 | 
								                                      pkg_properties["COMPAGNY_NAME2"])
 | 
				
			||||||
 | 
							self.path_java_project = os.path.join(self.path_java_project,
 | 
				
			||||||
		                                      pkg_name_application_name)
 | 
							                                      pkg_name_application_name)
 | 
				
			||||||
		#FINAL_FILE_ABSTRACTION
 | 
							#FINAL_FILE_ABSTRACTION
 | 
				
			||||||
		self.file_final_abstraction = os.path.join(self.path_java_project, pkg_name_application_name + ".java")
 | 
							self.file_final_abstraction = os.path.join(self.path_java_project, pkg_name_application_name + ".java")
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		compleatePackageName = pkg_properties["COMPAGNY_TYPE"]+"."+pkg_properties["COMPAGNY_NAME2"]+"." + pkg_name_application_name
 | 
							compleatePackageName = ""
 | 
				
			||||||
 | 
							if pkg_properties["COMPAGNY_TYPE"] != "":
 | 
				
			||||||
 | 
								compleatePackageName += pkg_properties["COMPAGNY_TYPE"] + "."
 | 
				
			||||||
 | 
							if pkg_properties["COMPAGNY_NAME2"] != "":
 | 
				
			||||||
 | 
								compleatePackageName += pkg_properties["COMPAGNY_NAME2"] + "."
 | 
				
			||||||
 | 
							compleatePackageName += pkg_name_application_name
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if "ADMOD_ID" in pkg_properties:
 | 
							if "ADMOD_ID" in pkg_properties:
 | 
				
			||||||
			pkg_properties["RIGHT"].append("INTERNET")
 | 
								pkg_properties["RIGHT"].append("INTERNET")
 | 
				
			||||||
@@ -335,7 +369,7 @@ class Target(target.Target):
 | 
				
			|||||||
		cmdLine = androidToolPath + "aapt p -f " \
 | 
							cmdLine = androidToolPath + "aapt p -f " \
 | 
				
			||||||
		          + "-M " + target_outpath + "/AndroidManifest.xml " \
 | 
							          + "-M " + target_outpath + "/AndroidManifest.xml " \
 | 
				
			||||||
		          + "-F " + target_outpath + "/resources.res " \
 | 
							          + "-F " + target_outpath + "/resources.res " \
 | 
				
			||||||
		          + "-I " + self.path_sdk + "/platforms/android-" + str(self.boardId) + "/android.jar "\
 | 
							          + "-I " + self.path_sdk + "/platforms/android-" + str(self.board_id) + "/android.jar "\
 | 
				
			||||||
		          + "-S " + target_outpath + "/res/ " \
 | 
							          + "-S " + target_outpath + "/res/ " \
 | 
				
			||||||
		          + adModResoucepath \
 | 
							          + adModResoucepath \
 | 
				
			||||||
		          + "-J " + target_outpath + "/src/ "
 | 
							          + "-J " + target_outpath + "/src/ "
 | 
				
			||||||
@@ -360,7 +394,7 @@ class Target(target.Target):
 | 
				
			|||||||
		
 | 
							
 | 
				
			||||||
		cmdLine = "javac " \
 | 
							cmdLine = "javac " \
 | 
				
			||||||
		          + "-d " + self.get_staging_path(pkg_name) + "/build/classes " \
 | 
							          + "-d " + self.get_staging_path(pkg_name) + "/build/classes " \
 | 
				
			||||||
		          + "-classpath " + self.path_sdk + "/platforms/android-" + str(self.boardId) + "/android.jar" \
 | 
							          + "-classpath " + self.path_sdk + "/platforms/android-" + str(self.board_id) + "/android.jar" \
 | 
				
			||||||
		          + adModJarFile + " " \
 | 
							          + adModJarFile + " " \
 | 
				
			||||||
		          + filesString \
 | 
							          + filesString \
 | 
				
			||||||
		          + self.file_final_abstraction + " "  \
 | 
							          + self.file_final_abstraction + " "  \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -82,6 +82,8 @@ class Target(target.Target):
 | 
				
			|||||||
		self.pkg_path_lib = "lib"
 | 
							self.pkg_path_lib = "lib"
 | 
				
			||||||
		self.pkg_path_license = "license"
 | 
							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):
 | 
						def make_package_binary(self, pkg_name, pkg_properties, base_pkg_path, heritage_list, static):
 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
							debug.debug("------------------------------------------------------------------------")
 | 
				
			||||||
@@ -109,23 +111,23 @@ class Target(target.Target):
 | 
				
			|||||||
			# Resize all icon needed for Ios ...
 | 
								# Resize all icon needed for Ios ...
 | 
				
			||||||
			# TODO : Do not regenerate if source resource is not availlable
 | 
								# TODO : Do not regenerate if source resource is not availlable
 | 
				
			||||||
			# TODO : Add a colored background ...
 | 
								# 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)
 | 
								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)
 | 
								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)
 | 
								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)
 | 
								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)
 | 
								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)
 | 
								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)
 | 
								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)
 | 
								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)
 | 
								image.resize(pkg_properties["ICON"], os.path.join(target_outpath, "Icon-Small@2x.png"), 58, 58)
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		## Create the info file:
 | 
							## Create the info file:
 | 
				
			||||||
@@ -177,9 +179,9 @@ class Target(target.Target):
 | 
				
			|||||||
		data_file += "			</array>\n"
 | 
							data_file += "			</array>\n"
 | 
				
			||||||
		data_file += "			\n"
 | 
							data_file += "			\n"
 | 
				
			||||||
		data_file += "			<key>CFBundleShortVersionString</key>\n"
 | 
							data_file += "			<key>CFBundleShortVersionString</key>\n"
 | 
				
			||||||
		data_file += "			<string>"+pkg_properties["VERSION"]+"</string>\n"
 | 
							data_file += "			<string>"+tools.version_to_string(pkg_properties["VERSION"])+"</string>\n"
 | 
				
			||||||
		data_file += "			<key>CFBundleVersion</key>\n"
 | 
							data_file += "			<key>CFBundleVersion</key>\n"
 | 
				
			||||||
		data_file += "			<string>"+pkg_properties["VERSION_CODE"]+"</string>\n"
 | 
							data_file += "			<string>"+str(pkg_properties["VERSION_CODE"])+"</string>\n"
 | 
				
			||||||
		data_file += "			\n"
 | 
							data_file += "			\n"
 | 
				
			||||||
		data_file += "			<key>CFBundleResourceSpecification</key>\n"
 | 
							data_file += "			<key>CFBundleResourceSpecification</key>\n"
 | 
				
			||||||
		data_file += "			<string>ResourceRules.plist</string>\n"
 | 
							data_file += "			<string>ResourceRules.plist</string>\n"
 | 
				
			||||||
@@ -312,8 +314,10 @@ class Target(target.Target):
 | 
				
			|||||||
		# 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
 | 
				
			||||||
		#cd $(TARGET_OUT_FINAL)/; tar -czf $(PROJECT_NAME).tar.gz $(PROJECT_NAME).app
 | 
							#cd $(TARGET_OUT_FINAL)/; tar -czf $(PROJECT_NAME).tar.gz $(PROJECT_NAME).app
 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if self.sumulator == False:
 | 
							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
 | 
								# Create the info file
 | 
				
			||||||
			tmpFile = open(os.path.join(target_outpath, pkg_name + ".xcent"), 'w')
 | 
								tmpFile = open(os.path.join(target_outpath, pkg_name + ".xcent"), 'w')
 | 
				
			||||||
			tmpFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
 | 
								tmpFile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
 | 
				
			||||||
@@ -321,15 +325,12 @@ class Target(target.Target):
 | 
				
			|||||||
			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>application-identifier</key>\n")
 | 
								tmpFile.write("        <key>application-identifier</key>\n")
 | 
				
			||||||
			try:
 | 
					 | 
				
			||||||
			tmpFile.write("        <string>" + pkg_properties["APPLE_APPLICATION_IOS_ID"] + "." + pkg_properties["COMPAGNY_TYPE"] + "." + pkg_properties["COMPAGNY_NAME2"] + "." + pkg_name + "</string>\n")
 | 
								tmpFile.write("        <string>" + pkg_properties["APPLE_APPLICATION_IOS_ID"] + "." + pkg_properties["COMPAGNY_TYPE"] + "." + pkg_properties["COMPAGNY_NAME2"] + "." + pkg_name + "</string>\n")
 | 
				
			||||||
			except:
 | 
					 | 
				
			||||||
				debug.error("Missing package property : APPLE_APPLICATION_IOS_ID")
 | 
					 | 
				
			||||||
			tmpFile.write("        <key>get-task-allow</key>\n")
 | 
								tmpFile.write("        <key>get-task-allow</key>\n")
 | 
				
			||||||
			tmpFile.write("        <true/>\n")
 | 
								tmpFile.write("        <true/>\n")
 | 
				
			||||||
			tmpFile.write("        <key>keychain-access-groups</key>\n")
 | 
								tmpFile.write("        <key>keychain-access-groups</key>\n")
 | 
				
			||||||
			tmpFile.write("        <array>\n")
 | 
								tmpFile.write("        <array>\n")
 | 
				
			||||||
			tmpFile.write("            <string>" + pkg_properties["APPLE_APPLICATION_IOS_ID"] + ".atriasoft.worddown</string>\n")
 | 
								tmpFile.write("            <string>" + pkg_properties["APPLE_APPLICATION_IOS_ID"] + "." + pkg_properties["COMPAGNY_TYPE"] + "." + pkg_properties["COMPAGNY_NAME2"] + "." + pkg_name + "</string>\n")
 | 
				
			||||||
			tmpFile.write("        </array>\n")
 | 
								tmpFile.write("        </array>\n")
 | 
				
			||||||
			tmpFile.write("    </dict>\n")
 | 
								tmpFile.write("    </dict>\n")
 | 
				
			||||||
			tmpFile.write("</plist>\n")
 | 
								tmpFile.write("</plist>\n")
 | 
				
			||||||
@@ -339,7 +340,9 @@ class Target(target.Target):
 | 
				
			|||||||
			debug.print_element("pkg(signed)", "pkg", "<==", "Signing application")
 | 
								debug.print_element("pkg(signed)", "pkg", "<==", "Signing application")
 | 
				
			||||||
			iosDevelopperKeyFile = ".iosKey.txt"
 | 
								iosDevelopperKeyFile = ".iosKey.txt"
 | 
				
			||||||
			if tools.file_size(iosDevelopperKeyFile) < 10:
 | 
								if tools.file_size(iosDevelopperKeyFile) < 10:
 | 
				
			||||||
				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\"'")
 | 
									debug.warning("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\"'")
 | 
				
			||||||
 | 
									debug.warning("Can not be install ... not runnable")
 | 
				
			||||||
 | 
								else:
 | 
				
			||||||
				signatureKey = tools.file_read_data(iosDevelopperKeyFile)
 | 
									signatureKey = tools.file_read_data(iosDevelopperKeyFile)
 | 
				
			||||||
				signatureKey = re.sub('\n', '', signatureKey)
 | 
									signatureKey = re.sub('\n', '', signatureKey)
 | 
				
			||||||
				cmdLine  = 'codesign --force --sign '
 | 
									cmdLine  = 'codesign --force --sign '
 | 
				
			||||||
@@ -349,12 +352,6 @@ class Target(target.Target):
 | 
				
			|||||||
				cmdLine += ' ' + self.get_staging_path(pkg_name)
 | 
									cmdLine += ' ' + self.get_staging_path(pkg_name)
 | 
				
			||||||
				multiprocess.run_command(cmdLine)
 | 
									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):
 | 
						def createRandomNumber(self, len):
 | 
				
			||||||
		out = ""
 | 
							out = ""
 | 
				
			||||||
		for iii in range(0,len):
 | 
							for iii in range(0,len):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -73,7 +73,7 @@ class Target(target.Target):
 | 
				
			|||||||
	        *    *--> YY
 | 
						        *    *--> YY
 | 
				
			||||||
	        *--> sources
 | 
						        *--> 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.debug("------------------------------------------------------------------------")
 | 
				
			||||||
		debug.info("Generate generic '" + pkg_name + "' v" + tools.version_to_string(pkg_properties["VERSION"]))
 | 
							debug.info("Generate generic '" + pkg_name + "' v" + tools.version_to_string(pkg_properties["VERSION"]))
 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
							debug.debug("------------------------------------------------------------------------")
 | 
				
			||||||
@@ -94,221 +94,50 @@ class Target(target.Target):
 | 
				
			|||||||
		self.make_package_generic_files(target_outpath, pkg_properties, pkg_name, base_pkg_path, heritage_list, static)
 | 
							self.make_package_generic_files(target_outpath, pkg_properties, pkg_name, base_pkg_path, heritage_list, static)
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		## create the package:
 | 
							## create the package:
 | 
				
			||||||
		debug.debug("package : " + self.get_staging_path(pkg_name) + "/" + pkg_name + ".app.pkg")
 | 
							debug.debug("package : " + os.path.join(self.get_staging_path(pkg_name), pkg_name + ".app.pkg"))
 | 
				
			||||||
		os.system("cd " + self.get_staging_path(pkg_name) + " ; tar -czf " + pkg_name + ".app.tar.gz " + pkg_name + ".app")
 | 
							os.system("cd " + self.get_staging_path(pkg_name) + " ; tar -czf " + pkg_name + ".app.tar.gz " + pkg_name + ".app")
 | 
				
			||||||
		#multiprocess.run_command("cd " + self.get_staging_path(pkg_name) + " ; tar -czf " + pkg_name + ".app.tar.gz " + pkg_name + ".app")
 | 
							#multiprocess.run_command("cd " + self.get_staging_path(pkg_name) + " ; tar -czf " + pkg_name + ".app.tar.gz " + pkg_name + ".app")
 | 
				
			||||||
		tools.create_directory_of_file(self.get_final_path())
 | 
							tools.create_directory_of_file(self.get_final_path())
 | 
				
			||||||
		tools.copy_file(self.get_staging_path(pkg_name) + "/" + pkg_name + ".app.tar.gz", self.get_final_path() + "/" + pkg_name + ".app.gpkg")
 | 
							tools.copy_file(os.path.join(self.get_staging_path(pkg_name), pkg_name + ".app.tar.gz"), os.path.join(self.get_final_path(), pkg_name + ".app.gpkg"))
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	def make_package_debian(self, pkg_name, pkg_properties, base_pkg_path, heritage_list):
 | 
					 | 
				
			||||||
		# http://alp.developpez.com/tutoriels/debian/creer-paquet/
 | 
					 | 
				
			||||||
		debianpkg_name = re.sub("_", "-", pkg_name)
 | 
					 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
					 | 
				
			||||||
		debug.info("Generate package '" + debianpkg_name + "' v"+pkg_properties["VERSION"])
 | 
					 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
					 | 
				
			||||||
		self.get_staging_path(pkg_name)
 | 
					 | 
				
			||||||
		target_outpathDebian = self.get_staging_path(pkg_name) + "/DEBIAN/"
 | 
					 | 
				
			||||||
		finalFileControl = target_outpathDebian + "control"
 | 
					 | 
				
			||||||
		finalFilepostRm = target_outpathDebian + "postrm"
 | 
					 | 
				
			||||||
		# create the paths :
 | 
					 | 
				
			||||||
		tools.create_directory_of_file(finalFileControl)
 | 
					 | 
				
			||||||
		tools.create_directory_of_file(finalFilepostRm)
 | 
					 | 
				
			||||||
		## Create the control file
 | 
					 | 
				
			||||||
		tools.create_directory_of_file(finalFileControl)
 | 
					 | 
				
			||||||
		tmpFile = open(finalFileControl, 'w')
 | 
					 | 
				
			||||||
		tmpFile.write("Package: " + debianpkg_name + "\n")
 | 
					 | 
				
			||||||
		tmpFile.write("Version: " + pkg_properties["VERSION"] + "\n")
 | 
					 | 
				
			||||||
		tmpFile.write("Section: " + self.generate_list_separate_coma(pkg_properties["SECTION"]) + "\n")
 | 
					 | 
				
			||||||
		tmpFile.write("Priority: " + pkg_properties["PRIORITY"] + "\n")
 | 
					 | 
				
			||||||
		tmpFile.write("Architecture: all\n")
 | 
					 | 
				
			||||||
		tmpFile.write("Depends: bash\n")
 | 
					 | 
				
			||||||
		tmpFile.write("Maintainer: " + self.generate_list_separate_coma(pkg_properties["MAINTAINER"]) + "\n")
 | 
					 | 
				
			||||||
		tmpFile.write("Description: " + pkg_properties["DESCRIPTION"] + "\n")
 | 
					 | 
				
			||||||
		tmpFile.write("\n")
 | 
					 | 
				
			||||||
		tmpFile.flush()
 | 
					 | 
				
			||||||
		tmpFile.close()
 | 
					 | 
				
			||||||
		## Create the PostRm
 | 
					 | 
				
			||||||
		tmpFile = open(finalFilepostRm, 'w')
 | 
					 | 
				
			||||||
		tmpFile.write("#!/bin/bash\n")
 | 
					 | 
				
			||||||
		tmpFile.write("touch ~/." + pkg_name + "\n")
 | 
					 | 
				
			||||||
		if pkg_name != "":
 | 
					 | 
				
			||||||
			tmpFile.write("touch ~/.local/share/" + pkg_name + "\n")
 | 
					 | 
				
			||||||
			tmpFile.write("rm -r ~/.local/share/" + pkg_name + "\n")
 | 
					 | 
				
			||||||
		tmpFile.write("\n")
 | 
					 | 
				
			||||||
		tmpFile.flush()
 | 
					 | 
				
			||||||
		tmpFile.close()
 | 
					 | 
				
			||||||
		## Enable Execution in script
 | 
					 | 
				
			||||||
		os.chmod(finalFilepostRm, stat.S_IRWXU + stat.S_IRGRP + stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH);
 | 
					 | 
				
			||||||
		## Readme donumentation
 | 
					 | 
				
			||||||
		readmeFileDest = self.get_staging_path(pkg_name) + "/usr/share/doc/"+ debianpkg_name + "/README"
 | 
					 | 
				
			||||||
		tools.create_directory_of_file(readmeFileDest)
 | 
					 | 
				
			||||||
		if os.path.exists(base_pkg_path + "/os-Linux/README")==True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/os-Linux/README", readmeFileDest)
 | 
					 | 
				
			||||||
		elif os.path.exists(base_pkg_path + "/README")==True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/README", readmeFileDest)
 | 
					 | 
				
			||||||
		elif os.path.exists(base_pkg_path + "/README.md")==True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/README.md", readmeFileDest)
 | 
					 | 
				
			||||||
		else:
 | 
					 | 
				
			||||||
			debug.info("no file 'README', 'README.md' or 'os-Linux/README' ==> generate an empty one")
 | 
					 | 
				
			||||||
			tmpFile = open(readmeFileDest, 'w')
 | 
					 | 
				
			||||||
			tmpFile.write("No documentation for " + pkg_name + "\n")
 | 
					 | 
				
			||||||
			tmpFile.flush()
 | 
					 | 
				
			||||||
			tmpFile.close()
 | 
					 | 
				
			||||||
		## licence file
 | 
					 | 
				
			||||||
		license_file_dest = self.get_staging_path(pkg_name) + "/usr/share/doc/"+ debianpkg_name + "/copyright"
 | 
					 | 
				
			||||||
		tools.create_directory_of_file(license_file_dest)
 | 
					 | 
				
			||||||
		if os.path.exists(base_pkg_path + "/license.txt")==True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/license.txt", license_file_dest)
 | 
					 | 
				
			||||||
		else:
 | 
					 | 
				
			||||||
			debug.info("no file 'license.txt' ==> generate an empty one")
 | 
					 | 
				
			||||||
			tmpFile = open(license_file_dest, 'w')
 | 
					 | 
				
			||||||
			tmpFile.write("No license define by the developper for " + pkg_name + "\n")
 | 
					 | 
				
			||||||
			tmpFile.flush()
 | 
					 | 
				
			||||||
			tmpFile.close()
 | 
					 | 
				
			||||||
		##changeLog file
 | 
					 | 
				
			||||||
		change_log_file_dest = self.get_staging_path(pkg_name) + "/usr/share/doc/"+ debianpkg_name + "/changelog"
 | 
					 | 
				
			||||||
		tools.create_directory_of_file(change_log_file_dest)
 | 
					 | 
				
			||||||
		if os.path.exists(base_pkg_path + "/changelog")==True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/changelog", change_log_file_dest)
 | 
					 | 
				
			||||||
		else:
 | 
					 | 
				
			||||||
			debug.info("no file 'changelog' ==> generate an empty one")
 | 
					 | 
				
			||||||
			tmpFile = open(change_log_file_dest, 'w')
 | 
					 | 
				
			||||||
			tmpFile.write("No changelog data " + pkg_name + "\n")
 | 
					 | 
				
			||||||
			tmpFile.flush()
 | 
					 | 
				
			||||||
			tmpFile.close()
 | 
					 | 
				
			||||||
		## create the package :
 | 
					 | 
				
			||||||
		debug.debug("package : " + self.get_staging_path(pkg_name) + "/" + debianpkg_name + ".deb")
 | 
					 | 
				
			||||||
		os.system("cd " + self.get_staging_path("") + " ; dpkg-deb --build " + pkg_name)
 | 
					 | 
				
			||||||
		tools.create_directory_of_file(self.get_final_path())
 | 
					 | 
				
			||||||
		tools.copy_file(self.get_staging_path("") + "/" + pkg_name + self.suffix_package, self.get_final_path() + "/" + pkg_name + self.suffix_package)
 | 
					 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	def install_package(self, pkg_name):
 | 
						def install_package(self, pkg_name):
 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
							debug.debug("------------------------------------------------------------------------")
 | 
				
			||||||
		debug.info("Install package '" + pkg_name + "'")
 | 
							debug.info("Install package '" + pkg_name + "'")
 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
							debug.debug("------------------------------------------------------------------------")
 | 
				
			||||||
		os.system("sudo dpkg -i " + self.get_final_path() + "/" + pkg_name + self.suffix_package)
 | 
							# this is temporary ... Will call:
 | 
				
			||||||
 | 
							if False:
 | 
				
			||||||
 | 
								os.system("lutin-pkg -i " + os.path.join(self.get_final_path(), + pkg_name + ".app.gpkg"))
 | 
				
			||||||
 | 
							else:
 | 
				
			||||||
 | 
								#Copy directly from staging path:
 | 
				
			||||||
 | 
								appl_path = os.path.join(self.get_staging_path(pkg_name), pkg_name + ".app")
 | 
				
			||||||
 | 
								target_path = os.path.join(os.path.expanduser("~"), ".local", "application", pkg_name + ".app")
 | 
				
			||||||
 | 
								target_bin_path = os.path.join(os.path.expanduser("~"), ".local", "application", pkg_name + ".app", "bin", pkg_name)
 | 
				
			||||||
 | 
								target_bin_link = os.path.join(os.path.expanduser("~"), ".local", "application", pkg_name)
 | 
				
			||||||
 | 
								# remove output path:
 | 
				
			||||||
 | 
								tools.remove_path_and_sub_path(target_path)
 | 
				
			||||||
 | 
								# remove executable link version:
 | 
				
			||||||
 | 
								tools.remove_file(target_bin_link)
 | 
				
			||||||
 | 
								# copy result:
 | 
				
			||||||
 | 
								tools.copy_anything(appl_path, target_path, recursive=True)
 | 
				
			||||||
 | 
								# create synbolic link:
 | 
				
			||||||
 | 
								debug.info("kkk " + "ln -s " + target_bin_path + " " + target_bin_link)
 | 
				
			||||||
 | 
								os.symlink(target_bin_path, target_bin_link)
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	def un_install_package(self, pkg_name):
 | 
						def un_install_package(self, pkg_name):
 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
							debug.debug("------------------------------------------------------------------------")
 | 
				
			||||||
		debug.info("Un-Install package '" + pkg_name + "'")
 | 
							debug.info("Un-Install package '" + pkg_name + "'")
 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
							debug.debug("------------------------------------------------------------------------")
 | 
				
			||||||
		os.system("sudo dpkg -r " + self.get_final_path() + "/" + pkg_name + self.suffix_package)
 | 
							# this is temporary ... Will call:
 | 
				
			||||||
	
 | 
							if False:
 | 
				
			||||||
	"""
 | 
								os.system("lutin-pkg -r " + pkg_name)
 | 
				
			||||||
	.local/application
 | 
					 | 
				
			||||||
	    *--> applName -> applName.app/bin/applName
 | 
					 | 
				
			||||||
	    *--> applName.app
 | 
					 | 
				
			||||||
	        *--> appl_description.txt
 | 
					 | 
				
			||||||
	        *--> appl_name.txt
 | 
					 | 
				
			||||||
	        *--> changelog.txt
 | 
					 | 
				
			||||||
	        *--> copyright.txt
 | 
					 | 
				
			||||||
	        *--> readme.txt
 | 
					 | 
				
			||||||
	        *--> version.txt
 | 
					 | 
				
			||||||
	        *--> website.txt
 | 
					 | 
				
			||||||
	        *--> icon.png
 | 
					 | 
				
			||||||
	        *--> bin
 | 
					 | 
				
			||||||
	        *    *--> applName
 | 
					 | 
				
			||||||
	        *--> doc
 | 
					 | 
				
			||||||
	        *    *--> applName
 | 
					 | 
				
			||||||
	        *--> lib
 | 
					 | 
				
			||||||
	        *    *--> XX.so
 | 
					 | 
				
			||||||
	        *    *--> YY.so
 | 
					 | 
				
			||||||
	        *--> license
 | 
					 | 
				
			||||||
	        *    *--> applName.txt
 | 
					 | 
				
			||||||
	        *    *--> libXX.txt
 | 
					 | 
				
			||||||
	        *    *--> libYY.txt
 | 
					 | 
				
			||||||
	        *--> man
 | 
					 | 
				
			||||||
	        *--> share
 | 
					 | 
				
			||||||
	        *    *--> applName
 | 
					 | 
				
			||||||
	        *    *--> XX
 | 
					 | 
				
			||||||
	        *    *--> YY
 | 
					 | 
				
			||||||
	        *--> sources
 | 
					 | 
				
			||||||
	"""
 | 
					 | 
				
			||||||
	def make_package_generic(self, pkg_name, pkg_properties, base_pkg_path, heritage_list):
 | 
					 | 
				
			||||||
		debug.warning("heritage for " + str(pkg_name) + ":")
 | 
					 | 
				
			||||||
		for heritage in heritage_list.list_heritage:
 | 
					 | 
				
			||||||
			debug.warning("heritage .... " + str(heritage.name) + " : " + str(heritage.depends))
 | 
					 | 
				
			||||||
		debianpkg_name = re.sub("_", "-", pkg_name)
 | 
					 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
					 | 
				
			||||||
		debug.info("Generate generic '" + debianpkg_name + "' v"+pkg_properties["VERSION"])
 | 
					 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
					 | 
				
			||||||
		target_outpath = self.get_staging_path(pkg_name) + "/edn.app/"
 | 
					 | 
				
			||||||
		tools.create_directory_of_file(target_outpath)
 | 
					 | 
				
			||||||
		## Create version file
 | 
					 | 
				
			||||||
		tmpFile = open(target_outpath + "/version.txt", 'w')
 | 
					 | 
				
			||||||
		tmpFile.write(pkg_properties["VERSION"])
 | 
					 | 
				
			||||||
		tmpFile.flush()
 | 
					 | 
				
			||||||
		tmpFile.close()
 | 
					 | 
				
			||||||
		## Create maintainer file
 | 
					 | 
				
			||||||
		tmpFile = open(target_outpath + "/maintainer.txt", 'w')
 | 
					 | 
				
			||||||
		tmpFile.write(self.generate_list_separate_coma(pkg_properties["MAINTAINER"]))
 | 
					 | 
				
			||||||
		tmpFile.flush()
 | 
					 | 
				
			||||||
		tmpFile.close()
 | 
					 | 
				
			||||||
		## Create appl_name file
 | 
					 | 
				
			||||||
		tmpFile = open(target_outpath + "/appl_name.txt", 'w')
 | 
					 | 
				
			||||||
		tmpFile.write("en_EN:" + pkg_properties["NAME"])
 | 
					 | 
				
			||||||
		tmpFile.flush()
 | 
					 | 
				
			||||||
		tmpFile.close()
 | 
					 | 
				
			||||||
		## Create appl_description file
 | 
					 | 
				
			||||||
		tmpFile = open(target_outpath + "/appl_description.txt", 'w')
 | 
					 | 
				
			||||||
		tmpFile.write("en_EN:" + pkg_properties["DESCRIPTION"])
 | 
					 | 
				
			||||||
		tmpFile.flush()
 | 
					 | 
				
			||||||
		tmpFile.close()
 | 
					 | 
				
			||||||
		## Create Readme file
 | 
					 | 
				
			||||||
		readmeFileDest = target_outpath + "/readme.txt"
 | 
					 | 
				
			||||||
		if os.path.exists(base_pkg_path + "/os-Linux/README")==True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/os-Linux/README", readmeFileDest)
 | 
					 | 
				
			||||||
		elif os.path.exists(base_pkg_path + "/README")==True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/README", readmeFileDest)
 | 
					 | 
				
			||||||
		elif os.path.exists(base_pkg_path + "/README.md")==True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/README.md", readmeFileDest)
 | 
					 | 
				
			||||||
		else:
 | 
							else:
 | 
				
			||||||
			debug.info("no file 'README', 'README.md' or 'os-Linux/README' ==> generate an empty one")
 | 
								#Copy directly from staging path:
 | 
				
			||||||
			tmpFile = open(readmeFileDest, 'w')
 | 
								target_path = os.path.join(os.path.expanduser("~"), ".local", "application", pkg_name + ".app")
 | 
				
			||||||
			tmpFile.write("No documentation for " + pkg_name + "\n")
 | 
								target_bin_link = os.path.join(os.path.expanduser("~"), ".local", "application", pkg_name)
 | 
				
			||||||
			tmpFile.flush()
 | 
								# remove output path:
 | 
				
			||||||
			tmpFile.close()
 | 
								tools.remove_path_and_sub_path(target_path)
 | 
				
			||||||
		## Create licence file
 | 
								# remove executable link version:
 | 
				
			||||||
		license_file_dest = target_outpath + "/license/"+ debianpkg_name + ".txt"
 | 
								tools.remove_file(target_bin_link)
 | 
				
			||||||
		tools.create_directory_of_file(license_file_dest)
 | 
					 | 
				
			||||||
		if os.path.exists(base_pkg_path + "/license.txt")==True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/license.txt", license_file_dest)
 | 
					 | 
				
			||||||
		else:
 | 
					 | 
				
			||||||
			debug.info("no file 'license.txt' ==> generate an empty one")
 | 
					 | 
				
			||||||
			tmpFile = open(license_file_dest, 'w')
 | 
					 | 
				
			||||||
			tmpFile.write("No license define by the developper for " + pkg_name + "\n")
 | 
					 | 
				
			||||||
			tmpFile.flush()
 | 
					 | 
				
			||||||
			tmpFile.close()
 | 
					 | 
				
			||||||
		## Create changeLog file
 | 
					 | 
				
			||||||
		change_log_file_dest = target_outpath + "/changelog.txt"
 | 
					 | 
				
			||||||
		if os.path.exists(base_pkg_path + "/changelog") == True:
 | 
					 | 
				
			||||||
			tools.copy_file(base_pkg_path + "/changelog", change_log_file_dest)
 | 
					 | 
				
			||||||
		else:
 | 
					 | 
				
			||||||
			debug.info("no file 'changelog' ==> generate an empty one")
 | 
					 | 
				
			||||||
			tmpFile = open(change_log_file_dest, 'w')
 | 
					 | 
				
			||||||
			tmpFile.write("No changelog data " + pkg_name + "\n")
 | 
					 | 
				
			||||||
			tmpFile.flush()
 | 
					 | 
				
			||||||
			tmpFile.close()
 | 
					 | 
				
			||||||
		## copy share path
 | 
					 | 
				
			||||||
		#debug.info("plop:" + self.get_staging_path(pkg_name) + self.path_data)
 | 
					 | 
				
			||||||
		if os.path.exists(self.get_staging_path(pkg_name) + self.path_data) == True:
 | 
					 | 
				
			||||||
			tools.copy_anything(self.get_staging_path(pkg_name) + self.path_data + "/*", target_outpath + self.path_data, recursive=True)
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		## Create binary path:
 | 
					 | 
				
			||||||
		bin_path = target_outpath + self.path_bin
 | 
					 | 
				
			||||||
		#tools.create_directory_of_file(bin_path)
 | 
					 | 
				
			||||||
		tools.copy_anything(self.get_staging_path(pkg_name) + self.path_bin + "/*",
 | 
					 | 
				
			||||||
		                    bin_path)
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		## create the package:
 | 
					 | 
				
			||||||
		debug.debug("package : " + self.get_staging_path(pkg_name) + "/" + debianpkg_name + ".app.pkg")
 | 
					 | 
				
			||||||
		os.system("cd " + self.get_staging_path(pkg_name) + " ; tar -czf " + pkg_name + ".app.tar.gz " + pkg_name + ".app")
 | 
					 | 
				
			||||||
		#multiprocess.run_command("cd " + self.get_staging_path(pkg_name) + " ; tar -czf " + pkg_name + ".app.tar.gz " + pkg_name + ".app")
 | 
					 | 
				
			||||||
		tools.create_directory_of_file(self.get_final_path())
 | 
					 | 
				
			||||||
		tools.copy_file(self.get_staging_path(pkg_name) + "/" + pkg_name + ".app.tar.gz", self.get_final_path() + "/" + pkg_name + ".app.gpkg")
 | 
					 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -110,7 +110,6 @@ class Target(target.Target):
 | 
				
			|||||||
		data_file  = "#!/bin/bash\n"
 | 
							data_file  = "#!/bin/bash\n"
 | 
				
			||||||
		data_file += "# Simply open the real application in the correct way (a link does not work ...)\n"
 | 
							data_file += "# Simply open the real application in the correct way (a link does not work ...)\n"
 | 
				
			||||||
		data_file += "/Applications/" + pkg_name + ".app/Contents/MacOS/" + pkg_name + " $*\n"
 | 
							data_file += "/Applications/" + pkg_name + ".app/Contents/MacOS/" + pkg_name + " $*\n"
 | 
				
			||||||
		#tmpFile.write("open -n /Applications/edn.app --args -AppCommandLineArg $*\n")
 | 
					 | 
				
			||||||
		tools.file_write_data(os.path.join(target_outpath, "shell", pkg_name),
 | 
							tools.file_write_data(os.path.join(target_outpath, "shell", pkg_name),
 | 
				
			||||||
		                      data_file,
 | 
							                      data_file,
 | 
				
			||||||
		                      only_if_new=True)
 | 
							                      only_if_new=True)
 | 
				
			||||||
@@ -128,8 +127,8 @@ class Target(target.Target):
 | 
				
			|||||||
		debug.info("disk image: " + output_file_name)
 | 
							debug.info("disk image: " + output_file_name)
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		## user information:
 | 
							## user information:
 | 
				
			||||||
		debug.info("You can have an shell interface by executing : ")
 | 
							#debug.info("You can have an shell interface by executing : ")
 | 
				
			||||||
		debug.info("    sudo cp " + shell_file_name + " /usr/local/bin")
 | 
							#debug.info("    sudo cp " + shell_file_name + " /usr/local/bin")
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	def install_package(self, pkg_name):
 | 
						def install_package(self, pkg_name):
 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
							debug.debug("------------------------------------------------------------------------")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,11 +50,6 @@ class Target(target.Target):
 | 
				
			|||||||
		                             "-static-libstdc++",
 | 
							                             "-static-libstdc++",
 | 
				
			||||||
		                             "-static"])
 | 
							                             "-static"])
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		#self.path_bin=""
 | 
					 | 
				
			||||||
		#self.path_lib="lib"
 | 
					 | 
				
			||||||
		#self.path_data="data"
 | 
					 | 
				
			||||||
		#self.path_doc="doc"
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		self.pkg_path_data = "data"
 | 
							self.pkg_path_data = "data"
 | 
				
			||||||
		self.pkg_path_bin = ""
 | 
							self.pkg_path_bin = ""
 | 
				
			||||||
		self.pkg_path_lib = "lib"
 | 
							self.pkg_path_lib = "lib"
 | 
				
			||||||
@@ -70,7 +65,7 @@ class Target(target.Target):
 | 
				
			|||||||
	def get_staging_path_data(self, binary_name, heritage_list):
 | 
						def get_staging_path_data(self, binary_name, heritage_list):
 | 
				
			||||||
		return self.get_staging_path(binary_name) + self.path_data
 | 
							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.debug("------------------------------------------------------------------------")
 | 
				
			||||||
		debug.info("Generate package '" + pkg_name + "' v" + tools.version_to_string(pkg_properties["VERSION"]))
 | 
							debug.info("Generate package '" + pkg_name + "' v" + tools.version_to_string(pkg_properties["VERSION"]))
 | 
				
			||||||
		debug.debug("------------------------------------------------------------------------")
 | 
							debug.debug("------------------------------------------------------------------------")
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										9
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								setup.py
									
									
									
									
									
								
							@@ -7,8 +7,8 @@ def readme():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# https://pypi.python.org/pypi?%3Aaction=list_classifiers
 | 
					# https://pypi.python.org/pypi?%3Aaction=list_classifiers
 | 
				
			||||||
setup(name='lutin',
 | 
					setup(name='lutin',
 | 
				
			||||||
      version='0.7.1',
 | 
					      version='0.7.10',
 | 
				
			||||||
      description='Lutin generic builder',
 | 
					      description='Lutin generic builder (might replace makefile, CMake ...)',
 | 
				
			||||||
      long_description=readme(),
 | 
					      long_description=readme(),
 | 
				
			||||||
      url='http://github.com/HeeroYui/lutin',
 | 
					      url='http://github.com/HeeroYui/lutin',
 | 
				
			||||||
      author='Edouard DUPIN',
 | 
					      author='Edouard DUPIN',
 | 
				
			||||||
@@ -19,7 +19,7 @@ setup(name='lutin',
 | 
				
			|||||||
                'lutin/z_system',
 | 
					                'lutin/z_system',
 | 
				
			||||||
                'lutin/z_target'],
 | 
					                'lutin/z_target'],
 | 
				
			||||||
      classifiers=[
 | 
					      classifiers=[
 | 
				
			||||||
        'Development Status :: 3 - Alpha',
 | 
					        'Development Status :: 4 - Beta',
 | 
				
			||||||
        'License :: OSI Approved :: Apache Software License',
 | 
					        'License :: OSI Approved :: Apache Software License',
 | 
				
			||||||
        'Programming Language :: Python',
 | 
					        'Programming Language :: Python',
 | 
				
			||||||
        'Topic :: Software Development :: Compilers',
 | 
					        'Topic :: Software Development :: Compilers',
 | 
				
			||||||
@@ -33,6 +33,7 @@ setup(name='lutin',
 | 
				
			|||||||
      include_package_data = True,
 | 
					      include_package_data = True,
 | 
				
			||||||
      zip_safe=False)
 | 
					      zip_safe=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#To developp: ./setup.py install/develop
 | 
					#To developp: sudo ./setup.py install
 | 
				
			||||||
 | 
					#             sudo ./setup.py develop
 | 
				
			||||||
#TO register all in pip: ./setup.py register sdist upload
 | 
					#TO register all in pip: ./setup.py register sdist upload
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										22
									
								
								test/test-c/lutin_test-c.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								test/test-c/lutin_test-c.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/python
 | 
				
			||||||
 | 
					import lutin.module as module
 | 
				
			||||||
 | 
					import lutin.tools as tools
 | 
				
			||||||
 | 
					import lutin.debug as debug
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_type():
 | 
				
			||||||
 | 
						return "BINARY"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_desc():
 | 
				
			||||||
 | 
						return "Text C compilation"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def create(target, module_name):
 | 
				
			||||||
 | 
						my_module = module.Module(__file__, module_name, get_type())
 | 
				
			||||||
 | 
						my_module.add_extra_compile_flags()
 | 
				
			||||||
 | 
						my_module.add_src_file([
 | 
				
			||||||
 | 
							'test.c'
 | 
				
			||||||
 | 
							])
 | 
				
			||||||
 | 
						if target.name=="Android":
 | 
				
			||||||
 | 
							my_module.compile_version("c", 1999)
 | 
				
			||||||
 | 
						return my_module
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										6
									
								
								test/test-c/test.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								test/test-c/test.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(int _argc, char* _argv[]) {
 | 
				
			||||||
 | 
						printf("Hello World\n");
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user