From 0a58f4b7f2b1acc6e20f08a88c0ca94cf83d5de3 Mon Sep 17 00:00:00 2001 From: oahcy <1162485779@qq.com> Date: Tue, 6 Sep 2022 15:58:26 +0800 Subject: [PATCH] oh compile on 3.6 --- native/CMakeLists.txt | 20 ++++++------------- .../bindings/jswrapper/napi/ScriptEngine.cpp | 13 ++++++++++-- native/cocos/engine/Engine.cpp | 4 +++- .../openharmony/FileUtils-OpenHarmony.cpp | 17 +++++----------- templates/cmake/openharmony.cmake | 2 +- 5 files changed, 26 insertions(+), 30 deletions(-) diff --git a/native/CMakeLists.txt b/native/CMakeLists.txt index 89c7dfbff07..10d87d001bd 100644 --- a/native/CMakeLists.txt +++ b/native/CMakeLists.txt @@ -2116,6 +2116,11 @@ cocos_source_files( ######## auto if(NOT OPENHARMONY)# TODO:May be removed later +cocos_source_files( + NO_WERROR NO_UBUILD cocos/bindings/auto/jsb_network_auto.cpp + cocos/bindings/auto/jsb_network_auto.h +) +endif()# TODO:May be removed later cocos_source_files( NO_WERROR NO_UBUILD cocos/bindings/auto/jsb_cocos_auto.cpp cocos/bindings/auto/jsb_cocos_auto.h @@ -2123,8 +2128,6 @@ cocos_source_files( cocos/bindings/auto/jsb_extension_auto.h NO_WERROR NO_UBUILD cocos/bindings/auto/jsb_gfx_auto.cpp cocos/bindings/auto/jsb_gfx_auto.h - NO_WERROR NO_UBUILD cocos/bindings/auto/jsb_network_auto.cpp - cocos/bindings/auto/jsb_network_auto.h NO_WERROR NO_UBUILD cocos/bindings/auto/jsb_pipeline_auto.cpp cocos/bindings/auto/jsb_pipeline_auto.h NO_WERROR NO_UBUILD cocos/bindings/auto/jsb_scene_auto.cpp @@ -2138,18 +2141,7 @@ cocos_source_files( NO_WERROR NO_UBUILD cocos/bindings/auto/jsb_2d_auto.cpp cocos/bindings/auto/jsb_2d_auto.h ) -elseif(OPENHARMONY)# TODO:May be removed later - cocos_source_files( - NO_WERROR cocos/bindings/auto/jsb_gfx_auto.cpp - cocos/bindings/auto/jsb_gfx_auto.h - NO_WERROR cocos/bindings/auto/jsb_pipeline_auto.cpp - cocos/bindings/auto/jsb_pipeline_auto.h - NO_WERROR cocos/bindings/auto/jsb_scene_auto.cpp - cocos/bindings/auto/jsb_scene_auto.h - NO_WERROR cocos/bindings/auto/jsb_cocos_auto.cpp - cocos/bindings/auto/jsb_cocos_auto.h - ) -endif() + if(USE_AUDIO) cocos_source_files( diff --git a/native/cocos/bindings/jswrapper/napi/ScriptEngine.cpp b/native/cocos/bindings/jswrapper/napi/ScriptEngine.cpp index a8ffaaeedfe..343acd2129d 100644 --- a/native/cocos/bindings/jswrapper/napi/ScriptEngine.cpp +++ b/native/cocos/bindings/jswrapper/napi/ScriptEngine.cpp @@ -269,7 +269,7 @@ bool ScriptEngine::_needCallConstructor() { return _isneedCallConstructor; } -bool callFunction(Object *targetObj, const char *funcName, uint32_t argc, Value *args, Value *rval = nullptr) { +bool ScriptEngine::callFunction(Object *targetObj, const char *funcName, uint32_t argc, Value *args, Value *rval) { return true; } @@ -277,4 +277,13 @@ void ScriptEngine::handlePromiseExceptions() { //TODO not impl return; } -}; // namespace se \ No newline at end of file + +void ScriptEngine::mainLoopUpdate() { + // empty implementation +} + +void ScriptEngine::throwException(const std::string &errorMessage) { + napi_status status; + NODE_API_CALL_RETURN_VOID(getEnv(), napi_throw_error(getEnv(), nullptr, errorMessage.c_str())); +} +}; // namespace se diff --git a/native/cocos/engine/Engine.cpp b/native/cocos/engine/Engine.cpp index ba182dc9005..857ae891d3b 100644 --- a/native/cocos/engine/Engine.cpp +++ b/native/cocos/engine/Engine.cpp @@ -140,7 +140,9 @@ int32_t Engine::init() { void Engine::destroy() { cc::DeferredReleasePool::clear(); +#if (CC_PLATFORM != CC_PLATFORM_OPENHARMONY) // TODO(qgh):May be removed later cc::network::HttpClient::destroyInstance(); +#endif _scheduler->removeAllFunctionsToBePerformedInCocosThread(); _scheduler->unscheduleAll(); CCObject::deferredDestroy(); @@ -217,7 +219,7 @@ int Engine::restart() { } void Engine::close() { // NOLINT - + #if CC_USE_AUDIO cc::AudioEngine::stopAll(); #endif diff --git a/native/cocos/platform/openharmony/FileUtils-OpenHarmony.cpp b/native/cocos/platform/openharmony/FileUtils-OpenHarmony.cpp index 9cb7fa30298..6e87de86048 100644 --- a/native/cocos/platform/openharmony/FileUtils-OpenHarmony.cpp +++ b/native/cocos/platform/openharmony/FileUtils-OpenHarmony.cpp @@ -36,6 +36,7 @@ #include #include #include +#include "base/memory/Memory.h" #include "cocos/base/Log.h" @@ -47,6 +48,10 @@ namespace cc { NativeResourceManager* FileUtilsOpenHarmony::_nativeResourceManager = nullptr; +FileUtils *createFileUtils() { + return ccnew FileUtilsOpenHarmony(); +} + bool FileUtilsOpenHarmony::initResourceManager(napi_env env, napi_value param) { _nativeResourceManager = OH_ResourceManager_InitNativeResourceManager(env, param); return true; @@ -124,18 +129,6 @@ FileUtils::Status FileUtilsOpenHarmony::getContents(const std::string &filename, return FileUtils::Status::OK; } -FileUtils *FileUtils::getInstance() { - if (FileUtils::sharedFileUtils == nullptr) { - FileUtils::sharedFileUtils = new FileUtilsOpenHarmony(); - if (!FileUtils::sharedFileUtils->init()) { - delete FileUtils::sharedFileUtils; - FileUtils::sharedFileUtils = nullptr; - CC_LOG_DEBUG("ERROR: Could not init CCFileUtilsAndroid"); - } - } - return FileUtils::sharedFileUtils; -} - FileUtilsOpenHarmony::~FileUtilsOpenHarmony() { if(_nativeResourceManager) OH_ResourceManager_ReleaseNativeResourceManager(_nativeResourceManager); diff --git a/templates/cmake/openharmony.cmake b/templates/cmake/openharmony.cmake index 50281e63564..762f0192e99 100644 --- a/templates/cmake/openharmony.cmake +++ b/templates/cmake/openharmony.cmake @@ -9,7 +9,7 @@ endmacro() macro(cc_openharmony_after_target target_name) target_link_libraries(${target_name} - cocos2d + ${ENGINE_NAME} ) target_include_directories(${target_name} PRIVATE ${CC_PROJECT_DIR}/../common/Classes