123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- pas2jni - JNI bridge generator for Pascal.
- Copyright (c) 2013 by Yury Sidorov.
- The pas2jni utility generates a JNI (Java Native Interface) bridge for a Pascal code. Then the Pascal code (including classes and other advanced features) can be easily used in Java programs.
- For example you can do the following in Java:
- import pas.classes.*;
- ...
- TStringList sl = TStringList.Create();
- sl.Add("Hello.");
- String s = sl.getStrings(0);
- sl.Free();
- ...
- The following Pascal features are supported by pas2jni:
- - function/procedure;
- - var/out parameters;
- - class;
- - record;
- - property;
- - constant;
- - enum;
- - set;
- - TGuid type;
- - pointer type;
- - string types;
- - all numeric types;
- - method poiner.
- USUPPORTED features:
- - array;
- - procedure pointer.
- Shared libraries, generated by pas2jni were tested with Java on Windows and Android. It should work on other systems as well.
- HOW TO USE
- pas2jni uses the ppudump utility included with Free Pascal Compiler to read unit interfaces. Therefore your Pascal code must be first compiled with FPC.
- When your units are compiled, you can run pas2jni. You need to specify a list of main units and units search path.
- When you specify a main unit, all its interface declarations will be available in Java. For linked units only used declarations will be available. You can fine tune included/excluded declaration using -I and -E command line options.
- The basic invocation of pas2jni:
- pas2jni myunit -U/path/to/my/units;/path/to/FPC/units/*
- Here you specify myunit as the main unit and provide path to your compiled units and FPC compiled units.
- After successfull run of pas2jni you will get the following output files:
- - file "myunitjni.pas" - a generated library unit to be compiled to a shared library. It will contain all your Pascal code to be used from Java.
- - folder "pas" - generated Java package "pas" to be used in your Java program. Interface to each Pascal unit is placed to a separate Java public class.
- Note: You need to use ppudump of the same version as the FPC compiler. Use the -D switch to specify correct ppudump if it is not in PATH.
- COMMAND LINE OPTIONS
- Usage: pas2jni [options] <unit> [<unit2> <unit3> ...]
- Options:
- -U<path> - Unit search path, semicolon delimited. Wildcards are allowed.
- -L<name> - Set output library name.
- -P<name> - Set Java package name.
- -O<path> - Set output path for Pascal files.
- -J<path> - Set output path for Java files.
- -D<prog> - Set full path to the "ppudump" program.
- -I<list> - Include the list of specified objects in the output. The list is
- semicolon delimited. To read the list from a file use -I@<file>
- -E<list> - Exclude the list of specified objects from the output. The list is
- semicolon delimited. To read the list from a file use -E@<file>
- -? - Show this help information.
|