Google+ ZACARÉS: cross platform

Translate

Showing posts with label cross platform. Show all posts
Showing posts with label cross platform. Show all posts

2015/04/29

Embarcadero seems targeting linux platform

It seems Embarcadero beginning to build toolschain to target linux platform. 





 [ComponentPlatformsAttribute(
    pidWin32
    or pidWin64
    or pidOSX32
    or pidiOSSimulator
    or pidAndroid
    or pidLinux32    or pidiOSDevice
    or pidiOSDevice32
    or pidLinux64    or pidWinNX32
    or pidWinIoT32
    or pidiOSDevice64
    )]
That's great but if RAD studio can be cross-platform itself, it would definitely a good news.

#embarcadero #RAD #linux #crossplatform

2015/04/17

Embarcadero RAD XE8 Testing

Just have a chance testing with XE8. It has many improvements that make me to try it again for cross-platform development.

The most notable changes that inspire me much are:
  • All supported platforms have TWebBrowser component. In the past, I always need to build to the device to check for Web Browser related stuff, which is very time consuming. With TWebBrowser supports on Windows platform let me have a quick test on the app before deployment.
  • FMX version of TImageList control. Though it is quite heavy weight but it is a very convenience components to add all images to the application
  • 64bit iOS support (Apple requirement :( ). I love Qt, but the progress on this is a bit ...
  • Box2D Physic Engine, seems interesting though I'm not developing games
  • Native HTTP/HTTPS client support, no more openssl dependent. This is great as I have no need to compile openssl for different platforms
  • Static SQLite library for supported platform. It seems to be able to use the OTFE database but I need to further test with
One thing to note. If you want to try compiling the RESTDebugger, you will probably failed. It seems the team has tried to refactor the code but the resultant file is missing.

If you want to compile RESTDebugger by yourself, just save below code as "uRESTDebuggerResStrs.pas" in the same folder of RESTDebugger source folder will be sufficient. (NB. I just copy the relevant section from XE7 code plus some new stuff with my own wording introduced in XE8).

unit uRESTDebuggerResStrs;

interface

resourcestring
  RSAddCustomParameter = 'Add Custom Parameter';
  RSAddParameter = 'Add Parameter';
  RSBytesOfDataReturnedAndTiming = '%d : %s - %d bytes of data returned. Timing: Pre: %dms - Exec: %dms - Post: %dms - Total: %dms';
  RSCannotProceedWithoutRequest = 'Cannot proceed without request.';
  RSComponentsCopied = 'The following components have been copied to the clipboard: %s';
  RSConfirmClearRecentRequests = 'Are you sure that you want to clear list of the most recent requests?';
  RSConfirmDeleteCustomParameter = 'Are you sure you want to delete the custom parameter?';
  RSContentIsNotJSON = 'Content is not JSON';
  RSContentIsValidJSON = 'Content is valid JSON';
  RSEditCustomParameter = 'Edit Custom Parameter';
  RSEditParameter = 'Edit Parameter';
  RSInvalidRootElement = 'Invalid root element';
  RSNoCustomParameterSelected = 'No custom parameter selected.';
  RSProvideAuthCode = 'Authenication Code';
  RSProvideAuthEndPoint = 'Authenication End Point';
  RSProvideClientID = 'Client Id';
  RSProvideClientIDAndClientSecret = 'Client Id and Client Secret';
  RSProvideTokenEndPoint = 'Token End Point';
  RSProxyServerDisabled = 'Proxy-server disabled';
  RSProxyServerEnabled  = 'Proxy-server enabled: ';
  RSRootElementAppliesToJSON = 'Root Element, "%s" not applied.  Root Element is only applied to JSON content.  Content is not JSON.';
  RSUnableToValidateCertifcate = 'Unable to validate certificate.';

implementation

end.

 
#delphi #XE8 #Embarcadero



2014/03/28

EcereSDK 0.44.09.0 Portable with OpenSSL (shared and static)

Finally have time to play with EcereSDK. In my own opinion, it is more convenience than Qt.
  • Size is small
  • Easier to build than Qt
  • The SDK is more portable 

There already have portable versions around, the EcereSDKPortable by Ryoanji. However, it is based on 0.44 SDK two years ago without any new updates. So, I decided to build my own portable version for the latest 0.44.09.9 as of my writing. Instead of using Mingw-w64, I have chosen TDM-GCC.

Thanks to Ecere Teams' efforts, building the SDK on Windows platform is very easy and fast, no quirks needed. Just download the sdk source, the toolchains and upx. Open a command prompt with administrator right and set up the corresponding path. Finally run "mingw32-make" will do the job. As I am building a portable sdk, I did not run "mingw32-make install".

This only takes me around half an hour to build the sdk with a fully functional ide. And it only that me another half hour to build the static libraries as well. That's a big contrast with Qt.You may argue that Qt may be much more powerful, e.g. they have include QML, WebKit, JavaScript engine, ... and others. But the size and time to take for building Qt just not my cup of tea as I just want a simple tools to create cross-platform applications.

After building the SDK, it is time for me to really play with the eC language.

If you are interested to my build, you can find the final products and the corresponding tools at EcereSDK Portable.
  • EcereSDKPortable-0.44.09.9_tdmgcc-4.7.1-3_openssl-1.0.0e.7z: Just extract the file (preserve folder structure) to any folder you want. After unzip, run "<FolderForExtraction>\EcereSDKPortable\ide.bat" to start using the tools.
  • EcereSDKPortable-0.44.09.9_tdmgcc-4.7.1-3_openssl-1.0.0e_build_script.7z: This contains the Windows batch script, tools (7z.exe and wget.exe) and some supporting files. The batch file is handcrafted by myself and may contains errors not trapped. What the script doing is using wget to grab the files required to build the SDK from their original site (you can find the location inside the batch file with variable urlXXX. If you cannot find the files in the original web site, a copy of them can be found in the same folder as well. The script just build the x32 and x64 shared version of the SDK. Static libs and SQLCipher drivers (shared and static) required to use the IDE to build as I cannot find ways to just using command line to build all the stuff. If anyone has any idea on how to do all the stuff with Windows command line, please share with me so that I can perform some fully automated build testing stuff.
The batch file has only been tested on Windows 7 64 bit and Windows Server 2008 R2 64 bit platform as these are the only Windows boxes that is available to me. Building on 32 bit platform may not worked as the batch file assume default architecture is 64 bit. Tweaking with the batch file may help but not guaranteed. Running the batch inside VirtualBox will certainly failed, which may be due to the DirectX support is missing or incompatible.

2014/04/01
NOTE:  Due to unknown reason, in order to debug your project, you need to copy the gdb.exe as x86_64-w64-mingw32-gdb.exe under EcereSDKPortable\tdm\bin. It seems the ide cannot recognize the existence of gdb.exe (in version 0.44.08, I did not need to do this steps).

2014/04/02
NOTE: You will also need to download the gdb for x32 to debug the x32 version of your project. Save the gdb.exe as i686-w64-mingw32-gdb.exe under EcereSDKPortable\tdm\bin. This gdb.exe require libexpat-1.dll in the same folder, and jit-reader.h under EcereSDKPortable\tdm\include\gdb. 


2014/01/22

Ecere SDK

This is an interesting cross-platform sdk (http://www.ecere.com). It is c with object, like c++. But seems easier to learn and code than c++. It should build fine on Linux, on Windows with MinGW or MinGW-w64 or TDM-GCC, on Mac OS X with Xcode command line tools installed or on FreeBSD (with gmake). Executables can also be deployed to the Android platform using the Android NDK.

The SDK includes complete development environment for coding and GUI designer, supports including c and c++ code as part of the project and got cross-platform GUI toolkit with 2D and 3D graphic engines, though the GUI components are somewhat primitive.

The runtime component covers file access, multithreading, time and networking (with SSL Sockets support through OpenSSL). With the EDA (Ecere Data Access) components, you will be able to access Ecere RDBMS, SQLite (as well as an encrypted version using SQLiteCipher), and Oracle databases. It also has a simple report engine with preview support. The runtime libraries size is below 10MB.

The most impressive thing is, the Ecere SDK is Free Open Source Software licensed under a revised BSD license which allows applications built with it can be distributed both commercially and non
commercially, along with the supporting Ecere runtime library(ies).