Remove java.generate_native_header

This API existed for 2 minor releases and was worthless for pretty much
every usecase.
pull/11071/head
Tristan Partin 2 years ago
parent 5bea2ca198
commit b746e92f62
No known key found for this signature in database
GPG Key ID: 5AD0476101F9899D
  1. 1
      docs/markdown/Java-module.md
  2. 45
      mesonbuild/modules/java.py

@ -7,6 +7,7 @@
### `generate_native_header()`
*(deprecated in 0.62.0, use `generate_native_headers()`)*
*(removed in 1.0.0)*
This function will generate a header file for use in Java native module
development by reading the supplied Java file for `native` method declarations.

@ -13,7 +13,6 @@
# limitations under the License.
from __future__ import annotations
import os
import pathlib
import typing as T
@ -36,7 +35,6 @@ class JavaModule(NewExtensionModule):
def __init__(self, interpreter: Interpreter):
super().__init__()
self.methods.update({
'generate_native_header': self.generate_native_header,
'generate_native_headers': self.generate_native_headers,
})
@ -45,49 +43,6 @@ class JavaModule(NewExtensionModule):
detect_compiler_for(state.environment, 'java', MachineChoice.BUILD)
return state.environment.coredata.compilers[MachineChoice.BUILD]['java']
@FeatureDeprecated('java.generate_native_header', '0.62.0', 'Use java.generate_native_headers instead')
@typed_pos_args('java.generate_native_header', (str, mesonlib.File))
@typed_kwargs('java.generate_native_header', KwargInfo('package', str, default=None))
def generate_native_header(self, state: ModuleState, args: T.Tuple[T.Union[str, mesonlib.File]],
kwargs: T.Dict[str, T.Optional[str]]) -> ModuleReturnValue:
package = kwargs.get('package')
if isinstance(args[0], mesonlib.File):
file = args[0]
else:
file = mesonlib.File.from_source_file(state.source_root, state.subdir, args[0])
if package:
header = f'{package.replace(".", "_")}_{pathlib.Path(file.fname).stem}.h'
else:
header = f'{pathlib.Path(file.fname).stem}.h'
javac = self.__get_java_compiler(state)
target = CustomTarget(
os.path.basename(header),
state.subdir,
state.subproject,
state.environment,
mesonlib.listify([
javac.exelist,
'-d',
'@PRIVATE_DIR@',
'-h',
state.subdir,
'@INPUT@',
]),
[file],
[header],
backend=state.backend,
)
# It is only known that 1.8.0 won't pre-create the directory. 11 and 16
# do not exhibit this behavior.
if version_compare(javac.version, '1.8.0'):
pathlib.Path(state.backend.get_target_private_dir_abs(target)).mkdir(parents=True, exist_ok=True)
return ModuleReturnValue(target, [target])
@FeatureNew('java.generate_native_headers', '0.62.0')
@typed_pos_args(
'java.generate_native_headers',

Loading…
Cancel
Save