Skip to content

Commit 574c6da

Browse files
Merge pull request #3 from StratifyLabs/feature/cmsdk-port-v2.0
Feature/cmsdk port v2.0
2 parents 25e2719 + 8b2e775 commit 574c6da

21 files changed

Lines changed: 1639 additions & 77 deletions

File tree

.github/workflows/cmake.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,19 @@ jobs:
3232
working-directory: ${{runner.workspace}}/API/cmake_link
3333
run: cmake ..
3434
env:
35-
SOS_SDK_PATH: ${{runner.workspace}}/API/CMakeSDK
35+
CMSDK_LOCAL_PATH: ${{runner.workspace}}/API/CMakeSDK
3636

3737
- name: Build
3838
working-directory: ${{runner.workspace}}/API/cmake_link
3939
shell: bash
4040
run: make -j12
4141
env:
42-
SOS_SDK_PATH: ${{runner.workspace}}/API/CMakeSDK
42+
CMSDK_LOCAL_PATH: ${{runner.workspace}}/API/CMakeSDK
4343

4444
- name: Test
4545
working-directory: ${{runner.workspace}}/API/cmake_link
4646
shell: bash
4747
run: make test
4848
env:
49-
SOS_SDK_PATH: ${{runner.workspace}}/API/CMakeSDK
49+
CMSDK_LOCAL_PATH: ${{runner.workspace}}/API/CMakeSDK
5050
CTEST_OUTPUT_ON_FAILURE: 1

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ cmake*_link/
66
build_*/
77
tests/sl_report.txt
88
doc/xml
9+
libraries/VarAPI/magic_enum/
910
libraries/API/doc/
1011
libraries/ChronoAPI/doc/
1112
libraries/FsAPI/doc/

CHANGES.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@
55
## New Features
66

77
- Updated CMake files to use CMakeSDK v2.0 or greater
8+
- Add `magic_enum` to `VarAPI` to convert `enum class` to/from string and to iterate all values
89

10+
## Bug Fixes
11+
12+
- Remove unused member from `fs::Path`
13+
- Make `fs::Path` a `static` only class (cannot be constructed)
14+
- Fixed a regression error with `fs::LocationScope`
915

1016
# Version 1.4.0
1117

CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ project(API
66
VERSION ${API_PROJECT_VERSION}
77
)
88

9-
109
add_subdirectory(libraries/API API)
1110
add_subdirectory(libraries/VarAPI VarAPI)
1211
add_subdirectory(libraries/PrinterAPI PrinterAPI)

libraries/API.cmake

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
set(API_CONFIG_LIST release debug)
22

33
if(NOT DEFINED API_IS_SDK)
4-
if(SOS_IS_ARM)
5-
#sos_sdk_include_target(StratifyOS_iface "${API_CONFIG_LIST}")
6-
sos_sdk_include_target(StratifyOS_crt "${API_CONFIG_LIST}")
4+
if(CMSDK_IS_ARM)
5+
#cmsdk_include_target(StratifyOS_iface "${API_CONFIG_LIST}")
6+
cmsdk_include_target(StratifyOS_crt "${API_CONFIG_LIST}")
77
endif()
8-
sos_sdk_include_target(API "${API_CONFIG_LIST}")
9-
sos_sdk_include_target(VarAPI "${API_CONFIG_LIST}")
10-
sos_sdk_include_target(PrinterAPI "${API_CONFIG_LIST}")
11-
sos_sdk_include_target(SysAPI "${API_CONFIG_LIST}")
12-
sos_sdk_include_target(ChronoAPI "${API_CONFIG_LIST}")
13-
sos_sdk_include_target(FsAPI "${API_CONFIG_LIST}")
14-
sos_sdk_include_target(ThreadAPI "${API_CONFIG_LIST}")
15-
sos_sdk_include_target(TestAPI "${API_CONFIG_LIST}")
8+
cmsdk_include_target(API "${API_CONFIG_LIST}")
9+
cmsdk_include_target(VarAPI "${API_CONFIG_LIST}")
10+
cmsdk_include_target(PrinterAPI "${API_CONFIG_LIST}")
11+
cmsdk_include_target(SysAPI "${API_CONFIG_LIST}")
12+
cmsdk_include_target(ChronoAPI "${API_CONFIG_LIST}")
13+
cmsdk_include_target(FsAPI "${API_CONFIG_LIST}")
14+
cmsdk_include_target(ThreadAPI "${API_CONFIG_LIST}")
15+
cmsdk_include_target(TestAPI "${API_CONFIG_LIST}")
1616
endif()
1717

