android cmakelists 간략한 설명

3620 단어 ndk
일반 명령
cmake_minimum_required(VERSION 3.4.1)

aux_source_dirction(. DIR_SRCS)
            ,              DIR_SRCS 。         

라이브러리 추가
add_library( [STATIC|SHARED|MODULE] [
EXCLUDE_FROM_ALL]  source1 source2 source3)

사전 편집 라이브러리 가져오기
add_library( [STATIC|SHARED|MODULE|UNKNOWN] IMPORTED)
set_target_properties( PROPERTIES IMPORTED_LOCATION       )

#   test    
add_library(test SH/ARED IMPORTED)
set_target_properties(test PROPERTIES IMPORTED_LOCATON ${haha}/libtest.so)

공통 명령 set
1.            
set(EXCUTABLE_OUTPUT_PATH [output_path])
2.          
set(LIBRARY_OUTPUT_PATH)
3.  C++     
set(CAMKE_CXX_FLAGS "-Wall std=c++11")
4.       
set(SOURCE_FILES main.cpp test.cpp)

include_directories
include_dirctories(./include ${MY_INCLUDE})
        ,   g++    -I    

add_excutable
       
add_excutable( ${src_list}) 

target_link_libraries
target_link_libraries( lib1 lib2 lib3)

1.            
2.          。 lib1    lib2 ,lib2    lib3
3.           ,cmake      
    add_library(A STATIC a.c)
    add_library(B STATIC b.c)
    target_link_libraries(A B)
    target_link_libraries(B A)
    add_excutable(main main.c)
    target_link_libraries(main A)
    
4.            

add_definitions ??
add_definitions(-DFOO -DDEBUG ...)
                  -D   define flag

add_subdirectory
add_subdirectory(sub_dir [binary_dir])
            ,       ,         CMakeLists.txt

file 명령
set_directory_properties
set_directory_properties(PROPERTIES prop1 value1 prop2 valu2)

prop:INCLUDE_DIRECTORIES LINK_DIRECTORIES INCLUDE_REGULAR_EXPRESSION ADDTIONAL_MAKE_CLREAN_FILES

set_property
                

set_property( 
                [APPEND]
                property  [value ...])

여러 개의 원본 파일을 어떻게 처리합니까
현재 디렉토리
aux_source_directory(. DIR_SCRS)

  
file(GLOB DIR_SRCS *.c *.cpp)

add_library(native-lib SHARED ${DIR_SRCS})

여러 디렉토리 아래
           child

#    CMakeLists.txt    :
cmake_minimum_required(VERSION 3.4.1)
#              DIR_SRCS  
aux_source_directory(. DIR_SRCS)
#       
add_library(native-lib SHARED ${DIR_SRCS})
#        
add_subdirectory(child)
#   
target_link_libraries(native-lib child)

#child CMakeLists.txt    :
cmake_minimum_required(VERSION 3.4.1)
 aux_source_directory(. DIR_LIB_SRCS)
 add_library(child SHARED ${DIR_LIB_SRCS})

사전 컴파일 라이브러리 추가 (android 6.0 이전)
cmake_minimum_required(VERSION 3.4.1)

add_library(import-lib SHARED IMPORTED)

set_target_properties(import-lib PROPERTIES IMPORTED_LOCATION ./xxx/lib-import-lib.so)

aux_source_directory(. SRCS)

add_library(native-lib SHARED ${SRCS})

target_link_libraries(native-lib import-lib)

사전 컴파일 라이브러리 추가 (android 6.0 이후)
set(CMAKE_C_FLAGS "${CAMKE_C_FLAGS} -l [so    ]")
    
     CMAKE_C_FLAGS   -l  

헤더 파일 추가
cmake_minimu_required(VERSION 3.4.1)
include_directorys()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -l [so    ]")

aux_source_direction(. SRCS)
add_library(native-lib SHARED ${SRCS})
target_link_libraries(native-lib improted-lib)

build.gradle의 설정

좋은 웹페이지 즐겨찾기