[CMake] Support for RVDS 4.1: ARM C/C++ and ASM compilers.

Abdelrazak Younes ayounes at marvell.com
Fri Dec 9 04:17:10 EST 2011


-----Original Message-----
From: Abdelrazak Younes 
> # The cmake compiler ID could then be named "RVDS".
> #
> # Then cmake executes Modules/CMakeFindBinUtils.cmake.
> # If the compiler ID has been determined successfully, you can change this file 
> # so that if the compiler ID is RVDS, it looks for "armar" instead of ar.
> #
> # Then, once it has detected this "compiler id", it can load 
> # Modules/Compiler/RVDS-C.cmake and RVDS-CXX.cmake. There you can put also the 
> # variables for linking etc.
>
> OK, so shall I make a local copy of Modules/CMakeCCompilerID.c.in and modify
> that? I mean, would this copy take precedence if I add the local > > Module
> path like this:
> set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/Modules" ${CMAKE_MODULE_PATH})

It doesn't work with the local copy unfortunately... but it works with the modified installed version in /usr/share/cmake-2.8/Modules:

cmake ../src -Drvds=1 -Dfirmware=$2 -DCMAKE_TOOLCHAIN_FILE=../cmake/LinuxRvdsToolchain.cmake
-- The C compiler identification is RVDS
-- The CXX compiler identification is unknown
-- Check for working C compiler: /opt/ARM/RVCT/Programs/4.1/462/linux-pentium/armcc
-- Check for working C compiler: /opt/ARM/RVCT/Programs/4.1/462/linux-pentium/armcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /opt/ARM/RVCT/Programs/4.1/462/linux-pentium/armcc
-- Check for working CXX compiler: /opt/ARM/RVCT/Programs/4.1/462/linux-pentium/armcc -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
Compiling for ARM platform
-- The ASM-RVDS compiler identification is unknown
-- Found assembler: /opt/ARM/RVCT/Programs/4.1/462/linux-pentium/armasm
-- Configuring done
-- Generating done
-- Build files have been written to: xxxx

I have used the __ARMCC_VERSION macro (see patch below).

So now I will try to remove CMAKE_(C|CXX)_CREATE_* and ARCHIVE variables and modify Modules/CMakeFindBinUtils.cmake; I hope I can use a local copy for this file.

Cheers,
Abdel.

--- /usr/share/cmake-2.8/Modules/CMakeCCompilerId.c.in.original 2011-07-08 14:21:44.000000000 +0200
+++ /usr/share/cmake-2.8/Modules/CMakeCCompilerId.c.in  2011-12-09 09:57:49.565830358 +0100
@@ -85,6 +85,9 @@
 #elif defined(__hpux) || defined(__hpua)
 # define COMPILER_ID "HP"
 
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "RVDS"
+
 #else /* unknown compiler */
 # define COMPILER_ID "" 



More information about the CMake mailing list