1818
function(api_add_api_library NAME DEPENDENCIES)
@@ -24,12 +24,12 @@ function(api_add_api_library_option NAME DEPENDENCIES LIB_OPTION)
2424
set(LOCAL_NAME ${NAME})
2525

2626

27-
sos_sdk_library_target(RELEASE ${LOCAL_NAME} "${LIB_OPTION}" release ${SOS_ARCH})
27+
cmsdk_library_target(RELEASE ${LOCAL_NAME} "${LIB_OPTION}" release ${CMSDK_ARCH})
2828

29-
#sos_sdk_add_subdirectory(PRIVATE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src)
30-
sos_sdk_add_out_of_source_directory(PRIVATE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src ${RELEASE_TARGET}_src)
31-
sos_sdk_add_out_of_source_directory(INTERFACE_SOURCES include ${RELEASE_TARGET}_include)
32-
#sos_sdk_add_subdirectory(INTERFACE_SOURCES include)
29+
#cmsdk_add_subdirectory(PRIVATE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src)
30+
cmsdk_add_out_of_source_directory(PRIVATE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src ${RELEASE_TARGET}_src)
31+
cmsdk_add_out_of_source_directory(INTERFACE_SOURCES include ${RELEASE_TARGET}_include)
32+
#cmsdk_add_subdirectory(INTERFACE_SOURCES include)
3333

3434

3535
add_library(${RELEASE_TARGET} STATIC)
@@ -64,30 +64,30 @@ function(api_add_api_library_option NAME DEPENDENCIES LIB_OPTION)
6464
PRIVATE
6565
)
6666

67-
sos_sdk_library_target(DEBUG ${LOCAL_NAME} "${LIB_OPTION}" debug ${SOS_ARCH})
67+
cmsdk_library_target(DEBUG ${LOCAL_NAME} "${LIB_OPTION}" debug ${CMSDK_ARCH})
6868
add_library(${DEBUG_TARGET} STATIC)
69-
sos_sdk_copy_target(${RELEASE_TARGET} ${DEBUG_TARGET})
69+
cmsdk_copy_target(${RELEASE_TARGET} ${DEBUG_TARGET})
7070

7171
target_compile_options(${DEBUG_TARGET}
7272
PRIVATE
7373
-Os
7474
)
7575

76-
sos_sdk_library_add_arch_targets("${DEBUG_OPTIONS}" ${SOS_ARCH} "${DEPENDENCIES}")
76+
cmsdk_library_add_arch_targets("${DEBUG_OPTIONS}" ${CMSDK_ARCH} "${DEPENDENCIES}")
7777

7878
target_compile_options(${RELEASE_TARGET}
7979
PRIVATE
8080
-Os
8181
)
8282

83-
sos_sdk_library_add_arch_targets("${RELEASE_OPTIONS}" ${SOS_ARCH} "${DEPENDENCIES}")
83+
cmsdk_library_add_arch_targets("${RELEASE_OPTIONS}" ${CMSDK_ARCH} "${DEPENDENCIES}")
8484

8585
install(DIRECTORY include/
8686
DESTINATION include/${LOCAL_NAME}
8787
PATTERN CMakelists.txt EXCLUDE)
8888

8989
install(FILES ${LOCAL_NAME}.cmake
90-
DESTINATION ${SOS_SDK_PATH}/cmake/targets)
90+
DESTINATION ${CMSDK_LOCAL_PATH}/cmake/targets)
9191

9292

9393

@@ -97,7 +97,7 @@ function(api_add_test_executable NAME RAM_SIZE DEPENDENCIES)
9797

9898
set(LOCAL_NAME ${NAME})
9999

100-
sos_sdk_app_target(RELEASE ${LOCAL_NAME} "unittest" release ${SOS_ARCH})
100+
cmsdk_app_target(RELEASE ${LOCAL_NAME} "unittest" release ${CMSDK_ARCH})
101101
message(STATUS "API UnitTest Executable ${RELEASE_TARGET}")
102102
add_executable(${RELEASE_TARGET})
103103
add_dependencies(API_test ${RELEASE_TARGET})
@@ -117,15 +117,15 @@ function(api_add_test_executable NAME RAM_SIZE DEPENDENCIES)
117117

