summaryrefslogtreecommitdiffstats
path: root/Modules/Platform/ADSP-Common.cmake
diff options
context:
space:
mode:
authorChris Wright <chris.wright@mqa.co.uk>2022-03-24 11:35:40 (GMT)
committerChris Wright <chris.wright@mqa.co.uk>2022-04-04 16:05:09 (GMT)
commit87142bbd5f94de9591b0a5531e427a5f491f56fd (patch)
tree51605139a9795d58fadc2b2a2fe693795cebe41a /Modules/Platform/ADSP-Common.cmake
parente9eabb0dcdb2fd8084135e02a1ad63047f8ae772 (diff)
downloadCMake-87142bbd5f94de9591b0a5531e427a5f491f56fd.zip
CMake-87142bbd5f94de9591b0a5531e427a5f491f56fd.tar.gz
CMake-87142bbd5f94de9591b0a5531e427a5f491f56fd.tar.bz2
ADSP: Add dedicated platform module
Diffstat (limited to 'Modules/Platform/ADSP-Common.cmake')
-rw-r--r--Modules/Platform/ADSP-Common.cmake36
1 files changed, 36 insertions, 0 deletions
diff --git a/Modules/Platform/ADSP-Common.cmake b/Modules/Platform/ADSP-Common.cmake
new file mode 100644
index 0000000..2ba90b2
--- /dev/null
+++ b/Modules/Platform/ADSP-Common.cmake
@@ -0,0 +1,36 @@
+include_guard()
+
+macro(__platform_adsp_init)
+ if(NOT CMAKE_ADSP_PLATFORM_INITIALIZED)
+ if(NOT CMAKE_SYSTEM_PROCESSOR)
+ message(FATAL_ERROR "ADSP: CMAKE_SYSTEM_PROCESSOR is required but not set")
+ endif()
+
+ set(CMAKE_ADSP_PROCESSOR "ADSP-${CMAKE_SYSTEM_PROCESSOR}")
+ string(TOUPPER "${CMAKE_ADSP_PROCESSOR}" CMAKE_ADSP_PROCESSOR)
+
+ set(CMAKE_ADSP_COMPILER_NAME cc21k.exe)
+ if(CMAKE_ADSP_PROCESSOR MATCHES "^ADSP-BF")
+ set(CMAKE_ADSP_COMPILER_NAME ccblkfn.exe)
+ endif()
+
+ set(CMAKE_ADSP_PLATFORM_INITIALIZED TRUE)
+ endif()
+endmacro()
+
+macro(__platform_adsp lang)
+ __platform_adsp_init()
+ set(CMAKE_${lang}_COMPILER "${CMAKE_ADSP_ROOT}/${CMAKE_ADSP_COMPILER_NAME}")
+
+ execute_process(
+ COMMAND "${CMAKE_${lang}_COMPILER}" "-proc=${CMAKE_ADSP_PROCESSOR}" "-version"
+ OUTPUT_QUIET ERROR_QUIET
+ RESULT_VARIABLE _adsp_is_valid_proc
+ )
+ if(NOT _adsp_is_valid_proc EQUAL 0)
+ message(FATAL_ERROR
+ "ADSP: unsupported processor '${CMAKE_ADSP_PROCESSOR}' for CMAKE_${lang}_COMPILER:\n"
+ " ${CMAKE_${lang}_COMPILER}"
+ )
+ endif()
+endmacro()