~aleteoryx/muditaos

de5b923e81ed56bc845b75b2833cb040fafc3409 — DariuszSabala 4 years ago 9e4fada
[BH-369] Turned UTF8 into separate library

Moved utf8 files, formed separate library, fixed include paths,
added utf8 library as dependency to every other target that
uses it, clang-formated utf8 files, cleaned up tests cmake script,
moved utf8 unit test
M module-apps/CMakeLists.txt => module-apps/CMakeLists.txt +5 -4
@@ 119,8 119,8 @@ add_subdirectory(locks)
target_link_libraries(${PROJECT_NAME}
    PRIVATE
        date::date
        service-appmgr
        service-antenna
        service-appmgr
        service-audio
        service-cellular
        service-db


@@ 129,12 129,13 @@ target_link_libraries(${PROJECT_NAME}
    PUBLIC
        module-audio
        module-bsp
        module-db
        module-gui
        module-os
        module-services
        module-sys
        module-utils
        module-gui
        module-services
        module-db
        utf8
        ${TARGET_LIBRARIES}
)


M module-db/CMakeLists.txt => module-db/CMakeLists.txt +4 -4
@@ 178,11 178,11 @@ target_compile_options(${PROJECT_NAME}

target_link_libraries(${PROJECT_NAME}
    PUBLIC
    module-utils
    module-vfs

        module-utils
        module-vfs
        utf8
    PRIVATE
    Microsoft.GSL::GSL
        Microsoft.GSL::GSL
)

# Host target configuration(mainly used for unit testing)

M module-db/Interface/AlarmsRecord.hpp => module-db/Interface/AlarmsRecord.hpp +2 -2
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once


@@ 6,8 6,8 @@
#include "Record.hpp"
#include "module-db/Databases/AlarmsDB.hpp"
#include "module-db/Common/Common.hpp"
#include <module-utils/utf8/UTF8.hpp>
#include <module-apps/application-calendar/data/dateCommon.hpp>
#include <utf8/UTF8.hpp>
#include <stdint.h>

namespace db::query::alarms

M module-db/Tables/AlarmsTable.hpp => module-db/Tables/AlarmsTable.hpp +5 -5
@@ 1,14 1,14 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include "Table.hpp"
#include "Record.hpp"
#include "Database/Database.hpp"
#include "Common/Common.hpp"
#include <module-utils/utf8/UTF8.hpp>
#include "Database/Database.hpp"
#include "Record.hpp"
#include "Table.hpp"
#include <module-apps/application-calendar/data/dateCommon.hpp>
#include <utf8/UTF8.hpp>

struct AlarmsRecord;


M module-gui/CMakeLists.txt => module-gui/CMakeLists.txt +1 -0
@@ 24,6 24,7 @@ include_directories( ../module-utils )
target_link_libraries(${PROJECT_NAME} 
    PUBLIC 
        module-utils 
        utf8
        ${TARGET_LIBRARIES} 
    PRIVATE
        pugixml::pugixml

M module-services/service-cellular/CMakeLists.txt => module-services/service-cellular/CMakeLists.txt +6 -4
@@ 47,13 47,15 @@ target_include_directories(${PROJECT_NAME}

target_link_libraries(${PROJECT_NAME}
    PRIVATE
        service-antenna
        service-audio
        service-evtmgr
        Microsoft.GSL::GSL
        module-bsp
        module-cellular
        Microsoft.GSL::GSL
        re2::re2
        service-antenna
        service-audio
        service-evtmgr
    PUBLIC
        utf8
    )

if (${ENABLE_TESTS})

M module-services/service-db/CMakeLists.txt => module-services/service-db/CMakeLists.txt +2 -0
@@ 32,6 32,8 @@ target_include_directories(${PROJECT_NAME}
target_link_libraries(${PROJECT_NAME}
    PRIVATE
        module-db
    PUBLIC
        utf8
)

if (${ENABLE_TESTS})

M module-services/service-desktop/CMakeLists.txt => module-services/service-desktop/CMakeLists.txt +6 -4
@@ 55,14 55,16 @@ target_include_directories(${PROJECT_NAME}

target_link_libraries(${PROJECT_NAME}
    PRIVATE
        service-cellular
        service-evtmgr
        module-utils
        module-cellular
        crc32
        microtar
        module-utils
        service-cellular
        service-evtmgr
        utf8
        utils-bootconfig
        Microsoft.GSL::GSL
    PUBLIC
        module-cellular
)

if (${ENABLE_TESTS})

M module-services/service-fileindexer/CMakeLists.txt => module-services/service-fileindexer/CMakeLists.txt +11 -1
@@ 23,4 23,14 @@ target_sources( ${PROJECT_NAME}
)


target_link_libraries(${PROJECT_NAME} module-bsp module-os module-utils module-vfs module-sys tag )
target_link_libraries(${PROJECT_NAME} 
	PUBLIC
		module-bsp 
		module-os 
		module-utils 
		module-vfs 
		module-sys 
		tag
	PRIVATE
		utf8
)

M module-utils/CMakeLists.txt => module-utils/CMakeLists.txt +6 -7
@@ 4,8 4,7 @@ if(NOT WIN32)
    include(Colours)
endif()

project(module-utils VERSION 1.0
       DESCRIPTION "Library for processing utf8 strings.")
project(module-utils VERSION 1.0)

if(${CMAKE_VERSION} VERSION_LESS 3.12)
    cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})


@@ 16,7 15,6 @@ module_is_test_entity()
set (SOURCES
        ${CMAKE_CURRENT_SOURCE_DIR}/i18n/i18n.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/json/json11.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/utf8/UTF8.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/time/time_conversion.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/common_data/EventStore.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/common_data/Clipboard.cpp


@@ 51,11 49,11 @@ target_link_libraries (${PROJECT_NAME} PUBLIC ${TINYEXPR_TARGET})

target_link_libraries(${PROJECT_NAME} 
PUBLIC 
    board
    log
    magic_enum
    module-os 
    module-vfs
    magic_enum
    log
    board
)

# Board specific compilation definitions,options,include directories and features


@@ 81,6 79,7 @@ if (${ENABLE_TESTS})
    add_subdirectory( test )
endif()

add_subdirectory(board)
add_subdirectory(bootconfig)
add_subdirectory(log)
add_subdirectory(board)
add_subdirectory(utf8)

M module-utils/PhoneNumber.hpp => module-utils/PhoneNumber.hpp +2 -2
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once


@@ 8,7 8,7 @@
#include <phonenumbers/phonenumberutil.h>

#include <exception>
#include <module-utils/utf8/UTF8.hpp>
#include <utf8/UTF8.hpp>

namespace utils
{

M module-utils/test/CMakeLists.txt => module-utils/test/CMakeLists.txt +0 -14
@@ 36,20 36,6 @@ add_catch2_executable(
        utils-ucs2
    SRCS
        unittest_ucs2.cpp
        ../ucs2/UCS2.cpp
        ../ucs2/UCS2.hpp
    LIBS
        module-utils
)

# UTF8 tests
add_catch2_executable(
    NAME
        utils-utf8
    SRCS
        unittest_utf8.cpp
        ../utf8/UTF8.cpp
        ../utf8/UTF8.hpp
    LIBS
        module-utils
)

A module-utils/utf8/CMakeLists.txt => module-utils/utf8/CMakeLists.txt +19 -0
@@ 0,0 1,19 @@
add_library(utf8 STATIC)

module_is_test_entity(utf8)

target_sources(utf8
    PRIVATE
        utf8/UTF8.cpp
)

target_include_directories(utf8
    PUBLIC
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)

target_link_libraries(utf8 PRIVATE log)

if (${ENABLE_TESTS})
    add_subdirectory(test)
endif()

A module-utils/utf8/test/CMakeLists.txt => module-utils/utf8/test/CMakeLists.txt +9 -0
@@ 0,0 1,9 @@
add_catch2_executable(
    NAME
        utf8
    SRCS
        unittest_utf8.cpp
    LIBS
        log
        utf8
)

R module-utils/test/unittest_utf8.cpp => module-utils/utf8/test/unittest_utf8.cpp +0 -0
R module-utils/utf8/UTF8.cpp => module-utils/utf8/utf8/UTF8.cpp +4 -6
@@ 6,8 6,8 @@
#include <cstdint>
#include <ostream>

#include "UTF8.hpp"
#include <log.hpp>
#include "utf8/UTF8.hpp"

#define debug_utf(...)



@@ 115,8 115,7 @@ void U8char::set(char *val, unsigned int size)
UTF8::UTF8()
    : data{std::make_unique<char[]>(stringExpansion)},
      sizeAllocated{stringExpansion}, sizeUsed{1}, strLength{0}, lastIndex{0}, lastIndexData{data.get()}
{
}
{}

UTF8::UTF8(const char *str)
{


@@ 166,7 165,7 @@ UTF8::UTF8(const UTF8 &utf)
    else {
        sizeAllocated = stringExpansion;
        data          = std::make_unique<char[]>(sizeAllocated);
        sizeUsed = 1;
        sizeUsed      = 1;
    }
    lastIndex     = 0;
    lastIndexData = data.get();


@@ 175,8 174,7 @@ UTF8::UTF8(const UTF8 &utf)
UTF8::UTF8(UTF8 &&utf)
    : data{std::move(utf.data)}, sizeAllocated{utf.sizeAllocated}, sizeUsed{utf.sizeUsed}, strLength{utf.strLength},
      lastIndex{0}, lastIndexData{data.get()}
{
}
{}

UTF8::UTF8(const char *data, const uint32_t allocated, const uint32_t used, const uint32_t len)
    : sizeAllocated{allocated}, sizeUsed{used}, strLength{len}, lastIndex{0}

R module-utils/utf8/UTF8.hpp => module-utils/utf8/utf8/UTF8.hpp +1 -0
@@ 63,6 63,7 @@ class UTF8
     */
    uint32_t getDataBufferSize(uint32_t dataBytes);
    bool expand(uint32_t size = stringExpansion);

  public:
    UTF8();
    UTF8(const char *str);