Files
LayaNative2.0/Conch/build/conch/proj.ohos/CMakeLists.txt
T
helloworldlv 8c228b44cc 同步
2025-06-16 15:53:37 +08:00

169 lines
6.7 KiB
CMake

cmake_minimum_required(VERSION 3.6)
set(CMAKE_CXX_STANDARD 14)
project(layaair)
set(LAYA_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
set(OHOS true)
add_definitions(-DOHOS)
add_definitions(-fexceptions)
add_definitions(-DIN_LIBRARY)
add_definitions(-D_GLIBCXX_PERMIT_BACKWARD_HASH)
add_definitions(-DOHOS_ARM_NEON=TRUE)
add_definitions(-DOHOS_STL=c++_shared)
add_definitions(-DOHOS_TOOLCHAIN=clang)
add_definitions(-fno-rtti)
add_definitions(-DBT_USE_DOUBLE_PRECISION)
add_definitions(-DAL_ALEXT_PROTOTYPES)
set(USE_JS_V8 OFF)
set(USE_JS_JSVM ON)
if (USE_JS_V8)
add_definitions(-DJS_V8)
message("USE_JS_V8")
elseif (USE_JS_JSVM)
add_definitions(-DJS_JSVM)
message("USE_JS_JSVM")
endif()
add_subdirectory(../../common/proj.ohos common)
add_subdirectory(../../render/proj.ohos render)
set(${PROJECT_NAME}_src
../../../source/conch/JSWrapper/v8debug/debug-agent.cpp
../../../source/conch/JSWrapper/v8debug/V8WSSv.cpp
../../../source/conch/JSWrapper/JSInterface/JSInterface.cpp
../../../source/conch/JSWrapper/JSInterface/JSObjBase.cpp
../../../source/conch/JSWrapper/LayaWrap/JSArrayBufferRef.cpp
../../../source/conch/JSWrapper/LayaWrap/JSOhosEditBox.cpp
../../../source/conch/JSWrapper/LayaWrap/JSAppCache.cpp
../../../source/conch/JSWrapper/LayaWrap/JSAudio.cpp
../../../source/conch/JSWrapper/LayaWrap/JSConchConfig.cpp
../../../source/conch/JSWrapper/LayaWrap/JSConsole.cpp
../../../source/conch/JSWrapper/LayaWrap/JSDOMParser.cpp
../../../source/conch/JSWrapper/LayaWrap/JSFile.cpp
../../../source/conch/JSWrapper/LayaWrap/JSFileReader.cpp
../../../source/conch/JSWrapper/LayaWrap/JSFileSystem.cpp
../../../source/conch/JSWrapper/LayaWrap/JSGlobalExportCFun.cpp
../../../source/conch/JSWrapper/LayaWrap/JSHistory.cpp
../../../source/conch/JSWrapper/LayaWrap/JSImage.cpp
../../../source/conch/JSWrapper/LayaWrap/JSInput.cpp
../../../source/conch/JSWrapper/LayaWrap/JSLayaGL.cpp
../../../source/conch/JSWrapper/LayaWrap/JSNotify.cpp
../../../source/conch/JSWrapper/LayaWrap/JSRuntime.cpp
../../../source/conch/JSWrapper/LayaWrap/JSTextMemoryCanvas.cpp
../../../source/conch/JSWrapper/LayaWrap/JSWebSocket.cpp
../../../source/conch/JSWrapper/LayaWrap/JSXmlAttr.cpp
../../../source/conch/JSWrapper/LayaWrap/JSXmlNode.cpp
../../../source/conch/JSWrapper/LayaWrap/JSZip.cpp
../../../source/conch/JSWrapper/LayaWrap/JSShaderActiveInfo.cpp
../../../source/conch/JSWrapper/LayaWrap/JSTextBitmapInfo.cpp
../../../source/conch/JSWrapper/LayaWrap/XMLHttpRequest.cpp
../../../source/conch/JSWrapper/LayaWrap/JSShaderPrecisionFormat.cpp
../../../source/conch/JSWrapper/LayaWrap/JSCallbackFuncObj.cpp
../../../source/conch/JSWrapper/LayaWrap/JSWebGLPlus.cpp
../../../source/conch/JSWrapper/LayaWrap/JSPromiseRejectionEvent.cpp
../../../source/conch/Audio/ohos/JCAudioMp3Player.cpp
../../../source/conch/Audio/JCAudioManager.cpp
../../../source/conch/WebSocket/WebSocket.cpp
../../../source/conch/WebSocket/Uri.cpp
../../../source/conch/JCConch.cpp
../../../source/conch/JCConchRender.cpp
../../../source/conch/JCThreadCmdMgr.cpp
../../../source/conch/JCScriptRuntime.cpp
../../../source/conch/JCSystemConfig.cpp
../../../source/conch/JSWrapper/LayaWrap/Bullet/LayaBulletExport.cpp
../../../source/conch/JSWrapper/LayaWrap/Bullet/LayaBulletExportImp.cpp
../../../source/conch/JSWrapper/LayaWrap/Video/JSVideo_CommonImpl.cpp
../../../source/conch/JSWrapper/LayaWrap/Video/JSVideo_OHOSImpl.cpp
../../../source/conch/JSWrapper/LayaWrap/Video/VideoCache.cpp
../../../source/conch/Bridge/JCConchBridge.cpp
../../../source/napi/helper/NapiHelper.cpp
../../../source/conch/JSWrapper/LayaWrap/JSSensor.cpp
../../../source/napi/plugin_manager.cpp
../../../source/napi/helper/NapiValueConverter.cpp
../../../source/napi/WorkerMessageQueue.cpp
../../../source/napi/render/plugin_render.cpp
../../../source/napi/render/egl_core.cpp
../../../source/napi/modules/TouchesNapi.cpp
../../../source/napi/modules/KeyNapi.cpp
../../../source/napi/modules/VideoPlayerNapi.cpp
)
#add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_src})
if (USE_JS_V8)
list(APPEND ${PROJECT_NAME}_src
../../../source/conch/JSWrapper/JSInterface/V8/JSEnv.cpp
../../../source/conch/JSWrapper/JSInterface/V8/JsBinder.cpp
../../../source/conch/JSWrapper/JSInterface/V8/JSArrayBuffer.cpp
../../../source/conch/JSWrapper/JSInterface/V8/IsolateData.cpp
)
elseif (USE_JS_JSVM)
list(APPEND ${PROJECT_NAME}_src
../../../source/conch/JSWrapper/JSInterface/JSVM/JSVMEnv.cpp
../../../source/conch/JSWrapper/JSInterface/JSVM/JSVMBinder.cpp
../../../source/conch/JSWrapper/JSInterface/JSVM/JSVMArrayBuffer.cpp
../../../source/conch/JSWrapper/JSInterface/JSVM/IsolateData.cpp
)
endif()
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_src})
include_directories(${LAYA_ROOT_PATH}/Conch/source)
include_directories(${LAYA_ROOT_PATH}/Conch/source/common)
include_directories(${LAYA_ROOT_PATH}/Conch/source/napi)
include_directories(${LAYA_ROOT_PATH}/Conch/source/resource)
add_subdirectory(${LAYA_ROOT_PATH}/ThirdParty thirdParty)
#target_link_libraries(${PROJECT_NAME} thirdParty)
find_library(EGL-lib EGL)
find_library(GLESv3-lib GLESv3)
find_library(hilog-lib hilog_ndk.z)
find_library(libace-lib ace_ndk.z)
find_library(libnapi-lib ace_napi.z)
find_library(libuv-lib uv)
find_library(rawfile-lib rawfile.z)
find_library(Drawing-lib native_drawing)
set(OHOS_ARM64_MACROS
V8_31BIT_SMIS_ON_64BIT_ARCH
V8_DEPRECATION_WARNINGS
V8_IMMINENT_DEPRECATION_WARNINGS
V8_TARGET_ARCH_ARM64
V8_HAVE_TARGET_OS
V8_TARGET_OS_LINUX
V8_COMPRESS_POINTERS
)
set_property(TARGET v8_monolith
APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS ${OHOS_ARM64_MACROS}
)
target_link_libraries(${PROJECT_NAME} ${EGL-lib} ${GLESv3-lib} ${hilog-lib} ${libuv-lib} ${Drawing-lib} ${libace-lib} ${libnapi-lib} ${rawfile-lib}
libbundle_ndk.z.so libohaudio.so libavplayer.so libnative_window.so libnative_buffer.so libohsensor.so common render thirdParty)
if (USE_JS_V8)
target_link_libraries(${PROJECT_NAME} v8_monolith)
elseif (USE_JS_JSVM)
target_link_libraries(${PROJECT_NAME} libjsvm.so)
endif()
set(LOCAL_IS64 arm64)
set(LOCAL_DISABLE_FATAL_LINKER_WARNINGS true)
target_include_directories(${PROJECT_NAME} PUBLIC
../../../include/common
../../../include/render
../../../include/webglPlus
../../../include/msgpack/include
)
target_compile_options(${PROJECT_NAME} PRIVATE -O3)
target_compile_options(${PROJECT_NAME} PRIVATE -DV8_COMPRESS_POINTERS)
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -DV8_COMPRESS_POINTERS")