ForCAX/entry/src/main/cpp/CMakeLists.txt
2026-03-30 21:53:34 +08:00

95 lines
2.8 KiB
CMake

# the minimum version of CMake.
cmake_minimum_required(VERSION 3.18.1)
project(opencax)
set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
add_definitions(-DOHOS_PLATFORM)
add_definitions (-DHAVE_FREETYPE)
set(CMAKE_CXX_STANDARD 17)
# 添加 NAPI 头文件
include_directories(${NATIVERENDER_ROOT_PATH}
${NATIVERENDER_ROOT_PATH}/include
${NATIVERENDER_ROOT_PATH}/include/opencascade
${NATIVERENDER_ROOT_PATH}/include/Add
)
# OCCT 库目录
set(OCCT_VERSION "8.0")
set(OCCT_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH})
#OCCT LIBS
set(OCCT_CORE_LIBS
TKernel TKBRep TKOpenGles TKMath TKG2d TKG3d TKGeomBase TKGeomAlgo
TKTopAlgo TKMesh TKService TKV3d TKXCAF TKCAF TKLCAF TKCDF TKFillet
TKDESTEP TKShHealing TKHLR TKVCAF TKBO TKPrim TKBool TKDE TKXSBase
)
set(OCCT_3RD_LIBS
libfreetype.so.6 libharfbuzz.so libbz2.so libbrotlienc.so.1
libbrotlidec.so.1 libbrotlicommon.so.1 libpng16.so.16
)
foreach(LIB_NAME ${OCCT_CORE_LIBS})
list(APPEND OCCT_IMPORTED_LIBS ${OCCT_LIB_DIR}/lib${LIB_NAME}.so.${OCCT_VERSION})
endforeach()
foreach(LIB_NAME ${OCCT_3RD_LIBS})
list(APPEND OCCT_IMPORTED_LIBS ${OCCT_LIB_DIR}/${LIB_NAME})
endforeach()
# 添加源文件
add_library(opencax SHARED
napi_init.cpp
# Header
NativeEGLOCCT/EGLCore.h
NativeEGLOCCT/NativeRender.h
NativeEGLOCCT/NativeRenderThread.h
NativeEGLOCCT/NativeManager.h
NativeEGLOCCT/V3d/V3dOGD/V3dOGD.h
NativeEGLOCCT/V3d/V3dViewer/V3dViewer.h
NativeEGLOCCT/V3d/V3dCtx/V3dCtx.h
NativeEGLOCCT/V3d/V3dView/V3dView.h
NativeEGLOCCT/V3d/V3dWin/V3dWin.h
NativeEGLOCCT/V3d/V3dCa/V3dCa.h
NativeEGLOCCT/V3d/V3dDrawer/V3dDrawer.h
NativeEGLOCCT/V3d/V3dTri/V3dTri.h
NativeEGLOCCT/V3d/V3dTri/V3dWCSTri.h
NativeEGLOCCT/V3d/V3dTri/V3dTriCube.h
# Cpp Src
NativeEGLOCCT/EGLCore.cpp
NativeEGLOCCT/NativeRender.cpp
NativeEGLOCCT/NativeRenderThread.cpp
NativeEGLOCCT/NativeManager.cpp
NativeEGLOCCT/V3d/V3dOGD/V3dOGD.cpp
NativeEGLOCCT/V3d/V3dViewer/V3dViewer.cpp
NativeEGLOCCT/V3d/V3dCtx/V3dCtx.cpp
NativeEGLOCCT/V3d/V3dView/V3dView.cpp
NativeEGLOCCT/V3d/V3dCa/V3dCa.cpp
NativeEGLOCCT/V3d/V3dWin/V3dWin.cpp
NativeEGLOCCT/V3d/V3dDrawer/V3dDrawer.cpp
NativeEGLOCCT/V3d/V3dTri/V3dTri.cpp
NativeEGLOCCT/V3d/V3dTri/V3dWCSTri.cpp
NativeEGLOCCT/V3d/V3dTri/V3dTriCube.cpp)
# 查找系统库
find_library(EGL-lib EGL)
find_library(GLES-lib GLESv3)
#System so
set(SYSTEM_LIBS
libace_napi.z.so libnative_window.so libnative_display_manager.so
libnative_drawing.so
hilog_ndk.z ace_ndk.z libohinput.so uv z
)
# 链接系统库
target_link_libraries(opencax PUBLIC ${SYSTEM_LIBS})
target_link_libraries(opencax PUBLIC
# EGL Hilog 库
${EGL-lib}
${GLES-lib}
#OCCT核心库
${OCCT_IMPORTED_LIBS}
${OCCT_LIB_DIR}/libNativeAdd.so
)