Reputation: 3978
My target is build a library from a C++ SDK project.
I'm using this sample code as guide. GoogleSamples/Android-NDK/Hello-Libs
And from this documentation, I can use more than one source: add_library
Before I was using set_target_properties, but looks like don't need.
I'm getting the error CMake Error: CMake can not determine linker language for target: lib_llsdk
but this question about this error don't help CMake unable to determine linker language with C++
This is my cmake code:
cmake_minimum_required(VERSION 3.4.1)
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../llsdk)
add_library(lib_llsdk STATIC
${distribution_DIR}/libs/${ANDROID_ABI}/libins-sdk-simple-filter- marker.a
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_aruco.a
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_calib3d.a
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_core.a
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_features2d.a
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_img_hash.a
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_imgproc.a
${distribution_DIR}/libs/${ANDROID_ABI}/libz.a)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
add_library( native-lib
SHARED
src/main/cpp/native-lib.cpp )
target_include_directories(native-lib PRIVATE
${distribution_DIR}/include)
target_link_libraries(
native-lib
android
lib_lls
log)
Upvotes: 0
Views: 467
Reputation: 3978
Just split and use set_target_properties
cmake_minimum_required(VERSION 3.4.1)
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../llsdk)
add_library(lib_llsdk_1 STATIC IMPORTED)
set_target_properties(lib_llsdk_1 PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libs/${ANDROID_ABI}/libins-sdk-simple-filter-marker.a)
add_library(lib_llsdk_2 STATIC IMPORTED)
set_target_properties(lib_llsdk_2 PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_aruco.a)
add_library(lib_llsdk_3 STATIC IMPORTED)
set_target_properties(lib_llsdk_3 PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_calib3d.a)
add_library(lib_llsdk_4 STATIC IMPORTED)
set_target_properties(lib_llsdk_4 PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_core.a)
add_library(lib_llsdk_5 STATIC IMPORTED)
set_target_properties(lib_llsdk_5 PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_features2d.a)
add_library(lib_llsdk_6 STATIC IMPORTED)
set_target_properties(lib_llsdk_6 PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_img_hash.a)
add_library(lib_llsdk_7 STATIC IMPORTED)
set_target_properties(lib_llsdk_7 PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libs/${ANDROID_ABI}/libopencv_imgproc.a)
add_library(lib_llsdk_8 STATIC IMPORTED)
set_target_properties(lib_llsdk_8 PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libs/${ANDROID_ABI}/libz.a)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
add_library(
native-lib
SHARED
src/main/cpp/native-lib.cpp )
target_include_directories(native-lib PRIVATE
${distribution_DIR}/include)
target_link_libraries(
native-lib
android
lib_llsdk_1
lib_llsdk_2
lib_llsdk_3
lib_llsdk_4
lib_llsdk_5
lib_llsdk_6
lib_llsdk_7
lib_llsdk_8
log)
Upvotes: 0