118118
set(CTEST_OUTPUT_ON_FAILURE ON)
119119

120-
sos_sdk_app_add_arch_targets("${RELEASE_OPTIONS}" "${DEPENDENCIES}" ${RAM_SIZE})
120+
cmsdk_app_add_arch_targets("${RELEASE_OPTIONS}" "${DEPENDENCIES}" ${RAM_SIZE})
121121

122122
target_compile_options(${RELEASE_TARGET}
123123
PRIVATE
124124
-Os
125125
)
126126

127-
if(SOS_IS_LINK)
128-
sos_sdk_add_test(${LOCAL_NAME} ${LIB_OPTION}unittest release)
127+
if(CMSDK_IS_LINK)
128+
cmsdk_add_test(${LOCAL_NAME} ${LIB_OPTION}unittest release)
129129
endif()
130130

131131
endfunction()

libraries/API/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ target_sources(${RELEASE_TARGET}
1111

1212
install(FILES
1313
../API.cmake
14-
DESTINATION ${SOS_SDK_PATH}/cmake/targets)
14+
DESTINATION ${CMSDK_LOCAL_PATH}/cmake/targets)

libraries/API/api.cmake

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ macro(api_target NAME DIRECTORIES)
99

1010
install(DIRECTORY include/ DESTINATION include/${NAME})
1111

12-
sos_sdk_add_subdirectory(PRIVATE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src)
13-
sos_sdk_add_subdirectory(PUBLIC_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/include)
12+
cmsdk_add_subdirectory(PRIVATE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src)
13+
cmsdk_add_subdirectory(PUBLIC_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/include)
1414
set(FORMAT_LIST ${PRIVATE_SOURCES} ${PUBLIC_SOURCES})
1515

16-
sos_sdk_library_target(RELEASE ${NAME} "" release ${SOS_ARCH})
16+
cmsdk_library_target(RELEASE ${NAME} "" release ${CMSDK_ARCH})
1717
add_library(${RELEASE_TARGET} STATIC)
1818

1919
set_property(TARGET ${RELEASE_TARGET}
@@ -49,7 +49,7 @@ macro(api_target NAME DIRECTORIES)
4949
-Os
5050
)
5151

