Rename java.generate_native_headers to java.native_headers

This follows the Meson naming scheme which typically leaves off a verb
like generate.
This commit is contained in:
Tristan Partin 2022-11-17 15:48:48 -06:00
parent b746e92f62
commit 2e600ef710
No known key found for this signature in database
GPG Key ID: 5AD0476101F9899D
4 changed files with 67 additions and 1 deletions

View File

@ -20,6 +20,50 @@ file. If left empty, Meson will assume that there is no package.
### `generate_native_headers()`
*(added in 0.62.0)*
*(deprecated in 1.0.0, use `native_headers()`)*
This function will generate native header files for use in Java native module
development by reading the supplied Java files for `native` method declarations.
Keyword arguments:
- `classes`: The list of class names relative to the `package`, if it exists,
which contain `native` method declarations. Use `.` separated class names.
- `package`: The [package](https://en.wikipedia.org/wiki/Java_package) of the
file. If left empty, Meson will assume that there is no package.
Example:
```java
// Outer.java
package com.mesonbuild;
public class Outer {
private static native void outer();
public static class Inner {
private static native void inner();
}
}
```
With the above file, an invocation would look like the following:
```meson
java = import('java')
native_headers = java.generate_native_headers(
'Outer.java',
package: 'com.mesonbuild',
classes: ['Outer', 'Outer.Inner']
)
```
### `native_headers()`
*(added in 1.0.0)*
This function will generate native header files for use in Java native module
development by reading the supplied Java files for `native` method declarations.

View File

@ -0,0 +1,4 @@
## Deprecate `java.generate_native_headers`, rename to `java.native_headers`
The functions operate in the exact same way. The new name matches more with
Meson function name styling.

View File

@ -36,6 +36,7 @@ class JavaModule(NewExtensionModule):
super().__init__()
self.methods.update({
'generate_native_headers': self.generate_native_headers,
'native_headers': self.native_headers,
})
def __get_java_compiler(self, state: ModuleState) -> Compiler:
@ -44,6 +45,7 @@ class JavaModule(NewExtensionModule):
return state.environment.coredata.compilers[MachineChoice.BUILD]['java']
@FeatureNew('java.generate_native_headers', '0.62.0')
@FeatureDeprecated('java.generate_native_headers', '1.0.0')
@typed_pos_args(
'java.generate_native_headers',
varargs=(str, mesonlib.File, Target, CustomTargetIndex, GeneratedList))
@ -53,6 +55,22 @@ class JavaModule(NewExtensionModule):
KwargInfo('package', str, default=None))
def generate_native_headers(self, state: ModuleState, args: T.Tuple[T.List[mesonlib.FileOrString]],
kwargs: T.Dict[str, T.Optional[str]]) -> ModuleReturnValue:
return self.__native_headers(state, args, kwargs)
@FeatureNew('java.native_headers', '1.0.0')
@typed_pos_args(
'java.native_headers',
varargs=(str, mesonlib.File, Target, CustomTargetIndex, GeneratedList))
@typed_kwargs(
'java.native_headers',
KwargInfo('classes', ContainerTypeInfo(list, str), default=[], listify=True, required=True),
KwargInfo('package', str, default=None))
def native_headers(self, state: ModuleState, args: T.Tuple[T.List[mesonlib.FileOrString]],
kwargs: T.Dict[str, T.Optional[str]]) -> ModuleReturnValue:
return self.__native_headers(state, args, kwargs)
def __native_headers(self, state: ModuleState, args: T.Tuple[T.List[mesonlib.FileOrString]],
kwargs: T.Dict[str, T.Optional[str]]) -> ModuleReturnValue:
classes = T.cast('T.List[str]', kwargs.get('classes'))
package = kwargs.get('package')

View File

@ -6,6 +6,6 @@ configured = configure_file(
sources += configured
native_headers = javamod.generate_native_headers(
native_headers = javamod.native_headers(
sources, package: 'com.mesonbuild', classes: ['JniTest'])
native_header_includes = include_directories('.')