@@ -30,6 +30,8 @@ set(executorch_DIR ${CMAKE_CURRENT_BINARY_DIR}/../../lib/cmake/ExecuTorch)
3030find_package (executorch CONFIG REQUIRED)
3131target_link_options_shared_lib(executorch)
3232
33+ add_library (executorch_jni SHARED jni/jni_layer.cpp)
34+
3335set (link_libraries )
3436list (
3537 APPEND
@@ -58,13 +60,21 @@ else()
5860 list (APPEND link_libraries portable_ops_lib portable_kernels)
5961 target_link_options_shared_lib(portable_ops_lib)
6062endif ()
63+
64+ if (TARGET quantized_kernels)
65+ list (APPEND link_libraries quantized_kernels quantized_ops_lib)
66+ target_link_options_shared_lib(quantized_ops_lib)
67+ endif ()
68+
6169if (TARGET qnn_executorch_backend)
6270 list (APPEND link_libraries qnn_executorch_backend)
6371endif ()
72+
6473if (TARGET xnnpack_backend)
6574 target_link_options_shared_lib(xnnpack_backend)
6675 list (APPEND link_libraries xnnpack_backend XNNPACK pthreadpool cpuinfo)
6776endif ()
77+
6878if (TARGET vulkan_backend)
6979 target_link_options_shared_lib(vulkan_backend)
7080 list (APPEND link_libraries vulkan_backend)
@@ -79,7 +89,27 @@ if(EXECUTORCH_BUILD_KERNELS_CUSTOM)
7989 target_link_options_shared_lib(custom_ops)
8090endif ()
8191
82- add_library (executorch_jni SHARED jni/jni_layer.cpp)
92+ if (TARGET pthreadpool)
93+ target_compile_definitions (executorch_jni PRIVATE ET_USE_THREADPOOL=1)
94+ target_include_directories (
95+ executorch_jni
96+ PUBLIC
97+ ${CMAKE_CURRENT_SOURCE_DIR} /../../backends/xnnpack/third-party/cpuinfo/include
98+ )
99+ target_include_directories (
100+ executorch_jni
101+ PUBLIC
102+ ${CMAKE_CURRENT_SOURCE_DIR} /../../backends/xnnpack/third-party/pthreadpool/include
103+ )
104+ endif ()
105+
106+ if (EXECUTORCH_JNI_CUSTOM_LIBRARY)
107+ list (APPEND link_libraries ${EXECUTORCH_JNI_CUSTOM_LIBRARY} )
108+ target_link_libraries (
109+ executorch_jni -Wl,--whole-archive ${EXECUTORCH_JNI_CUSTOM_LIBRARY}
110+ -Wl,--no -whole-archive
111+ )
112+ endif ()
83113
84114if (EXECUTORCH_BUILD_LLAMA_JNI)
85115 target_sources (executorch_jni PRIVATE jni/jni_layer_llama.cpp)
@@ -96,29 +126,10 @@ if(EXECUTORCH_BUILD_LLAMA_JNI)
96126 )
97127endif ()
98128
99- if (TARGET quantized_kernels)
100- list (APPEND link_libraries quantized_kernels quantized_ops_lib)
101- target_link_options_shared_lib(quantized_ops_lib)
102- endif ()
103-
104129target_include_directories (
105130 executorch_jni PRIVATE ${_common_include_directories}
106131)
107132
108133target_compile_options (executorch_jni PUBLIC ${_common_compile_options} )
109134
110135target_link_libraries (executorch_jni ${link_libraries} )
111-
112- if (TARGET pthreadpool)
113- target_compile_definitions (executorch_jni PRIVATE ET_USE_THREADPOOL=1)
114- target_include_directories (
115- executorch_jni
116- PUBLIC
117- ${CMAKE_CURRENT_SOURCE_DIR} /../../backends/xnnpack/third-party/cpuinfo/include
118- )
119- target_include_directories (
120- executorch_jni
121- PUBLIC
122- ${CMAKE_CURRENT_SOURCE_DIR} /../../backends/xnnpack/third-party/pthreadpool/include
123- )
124- endif ()
0 commit comments