cmake_minimum_required(VERSION 3.6) project(pomelo2) set(POMELO_OBJECT src/pc_lib.c src/pc_pomelo.c src/pc_trans.c …… src/tr/uv/pr_msg_pb.c src/tr/uv/tr_uv_tcp_i.c …… ) set(UV_OBJECT deps/uv/src/fs-poll.c deps/uv/src/inet.c deps/uv/src/threadpool.c …… ) add_library(${PROJECT_NAME} STATIC ${POMELO_OBJECT} ${UV_OBJECT}) target_compile_options(${PROJECT_NAME} PRIVATE -fPIC PRIVATE -Wall PRIVATE -DPC_NO_UV_TLS_TRANS PRIVATE -D_GNU_SOURCE ) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/deps/uv/src PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/deps/uv/src/unix ) |
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := pomelo_static LOCAL_MODULE_FILENAME := libpomelo LOCAL_SRC_FILES := \ src/pc_lib.c \ src/pc_pomelo.c \ src/pc_trans.c \ src/pc_trans_repo.c \ src/tr/dummy/tr_dummy.c \ …… src/tr/uv/pr_msg_pb.c \ src/tr/uv/pr_pkg.c \ src/tr/uv/tr_uv_tcp.c \ src/tr/uv/tr_uv_tcp_aux.c \ src/tr/uv/tr_uv_tcp_i.c LOCAL_CFLAGS := -DPC_NO_UV_TLS_TRANS LOCAL_EXPORT_C_INCLUDES :=$(LOCAL_PATH)/include LOCAL_C_INCLUDES := $(LOCAL_PATH)/include \ $(LOCAL_PATH)/src \ $(LOCAL_PATH)/src/tr/dummy \ $(LOCAL_PATH)/src/tr/uv LOCAL_WHOLE_STATIC_LIBRARIES := uv_static jansson_static include $(BUILD_STATIC_LIBRARY) LOCAL_CFLAGS := -D__ANDROID__ $(call import-module,libpomelo2/deps/uv) \ $(call import-module,libpomelo2/deps/jansson) |
# ...... # 省略部分代码 # ...... if(ANDROID) # 此处使用日志相关功能,可以替换为鸿蒙hilog # Include liblog for Android logging check_library_exists(log __android_log_print "" HAVE_LIBLOG) if(HAVE_LIBLOG) set(EXTRA_LIBS log ${EXTRA_LIBS}) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} log) endif() endif() # ...... # 省略部分代码 # ...... option(ALSOFT_REQUIRE_OPENSL "Require OpenSL backend" OFF) if(CMAKE_SYSTEM_NAME MATCHES "ANDROID") # 检查opensles头文件 CHECK_INCLUDE_FILES("SLES/OpenSLES.h;SLES/OpenSLES_Android.h" HAVE_SLES_OPENSLES_H ) SET(HAVE_OPENSL_ANDROID 1) endif() |
# ...... # 省略部分代码 # ...... IF(HAVE_SLES_OPENSLES_H) # CHECK_SHARED_FUNCTION_EXISTS(slCreateEngine "SLES/OpenSLES.h" OpenSLES "" HAVE_L IBOPENSLES) # IF(HAVE_LIBOPENSLES) OPTION(ALSOFT_BACKEND_OPENSL "Enable OpenSL backend" ON) IF(ALSOFT_BACKEND_OPENSL) SET(HAVE_OPENSL 1) IF(HAVE_OPENSL_ANDROID) # 调用opensles代码在Alc/backends/opensl.cpp中 SET(ALC_OBJS ${ALC_OBJS} Alc/backends/opensl.cpp Alc/backends/opensl. h) ENDIF() SET(BACKENDS "${BACKENDS} OpenSL,") SET(EXTRA_LIBS OpenSLES ${EXTRA_LIBS}) ENDIF() # ENDIF() ENDIF() # ...... # 省略部分代码 # ...... |
# ...... # 省略部分代码 # ...... if(ANDROID) # Include liblog for Android logging check_library_exists(log __android_log_print "" HAVE_LIBLOG) if(HAVE_LIBLOG) set(EXTRA_LIBS log ${EXTRA_LIBS}) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} log) endif() endif() # 新增代码,鸿蒙hilog if(CMAKE_SYSTEM_NAME MATCHES "OHOS") SET(EXTRA_LIBS libhilog_ndk.z.so ${EXTRA_LIBS}) SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} libhilog_ndk.z.so) endif() |
# ...... # 省略部分代码 # ...... option(ALSOFT_REQUIRE_OPENSL "Require OpenSL backend" OFF) if(CMAKE_SYSTEM_NAME MATCHES "OHOS") CHECK_INCLUDE_FILES("SLES/OpenSLES.h;SLES/OpenSLES_OpenHarmony.h" HAVE_SLES_OPENSLES _H) SET(HAVE_OPENSL_OHOS 1) else() CHECK_INCLUDE_FILES("SLES/OpenSLES.h;SLES/OpenSLES_Android.h" HAVE_SLES_OPENSLES_H) SET(HAVE_OPENSL_ANDROID 1) endif() # ...... # 省略部分代码 # ...... IF(HAVE_SLES_OPENSLES_H) OPTION(ALSOFT_BACKEND_OPENSL "Enable OpenSL backend" ON) IF(ALSOFT_BACKEND_OPENSL) SET(HAVE_OPENSL 1) IF(HAVE_OPENSL_ANDROID) SET(ALC_OBJS ${ALC_OBJS} Alc/backends/opensl.cpp Alc/backends/opensl.h) ENDIF() IF(HAVE_OPENSL_OHOS) SET(ALC_OBJS ${ALC_OBJS} Alc/backends/opensl_ohos.cpp Alc/backends/opensl.h) ENDIF() SET(BACKENDS "${BACKENDS} OpenSL,") SET(EXTRA_LIBS OpenSLES ${EXTRA_LIBS}) ENDIF() ENDIF() |
# =============================== # 需调整鸿蒙sdk路径及工具链路径 # =============================== /home/chenghui/ohos_sdk/10/native/build-tools/cmake/bin/cmake -GNinja \ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./ \ -DCMAKE_TOOLCHAIN_FILE="/home/chenghui/ohos_sdk/10/native/build/cmake/ohos.toolchain.cmake" -B build # =============================== # 需调整鸿蒙sdk路径及工具链路径 # =============================== /home/chenghui/ohos_sdk/10/native/build-tools/cmake/bin/ninja -C build/ |
cmake_minimum_required(VERSION 3.6) project(pomelo2) set(POMELO_OBJECT src/pc_lib.c src/pc_pomelo.c src/pc_trans.c …… src/tr/uv/pr_msg_pb.c src/tr/uv/tr_uv_tcp_i.c …… ) set(UV_OBJECT deps/uv/src/fs-poll.c deps/uv/src/inet.c deps/uv/src/threadpool.c …… ) add_library(${PROJECT_NAME} STATIC ${POMELO_OBJECT} ${UV_OBJECT}) target_compile_options(${PROJECT_NAME} PRIVATE -fPIC PRIVATE -Wall PRIVATE -DPC_NO_UV_TLS_TRANS PRIVATE -D_GNU_SOURCE ) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/deps/uv/src PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/deps/uv/src/unix ) |
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := pomelo_static LOCAL_MODULE_FILENAME := libpomelo LOCAL_SRC_FILES := \ src/pc_lib.c \ src/pc_pomelo.c \ src/pc_trans.c \ src/pc_trans_repo.c \ src/tr/dummy/tr_dummy.c \ …… src/tr/uv/pr_msg_pb.c \ src/tr/uv/pr_pkg.c \ src/tr/uv/tr_uv_tcp.c \ src/tr/uv/tr_uv_tcp_aux.c \ src/tr/uv/tr_uv_tcp_i.c LOCAL_CFLAGS := -DPC_NO_UV_TLS_TRANS LOCAL_EXPORT_C_INCLUDES :=$(LOCAL_PATH)/include LOCAL_C_INCLUDES := $(LOCAL_PATH)/include \ $(LOCAL_PATH)/src \ $(LOCAL_PATH)/src/tr/dummy \ $(LOCAL_PATH)/src/tr/uv LOCAL_WHOLE_STATIC_LIBRARIES := uv_static jansson_static include $(BUILD_STATIC_LIBRARY) LOCAL_CFLAGS := -D__ANDROID__ $(call import-module,libpomelo2/deps/uv) \ $(call import-module,libpomelo2/deps/jansson) |
# ...... # 省略部分代码 # ...... if(ANDROID) # 此处使用日志相关功能,可以替换为鸿蒙hilog # Include liblog for Android logging check_library_exists(log __android_log_print "" HAVE_LIBLOG) if(HAVE_LIBLOG) set(EXTRA_LIBS log ${EXTRA_LIBS}) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} log) endif() endif() # ...... # 省略部分代码 # ...... option(ALSOFT_REQUIRE_OPENSL "Require OpenSL backend" OFF) if(CMAKE_SYSTEM_NAME MATCHES "ANDROID") # 检查opensles头文件 CHECK_INCLUDE_FILES("SLES/OpenSLES.h;SLES/OpenSLES_Android.h" HAVE_SLES_OPENSLES_H ) SET(HAVE_OPENSL_ANDROID 1) endif() |
# ...... # 省略部分代码 # ...... IF(HAVE_SLES_OPENSLES_H) # CHECK_SHARED_FUNCTION_EXISTS(slCreateEngine "SLES/OpenSLES.h" OpenSLES "" HAVE_L IBOPENSLES) # IF(HAVE_LIBOPENSLES) OPTION(ALSOFT_BACKEND_OPENSL "Enable OpenSL backend" ON) IF(ALSOFT_BACKEND_OPENSL) SET(HAVE_OPENSL 1) IF(HAVE_OPENSL_ANDROID) # 调用opensles代码在Alc/backends/opensl.cpp中 SET(ALC_OBJS ${ALC_OBJS} Alc/backends/opensl.cpp Alc/backends/opensl. h) ENDIF() SET(BACKENDS "${BACKENDS} OpenSL,") SET(EXTRA_LIBS OpenSLES ${EXTRA_LIBS}) ENDIF() # ENDIF() ENDIF() # ...... # 省略部分代码 # ...... |
# ...... # 省略部分代码 # ...... if(ANDROID) # Include liblog for Android logging check_library_exists(log __android_log_print "" HAVE_LIBLOG) if(HAVE_LIBLOG) set(EXTRA_LIBS log ${EXTRA_LIBS}) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} log) endif() endif() # 新增代码,鸿蒙hilog if(CMAKE_SYSTEM_NAME MATCHES "OHOS") SET(EXTRA_LIBS libhilog_ndk.z.so ${EXTRA_LIBS}) SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} libhilog_ndk.z.so) endif() |
# ...... # 省略部分代码 # ...... option(ALSOFT_REQUIRE_OPENSL "Require OpenSL backend" OFF) if(CMAKE_SYSTEM_NAME MATCHES "OHOS") CHECK_INCLUDE_FILES("SLES/OpenSLES.h;SLES/OpenSLES_OpenHarmony.h" HAVE_SLES_OPENSLES _H) SET(HAVE_OPENSL_OHOS 1) else() CHECK_INCLUDE_FILES("SLES/OpenSLES.h;SLES/OpenSLES_Android.h" HAVE_SLES_OPENSLES_H) SET(HAVE_OPENSL_ANDROID 1) endif() # ...... # 省略部分代码 # ...... IF(HAVE_SLES_OPENSLES_H) OPTION(ALSOFT_BACKEND_OPENSL "Enable OpenSL backend" ON) IF(ALSOFT_BACKEND_OPENSL) SET(HAVE_OPENSL 1) IF(HAVE_OPENSL_ANDROID) SET(ALC_OBJS ${ALC_OBJS} Alc/backends/opensl.cpp Alc/backends/opensl.h) ENDIF() IF(HAVE_OPENSL_OHOS) SET(ALC_OBJS ${ALC_OBJS} Alc/backends/opensl_ohos.cpp Alc/backends/opensl.h) ENDIF() SET(BACKENDS "${BACKENDS} OpenSL,") SET(EXTRA_LIBS OpenSLES ${EXTRA_LIBS}) ENDIF() ENDIF() |
# =============================== # 需调整鸿蒙sdk路径及工具链路径 # =============================== /home/chenghui/ohos_sdk/10/native/build-tools/cmake/bin/cmake -GNinja \ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./ \ -DCMAKE_TOOLCHAIN_FILE="/home/chenghui/ohos_sdk/10/native/build/cmake/ohos.toolchain.cmake" -B build # =============================== # 需调整鸿蒙sdk路径及工具链路径 # =============================== /home/chenghui/ohos_sdk/10/native/build-tools/cmake/bin/ninja -C build/ |
欢迎光临 开发者论坛 (https://oh-test.qingcheng100.cn/) | Powered by Discuz! X3.5 |