digital-human/duix-sdk/src/main/cpp/CMakeLists.txt

200 lines
3.5 KiB
CMake

cmake_minimum_required(VERSION 3.13.2)
project(gjmywrt)
#set(CMAKE_CXX_COMPILER g++)
#set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -fPIC -funwind-tables -fno-omit-frame-pointer")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC ")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_BUILD_TYPE "Debug")
set(ORT_NO_EXCEPTIONS FALSE)
#set(DEVAUD false)
option(DEVARM "shared library support" TRUE)
if(DEVARM)
set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/third/opencv-mobile-4.6.0-android/sdk/native/jni)
find_package(OpenCV REQUIRED core imgproc highgui)
set(ncnn_DIR ${CMAKE_SOURCE_DIR}/third/ncnn-20231027-android-shared/${ANDROID_ABI}/lib/cmake/ncnn)
find_package(ncnn REQUIRED)
add_library(turbojpeg STATIC IMPORTED)
set_target_properties(turbojpeg
PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/third/arm/${ANDROID_ABI}/libturbojpeg.a)
add_library(libjpeg STATIC IMPORTED)
set_target_properties(libjpeg
PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/third/arm/${ANDROID_ABI}/libjpeg.a)
add_library(onnx-lib SHARED IMPORTED)
set_target_properties(
onnx-lib
PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/third/arm/${ANDROID_ABI}/libonnxruntime.so)
endif()
option(USE_OPENCV "shared library support" TRUE)
option(USE_NCNN "shared library support" TRUE)
option(USE_OPENVINO "shared library support" FALSE)
set(THIRD_INC "third/include")
if(DEVARM)
set(THIRD_LIB "third/libarm")
else()
set(THIRD_LIB "third/lib64")
endif()
if(DEVARM)
include_directories(
include
dhcore
dhmfcc
aes
android
third/arm/include
third/arm/include/onnx
third/arm/include/ncnn
third/arm/include/turbojpeg
)
else()
include_directories(
include
dhcore
dhmfcc
aes
third2/include
third2/inc2404
third2/include/onnx
third2/include/turbojpeg
third2/include/ncnn
/usr/local/include/opencv4
)
link_directories(
${CMAKE_SOURCE_DIR}/lib64
${CMAKE_SOURCE_DIR}/third2/lib64
${CMAKE_SOURCE_DIR}/third2/lib2404
/usr/local/lib
)
endif()
add_library(dhcore STATIC
dhcore/dh_mem.c
dhcore/dh_data.cpp
dhcore/dh_que.cpp
)
target_link_libraries(dhcore
-lm -lz -pthread
)
add_library(dhmfcc STATIC
dhmfcc/dhpcm.cpp
dhmfcc/dhwenet.cpp
dhmfcc/wenetai.cpp
dhmfcc/AudioFFT.cpp
dhmfcc/iir_filter.cpp
dhmfcc/mfcc.cpp
)
target_link_libraries(dhmfcc
dhcore
-lz -lm
)
target_compile_options(dhmfcc PRIVATE
-std=c++17
)
include_directories(
include
dhunet
)
add_library(dhunet STATIC
dhunet/jmat.cpp
dhunet/blendgram.cpp
dhunet/face_utils.cpp
dhunet/malpha.cpp
dhunet/munet.cpp
)
target_link_libraries(dhunet
dhcore
dhmfcc
-lz -lm
)
if(DEVARM)
add_library(gjduix SHARED
duix/gjduix.cpp
duix/gjsimp.cpp
android/Log.cpp
android/DuixJni.cpp
android/JniHelper.cpp
aes/aes_cbc.c aes/aes_core.c aes/aes_ecb.c aes/base64.c aes/cbc128.c aes/gj_aes.c
aes/aesmain.c
)
target_link_libraries(gjduix
dhcore
dhmfcc
dhunet
${OpenCV_LIBS}
${log-lib}
ncnn
onnx-lib
libjpeg
turbojpeg
-lz -lm
-landroid
)
else()
add_library(gjduix SHARED
duix/gjduix.cpp
duix/gjsimp.cpp
)
target_link_libraries(gjduix
dhcore
dhmfcc
dhunet
-ljpeg
-lopencv_core
-lopencv_imgproc
-lopencv_highgui
-lturbojpeg
-lonnxruntime
-lncnn
-lz -lm
)
endif()
add_executable(duixtest
#iostest/testduix.cpp
iostest/testsimp.cpp
)
target_link_libraries(duixtest
dhcore
gjduix
)