@@ -41,6 +41,7 @@ endif()
4141
4242set (RTEMS_PREFIX ${RTEMS_PREFIX} CACHE FILEPATH "RTEMS prefix" )
4343set (RTEMS_BSP ${RTEMS_BSP} CACHE STRING "RTEMS BSP pair" )
44+ option (RTEMS_VERBOSE "Verbose output for the RTEMS CMake support" FALSE )
4445
4546set (RTEMS_INSTALL
4647 ${CMAKE_INSTALL_PREFIX}
@@ -52,17 +53,17 @@ if(NOT RTEMS_PATH)
5253 "RTEMS path was not specified and was set to RTEMS prefix."
5354 )
5455 set (RTEMS_PATH ${RTEMS_PREFIX} CACHE FILEPATH "RTEMS folder" )
55- else ()
56- set (RTEMS_TOOLS ${RTEMS_PATH} CACHE FILEPATH "RTEMS path folder" )
56+ # else()
57+ # set(RTEMS_PATH ${RTEMS_PATH} CACHE FILEPATH "RTEMS path folder")
5758endif ()
5859
5960if (NOT RTEMS_TOOLS)
6061 message (STATUS
6162 "RTEMS toolchain path was not specified and was set to RTEMS prefix."
6263 )
6364 set (RTEMS_TOOLS ${RTEMS_PREFIX} CACHE FILEPATH "RTEMS tools folder" )
64- else ()
65- set (RTEMS_TOOLS ${RTEMS_TOOLS} CACHE FILEPATH "RTEMS tools folder" )
65+ # else()
66+ # set(RTEMS_TOOLS ${RTEMS_TOOLS} CACHE FILEPATH "RTEMS tools folder")
6667endif ()
6768
6869if (NOT RTEMS_VERSION)
@@ -89,16 +90,19 @@ endif()
8990list (GET RTEMS_BSP_LIST_SEPARATED 0 RTEMS_ARCH_NAME)
9091list (GET RTEMS_BSP_LIST_SEPARATED 1 RTEMS_BSP_NAME)
9192
92- set (RTEMS_ARCH_TOOLS "${RTEMS_ARCH_NAME} -rtems${RTEMS_VERSION} " )
93+ set (RTEMS_ARCH_VERSION_NAME "${RTEMS_ARCH_NAME} -rtems${RTEMS_VERSION} " )
9394
94- if (NOT IS_DIRECTORY "${RTEMS_PATH } /${RTEMS_ARCH_TOOLS } " )
95+ if (NOT IS_DIRECTORY "${RTEMS_TOOLS } /${RTEMS_ARCH_VERSION_NAME } " )
9596 message (FATAL_ERROR
9697 "RTEMS architecure folder not found at "
97- "${RTEMS_PATH } /${RTEMS_ARCH_TOOLS } "
98+ "${RTEMS_TOOLS } /${RTEMS_ARCH_VERSION_NAME } "
9899 )
99100endif ()
100101
101- set (RTEMS_BSP_PATH "${RTEMS_PATH} /${RTEMS_ARCH_TOOLS} /${RTEMS_BSP_NAME} " )
102+ set (RTEMS_ARCH_LIB_PATH "${RTEMS_TOOLS} /${RTEMS_ARCH_VERSION_NAME} /lib" )
103+ set (RTEMS_TOOLS_LIB_PATH "${RTEMS_TOOLS} /lib" )
104+
105+ set (RTEMS_BSP_PATH "${RTEMS_PATH} /${RTEMS_ARCH_VERSION_NAME} /${RTEMS_BSP_NAME} " )
102106if (NOT IS_DIRECTORY ${RTEMS_BSP_PATH} )
103107 message (STATUS
104108 "Supplied or autodetermined BSP path "
@@ -137,37 +141,37 @@ if(NOT IS_DIRECTORY "${RTEMS_BIN_PATH}")
137141endif ()
138142
139143message (STATUS "Checking for RTEMS gcc.." )
140- set (RTEMS_GCC "${RTEMS_BIN_PATH} /${RTEMS_ARCH_TOOLS } -gcc" )
144+ set (RTEMS_GCC "${RTEMS_BIN_PATH} /${RTEMS_ARCH_VERSION_NAME } -gcc" )
141145if (NOT EXISTS "${RTEMS_GCC} " )
142146 message (FATAL_ERROR
143147 "RTEMS gcc compiler not found at "
144- "${RTEMS_BIN_PATH} /${RTEMS_ARCH_TOOLS } -gcc"
148+ "${RTEMS_BIN_PATH} /${RTEMS_ARCH_VERSION_NAME } -gcc"
145149 )
146150endif ()
147151
148152message (STATUS "Checking for RTEMS g++.." )
149- set (RTEMS_GXX "${RTEMS_BIN_PATH} /${RTEMS_ARCH_TOOLS } -g++" )
153+ set (RTEMS_GXX "${RTEMS_BIN_PATH} /${RTEMS_ARCH_VERSION_NAME } -g++" )
150154if (NOT EXISTS "${RTEMS_GXX} " )
151155 message (FATAL_ERROR
152156 "RTEMS g++ compiler not found at "
153- "${RTEMS_BIN_PATH} /${RTEMS_ARCH_TOOLS } -g++"
157+ "${RTEMS_BIN_PATH} /${RTEMS_ARCH_VERSION_NAME } -g++"
154158 )
155159endif ()
156160
157161message (STATUS "Checking for RTEMS assembler.." )
158- set (RTEMS_ASM "${RTEMS_BIN_PATH} /${RTEMS_ARCH_TOOLS } -as" )
162+ set (RTEMS_ASM "${RTEMS_BIN_PATH} /${RTEMS_ARCH_VERSION_NAME } -as" )
159163if (NOT EXISTS "${RTEMS_GXX} " )
160164 message (FATAL_ERROR
161165 "RTEMS as compiler not found at "
162- "${RTEMS_BIN_PATH} /${RTEMS_ARCH_TOOLS } -as" )
166+ "${RTEMS_BIN_PATH} /${RTEMS_ARCH_VERSION_NAME } -as" )
163167endif ()
164168
165169message (STATUS "Checking for RTEMS linker.." )
166- set (RTEMS_LINKER "${RTEMS_BIN_PATH} /${RTEMS_ARCH_TOOLS } -ld" )
170+ set (RTEMS_LINKER "${RTEMS_BIN_PATH} /${RTEMS_ARCH_VERSION_NAME } -ld" )
167171if (NOT EXISTS "${RTEMS_LINKER} " )
168172 message (FATAL_ERROR
169173 "RTEMS ld linker not found at "
170- "${RTEMS_BIN_PATH} /${RTEMS_ARCH_TOOLS } -ld" )
174+ "${RTEMS_BIN_PATH} /${RTEMS_ARCH_VERSION_NAME } -ld" )
171175endif ()
172176
173177message (STATUS "Checking done" )
@@ -181,7 +185,7 @@ message(STATUS "RTEMS prefix: ${RTEMS_PREFIX}")
181185message (STATUS "RTEMS tools path: ${RTEMS_TOOLS} " )
182186message (STATUS "RTEMS BSP pair: ${RTEMS_BSP} " )
183187message (STATUS "RTEMS architecture tools path: "
184- "${RTEMS_PATH} /${RTEMS_ARCH_TOOLS } " )
188+ "${RTEMS_PATH} /${RTEMS_ARCH_VERSION_NAME } " )
185189message (STATUS "RTEMS BSP library path: ${RTEMS_BSP_LIB_PATH} " )
186190message (STATUS "RTEMS BSP include path: ${RTEMS_BSP_INC_PATH} " )
187191message (STATUS "RTEMS install target: ${RTEMS_INSTALL} " )
@@ -204,10 +208,26 @@ set(CMAKE_CXX_COMPILER ${RTEMS_GXX} PARENT_SCOPE)
204208set (CMAKE_ASM_COMPILER ${RTEMS_ASM} PARENT_SCOPE)
205209set (CMAKE_LINKER ${RTEMS_LINKER} PARENT_SCOPE)
206210
211+ # Variables set in the cache so they can be used everywhere.
212+ set (RTEMS_ARCH_NAME ${RTEMS_ARCH_NAME} CACHE FILEPATH "Architecture name" )
213+ set (RTEMS_BSP_NAME ${RTEMS_BSP_NAME} CACHE FILEPATH "BSP name" )
214+ set (RTEMS_TOOLS_LIB_PATH ${RTEMS_TOOLS_LIB_PATH}
215+ CACHE FILEPATH "Tools library path"
216+ )
207217set (RTEMS_BSP_LIB_PATH ${RTEMS_BSP_LIB_PATH} CACHE FILEPATH "BSP library path" )
208218set (RTEMS_BSP_INC_PATH ${RTEMS_BSP_INC_PATH} CACHE FILEPATH "BSP include path" )
209- set (RTEMS_ARCH_LIB_PATH ${RTEMS_BSP_INC_PATH }
219+ set (RTEMS_ARCH_LIB_PATH ${RTEMS_ARCH_LIB_PATH }
210220 CACHE FILEPATH "Architecture library path"
211221)
222+ set (RTEMS_ARCH_VERSION_NAME ${RTEMS_ARCH_VERSION_NAME}
223+ CACHE FILEPATH "Unique architecture-version identifier"
224+ )
225+
226+ list (APPEND CMAKE_PREFIX_PATH ${RTEMS_BSP_LIB_PATH} )
227+ list (APPEND CMAKE_PREFIX_PATH ${RTEMS_BSP_INC_PATH} )
228+ list (APPEND CMAKE_PREFIX_PATH ${RTEMS_ARCH_LIB_PATH} )
229+ list (APPEND CMAKE_PREFIX_PATH ${RTEMS_TOOLS_LIB_PATH} )
230+
231+ set (CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
212232
213233endfunction ()
0 commit comments