aboutsummaryrefslogtreecommitdiff
path: root/targets/common/CMakeLists.txt
diff options
context:
space:
mode:
authorKristofer Jonsson <kristofer.jonsson@arm.com>2021-01-21 17:39:03 +0100
committerPer Åstrand <per.astrand@arm.com>2021-02-02 17:26:36 +0100
commitf62c3d756917295146d415fcba7b5208c13874f7 (patch)
treea8948a458d2db6bf2daa78b1e7dc411f2cff51d4 /targets/common/CMakeLists.txt
parent6663630bb3feea222fd38278a962297c08d0b320 (diff)
downloadethos-u-core-platform-f62c3d756917295146d415fcba7b5208c13874f7.tar.gz
Build system refactoring
The source tree is configured for a specific target as defined in the targets directory. The common target components are defined in targets/common. Targets for real platform should include this directory to get the default target libraries setup. Change-Id: I7fced4bfacec97432cbbd4125bd5b4cdd21122e3
Diffstat (limited to 'targets/common/CMakeLists.txt')
-rw-r--r--targets/common/CMakeLists.txt63
1 files changed, 63 insertions, 0 deletions
diff --git a/targets/common/CMakeLists.txt b/targets/common/CMakeLists.txt
new file mode 100644
index 0000000..fa9b953
--- /dev/null
+++ b/targets/common/CMakeLists.txt
@@ -0,0 +1,63 @@
+#
+# Copyright (c) 2021 Arm Limited. All rights reserved.
+#
+# 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.
+#
+
+#############################################################################
+# Core software
+#############################################################################
+
+set(ETHOSU_CORE_SOFTWARE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../../core_software" CACHE PATH "Path to Arm Ethos-U Core Software")
+
+set(CORE_SOFTWARE_RTOS "All" CACHE STRING "")
+
+add_subdirectory(${ETHOSU_CORE_SOFTWARE_PATH} core_software)
+
+###############################################################################
+# Target
+#
+# ethosu_target_init # Init and drivers
+# |
+# v
+# ethosu_target_startup # CMSIS startup
+# |
+# v
+# ethosu_target_link # Target linker script
+# |
+# v
+# ethosu_target_common # Common for all targets
+###############################################################################
+
+# Common
+add_library(ethosu_target_common INTERFACE)
+target_include_directories(ethosu_target_common INTERFACE include)
+
+# Link
+add_library(ethosu_target_link INTERFACE)
+target_link_libraries(ethosu_target_link INTERFACE ethosu_target_common)
+
+# Startup
+add_library(ethosu_target_startup INTERFACE)
+target_link_libraries(ethosu_target_startup INTERFACE ethosu_target_link)
+
+target_link_libraries(ethosu_target_startup INTERFACE $<TARGET_OBJECTS:cmsis_startup>)
+add_dependencies(ethosu_target_startup $<TARGET_OBJECTS:cmsis_startup>)
+
+# Init
+add_library(ethosu_target_init INTERFACE)
+target_link_libraries(ethosu_target_init INTERFACE ethosu_target_startup)
+target_sources(ethosu_target_init INTERFACE src/init.cpp)
+