Skip to content

Commit 5bd487d

Browse files
fujlpymumu
authored andcommitted
rockchip core code
1 parent 45e37db commit 5bd487d

File tree

15 files changed

+1838
-1
lines changed

15 files changed

+1838
-1
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Merge Request RockChip
2+
on:
3+
pull_request:
4+
branches:
5+
- main
6+
7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.ref }}
9+
cancel-in-progress: true
10+
11+
env:
12+
BUILD_TYPE: Release
13+
14+
jobs:
15+
build:
16+
runs-on: [rockchip-build, Linux, ARM64]
17+
18+
steps:
19+
- run: echo "the build begin"
20+
- name: Checkout
21+
uses: actions/checkout@v3
22+
23+
- name: ccache
24+
uses: hendrikmuhs/ccache-action@v1.2
25+
with:
26+
key: ubuntu-latest
27+
max-size: 1024M
28+
29+
- name: Configure CMake
30+
run: |
31+
mkdir build
32+
cd build
33+
cmake .. -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DWITH_WEBUI=off -DCLANG_TIDY=on -DCLANG_TIDY_AS_ERROR=on
34+
35+
- name: build
36+
working-directory: build
37+
run: |
38+
make package -j8
39+
40+
- name: show result
41+
working-directory: build
42+
run: |
43+
ls -l src/drivers/devices/rockchip/core
44+
ls -l release
45+
46+
- name: Finish
47+
run: echo "the build finish"

CMake/FindROCKCHIP.cmake

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
if(DEFINED ENV{ROCKCHIP_PATH})
2+
set(HINTS_ROCKCHIP_PATH $ENV{ROCKCHIP_PATH})
3+
4+
message(STATUS "DEFINED ${HINTS_ROCKCHIP_PATH}")
5+
else()
6+
set(HINTS_ROCKCHIP_PATH "/opt/rockchip")
7+
8+
message(STATUS "set default search path: /opt/rockchip")
9+
endif()
10+
11+
find_path(ROCKCHIP_RGA_INCLUDE NAMES im2d.h rga.h
12+
HINTS ${HINTS_ROCKCHIP_PATH}/rk-rga/include)
13+
mark_as_advanced(ROCKCHIP_RGA_INCLUDE)
14+
15+
find_path(ROCKCHIP_MPP_INCLUDE NAMES rk_mpi.h rk_type.h
16+
HINTS ${HINTS_ROCKCHIP_PATH}/rkmpp/include/rockchip)
17+
mark_as_advanced(ROCKCHIP_MPP_INCLUDE)
18+
19+
find_path(RKNN_INCLUDE NAMES rknn_api.h
20+
HINTS ${HINTS_ROCKCHIP_PATH}/rknn/include)
21+
mark_as_advanced(RKNN_INCLUDE)
22+
23+
find_path(RKNPU2_INCLUDE NAMES rknn_api.h
24+
HINTS ${HINTS_ROCKCHIP_PATH}/rknnrt/include)
25+
mark_as_advanced(RKNPU2_INCLUDE)
26+
27+
include(FindPackageHandleStandardArgs)
28+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ROCKCHIP
29+
REQUIRED_VARS ROCKCHIP_RGA_INCLUDE ROCKCHIP_MPP_INCLUDE
30+
VERSION_VAR ROCKCHIP_VERSION_STRING)
31+
32+
if(ROCKCHIP_FOUND)
33+
set(RKNN_INCLUDE_DIR ${RKNN_INCLUDE})
34+
set(RKNPU2_INCLUDE_DIR ${RKNPU2_INCLUDE})
35+
set(ROCKCHIP_INCLUDE_DIR ${ROCKCHIP_RGA_INCLUDE} ${ROCKCHIP_MPP_INCLUDE})
36+
37+
message(STATUS "rockchip dependency found, ${ROCKCHIP_INCLUDE_DIR}")
38+
endif()

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ find_package(MINDSPORE_LITE)
8888
find_package(FUSE)
8989
find_package(JNI)
9090
find_package(Java)
91+
find_package(ROCKCHIP)
9192

9293
add_subdirectory(thirdparty)
9394
add_subdirectory(src)

src/drivers/devices/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

16-
1716
cmake_minimum_required(VERSION 3.10)
1817

