MLECO-2970: Moving Profiler out as a CMake target.
Profiler is a stand alone static lib that will depend on
log and hal targets.
Change-Id: Ibbff289c6760982f54ae278d95a054e73db018c8
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51e21eb..e61e378 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -98,19 +98,19 @@
# We include the hal target
add_subdirectory(${SRC_PATH}/hal ${CMAKE_BINARY_DIR}/hal)
+# Add the profiler target
+if (NOT DEFINED PROFILER_DIR)
+ set(PROFILER_DIR ${SRC_PATH}/profiler)
+endif ()
+add_subdirectory(${PROFILER_DIR} ${CMAKE_BINARY_DIR}/profiler)
+
# Include the tensorflow build target
include(${CMAKE_SCRIPTS_DIR}/tensorflow.cmake)
-# Profiler
-if (NOT DEFINED PROFILER_DIR)
- set(PROFILER_DIR ${SRC_PATH}/application/profiler)
-endif ()
-
# Include directories for application module:
set(APPLICATION_INCLUDE_DIRS
${SRC_PATH}/application/tensorflow-lite-micro/include
- ${SRC_PATH}/application/main/include
- ${PROFILER_DIR}/include)
+ ${SRC_PATH}/application/main/include)
# Source files for application module:
file(GLOB_RECURSE SRC_APPLICATION
@@ -122,9 +122,6 @@
"${SRC_PATH}/application/main/**/*.c"
"${SRC_PATH}/application/tensorflow-lite-micro/**/*.cc"
"${SRC_PATH}/application/tensorflow-lite-micro/*.cc"
- "${PROFILER_DIR}/*.cc"
- "${PROFILER_DIR}/*.cpp"
- "${PROFILER_DIR}/*.c"
)
list(FILTER SRC_APPLICATION EXCLUDE REGEX ".*main\\.c.*$")
set(SRC_MAIN "${SRC_PATH}/application/main/Main.cc")
@@ -228,9 +225,8 @@
log
arm_math
hal
- tensorflow-lite-micro
- $<$<BOOL:${APPLICATION_EXTRA_LIBS}>:${APPLICATION_EXTRA_LIBS}>
- )
+ profiler
+ tensorflow-lite-micro)
add_executable(${TARGET_NAME} ${SRC_MAIN})
diff --git a/scripts/cmake/platforms/native/build_configuration.cmake b/scripts/cmake/platforms/native/build_configuration.cmake
index bf6f980..bc91804 100644
--- a/scripts/cmake/platforms/native/build_configuration.cmake
+++ b/scripts/cmake/platforms/native/build_configuration.cmake
@@ -39,6 +39,7 @@
target_include_directories(catch2
INTERFACE
${TEST_TPIP_INCLUDE})
+ add_dependencies(catch2 catch2-headers)
endfunction()
diff --git a/source/profiler/CMakeLists.txt b/source/profiler/CMakeLists.txt
new file mode 100644
index 0000000..f70e86d
--- /dev/null
+++ b/source/profiler/CMakeLists.txt
@@ -0,0 +1,40 @@
+#----------------------------------------------------------------------------
+# Copyright (c) 2022 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
+#
+# http://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.
+#----------------------------------------------------------------------------
+
+#######################################################
+# Profiling library #
+#######################################################
+
+project(profiler
+ DESCRIPTION "Profiling API for applications."
+ LANGUAGES C CXX)
+
+add_library(profiler STATIC)
+
+target_sources(profiler
+ PRIVATE
+ Profiler.cc)
+
+target_include_directories(profiler PUBLIC include)
+
+# Profiling API depends on the logging interface and the HAL library.
+target_link_libraries(profiler PRIVATE log hal)
+
+message(STATUS "*******************************************************")
+message(STATUS "Library : " profiler)
+message(STATUS "CMAKE_SYSTEM_PROCESSOR : " ${CMAKE_SYSTEM_PROCESSOR})
+message(STATUS "*******************************************************")
diff --git a/source/application/profiler/Profiler.cc b/source/profiler/Profiler.cc
similarity index 100%
rename from source/application/profiler/Profiler.cc
rename to source/profiler/Profiler.cc
diff --git a/source/application/profiler/include/Profiler.hpp b/source/profiler/include/Profiler.hpp
similarity index 100%
rename from source/application/profiler/include/Profiler.hpp
rename to source/profiler/include/Profiler.hpp