From cf2c86a84a97d898fee103d3a00bb969246ff673 Mon Sep 17 00:00:00 2001 From: dengly Date: Fri, 18 May 2018 09:07:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BAcmake=E7=BC=96?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AndroidLibSVM/androidlibsvm/CMakeLists.txt | 27 ++++++++++++++++++++++ AndroidLibSVM/androidlibsvm/build.gradle | 22 ++++++++++++++---- AndroidLibSVM/app/build.gradle | 2 +- 3 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 AndroidLibSVM/androidlibsvm/CMakeLists.txt diff --git a/AndroidLibSVM/androidlibsvm/CMakeLists.txt b/AndroidLibSVM/androidlibsvm/CMakeLists.txt new file mode 100644 index 0000000..89a8bf6 --- /dev/null +++ b/AndroidLibSVM/androidlibsvm/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.4.1) #指定cmake版本 + +set(jniLibs "${CMAKE_SOURCE_DIR}/src/main/jniLibs") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -fexceptions -frtti") + +add_library( #生成函数库的名字 + jnilibsvm + SHARED #生成动态函数看 + src/main/jni/common.cpp + src/main/jni/jnilibsvm.cpp + src/main/jni/libsvm/svm-train.cpp + src/main/jni/libsvm/svm-predict.cpp + src/main/jni/libsvm/svm-scale.cpp + src/main/jni/libsvm/svm.cpp ) #依赖的cpp文件 + +#set_target_properties(jnilibsvm PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${jniLibs}/${ANDROID_ABI}) + +find_library( #设置path变量的名称 + log-lib + #指定要查询库的名字 + log ) #在ndk开发包中查询liblog.so函数库(默认省略lib和.so),路径赋值给log-lib + +target_link_libraries( #目标库,和上面生成的函数库名字一至 + jnilibsvm + android log + #连接的库,根据log-lib变量对应liblog.so函数库 + ${log-lib} ) \ No newline at end of file diff --git a/AndroidLibSVM/androidlibsvm/build.gradle b/AndroidLibSVM/androidlibsvm/build.gradle index e766b6f..6a9417b 100644 --- a/AndroidLibSVM/androidlibsvm/build.gradle +++ b/AndroidLibSVM/androidlibsvm/build.gradle @@ -13,11 +13,23 @@ android { versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - ndk { - moduleName "jnilibsvm" // <-- This is the name of my C++ module! - ldLibs "log" - stl "stlport_shared" - cFlags "-DDEV_NDK=1" + externalNativeBuild { + cmake { + arguments '-DANDROID_PLATFORM=android-15', + '-DANDROID_TOOLCHAIN=clang', + '-DANDROID_STL=stlport_shared', + '-DCMAKE_BUILD_TYPE=Release ..' + cppFlags "-std=c++11","-frtti", "-fexceptions","-O3" + } + } + ndk{ + abiFilters 'armeabi-v7a','arm64-v8a' + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" } } diff --git a/AndroidLibSVM/app/build.gradle b/AndroidLibSVM/app/build.gradle index 3067095..2b3300b 100755 --- a/AndroidLibSVM/app/build.gradle +++ b/AndroidLibSVM/app/build.gradle @@ -6,7 +6,7 @@ android { defaultConfig { applicationId "edu.umich.eecs.androidlibsvm" - minSdkVersion 22 + minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0"