1.cmake版本需求
cmake_minimum_required(VERSION 3.4.1)
2.定義目錄
set(COMMON_DIR ${PROJECT_DIR}/src/main/cpp/common)
set(TOOLKIT_DIR ${PROJECT_DIR}/src/main/cpp/toolkit)
set(LIBYUV_DIR ${TOOLKIT_DIR}/libyuv/libs)
set(LIBYUV_INCLUDE_DIR ${LIBYUV_DIR}/include)
3.依賴的頭文件目錄
include_directories(${COMMON_DIR}
${LIBYUV_INCLUDE_DIR}
${TOOLKIT_DIR})
4.鏈接庫目錄
link_directories(${LIBYUV_DIR}/${ANDROID_ABI})
5.定義生成庫
add_library(Toolkits
SHARED
${TOOLKIT_DIR}/jni_interface.cpp)
6.根據cpu類型,設置特殊配置
if( ${ANDROID_ABI} MATCHES "armeabi-v7a" )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -mfloat-abi=softfp -mfpu=neon -march=armv7-a -mtune=cortex-a8")
message(${ANDROID_ABI},當前啓用neon設置)
endif(${ANDROID_ABI} MATCHES "armeabi-v7a")
7.設置編譯參數
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_JNI_LOG=1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DANDROID_STL=gnustl_static")
set(CMAKE_VERBOSE_MAKEFILE on)
8.目標鏈接庫
target_link_libraries(Toolkits yuv)
target_link_libraries(Toolkits log)