1918
project(modelbox-device)
@@ -25,7 +24,13 @@ endif()
2524
if(ACL_FOUND AND DSMI_FOUND)
2625
add_subdirectory(ascend)
2726
endif()
27+
2828
add_subdirectory(cpu)
29+
2930
if(CUDA_FOUND)
3031
add_subdirectory(cuda)
3132
endif()
33+
34+
if(ROCKCHIP_FOUND)
35+
add_subdirectory(rockchip)
36+
endif()
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#
2+
# Copyright 2021 The Modelbox Project Authors. All Rights Reserved.
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
16+
cmake_minimum_required(VERSION 3.10)
17+
18+
project(modelbox-drivers-rockchip)
19+
20+
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
21+
message(FATAL_ERROR "Do not build in source directory!")
22+
endif()
23+
24+
subdirlist(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR} "CMakeLists.txt")
25+
26+
add_subdirectory(core)
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
#
2+
# Copyright 2021 The Modelbox Project Authors. All Rights Reserved.
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
16+
cmake_minimum_required(VERSION 3.10)
17+
18+
set(DEVICE_NAME "rockchip")
19+
project(modelbox-devices-${DEVICE_NAME})
20+
21+
file(GLOB_RECURSE LIBMODELBOX_DEVICE_SOURCES *.cpp *.cc *.c)
22+
set(LIBMODELBOX_DEVICE_ROCKCHIP_INCLUDE ${CMAKE_CURRENT_LIST_DIR}/include)
23+
24+
include_directories(${HUAWEI_SECURE_C_INCLUDE_DIR})
25+
include_directories(${ROCKCHIP_INCLUDE_DIR})
26+
include_directories(${CMAKE_CURRENT_LIST_DIR})
27+
include_directories(${CMAKE_CURRENT_BINARY_DIR})
28+
include_directories(${LIBMODELBOX_INCLUDE})
29+
include_directories(${LIBMODELBOX_BASE_INCLUDE})
30+
include_directories(${LIBMODELBOX_DEVICE_ROCKCHIP_INCLUDE})
31+
include_directories(${LIBMODELBOX_DEVICE_ROCKCHIP_RKNPUINCLUDE})
32+
include_directories(${LIBMODELBOX_DEVICE_ROCKCHIP_RKNPU3RDINCLUDE})
33+
include_directories(${RKMPP_INCLUDE_DIR})
34+
include_directories(${RKNN_INCLUDE_DIR})
35+
include_directories(${RKRGA_INCLUDE_DIR})
36+
37+
set(HEADER
38+
${LIBMODELBOX_DEVICE_ROCKCHIP_INCLUDE}/modelbox
39+
)
40+
41+
set(LIBMODELBOX_DEVICE_ROCKCHIP_STATIC libmodelbox-device-${DEVICE_NAME}-static)
42+
set(LIBMODELBOX_DEVICE_ROCKCHIP_SHARED libmodelbox-device-${DEVICE_NAME}-shared)
43+
44+
add_library(${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} STATIC ${LIBMODELBOX_DEVICE_SOURCES})
45+
add_library(${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED} SHARED ${LIBMODELBOX_DEVICE_SOURCES})
46+
47+
set_target_properties(${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED} PROPERTIES
48+
SOVERSION ${MODELBOX_VERSION_MAJOR}
49+
VERSION ${MODELBOX_VERSION_MAJOR}.${MODELBOX_VERSION_MINOR}.${MODELBOX_VERSION_PATCH}
50+
)
51+
52+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} ${LIBMODELBOX_SHARED})
53+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} pthread)
54+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} rt)
55+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} dl)
56+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} ${RKMPP_LIBRARIES})
57+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} ${RKRGA_LIBRARY})
58+
59+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED} ${LIBMODELBOX_SHARED})
60+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED} pthread)
61+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED} rt)
62+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED} dl)
63+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED} ${RKMPP_LIBRARIES})
64+
target_link_libraries(${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED} ${RKRGA_LIBRARY})
65+
66+
set_target_properties(${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} ${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED}
67+
PROPERTIES OUTPUT_NAME "modelbox-device-${DEVICE_NAME}"
68+
)
69+
set_target_properties(${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} ${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED}
70+
PROPERTIES
71+
ARCHIVE_OUTPUT_DIRECTORY "${TEST_WORKING_LIB_DIR}"
72+
RUNTIME_OUTPUT_DIRECTORY "${TEST_WORKING_BIN_DIR}"
73+
)
74+
75+
configure_file(${CMAKE_CURRENT_LIST_DIR}/libmodelbox-device-${DEVICE_NAME}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libmodelbox-device-${DEVICE_NAME}.pc @ONLY)
76+
77+
install(TARGETS ${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED}
78+
COMPONENT rockchip-device-flowunit
79+
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
80+
LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
81+
OPTIONAL)
82+
83+
install(TARGETS ${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC}
84+
COMPONENT rockchip-device-flowunit-devel
85+
ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
86+
OPTIONAL)
87+
88+
install(DIRECTORY
89+
${HEADER}
90+
DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}
91+
COMPONENT rockchip-device-flowunit-devel
92+
)
93+
94+
install(FILES
95+
${CMAKE_CURRENT_BINARY_DIR}/libmodelbox-device-${DEVICE_NAME}.pc
96+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
97+
COMPONENT rockchip-device-flowunit-devel
98+
)
99+
100+
set(LIBMODELBOX_DEVICE_ROCKCHIP_STATIC ${LIBMODELBOX_DEVICE_ROCKCHIP_STATIC} CACHE INTERNAL "")
101+
set(LIBMODELBOX_DEVICE_ROCKCHIP_SHARED ${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED} CACHE INTERNAL "")
102+
set(LIBMODELBOX_DEVICE_ROCKCHIP_INCLUDE ${LIBMODELBOX_DEVICE_ROCKCHIP_INCLUDE} CACHE INTERNAL "")
103+
104+
set(LIBMODELBOX_DEVICE_LIBMODELBOX_DEVICE_ROCKCHIP_SHARED_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE INTERNAL "")
105+
set(LIBMODELBOX_DEVICE_SOURCES ${LIBMODELBOX_DEVICE_SOURCES} CACHE INTERNAL "")
106+
set(LIBMODELBOX_DEVICE_ROCKCHIP_SO_PATH ${CMAKE_CURRENT_BINARY_DIR}/libmodelbox-device-${DEVICE_NAME}.so CACHE INTERNAL "")
107+
108+
# driver test
109+
list(APPEND DRIVER_UNIT_TEST_SOURCE ${MODELBOX_UNIT_TEST_SOURCE})
110+
list(APPEND DRIVER_UNIT_TEST_TARGET ${LIBMODELBOX_DEVICE_ROCKCHIP_SHARED})
111+
112+
set(DRIVER_UNIT_TEST_SOURCE ${DRIVER_UNIT_TEST_SOURCE} CACHE INTERNAL "")
113+
set(DRIVER_UNIT_TEST_TARGET ${DRIVER_UNIT_TEST_TARGET} CACHE INTERNAL "")

0 commit comments

Comments
 (0)