@Documented @Retention(value=RUNTIME) @Target(value={TYPE,METHOD}) public @interface Platform
A class or method annotated with only value()
or not()
lets Generator
know for which platforms it should generate code
(or not). The strings are matched with String.startsWith(String)
.
In particular, @Platform(value="")
matches all platforms, while
@Platform(not="")
matches no platforms, providing a way to specify
methods to skip or classes to ignore, as if they did not exist. Alternatively,
regular expressions can also be used with @Platform(pattern="")
.
Classes annotated with at least one of the other values define a top-enclosing
class as returned by Loader.getEnclosingClass(Class)
. By default, one
native library gets created for each such class, but Builder
recognizes
more than one class with the same library()
name and produces only one
library in that case.
Further, with the Properties
annotation, properties can be inherited
from other classes, and different properties can be defined for each platform.
Modifier and Type | Optional Element and Description |
---|---|
String[] |
cinclude
A list of C header files to include at the top of the generated code.
|
String[] |
compiler
A list of options applied for the native compiler.
|
String[] |
define
A list of macros to
#define at the top of the generated code,
before include() and cinclude() header files. |
String[] |
exclude
A list of C/C++ header files that should not be included in the generated code,
even when they are inherited from an include list.
|
String[] |
executable
Executables to bundle at build time and extract at runtime on load, instead of a library.
|
String[] |
executablepath
A list of paths from which to copy executables from the
executable() value. |
String[] |
extension
The platform extensions to attempt to load for this library.
|
String[] |
framework
A list of frameworks the native compiler should build against.
|
String[] |
frameworkpath
A list of framework paths passed to the native compiler for use at link time.
|
String[] |
include
A list of C++ header files to include at the top of the generated code.
|
String[] |
includepath
A list of include paths passed to the native compiler.
|
String[] |
includeresource
A list of include resources passed to the native compiler.
|
String |
library
|
String[] |
link
A list of libraries the native compiler should link with.
|
String[] |
linkpath
A list of library paths passed to the native compiler for use at link time.
|
String[] |
linkresource
A list of library resources passed to the native compiler for use at link time.
|
String[] |
not
The properties, class, or method do NOT apply to the named platforms.
|
String[] |
pattern
The properties, class, or method apply only to the named platforms.
|
String[] |
pragma
A list of
pragma directives to list at the top of the generated
code, before define() macros and any included header files. |
String[] |
preload
A list of libraries, in addition to
link() , that should be extracted and preloaded, if possible. |
String[] |
preloadpath
|
String[] |
preloadresource
|
String[] |
resource
A list of resources, either files or directories, that can be copied and extracted.
|
String[] |
resourcepath
A list of paths from which to copy resources from the
resource() list. |
String[] |
value
The properties, class, or method apply only to the named platforms.
|
public abstract String[] value
String.startsWith(String)
public abstract String[] not
String.startsWith(String)
public abstract String[] pattern
String.matches(String)
.public abstract String[] define
#define
at the top of the generated code,
before include()
and cinclude()
header files.public abstract String[] exclude
public abstract String[] include
public abstract String[] cinclude
#include
directives will be generated in a extern "C" { }
block.public abstract String[] includepath
public abstract String[] includeresource
public abstract String[] compiler
Builder
uses the "platform.compiler.default" property.public abstract String[] linkpath
public abstract String[] linkresource
public abstract String[] link
public abstract String[] frameworkpath
public abstract String[] framework
public abstract String[] preloadpath
public abstract String[] preloadresource
public abstract String[] resourcepath
resource()
list.public abstract String[] resource
public abstract String[] extension
public abstract String[] executablepath
executable()
value.public abstract String[] executable
public abstract String library
Builder
should
try to build and Loader
should try to load. If left empty, this value
defaults to "jni" + the name that Class.getSimpleName()
returns for
Properties.target()
or Properties.global()
class, or this class, if not given.Copyright © 2024. All rights reserved.