summaryrefslogtreecommitdiff
path: root/packages/python/python-numeric
diff options
context:
space:
mode:
Diffstat (limited to 'packages/python/python-numeric')
0 files changed, 0 insertions, 0 deletions
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
#
# This oeclass takes care about some of the itchy details of installing parts
# of Opie applications. Depending on quicklaunch or not, plugin or not, the
# TARGET is either a shared object, a shared object with a link to quicklauncher,
# or a usual binary.
# 
# You have to provide two things: 1.) A proper SECTION field, and 2.) a proper APPNAME
# Then opie.oeclass will:
#    * create the directory for the binary and install the binary file(s)
#    * for applications: create the directory for the .desktop and install the .desktop file
#    * for quicklauncher applications: create the startup symlink to the quicklauncher
# You can override the automatic detection of APPTYPE, valid values are 'quicklaunch', 'binary', 'plugin'
# You can override the default location of APPDESKTOP (<workdir>/apps/<section>/)
#

inherit palmtop

OPIE_CVS_PV ?= "1.2.2+cvs${SRCDATE}"

DEPENDS_prepend = "${@["libopie2 ", ""][(bb.data.getVar('PN', d, 1) == 'libopie2')]}"

# to be consistent, put all targets into workdir
# NOTE: leave one space at the end, other files are expecting that
EXTRA_QMAKEVARS_POST += " DESTDIR=${S} "

# Opie standard TAG value
TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '_')}"

# plan for later:
# add common scopes for opie applications, see qmake-native/common.pro
# qmake should care about all the details then. qmake can do that, i know it :)
#

python opie_do_opie_install() {
	import os, shutil
	section = bb.data.getVar( "SECTION", d ).split( '/' )[1] or "Applications"
	section = section.title()
	if section in ( "Base", "Libs" ):
		bb.note( "Section = Base or Libs. Target won't be installed automatically." )
		return

	#               SECTION         : BINDIR			DESKTOPDIR
	dirmap = { 	"Applets" 	: ( "/plugins/applets",		None 			),
			"Applications" 	: ( "<BINDIR>",			"/apps/Applications" 	),
			"Multimedia"	: ( "<BINDIR>",			"/apps/Applications"	),
			"Games"		: ( "<BINDIR>",			"/apps/Games"		),
			"Settings"	: ( "<BINDIR>",			"/apps/Settings"	),
			"Pim"		: ( "<BINDIR>",			"/apps/1Pim"		),
			"Examples"	: ( "<BINDIR>",			"/apps/Examples"	),
			"Shell"		: ( "/bin",			"/apps/Opie-SH"		),
			"Codecs"	: ( "/plugins/codecs",		None			),
			"Decorations"	: ( "/plugins/decorations",	None			),
			"Inputmethods"	: ( "/plugins/inputmethods",	None			),
			"Fontfactories" : ( "/plugins/fontfactories",	None			),
			"Security"	: ( "/plugins/security",	None			),
			"Styles"	: ( "/plugins/styles",		None			),
			"Today"		: ( "/plugins/today",		None			),
			"Datebook"	: ( "/plugins/holidays",	None			),
		"Networksettings"	: ( "/plugins/networksettings", None			) }

	if section not in dirmap:
		raise ValueError, "Unknown section '%s'. Valid sections are: %s" % ( section, dirmap.keys() )
	
	bindir, desktopdir = dirmap[section]
	APPNAME = bb.data.getVar( "APPNAME", d, True ) or bb.data.getVar( "PN", d, True )
	APPTYPE = bb.data.getVar( "APPTYPE", d, True )
	if not APPTYPE:
		if bindir == "<BINDIR>":
			APPTYPE = "quicklaunch"
		else:
			APPTYPE = "plugin"

	appmap = { "binary":"/bin", "quicklaunch":"/plugins/application" }
	if bindir == "<BINDIR>": bindir = appmap[APPTYPE]
	
	bb.note( "Section='%s', bindir='%s', desktopdir='%s', name='%s', type='%s'" %
               ( section, bindir, desktopdir, APPNAME, APPTYPE ) )

	S = bb.data.getVar( "S", d, 1 )
	D = "%s/image" % bb.data.getVar( "WORKDIR", d, True )
	WORKDIR = bb.data.getVar( "WORKDIR", d, True )
	palmtopdir = bb.data.getVar( "palmtopdir", d, True )
	gnubindir = bb.data.getVar( "bindir", d, True )
	APPDESKTOP = bb.data.getVar( "APPDESKTOP", d, True ) or "%s/%s" % ( WORKDIR, desktopdir )

	if desktopdir is not None:
		os.system( "install -d %s%s%s/" % ( D, palmtopdir, desktopdir ) )
		os.system( "install -m 0644 %s/%s.desktop %s%s%s/" % ( APPDESKTOP, APPNAME, D, palmtopdir, desktopdir ) )

	os.system( "install -d %s%s%s/" % ( D, palmtopdir, bindir ) )

	if APPTYPE == "binary":
		os.system( "install -d %s%s/" % ( D, gnubindir ) )
		os.system( "install -m 0755 %s/%s %s%s/" % ( S, APPNAME, D, gnubindir ) )
	elif APPTYPE == "quicklaunch":
		os.system( "install -m 0755 %s/lib%s.so %s%s%s/" % ( S, APPNAME, D, palmtopdir, bindir ) )
		os.system( "install -d %s%s/" % ( D, gnubindir ) )
		os.system( "ln -sf %s/quicklauncher %s%s/%s" % ( gnubindir, D, gnubindir, APPNAME ) )
	elif APPTYPE == "plugin":
		os.system( "install -m 0755 %s/lib%s.so %s%s%s/" % ( S, APPNAME, D, palmtopdir, bindir ) )
}

EXPORT_FUNCTIONS do_opie_install
addtask opie_install after do_compile before do_package