Cmake使用摘要

2020-02-14  本文已影响0人  sam寨

Cmake使用常识

Cmake使用要点

FFMpeg配置共享

cmake_minimum_required(VERSION 3.4.1)

#使用file列出所有的.cpp文件作为source files,
#需要注意使用这个方法后,无论源文件是否有添加或删除,CMakeLists.txt文件不会变化,则cmake无法检测,
#所以如果源文件有变化需要手动来改一下CMakeLists.txt,使cmake探测变化.
file(GLOB source_files *.cpp)
add_library(native-lib SHARED ${source_files})

#添加头文件路径
set(include_dir ${CMAKE_CURRENT_SOURCE_DIR}/ffmpeg)
message("** include dir is ${include_dir}")
include_directories(${include_dir})

#设置so文件路径
set(so_dir ${PROJECT_SOURCE_DIR}/../jniLibs/armeabi-v7a)
message("** project source dir is ${so_dir}")
#导入so库, 并将lib名添加到lib_name_list里面
file(GLOB so_files ${so_dir}/*.so)
foreach (so_file_path ${so_files})
    string(REGEX REPLACE ".+/(.+)\\..*" "\\1" lib_name ${so_file_path})
    message("** lib name : ${lib_name}, path : ${so_file_path}")
    list(APPEND lib_name_list ${lib_name})
    add_library(${lib_name} SHARED IMPORTED)
    set_target_properties(${lib_name} PROPERTIES IMPORTED_LOCATION ${so_file_path})
endforeach ()

#链接
#################注意##################
# find_library (<VAR> name1 [path1 path2 ...])
# add_library(<name> [STATIC | SHARED | MODULE][EXCLUDE_FROM_ALL][source1] [source2 ...])
# find_library后面跟的是变量,所以下面要使用 ${log-lib}
# add_library后面跟的是name,不是一个变量,所以一定不能写成${native-lib},否则会报错
#######################################
find_library(log-lib log)
target_link_libraries(
        native-lib
        ${lib_name_list}
        ${log-lib}
)
上一篇下一篇

猜你喜欢

热点阅读