diff --git a/Modules/CMakeASM-RVDSInformation.cmake b/Modules/CMakeASM-RVDSInformation.cmake new file mode 100644 index 0000000..8ff37e7 --- /dev/null +++ b/Modules/CMakeASM-RVDSInformation.cmake @@ -0,0 +1,8 @@ + +SET(ASM_DIALECT "-RVDS") +SET(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS s;asm;S) + +SET(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT " -o ") + +INCLUDE(CMakeASMInformation) +SET(ASM_DIALECT) diff --git a/Modules/CMakeCCompilerId.c.in b/Modules/CMakeCCompilerId.c.in index 2d76c7a..0cb92dd 100644 --- a/Modules/CMakeCCompilerId.c.in +++ b/Modules/CMakeCCompilerId.c.in @@ -197,6 +197,9 @@ #elif defined(__hpux) || defined(__hpua) # define COMPILER_ID "HP" +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "RVDS" + #else /* unknown compiler */ # define COMPILER_ID "" diff --git a/Modules/CMakeCXXCompilerId.cpp.in b/Modules/CMakeCXXCompilerId.cpp.in index 5e70a41..ef4f55b 100644 --- a/Modules/CMakeCXXCompilerId.cpp.in +++ b/Modules/CMakeCXXCompilerId.cpp.in @@ -184,6 +184,9 @@ #elif defined(__hpux) || defined(__hpua) # define COMPILER_ID "HP" +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "RVDS" + #else /* unknown compiler */ # define COMPILER_ID "" diff --git a/Modules/CMakeDetermineASM-RVDSCompiler.cmake b/Modules/CMakeDetermineASM-RVDSCompiler.cmake new file mode 100644 index 0000000..2c942f9 --- /dev/null +++ b/Modules/CMakeDetermineASM-RVDSCompiler.cmake @@ -0,0 +1,4 @@ +SET(ASM_DIALECT "-RVDS") +SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT armasm) +INCLUDE(CMakeDetermineASMCompiler) +SET(ASM_DIALECT) diff --git a/Modules/CMakeFindBinUtils.cmake b/Modules/CMakeFindBinUtils.cmake index e08c1c6..dc6eec5 100644 --- a/Modules/CMakeFindBinUtils.cmake +++ b/Modules/CMakeFindBinUtils.cmake @@ -38,6 +38,14 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" mark_as_advanced(CMAKE_LINKER) +elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "RVDS" + OR "${CMAKE_C_COMPILER_ID}" MATCHES "RVDS") + + find_program(CMAKE_LINKER NAMES ${_CMAKE_TOOLCHAIN_PREFIX}armlink HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) + find_program(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}armar HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) + + mark_as_advanced(CMAKE_LINKER CMAKE_AR) + # in all other cases search for ar, ranlib, etc. else() diff --git a/Modules/CMakeTestASM-RVDSCompiler.cmake b/Modules/CMakeTestASM-RVDSCompiler.cmake new file mode 100644 index 0000000..45bf7ca --- /dev/null +++ b/Modules/CMakeTestASM-RVDSCompiler.cmake @@ -0,0 +1,3 @@ +SET(ASM_DIALECT "-RVDS") +INCLUDE(CMakeTestASMCompiler) +SET(ASM_DIALECT) diff --git a/Modules/Compiler/RVDS-C.cmake b/Modules/Compiler/RVDS-C.cmake new file mode 100644 index 0000000..b2192eb --- /dev/null +++ b/Modules/Compiler/RVDS-C.cmake @@ -0,0 +1,32 @@ +SET(CMAKE_C_CREATE_ASSEMBLY_SOURCE " -S -o ") +SET(CMAKE_C_CREATE_PREPROCESSED_SOURCE " -E > ") + +# Allow toolchain files to override these +if(NOT DEFINED CMAKE_C_FLAGS_INIT) + SET(CMAKE_C_FLAGS_INIT "") +endif() + +if(NOT DEFINED CMAKE_C_FLAGS_DEBUG_INIT) + SET(CMAKE_C_FLAGS_DEBUG_INIT "-g") +endif() + +if(NOT DEFINED CMAKE_C_FLAGS_MINSIZEREL_INIT) + SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "-Ospace -DNDEBUG") +endif() + +if(NOT DEFINED CMAKE_C_FLAGS_RELEASE_INIT) + SET(CMAKE_C_FLAGS_RELEASE_INIT "-Otime -DNDEBUG") +endif() + +if(NOT DEFINED CMAKE_C_FLAGS_RELWITHDEBINFO_INIT) + SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") +endif() + +if(NOT DEFINED CMAKE_C_CREATE_STATIC_LIBRARY) + SET(CMAKE_C_CREATE_STATIC_LIBRARY " --create ") +endif() + +if(NOT DEFINED CMAKE_C_LINK_EXECUTABLE) + SET(CMAKE_C_LINK_EXECUTABLE " -o ") +endif() + diff --git a/Modules/Compiler/RVDS-CXX.cmake b/Modules/Compiler/RVDS-CXX.cmake new file mode 100644 index 0000000..2a905b7 --- /dev/null +++ b/Modules/Compiler/RVDS-CXX.cmake @@ -0,0 +1,32 @@ +SET(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE " -S -o ") +SET(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " -E > ") + +# Allow toolchain files to override these +if(NOT DEFINED CMAKE_CXX_FLAGS_INIT) + SET(CMAKE_CXX_FLAGS_INIT "") +endif() + +if(NOT DEFINED CMAKE_CXX_FLAGS_DEBUG_INIT) + SET(CMAKE_CXX_FLAGS_DEBUG_INIT "-g") +endif() + +if(NOT DEFINED CMAKE_CXX_FLAGS_MINSIZEREL_INIT) + SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Ospace -DNDEBUG") +endif() + +if(NOT DEFINED CMAKE_CXX_FLAGS_RELEASE_INIT) + SET(CMAKE_CXX_FLAGS_RELEASE_INIT "-Otime -DNDEBUG") +endif() + +if(NOT DEFINED CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT) + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") +endif() + +if(NOT DEFINED CMAKE_CXX_CREATE_STATIC_LIBRARY) + SET(CMAKE_CXX_CREATE_STATIC_LIBRARY " --create ") +endif() + +if(NOT DEFINED CMAKE_CXX_LINK_EXECUTABLE) + SET(CMAKE_CXX_LINK_EXECUTABLE " -o ") +endif() +