Remove java.generate_native_header
This API existed for 2 minor releases and was worthless for pretty much every usecase.
This commit is contained in:
parent
5bea2ca198
commit
b746e92f62
|
@ -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…
Reference in New Issue