| Version 29 (modified by , 8 days ago) ( diff ) |
|---|
Project Settings Reference
Compiler and Linker
Debug-ARM825 and Release-ARM825 build configurations
If properties sheet has a "Cross Settings" section set:
Prefix: aarch64-none-linux-gnu-
| Tool Settings | Command |
|---|---|
| Cross G++ Compiler | g++ |
| Cross GCC Compiler 1 | gcc |
| Cross G++ Linker | g++ |
| Cross GCC Assembler 1 | as |
1 "Cross GCC Compiler" and "Cross GCC Assembler" items may not be present in all projects.
If properties sheet does not have "Cross Settings" section:
| Tool Settings | Command |
|---|---|
| GCC C++ Compiler | aarch64-none-linux-gnu-g++ |
| GCC C Compiler 1 | aarch64-none-linux-gnu-gcc |
| GCC C++ Linker | aarch64-none-linux-gnu-g++ |
| GCC Assembler 1 | aarch64-none-linux-gnu-as |
1 "GCC C Compiler" and "GCC Assembler" items may not be present in all projects.
Preprocessor
Debug-ARM825 build configuration
| Defined symbols | Description |
|---|---|
| DEBUG | |
| ARM64=1 |
Release-ARM825 build configuration
| Defined symbols | Description |
|---|---|
| ARM64=1 |
Includes
Debug-ARM825 and Release-ARM825 build configurations
| Includes | Description |
|---|---|
| "${workspace_loc:/lib825ev/inc}" 1 | Main 825 library |
| "${workspace_loc:/lib825lang/inc}" 2 | 825 Multi language |
| "${workspace_loc:/lib825sql/inc}" 3 | 825 SQLite |
| "${workspace_loc:/lib825db/inc}" 4 | 825 SQLite/MySQL |
| /opt/arm64include |
1 Older apps may use lib825 instead of lib825ev. In this case use "${workspace_loc:/lib825/inc}" Some older apps that use lib825 also use libapp. In this case the additional include path "${workspace_loc:/libapp/inc}" will be needed.
2 825lang is used by newer apps. This is not needed for recompile of older apps.
3 Older recompiled apps may instead use sql or sql3_7_9. If it is sql it is recommended to change it to use sql3_7_9. To use sql3_7_9 library change include path "${workspace_loc:/libsql3_7_9/inc}".
4 Newer apps may be updated to use lib825db instead of lib825sql. lib825db use will require code changes, but allows for support of SQLite and MySQL databases using mostly common code. Refer to lib825db
Libraries
Debug-ARM825 and Release-ARM825 build configurations
| Library | Description |
|---|---|
| 825ev 1 | Main 825 library |
| 825lang 2 | 825 Multi language |
| 825sql 3 | 825 SQLite |
| 825db 4 | 825 SQLite/MySQL |
| sqlite3 3 | SQLite |
| mysqlclient 4 | MySQL |
| ${UI_LIBS} | |
| ${CAIRO_LIBS} | |
| ${GLIB_LIBS} | |
| ${PRT_LIBS} 5 | |
| ${CURL_LIBS} 6 | |
| gstreamer-1.0 7 |
1 Older apps may use 825 instead of 825ev. Some older apps that use 825 also use app. In this case the additional library app will be needed.
2 825lang is used by newer 825 Gen2 apps. This is not needed for recompile of older apps.
3 For newer apps it is preferred to use 825sql and sqlite3 for dynamically linked SQLite shared object that is already on 825 Gen2. Older recompiled apps may use sql3_7_9 instead of 825sql and remove sqlite3 line. sql3_7_9 is statically linked and includes the sqlite3 library.
4 New apps may use 825db, sqlite3, and mysqlclient instead of 825sql. This will require code changes, but offers ability to make apps support SQLite or MySQL with common code. Refer to lib825db
5 The development VM may need to be updated to have the PRT_LIBS environment variable. Refer to VM technical information
6 Include this for apps that retrieve data using libcurl such as for image capture from IP cameras or data from web sites.
7 Include gstreamer-1.0 for apps that display images or video using the gstreamer library, or capture data from USB webcams.
Debug-ARM825 build configuration
| Library search path |
|---|
| ${workspace_loc:/lib825ev/Debug-ARM825} 1 |
| ${workspace_loc:/lib825lang/Debug-ARM825} 2 |
| ${workspace_loc:/lib825sql/Debug-ARM825} 3 |
| ${workspace_loc:/lib825db/Debug-ARM825} 4 |
| /opt/arm64lib |
1 Older apps may use lib825 instead of lib825ev. In this case use search path: ${workspace_loc:/lib825/Debug-ARM825} Some older apps that use lib825 also use libapp. In this case the additional library search path ${workspace_loc:/libapp/Debug-ARM825} will be needed.
2 825lang is used by newer 825 Gen2 apps. This is not needed for recompile of older apps.
3 If sql3_7_9 library is used change search path to "${workspace_loc:/libsql3_7_9/Debug-ARM825}".
4 If using lib825db specify this path instead of the lib825sql path.
Release-ARM825 build configuration
| Library search path |
|---|
| ${workspace_loc:/lib825ev/Release-ARM825} 1 |
| ${workspace_loc:/lib825lang/Release-ARM825} 2 |
| ${workspace_loc:/lib825sql/Release-ARM825} 3 |
| ${workspace_loc:/lib825db/Release-ARM825} 4 |
| /opt/arm64lib |
1 Older apps may use lib825 instead of lib825ev. In this case use search path: ${workspace_loc:/lib825/Release-ARM825} Some older apps that use lib825 also use libapp. In this case the additional library search path ${workspace_loc:/libapp/Release-ARM825} will be needed.
2 825lang is used by newer 825 Gen2 apps. This is not needed for recompile of older apps.
3 If sql3_7_9 library is used change search path to "${workspace_loc:/libsql3_7_9/Release-ARM825}".
4 If using lib825db specify this path instead of the lib825sql path.
Build Artifact
Make sure the project has an app folder at the same level as the src folder. The executable files will be written to this folder.
Debug-ARM825 build configuration
| Artifact Name: | appname_dbg |
| Output prefix: | ../app/ |
Be sure the "Output prefix:" has the trailing slash "/".
Release-ARM825 build configuration
| Artifact Name: | appname |
| Output prefix: | ../app/ |
Be sure the "Output prefix:" has the trailing slash "/".
Build Steps
Debug-ARM825 build configuration
Pre-build steps
Command:
sudo mntappdir <appname>
This makes the app folder accessible to the 825 Gen2 indicator when mounted to the NFS server.
Release-ARM825 build configuration
Pre-build steps
Command:
sudo mntappdir <appname>
This makes the app folder accessible to the 825 Gen2 indicator when mounted to the NFS server.
Post-build steps
Command:
/srv/nfs/appsign64 "<APP NAME>" ../app/<appname>
This will create the app signature file for distribution. Be sure to have a signature configuration provided by Cardinal for your organization installed in your development VM.
Installation Package
In the app directory of the project it is helpful to create a script "mktgz.sh" to generate a release package to give to customers to install the app.
#!/bin/sh # Create tgz archive for app distribution # Archive will contains app executable, signature file, and may have a bmp file # to show on the application menu button. # The menu icon must be saved as a 24-bit bmp. The width should be an even 4 pixels # such as 280 x 180 # Additional files may be added. Documentation files (pdf format) will be available # in new style apps to view on the indicator in chromium from help/about screen. tar -czvf <projectname>.tgz <projectname> <projectname>.8sg <projectname>.bmp <projectname>.ver <documentfilename>.pdf
From a terminal window in the VM in the app directory type "./mktgz.sh" to create the compressed tgz file containing the application files. This file can be copied to a USB flash drive. From the 825 Gen2 file manager the app can be installed from the flash drive.
See Also
The 825 Gen2 Simulator Project Reference provides helpful information to get 825 Gen2 app simulation up and running quickly.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/cardinal.gif)