improve how pytorch_android cmake imports static lib (#26525)

Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/26525

Create a util function to avoid boilerplate code as we are adding more
libraries.

Test Plan: - build CI;

Differential Revision: D17495394

Pulled By: ljk53

fbshipit-source-id: 9e19f96ede4867bdff5157424fa68b71e6cff8bf
This commit is contained in:
Jiakai Liu 2019-09-20 15:42:35 -07:00 committed by Facebook Github Bot
parent f0b7132b87
commit 6fcbc37753

View File

@ -6,37 +6,8 @@ set(CMAKE_VERBOSE_MAKEFILE ON)
set(pytorch_android_DIR ${CMAKE_CURRENT_LIST_DIR}/src/main/cpp)
set(libtorch_include_DIR ${pytorch_android_DIR}/libtorch_include/${ANDROID_ABI})
set(libtorch_FILE ${CMAKE_CURRENT_LIST_DIR}/src/main/jniLibs/${ANDROID_ABI}/libtorch.a)
set(libc10_FILE ${CMAKE_CURRENT_LIST_DIR}/src/main/jniLibs/${ANDROID_ABI}/libc10.a)
set(libnnpack_FILE ${CMAKE_CURRENT_LIST_DIR}/src/main/jniLibs/${ANDROID_ABI}/libnnpack.a)
set(libqnnpack_FILE ${CMAKE_CURRENT_LIST_DIR}/src/main/jniLibs/${ANDROID_ABI}/libqnnpack.a)
set(libpytorch_qnnpack_FILE ${CMAKE_CURRENT_LIST_DIR}/src/main/jniLibs/${ANDROID_ABI}/libpytorch_qnnpack.a)
set(libcpuinfo_FILE ${CMAKE_CURRENT_LIST_DIR}/src/main/jniLibs/${ANDROID_ABI}/libcpuinfo.a)
set(libclog_FILE ${CMAKE_CURRENT_LIST_DIR}/src/main/jniLibs/${ANDROID_ABI}/libclog.a)
message(STATUS "libtorch dir:${libtorch_DIR}")
add_library(libtorch STATIC IMPORTED)
set_property(TARGET libtorch PROPERTY IMPORTED_LOCATION ${libtorch_FILE})
add_library(libc10 STATIC IMPORTED)
set_property(TARGET libc10 PROPERTY IMPORTED_LOCATION ${libc10_FILE})
add_library(libnnpack STATIC IMPORTED)
set_property(TARGET libnnpack PROPERTY IMPORTED_LOCATION ${libnnpack_FILE})
add_library(libqnnpack STATIC IMPORTED)
set_property(TARGET libqnnpack PROPERTY IMPORTED_LOCATION ${libqnnpack_FILE})
add_library(libpytorch_qnnpack STATIC IMPORTED)
set_property(TARGET libpytorch_qnnpack PROPERTY IMPORTED_LOCATION ${libpytorch_qnnpack_FILE})
add_library(libcpuinfo STATIC IMPORTED)
set_property(TARGET libcpuinfo PROPERTY IMPORTED_LOCATION ${libcpuinfo_FILE})
add_library(libclog STATIC IMPORTED)
set_property(TARGET libclog PROPERTY IMPORTED_LOCATION ${libclog_FILE})
file(GLOB pytorch_android_SOURCES
${pytorch_android_DIR}/*.cpp
)
@ -61,6 +32,22 @@ set(fbjni_BUILD_DIR ${BUILD_DIR}/fbjni/${ANDROID_ABI})
add_subdirectory(${fbjni_DIR} ${fbjni_BUILD_DIR})
function(import_static_lib name)
add_library(${name} STATIC IMPORTED)
set_property(
TARGET ${name}
PROPERTY IMPORTED_LOCATION
${CMAKE_CURRENT_LIST_DIR}/src/main/jniLibs/${ANDROID_ABI}/${name}.a)
endfunction(import_static_lib)
import_static_lib(libtorch)
import_static_lib(libc10)
import_static_lib(libnnpack)
import_static_lib(libqnnpack)
import_static_lib(libpytorch_qnnpack)
import_static_lib(libcpuinfo)
import_static_lib(libclog)
target_link_libraries(pytorch
fbjni
-Wl,--gc-sections