From 26ca30088128ff81544325002fb57c93191f3c70 Mon Sep 17 00:00:00 2001 From: liubb <1653617791@qq.com> Date: Fri, 25 Sep 2020 17:22:02 +0800 Subject: [PATCH 1/4] add js/builtin. --- js/builtin/CMakeLists.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 js/builtin/CMakeLists.txt diff --git a/js/builtin/CMakeLists.txt b/js/builtin/CMakeLists.txt new file mode 100644 index 0000000..e69de29 -- Gitee From 16dfe4b7e57321b50c7697e301926ad5cf9bc1e0 Mon Sep 17 00:00:00 2001 From: liubb <1653617791@qq.com> Date: Fri, 25 Sep 2020 17:25:52 +0800 Subject: [PATCH 2/4] update js/builtin/CMakeLists.txt. add CMakeLists for utils --- js/builtin/CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/js/builtin/CMakeLists.txt b/js/builtin/CMakeLists.txt index e69de29..7719460 100644 --- a/js/builtin/CMakeLists.txt +++ b/js/builtin/CMakeLists.txt @@ -0,0 +1,53 @@ +# Copyright (c) 2020 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +cmake_minimum_required(VERSION 3.1.0) + +project(nativeapi_storage LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(JSFWK_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../foundation/ace/interfaces/innerkits/builtin") +set(PARAM_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../base/startup/interfaces/kits/syspara_lite") +set(SECUREC_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../third_party/bounds_checking_function/include") +set(ABILITY_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../foundation/aafwk/interfaces/kits/ability_lite") +set(UI_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../foundation/graphic/lite") + +# header files +include_directories( + ${PARAM_INTERFACES_PATH} + ${SECUREC_INTERFACES_PATH} + ${ABILITY_INTERFACES_PATH} + ${CMAKE_CURRENT_SOURCE_DIR}/common/include + ${CMAKE_CURRENT_SOURCE_DIR}/deviceinfokit/include + ${CMAKE_CURRENT_SOURCE_DIR}/filekit/include + ${CMAKE_CURRENT_SOURCE_DIR}/kvstorekit/include + ) + +# source files +aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/common/src COMMON) +aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/deviceinfokit/src DEVICEINFO) +aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/filekit/src FILEKIT) +aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/kvstorekit/src KVSTOREKIT) + +add_library(utils_jsapi STATIC + ${COMMON} + ${DEVICEINFO} + ${FILEKIT} + ${KVSTOREKIT} + ) + +target_link_libraries(utils_jsapi jsfwk ui) +target_include_directories(utils_jsapi PUBLIC ${ABILITY_INTERFACES_PATH} ${PARAM_INTERFACES_PATH}) \ No newline at end of file -- Gitee From 59c1b2d9b44edd1189ca4757839b78057c0aa59a Mon Sep 17 00:00:00 2001 From: liubb <1653617791@qq.com> Date: Fri, 25 Sep 2020 17:30:29 +0800 Subject: [PATCH 3/4] update js/builtin/filekit/src/nativeapi_fs_impl.c. utils support simulator --- js/builtin/filekit/src/nativeapi_fs_impl.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/js/builtin/filekit/src/nativeapi_fs_impl.c b/js/builtin/filekit/src/nativeapi_fs_impl.c index edd34b8..51f4461 100755 --- a/js/builtin/filekit/src/nativeapi_fs_impl.c +++ b/js/builtin/filekit/src/nativeapi_fs_impl.c @@ -24,6 +24,9 @@ #include #include #include "nativeapi_config.h" +#if (defined _WIN32 || defined _WIN64) +#include "shlwapi.h" +#endif #define BUFFER_SIZE 512 @@ -44,9 +47,16 @@ static bool IsValidPath(const char* path) static int GetRealPath(const char* originPath, char* trustPath, size_t tPathLen) { +#if (defined _WIN32 || defined _WIN64) + if (PathCanonicalize(originPath, trustPath) == true) { + return NATIVE_SUCCESS; + } +#else if (realpath(originPath, trustPath) != NULL) { return NATIVE_SUCCESS; } +#endif + if (errno == ENOENT) { if (strncpy_s(trustPath, tPathLen, originPath, strlen(originPath)) == EOK) { return NATIVE_SUCCESS; @@ -124,7 +134,11 @@ static int MakeParent(const char* path, char* firstPath, size_t fPathLen, int* d free(fullPath); return ERROR_CODE_PARAM; } +#if (defined _WIN32 || defined _WIN64) + ret = mkdir(fullPath); +#else ret = mkdir(fullPath, S_IRUSR | S_IWUSR | S_IXUSR); +#endif if ((ret == NATIVE_SUCCESS) && (*dirNum == 1)) { if ((strcpy_s(firstPath, fPathLen, fullPath) != EOK)) { free(fullPath); @@ -435,7 +449,12 @@ int CreateDirImpl(const char* fileName, bool recursive) return MkdirRecursive(fileName); } - if (mkdir(fileName, S_IRUSR | S_IWUSR | S_IXUSR) != NATIVE_SUCCESS) { +#if (defined _WIN32 || defined _WIN64) + int ret = mkdir(fileName); +#else + int ret = mkdir(fileName, S_IRUSR | S_IWUSR | S_IXUSR); +#endif + if (ret != NATIVE_SUCCESS) { return (-errno); } return NATIVE_SUCCESS; -- Gitee From 39de2e74870ca41be926abb90e6b1219e1d960ba Mon Sep 17 00:00:00 2001 From: liubb <1653617791@qq.com> Date: Fri, 25 Sep 2020 17:33:37 +0800 Subject: [PATCH 4/4] update js/builtin/kvstorekit/src/nativeapi_kv_impl.c. utils support simulator --- js/builtin/kvstorekit/src/nativeapi_kv_impl.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/js/builtin/kvstorekit/src/nativeapi_kv_impl.c b/js/builtin/kvstorekit/src/nativeapi_kv_impl.c index 1550d50..a136df6 100755 --- a/js/builtin/kvstorekit/src/nativeapi_kv_impl.c +++ b/js/builtin/kvstorekit/src/nativeapi_kv_impl.c @@ -24,6 +24,9 @@ #include #include #include "nativeapi_config.h" +#if (defined _WIN32 || defined _WIN64) +#include "shlwapi.h" +#endif static char g_kvFolder[FILE_NAME_MAX_LEN + 1] = {0}; @@ -55,9 +58,16 @@ static int GetKvFolder(const char* dataPath) static int GetRealPath(const char* originPath, char* trustPath, size_t tPathLen) { +#if (defined _WIN32 || defined _WIN64) + if (PathCanonicalize(originPath, trustPath) == true) { + return NATIVE_SUCCESS; + } +#else if (realpath(originPath, trustPath) != NULL) { return NATIVE_SUCCESS; } +#endif + if (errno == ENOENT) { if (strncpy_s(trustPath, tPathLen, originPath, strlen(originPath)) == EOK) { return NATIVE_SUCCESS; @@ -75,9 +85,15 @@ int InitKv(const char* dataPath) if (access(g_kvFolder, F_OK) == F_OK) { return NATIVE_SUCCESS; } +#if (defined _WIN32 || defined _WIN64) + if (mkdir(g_kvFolder) != 0) { + return ERROR_CODE_GENERAL; + } +#else if (mkdir(g_kvFolder, S_IRUSR | S_IWUSR | S_IXUSR) != 0) { return ERROR_CODE_GENERAL; } +#endif return NATIVE_SUCCESS; } -- Gitee