Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue while linking(Android) #238

Open
maciejmakowski2003 opened this issue Nov 22, 2024 · 3 comments
Open

Issue while linking(Android) #238

maciejmakowski2003 opened this issue Nov 22, 2024 · 3 comments

Comments

@maciejmakowski2003
Copy link

maciejmakowski2003 commented Nov 22, 2024

CMakeList.txt:

cmake_minimum_required(VERSION 3.12.0)
project(react-native-audio-api)

set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_CXX_STANDARD 20)

# Detect the operating system
if(APPLE)
    set(HAVE_ACCELERATE TRUE)
endif()

# Detect the processor and SIMD support
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
    set(HAVE_ARM_NEON_INTRINSICS TRUE)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64")
    set(HAVE_X86_SSE2 TRUE)
endif()

include("${REACT_NATIVE_DIR}/ReactAndroid/cmake-utils/folly-flags.cmake")
add_compile_options(${folly_FLAGS})

set(KFR_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/main/lib/cmake/kfr")

file(GLOB_RECURSE SOURCE_FILES
  "src/main/cpp/*.cpp"
  "src/main/cpp/*.h"
  "../common/cpp/*.cpp"
  "../common/cpp/*.h"
  "../common/cpp/core/*.cpp"
  "../common/cpp/core/*.h"
  "../common/cpp/wrappers/*.cpp"
  "../common/cpp/wrappers/*.h"
  "../common/cpp/HostObjects/*.cpp"
  "../common/cpp/HostObjects/*.h"
  "../common/cpp/utils/*.cpp"
  "../common/cpp/utils/*.h"
  "../common/cpp/types/*.h"
)

add_library(react-native-audio-api SHARED ${SOURCE_FILES})

file(GLOB DIRS CONFIGURE_DEPENDS "src/main/cpp/**" "../common/cpp/**")

target_include_directories(
  react-native-audio-api
  PRIVATE
  ${DIRS}
  "${REACT_NATIVE_DIR}/ReactCommon/jsi"
  "${REACT_NATIVE_DIR}/ReactAndroid/src/main/jni/react/jni"
  "${REACT_NATIVE_DIR}/ReactAndroid/src/main/jni/third-party/folly"
)

find_package(ReactAndroid REQUIRED CONFIG)
find_package(fbjni REQUIRED CONFIG)
find_package(oboe REQUIRED CONFIG)
find_package(KFR REQUIRED CONFIG)

set(LINK_LIBRARIES
  ReactAndroid::jsi
  fbjni::fbjni
  android
  log
  oboe::oboe
  KFR::kfr
  KFR::kfr_dsp
  KFR::kfr_dft
)

if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
  set(RN_VERSION_LINK_LIBRARIES
    ReactAndroid::reactnative
  )
else()
  set(RN_VERSION_LINK_LIBRARIES
    ReactAndroid::folly_runtime
    ReactAndroid::glog
    ReactAndroid::reactnativejni
  )
endif()

target_link_libraries(react-native-audio-api ${LINK_LIBRARIES} ${RN_VERSION_LINK_LIBRARIES})

Error:

> Task :prepareKotlinBuildScriptModel UP-TO-DATE
C/C++: CMake Error at CMakeLists.txt:56 (find_package):
C/C++:   Could not find a configuration file for package "KFR" that is compatible
C/C++:   with requested version "".
C/C++:   The following configuration files were considered but not accepted:
C/C++:     /Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native-audio-api/android/src/main/lib/cmake/kfr/KFRConfig.cmake, version: 6.1.0 (64bit)
[CXX1429] error when building with cmake using /Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native-audio-api/android/CMakeLists.txt: -- The C compiler identification is Clang 17.0.2
-- The CXX compiler identification is Clang 17.0.2
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users/maciejmakowski/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/maciejmakowski/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring incomplete, errors occurred!
See also "/Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native-audio-api/android/.cxx/Debug/u41w4e24/x86/CMakeFiles/CMakeOutput.log".

C++ build system [configure] failed while executing:
    /Users/maciejmakowski/Library/Android/sdk/cmake/3.22.1/bin/cmake \
      -H/Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native-audio-api/android \
      -DCMAKE_SYSTEM_NAME=Android \
      -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
      -DCMAKE_SYSTEM_VERSION=24 \
      -DANDROID_PLATFORM=android-24 \
      -DANDROID_ABI=x86 \
      -DCMAKE_ANDROID_ARCH_ABI=x86 \
      -DANDROID_NDK=/Users/maciejmakowski/Library/Android/sdk/ndk/26.1.10909125 \
      -DCMAKE_ANDROID_NDK=/Users/maciejmakowski/Library/Android/sdk/ndk/26.1.10909125 \
      -DCMAKE_TOOLCHAIN_FILE=/Users/maciejmakowski/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake \
      -DCMAKE_MAKE_PROGRAM=/Users/maciejmakowski/Library/Android/sdk/cmake/3.22.1/bin/ninja \
      "-DCMAKE_CXX_FLAGS=-O2 -frtti -fexceptions -Wall -fstack-protector-all" \
      -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native-audio-api/android/build/intermediates/cxx/Debug/u41w4e24/obj/x86 \
      -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native-audio-api/android/build/intermediates/cxx/Debug/u41w4e24/obj/x86 \
      -DCMAKE_BUILD_TYPE=Debug \
      -DCMAKE_FIND_ROOT_PATH=/Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native-audio-api/android/.cxx/Debug/u41w4e24/prefab/x86/prefab \
      -B/Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native-audio-api/android/.cxx/Debug/u41w4e24/x86 \
      -GNinja \
      -DANDROID_STL=c++_shared \
      -DREACT_NATIVE_DIR=/Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native
  from /Users/maciejmakowski/projects/react-native-audio-api/apps/fabric-example/node_modules/react-native-audio-api/android
CMake Error at CMakeLists.txt:56 (find_package):
  Could not find a configuration file for package "KFR" that is compatible
  with requested version "".

I have got binaries for all archs in ${CMAKE_CURRENT_SOURCE_DIR}/src/main/lib}

@dancazarin
Copy link
Member

You're compiling for Android x86. There are no prebuilt x86 binaries for Android currently. Did you build the binaries yourself?

@maciejmakowski2003
Copy link
Author

maciejmakowski2003 commented Nov 23, 2024

Yes, I was compiling by myself. I guess I have built them. These are all binaries that I've built:
Screenshot 2024-11-23 at 14 50 59

@dancazarin
Copy link
Member

Maybe it makes sense to build only x86 (x86_64 have the same static libraries names and may overwrite them) and try again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants