Move c-picker detection into UnitTest.cmake
The algorithm for determining CLANG_LIBRARY_PATH and finding c-picker
has been moved into UnitTest.cmake as unit_test_add_suite depends on
these parts of the code. By including UnitTest module the detection
code runs.
Change-Id: I3a9095ee3baaca84056a2a5df8c433a7d1d7b5cc
Signed-off-by: Imre Kis <imre.kis@arm.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0d1452b..86c55b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,7 @@
include(CTest)
include(ExternalProject)
include(FetchContent)
+include(UnitTest)
# Configuration variables
set(TF_A_PATH "" CACHE PATH "Path of the Trusted Firmware A directory")
@@ -23,7 +24,6 @@
set(CPICKER_CACHE_PATH ${CMAKE_CURRENT_BINARY_DIR}/cpicker_cache CACHE PATH "Directory of c-picker generated file")
set(UNIT_TEST_COMMON_SOURCES ${CMAKE_CURRENT_LIST_DIR}/common/main.cpp)
set(CMAKE_CXX_STANDARD 11)
-set(CLANG_LIBRARY_PATH_HELP "libclang directory for c-picker")
option(COVERAGE "Enable code coverage measurement" OFF)
# Checking TF-A
@@ -31,39 +31,6 @@
message(FATAL_ERROR "TF_A_PATH is not set")
endif()
-# Trying to set CLANG_LIBRARY_PATH using the following methods
-# 1. Using cache or command line definition
-# Show warning if environment variable is also set but has different value
-# 2. Copying the value of CLANG_LIBRARY_PATH environment variable if set
-# 3. find_package (llvm-config, common paths or Windows registry)
-# If none of the above steps succeeded CMake emits a fatal error and stops
-if (DEFINED CLANG_LIBRARY_PATH)
- message(STATUS "Using CLANG_LIBRARY_PATH from CMake variable (command line or cache)")
-
- if (DEFINED ENV{CLANG_LIBRARY_PATH})
- if (NOT (${CLANG_LIBRARY_PATH} STREQUAL $ENV{CLANG_LIBRARY_PATH}))
- message(WARNING "Both CLANG_LIBRARY_PATH CMake and environment variables are set but have different values")
- endif()
- endif()
-else()
- if (DEFINED ENV{CLANG_LIBRARY_PATH})
- message(STATUS "Setting CLANG_LIBRARY_PATH based on environment variable")
- set(CLANG_LIBRARY_PATH $ENV{CLANG_LIBRARY_PATH} CACHE PATH ${CLANG_LIBRARY_PATH_HELP})
- else()
- message(STATUS "Setting CLANG_LIBRARY_PATH based on find_package")
- find_package(LibClang REQUIRED)
- set(CLANG_LIBRARY_PATH ${LibClang_LIBRARY_DIRS} CACHE PATH ${CLANG_LIBRARY_PATH_HELP})
- endif()
-endif()
-
-message(STATUS "CLANG_LIBRARY_PATH has been set to ${CLANG_LIBRARY_PATH}")
-
-# Checking c-picker
-find_program(CPICKER_COMMAND "c-picker")
-if (NOT CPICKER_COMMAND)
- message(FATAL_ERROR "Please install c-picker using pip")
-endif()
-
# Checking git
find_program(GIT_COMMAND "git")
if (NOT GIT_COMMAND)
diff --git a/cmake/UnitTest.cmake b/cmake/UnitTest.cmake
index 74f19a2..f3f2eaa 100644
--- a/cmake/UnitTest.cmake
+++ b/cmake/UnitTest.cmake
@@ -6,6 +6,42 @@
include_guard(DIRECTORY)
+# Trying to set CLANG_LIBRARY_PATH using the following methods
+# 1. Using cache or command line definition
+# Show warning if environment variable is also set but has different value
+# 2. Copying the value of CLANG_LIBRARY_PATH environment variable if set
+# 3. find_package (llvm-config, common paths or Windows registry)
+# If none of the above steps succeeded CMake emits a fatal error and stops
+
+set(CLANG_LIBRARY_PATH_HELP "libclang directory for c-picker")
+
+if (DEFINED CLANG_LIBRARY_PATH)
+ message(STATUS "Using CLANG_LIBRARY_PATH from CMake variable (command line or cache)")
+
+ if (DEFINED ENV{CLANG_LIBRARY_PATH})
+ if (NOT (${CLANG_LIBRARY_PATH} STREQUAL $ENV{CLANG_LIBRARY_PATH}))
+ message(WARNING "Both CLANG_LIBRARY_PATH CMake and environment variables are set but have different values")
+ endif()
+ endif()
+else()
+ if (DEFINED ENV{CLANG_LIBRARY_PATH})
+ message(STATUS "Setting CLANG_LIBRARY_PATH based on environment variable")
+ set(CLANG_LIBRARY_PATH $ENV{CLANG_LIBRARY_PATH} CACHE PATH ${CLANG_LIBRARY_PATH_HELP})
+ else()
+ message(STATUS "Setting CLANG_LIBRARY_PATH based on find_package")
+ find_package(LibClang REQUIRED)
+ set(CLANG_LIBRARY_PATH ${LibClang_LIBRARY_DIRS} CACHE PATH ${CLANG_LIBRARY_PATH_HELP})
+ endif()
+endif()
+
+message(STATUS "CLANG_LIBRARY_PATH has been set to ${CLANG_LIBRARY_PATH}")
+
+# Checking c-picker
+find_program(CPICKER_COMMAND "c-picker")
+if (NOT CPICKER_COMMAND)
+ message(FATAL_ERROR "Please install c-picker using pip")
+endif()
+
# Global dependencies:
# Variables
# CPICKER_COMMAND: command of the c-picker