Yocto Language support - localization

I'm am working on a yocto project ( imx6 based ) with Qt5.
I need my image to support "Hebrew" out of the box, as well as English.
Any Idea ?
Thanks,
Ran

So, Language support doesn't need any BSP specific changes or Yocto specific changes. You can include it in the Qt app with Qt linguistic support. This might be helpful to you to solve linguistic problem. Qt Linguistic.. As they are officially supporting hebrew as well. I am not sure which qt Version you are using but this will surely help to make some decision. You can also enable language packages plugins by updating recipes in Yocto but it would be good to have Qt linguistic approach.

Related

Why can't a Yocto SDK build a Yocto SDK?

There are set of related questions here, because I suspect I am asking the wrong question. The related questions may help someone discern what my fundamental misunderstanding is.
I have worked through:
https://www.yoctoproject.org/docs/2.6/ref-manual/ref-manual.html
https://www.yoctoproject.org/docs/2.6/dev-manual/dev-manual.html
https://www.yoctoproject.org/docs/2.6/sdk-manual/sdk-manual.html
I'm looking for an single build environment from which I can use bitbake, and build a product for different target architectures.
This after all seems to be what the Yocto/OE holy grail is.
It seems like the most functional x86_64 environment is had from:
git clone git://git.yoctoproject.org/poky
It is more capable than the SDK's, but how do I cross-build this environment for another platform?
Is there an SDK that is as functional as this git clone'd environment? Meaning it has a working bitbake and I can cross-build bootable images for different targets?
Questions:
Why can't an SDK build an SDK? (e.g. http://downloads.yoctoproject.org/releases/yocto/yocto-2.6/buildtools/)
Why doesn't an SDK even include bitbake? (The ext SDK does, but doesn't like to add it to the path).
Why does an extensible SDK with properly sourced env (and bitbake added to the path) seem to prefer the distro-installed build tools instead of the ones in the SDK? (when using bitmake directly instead of devtool)
Why is an SDK apparently tied to build for a particular machine or architecture, and apparently unable to cross-build for different architectures? The process for building an SDK even wishes the final architecture to be specified in advance
What I'm used to is a build-sysroot with the cross-toolchain running under some sort of pseudo/proot/chroot with my sources mounted into it.
I realise that Yocto/bitbake does this under the hood, all the recipe caching seems great, the git clone checkout seems powerful, the devtool workflow seems great, but then it all falls down when I try to standardise generation of this environment, or make it cross-compile.
(I’m expecting to source the environment file from a target directory containing some local conf files to specialise the build, and then use bitbake to make the build)
What have I missed? - thanks for reading this far ;-)
SDK is such a generic word that in the context of yocto, it can be miss interpreted and so your question is legit.
Yocto is a wonderful tool to build completely custom images and can be adjusted at all level (bootloader, kernel, applications) based on source fetched online.
The SDK you can generate with yocto is as quoted from the documentation:
The Standard SDK provides a cross-development toolchain and libraries
tailored to the contents of a specific image.
Based on my small experience with Yocto, you use meta layers to create and customize your environment. When your environment is setup, you can generate an SDK to easily cross compile your aplicative programs for your target machine.
Yocto tool is way too powerful, heavy and complicated for developers who just focus on the aplicative part of a project. The SDK on the other side is perfect for that use but you can't change anything in the toolchain with it, you can only use it. If a bug or a patch needs to be applied in runtime libs for example, you need to regenerate the SDK and give this new versions to developers.
With that short explanations:
It is more capable than the SDK's, but how do I cross-build this
environment for another platform?
You need to customize your Yocto meta layers to change from a platform to another.
Is there an SDK that is as functional as this git clone'd environment?
Meaning it has a working bitbake and I can cross-build bootable images
for different targets?
No, i don't think so
Why can't an SDK build an SDK?
Because that's not the philosophy of the SDK, sdk is a generated toolchain for a specific image to cross compile your programs, no more.
Why doesn't an SDK even include bitbake?
Bitbake is a tool to parse yocto recipe (so meta layers) and so, there is no need to have this tool in the SDK
Why is an SDK apparently tied to build for a particular machine or
architecture, and apparently unable to cross-build for different
architectures? The process for building an SDK even wishes the final
architecture to be specified in advance
I think i already gave an answer to this question but, about the second part of your question. It is possible to be a little bit agile and start both the BSP and applications in parallel. Every week, you release a new SDK with BSP new changes an the toolchain is always up-to-date for developers (This is a very idealistic vision i admit)
Reading from https://www.yoctoproject.org/docs/2.6.1/ref-manual/ref-manual.html#cross-development-toolchain
it seems that an SDK and eSDK are examples of a relocatable toolchain;
A relocatable toolchain used outside of BitBake by developers when
developing applications that will run on a targeted device.
This sentence particularly gives the game away:
You can also find more information on using the relocatable toolchain
in the Yocto Project Application Development and the Extensible
Software Development Kit (eSDK) manual.
SO I guess the git-clone-poky checkout which builds the SDK and eSDK is:
A toolchain only used by and within BitBake when building an image for a target architecture
No doubt I am interested in:
toolchain concepts as they apply to the Yocto Project
and should:
see the "Cross-Development Toolchain Generation" section in the Yocto
Project Overview and Concepts Manual https://www.yoctoproject.org/docs/2.6.1/overview-manual/overview-manual.html#cross-development-toolchain-generation
Certainly the first image makes it clear that the SDK is for building apps, not the image. I want to build the image (which of course may contain apps).
And so I may wish to make an SDK for other app builders, and incorporate their app into my sources and do the final build for them.
It may also be that the toolchain used for building an image can be run within the SDK so as to use the toolchain of the SDK rather than the host linux distro toolchain no, you can't