52-
if(SOS_IS_ARM)
52+
if(CMSDK_IS_ARM)
5353
target_compile_options(${RELEASE_TARGET}
5454
PUBLIC
5555
-fno-threadsafe-statics
@@ -73,7 +73,7 @@ macro(api_target NAME DIRECTORIES)
7373

7474
string(COMPARE EQUAL ${NAME} API IS_API)
7575
set(LOCAL_DIRECTORIES ${DIRECTORIES})
76-
if(IS_API AND SOS_IS_ARM)
76+
if(IS_API AND CMSDK_IS_ARM)
7777
#list(APPEND LOCAL_DIRECTORIES StratifyOS_crt)
7878
target_compile_options(${RELEASE_TARGET}
7979
INTERFACE
@@ -87,37 +87,28 @@ macro(api_target NAME DIRECTORIES)
8787
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
8888
)
8989

90-
sos_sdk_library_target(DEBUG ${NAME} "" debug ${SOS_ARCH})
90+
cmsdk_library_target(DEBUG ${NAME} "" debug ${CMSDK_ARCH})
9191
add_library(${DEBUG_TARGET} STATIC)
92-
sos_sdk_copy_target(${RELEASE_TARGET} ${DEBUG_TARGET})
92+
cmsdk_copy_target(${RELEASE_TARGET} ${DEBUG_TARGET})
9393

94-
sos_sdk_library_add_arch_targets("${RELEASE_OPTIONS}" ${SOS_ARCH} "${LOCAL_DIRECTORIES}")
95-
sos_sdk_library_add_arch_targets("${DEBUG_OPTIONS}" ${SOS_ARCH} "${LOCAL_DIRECTORIES}")
94+
cmsdk_library_add_arch_targets("${RELEASE_OPTIONS}" ${CMSDK_ARCH} "${LOCAL_DIRECTORIES}")
95+
cmsdk_library_add_arch_targets("${DEBUG_OPTIONS}" ${CMSDK_ARCH} "${LOCAL_DIRECTORIES}")
9696

9797
if(IS_API)
9898
get_target_property(RELEASE_LINK_LIBS ${RELEASE_TARGET} INTERFACE_LINK_LIBRARIES)
9999
get_target_property(DEBUG_LINK_LIBS ${DEBUG_TARGET} INTERFACE_LINK_LIBRARIES)
100-
if(SOS_IS_ARM)
101-
target_link_libraries(API_release_${SOS_ARCH} PUBLIC StratifyOS_crt_release_${SOS_ARCH} stdc++ supc++)
102-
target_link_libraries(API_debug_${SOS_ARCH} PUBLIC StratifyOS_crt_debug_${SOS_ARCH} stdc++ supc++)
103-
message(STATUS "API_release_${SOS_ARCH} -> crt stdc++ supc++")
104-
message(STATUS "API_debug_${SOS_ARCH} -> crt stdc++ supc++")
105-
foreach(ARCH ${SOS_ARCH_LIST})
100+
if(CMSDK_IS_ARM)
101+
target_link_libraries(API_release_${CMSDK_ARCH} PUBLIC StratifyOS_crt_release_${CMSDK_ARCH} stdc++ supc++)
102+
target_link_libraries(API_debug_${CMSDK_ARCH} PUBLIC StratifyOS_crt_debug_${CMSDK_ARCH} stdc++ supc++)
103+
message(STATUS "API_release_${CMSDK_ARCH} -> crt stdc++ supc++")
104+
message(STATUS "API_debug_${CMSDK_ARCH} -> crt stdc++ supc++")
105+
foreach(ARCH ${CMSDK_ARCH_LIST})
106106
target_link_libraries(API_release_${ARCH} PUBLIC StratifyOS_crt_release_${ARCH} stdc++ supc++)
107107
target_link_libraries(API_debug_${ARCH} PUBLIC StratifyOS_crt_debug_${ARCH} stdc++ supc++)
108108
message(STATUS "API_release_${ARCH} -> crt stdc++ supc++")
109109
message(STATUS "API_debug_${ARCH} -> crt stdc++ supc++")
110110
endforeach()
111111
endif()
112112
endif()
113-
114-
add_custom_target(
115-
${NAME}_format
116-
COMMAND /usr/local/bin/clang-format
117-
-i
118-
--verbose
119-
${FORMAT_LIST}
120-
)
121-
122113
endmacro()
123114

libraries/API/src/api.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const char *ApiInfo::version() {
2424
__PROJECT_VERSION_MINOR) "." MCU_STRINGIFY(__PROJECT_VERSION_PATCH);
2525
}
2626

27-
const char *ApiInfo::git_hash() { return SOS_GIT_HASH; }
27+
const char *ApiInfo::git_hash() { return CMSDK_GIT_HASH; }
2828

2929
void api::api_assert(bool value, const char *function, int line) {
3030
if (!value) {

libraries/FsAPI/include/fs/FileObject.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ class FileObject : public api::ExecutionContext, public FileInfoFlags {
146146

147147
public:
148148
explicit LocationScope(const FileObject &object)
149-
: m_resource({&object, object.location()}) {}
149+
: m_resource({&object, object.location()}, &deleter) {}
150150
};
151151

152152
using LocationGuard = LocationScope;
@@ -186,8 +186,8 @@ class FileObject : public api::ExecutionContext, public FileInfoFlags {
186186
StringType result;
187187
const auto file_location = location();
188188
read(var::View(result.data(), result.capacity()));
189-
size_t offset = 0;
190-
for (auto c : var::StringView(result)) {
189+
size_t offset{};
190+
for (auto c : result.string_view()) {
191191
if (c == term) {
192192
const auto new_length = offset + 1;
193193
seek(file_location + new_length);

libraries/FsAPI/include/fs/Path.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ namespace fs {
3131
*/
3232

3333
class Path {
34+
Path() = default;
3435
public:
3536
API_NO_DISCARD static var::StringView suffix(var::StringView path);
3637
API_NO_DISCARD static var::StringView name(var::StringView path);
@@ -49,9 +50,6 @@ class Path {
4950
*
5051
*/
5152
API_NO_DISCARD static bool is_hidden(var::StringView path);
52-
53-
private:
54-
var::StringView m_path;
5553
};
5654
} // namespace fs
5755

0 commit comments

Comments
 (0)