1010class LibhackrfRecipe (NDKRecipe ):
1111
1212 url = 'https://github.com/greatscottgadgets/hackrf/releases/download/v{version}/hackrf-{version}.tar.xz'
13- patches = ['public_hackrf_open_setup .patch' ]
13+ patches = ['hackrf_android .patch' ]
1414 generated_libraries = ['libhackrf.so' ]
1515 site_packages_name = 'libhackrf'
1616 version = '2024.02.1'
@@ -24,6 +24,7 @@ def prebuild_arch(self, arch):
2424 super ().prebuild_arch (arch )
2525
2626 if not os .path .exists (os .path .join (self .get_build_dir (arch .arch ), 'android' )):
27+ libusb_recipe = Recipe .get_recipe ('libusb' , arch )
2728
2829 os .mkdir (os .path .join (self .get_build_dir (arch .arch ), 'android' ))
2930 os .mkdir (os .path .join (self .get_build_dir (arch .arch ), 'android' , 'jni' ))
@@ -33,31 +34,28 @@ def prebuild_arch(self, arch):
3334 shutil .copy (os .path .join (self .get_recipe_dir (), 'jni' , 'libhackrf.mk' ), os .path .join (self .get_build_dir (arch .arch ), 'android' , 'jni' ))
3435 shutil .copy (os .path .join (self .get_recipe_dir (), 'jni' , 'Android.mk' ), os .path .join (self .get_build_dir (arch .arch ), 'android' , 'jni' ))
3536
36- def get_lib_dir (self , arch ):
37- return os .path .join (self .get_build_dir (arch .arch ), 'android' , 'obj' , 'local' , arch .arch )
37+ shutil .copy (os .path .join (libusb_recipe .get_build_dir (arch ), 'libusb' , 'libusb.h' ), os .path .join (self .get_build_dir (arch .arch ), 'android' , 'libusb' ))
38+
39+ def get_recipe_env (self , arch ):
40+ env = super ().get_recipe_env (arch )
41+ env ['LDFLAGS' ] += f'-L{ self .ctx .get_libs_dir (arch .arch )} '
42+
43+ return env
3844
3945 def get_jni_dir (self , arch ):
4046 return os .path .join (self .get_build_dir (arch .arch ), 'android' , 'jni' )
4147
4248 def build_arch (self , arch , * extra_args ):
43- if not os .path .exists (os .path .join (self .get_build_dir (arch .arch ), 'android' , 'libusb' , 'libusb-1.0.so' )):
44- libusb_recipe = Recipe .get_recipe ('libusb' , arch )
45- shutil .copy (os .path .join (libusb_recipe .get_lib_dir (arch ), 'libusb1.0.so' ), os .path .join (self .get_build_dir (arch .arch ), 'android' , 'libusb' , 'libusb-1.0.so' ))
46- shutil .copy (os .path .join (libusb_recipe .get_build_dir (arch ), 'libusb' , 'libusb.h' ), os .path .join (self .get_build_dir (arch .arch ), 'android' , 'libusb' ))
47-
4849 env = self .get_recipe_env (arch )
4950 with current_directory (self .get_build_dir (arch .arch )):
5051 shprint (
5152 sh .Command (os .path .join (self .ctx .ndk_dir , 'ndk-build' )),
5253 'NDK_PROJECT_PATH=' + self .get_build_dir (arch .arch ) + '/android' ,
53- 'APP_PLATFORM=android-' + str (self .ctx .ndk_api ),
54- 'NDK=' + self .ctx .ndk_dir ,
55- 'APP_ABI=' + arch .arch ,
5654 * extra_args ,
5755 _env = env
5856 )
5957
60- shutil .copyfile (os .path .join (self .get_build_dir (arch .arch ), 'android' , 'obj' , 'local ' , arch .arch , 'libhackrf.so' ), os .path .join (self .ctx .get_libs_dir (arch .arch ), 'libhackrf.so' ))
58+ shutil .copyfile (os .path .join (self .get_build_dir (arch .arch ), 'android' , 'libs ' , arch .arch , 'libhackrf.so' ), os .path .join (self .ctx .get_libs_dir (arch .arch ), 'libhackrf.so' ))
6159
6260
6361recipe = LibhackrfRecipe ()
0 commit comments