aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: f65e4ba94087bac47059bf69cc59d9d31b297174 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#
# SPDX-FileCopyrightText: Copyright 2020-2022, 2024 Arm Limited and/or its affiliates <open-source-office@arm.com>
# SPDX-License-Identifier: Apache-2.0
#
# 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
#
# 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.0.2)

# Set the project name and version
project("linux_driver_stack" VERSION 1.0)

# Default options
option(BUILD_KERNEL "Build the kernel driver" ON)
option(BUILD_MAILBOX "Build the MHU mailbox kernel module" ON)
option(BUILD_REMOTEPROC "Build the remoteproc kernel module" ON)

# Set variables
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
    set(ARCH "arm64")
else()
    set(ARCH "arm")
endif()

string(REGEX REPLACE "(.*)gcc$" "\\1" CROSS_COMPILE "${CMAKE_C_COMPILER}")

# Add rpath to library directory
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")

# Add include directory
include_directories("kernel/include")

# Add sub directories
if(BUILD_KERNEL)
    add_subdirectory(kernel)
endif()

if(BUILD_MAILBOX)
    add_subdirectory(mailbox)
endif()

if(BUILD_REMOTEPROC)
    add_subdirectory(remoteproc)
endif()

# Build driver library
add_subdirectory(driver_library)

# Build utils
add_subdirectory(utils)

# Build tests
if(ETHOSU_TARGET_NPU_CONFIG)
    add_subdirectory(tests)
endif()

#
# Print build status
#

message(STATUS "*******************************************************")
message(STATUS "PROJECT_NAME                           : ${PROJECT_NAME}")
message(STATUS "BUILD_KERNEL                           : ${BUILD_KERNEL}")
message(STATUS "BUILD_MAILBOX                          : ${BUILD_MAILBOX}")
message(STATUS "BUILD_REMOTEPROC                       : ${BUILD_REMOTEPROC}")
message(STATUS "KDIR                                   : ${KDIR}")
message(STATUS "*******************************************************")