# 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 )