Can I code iPhone apps using Eclipse?

As you can probably guess, my knowledge of coding is very limited. Nonetheless, I do know a little Java. I have Eclipse and was wondering if I could use it to code for iOS iPhone/iPad applications. I know that I would almost certainly have to use a language other than Java, but I'm clueless as to what packages or plugins I would need to install in Eclipse to use it to code for iOS. If you guys could answer this question in extreme detail or link me to a very good sequence of video tutorials, I would be extremely grateful.
Yes you can!
If you can live with coding ActionScript, which should be easy to learn with a Java background, you can use Eclipse & AIR to code for iOS (and Android at the same time)
Some resources:
http://flex.apache.org/
http://labs.adobe.com/technologies/flashruntimes/
http://blogs.adobe.com/flashplayer/
http://flashdaily.net/
Be aware that many apps in the store have been build on this platform, and the community is pretty alive and supportive.
The short answer is, "not natively."
Apple pretty much restricts "native" iOS development to XCode which, as #Bob said in his answer, is only available for OS X. So that means no Eclipse or Java-based development. However, there are several cross-platform development frameworks and tools that work to varying degrees of quality. Here are a few, in no particular order:
PhoneGap
Appcelerator
Corona
Adobe AIR (see answer by #dogsgod)
There are others, but those are ones that I've at least heard of and might have tried a little bit. Some, like Appcelerator, have IDEs built on Eclipse, so at least the dev environment would be familiar.
IOS apps are written in Objective-C or Swift using XCode. (This also means you'll need a Mac to do so. XCode is only available for OSX.)
So unfortunately this means the answer to your question is no. You cannot use Eclipse to write an iOS app.

BlackBerry JRE independent java coding

How can i develop BlackBerry JRE independent java code for an application. Here we have so many types of JREs for blackberry so i would like to run my code in all versions without having code modifications. For example, in iphone we use preprocessor statements to avoid versioning problem like that do we have any alternatives?
Thanks
venu
There is a preprocessor for BB as well. See the docs for how to use it.

Building cross-platform Delphi applications

I downloaded Lazarus, but have worked with Embarcadero Delphi IDE too. I have a question about building cross-platform Delphi applications.
How can I build them under win32 environment? I read the wiki from Lazarus site, that explains how to do it, but I still do not understand it. Is is possible to build and compile application under win32 environment for Linux and MacOS? If it is possible, can someone explain ste-by-step how to do it exactly.
EDIT:
Now is the time for talking about the new XE2 version of the Delphi IDE I think :)
Thanks
What you're asking for already exists in the lazarus wiki site, you need to read these articles.
Multiplatform Programming Guide
Cross compiling
Cross compiling for Win32 under Linux
How to Write Portable Code (nice doc from Marco van de Voort)
Buildfaq
While crosscompiling to a non windows target is possible (and not that hard), getting used to fpc/lazarus and crosscompiling in one first step is a bridge too far. This because Linux is not a very homogenous target and dealing with this variation requires some understanding how libraries and linking works on Linux. This defeats one-button downloadable cross-compile setups to "general" linux. I know, such one-button thingies that work out of the box for everyone would be great, but it is just not going to happen (or only forvery limited distribution-version combinations)
Crosscompiling with FPC is not extremely difficult or rocket science, but the amount of jargon and details can flabbergast uninitiated people, and without background knowledge it is hard to diagnose problems as a result of minor misconfigurations
I recommend to first familiarize yourself with Lazarus/FPC, and only then make the crosscompilation leap. (and the already mentioned buildfaq names some reasons).
Bottomline: install lazarus on Windows and start porting your app. If that succeeds, start using a linux install (or VM) to familiarize yourself with Linux, and Lazarus under it. You'll need a linux install anyway to test.
Only then start thinking about crosscompiling to speed up the process.
CodeTyphon is a powerful Lazarus/FPC one click easy installation package for cross platform native development. It already supports 4 CPU/OS hosts (Win32, Win64, Linux32, Linux64), and 16 CPU/OS targets (arm-Wince, arm-Linux, arm-Embedded, arm-gba, arm-nds, i386-Win32, i386-Linux, i386-FreeBSD, i386-Haiku, x86_64-Win64, x86_64-Linux, x86_64-FreeBSD, powerpc-Linux, powerpc64-Linux, sparc-Linux, sparc-Solaris). More are supported in Lazarus/FreePascal, but others are not yet integrated in CodeTyphon. Did I mention that it is free? One code to rule them all ;-)
The point is that you don't have to waste days for setting up your cross platform environment, since someone has already done the hard work for you.

Cross Platform Commercial Development Tool / IDE / Programming Language ( Native )

Is there a Cross Platform ( Win32 / Win64 / Linux32 / Linux64 / MacOSX Snow Leopard ) Commercial Development Tool / IDE / Programming Language ?
( No Java / .Net , only NATIVE )
From the answers i'am understandig ( my understanding) there is not any single Comercial Tool/IDE/Programing language ( combined all toggether ) for native cross platform development ( platforms in the question ) !!!
And I 'am asking for a Comercial product , having in mind the "quality" of the microsoft visual studio or the RAD Studio ( delphi . c++ ).
I looked at Freepascal/Lazarus but it give not the impresion of a "full quality product" ( sorry guys , nice but way way far from Delphi or VS , any way keep the good work )
.
Thank you all for the interest , I will keep searching , any new information will be helpfull.
And I like to apologise for my english ( not native !! to me , learned what i know by my self).
Sebastian.
Embarcadero (the current owner of Delphi) has promised a cross-platform version (win32. Mac, Linux) in the near future... Check the Delphi road map (by product manager Michale Rozlog) on their developer web site (dn.codegear.com) for more details.
It will be a native compiler for each platform, according to the current, limited, information available.
What exactly do you need? A Tool or a IDE or a Language? Why it has to be commercial?
You tagged this Question with "delphi", so I expect you looking for a cross patform IDE/Compiler.
For what I know, the only native cross platform compiler is FreePascal, you can use the Delphi 7-Like IDE Lazarus with that compiler. But both aren't commercial, but opensource.
In a few Months (nobody knows exactly when) there will be a new cross platform Delphi.
Embarcadero Delphi XE2 is now in beta test, native support for MacOS and 64 Bit is included, support for Linux is announced - see http://www.embarcadero.com/products/delphi/64-bit
and What should be tested in 64-bit Delphi
Another (commercial but inexpensive) toolkit is wxForms for Delphi, based on wxWidgets:
"wxForms for Delphi is an integrated
form designer plugin for CodeGear
Delphi that helps you to create cross
platform applications for Windows Mac
OSX and Linux using single source
base.
wxForms code from Delphi can be
compiled in Mac OSX and Linux without
much change using FreePascal/Lazarus."
http://www.twinforms.com/products/wxformsdelphi/index.php
Have a look at Qt library recently bought by Nokia. You can use it in C++ but there are bindings in many languages for example this is the python binding.
You can choose from three different type of licenses (commercial, LGPL or GPL)
There's also wxWidgets and the UI designer tool DialogBlocks.
There's also CodeBlocks for C++ only. And if you add multiples plugins you can consider vim and emacs. With the latter two you can use any development language.
While it's not free and I haven't used it in awhile, Metrowerks Codewarrior used to be cross platform, not sure if it is still around or not though.
Qt + Qt Creator + GCC (or perhaps some other compiler on Windows, such as the MS Visual Studio Express Edition compiler). Qt provides great support for building cross-platform GUI applications, Qt Creator provides a uniform IDE, and then you just need the appropriate compiler for your platform.
Qt Creator is open source, and Qt is available in both open source and commercially-licensed versions (although the open source version is suitable for commercial development these days due to its use of the LGPL).
CodeTyphon is a powerful one click installation package for cross platform native development. It already supports 4 CPU/OS hosts (Win32, Win64, Linux32, Linux64), and 16 CPU/OS targets (arm-Wince, arm-Linux, arm-Embedded, arm-gba, arm-nds, i386-Win32, i386-Linux, i386-FreeBSD, i386-Haiku, x86_64-Win64, x86_64-Linux, x86_64-FreeBSD, powerpc-Linux, powerpc64-Linux, sparc-Linux, sparc-Solaris). More are supported in Lazarus/FreePascal, but others are not yet integrated in CodeTyphon. Did I mention that it is free?
One code to rule them all ;-)

Resources