comparison Lib/CMake/modules.cmake @ 294:834d69d22d47

Adding list of modified files to the cli version command.
author Jacob Alexander <haata@kiibohd.com>
date Sat, 28 Feb 2015 23:50:13 -0800
parents 57f40871c726
children fc2c2a1e9615
comparison
equal deleted inserted replaced
293:57f40871c726 294:834d69d22d47
155 ### 155 ###
156 # Generate USB Defines 156 # Generate USB Defines
157 # 157 #
158 158
159 #| Manufacturer name 159 #| Manufacturer name
160 set( MANUFACTURER "Kiibohd" ) 160 set ( MANUFACTURER "Kiibohd" )
161 161
162 162
163 #| Serial Number 163 #| Serial Number
164 #| Attempt to call Git to get the branch, last commit date, and whether code modified since last commit 164 #| Attempt to call Git to get the branch, last commit date, and whether code modified since last commit
165 165
166 #| Modified 166 #| Modified
167 #| Takes a bit of work to extract the "M " using CMake, and not using it if there are no modifications 167 #| Takes a bit of work to extract the "M " using CMake, and not using it if there are no modifications
168 execute_process( COMMAND ${GIT_EXECUTABLE} status -s -uno --porcelain 168 execute_process ( COMMAND ${GIT_EXECUTABLE} status -s -uno --porcelain
169 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 169 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
170 OUTPUT_VARIABLE Git_Modified_INFO 170 OUTPUT_VARIABLE Git_Modified_INFO
171 ERROR_QUIET 171 ERROR_QUIET
172 OUTPUT_STRIP_TRAILING_WHITESPACE 172 OUTPUT_STRIP_TRAILING_WHITESPACE
173 ) 173 )
174 string( LENGTH "${Git_Modified_INFO}" Git_Modified_LENGTH ) 174 string ( LENGTH "${Git_Modified_INFO}" Git_Modified_LENGTH )
175 set( Git_Modified_Status "Clean" ) 175 set ( Git_Modified_Status "Clean" )
176 if ( ${Git_Modified_LENGTH} GREATER 2 ) 176 if ( ${Git_Modified_LENGTH} GREATER 2 )
177 string( SUBSTRING "${Git_Modified_INFO}" 1 2 Git_Modified_Flag_INFO ) 177 string ( SUBSTRING "${Git_Modified_INFO}" 1 2 Git_Modified_Flag_INFO )
178 set( Git_Modified_Status "Dirty" ) 178 set ( Git_Modified_Status "Dirty" )
179 endif () 179 endif ()
180
181 #| List of modified files
182 execute_process ( COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD --
183 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
184 OUTPUT_VARIABLE Git_Modified_Files
185 ERROR_QUIET
186 OUTPUT_STRIP_TRAILING_WHITESPACE
187 )
188 string ( REGEX REPLACE "\n" "\\\\r\\\\n\\\\t" Git_Modified_Files "${Git_Modified_Files}" )
189 set ( Git_Modified_Files "\\r\\n\\t${Git_Modified_Files}" )
180 190
181 #| Branch 191 #| Branch
182 execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD 192 execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
183 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 193 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
184 OUTPUT_VARIABLE Git_Branch_INFO 194 OUTPUT_VARIABLE Git_Branch_INFO
185 ERROR_QUIET 195 ERROR_QUIET
186 OUTPUT_STRIP_TRAILING_WHITESPACE 196 OUTPUT_STRIP_TRAILING_WHITESPACE
187 ) 197 )
188 198
189 #| Date 199 #| Date
190 execute_process( COMMAND ${GIT_EXECUTABLE} show -s --format=%ci 200 execute_process ( COMMAND ${GIT_EXECUTABLE} show -s --format=%ci
191 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 201 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
192 OUTPUT_VARIABLE Git_Date_INFO 202 OUTPUT_VARIABLE Git_Date_INFO
193 ERROR_QUIET 203 ERROR_QUIET
194 OUTPUT_STRIP_TRAILING_WHITESPACE 204 OUTPUT_STRIP_TRAILING_WHITESPACE
195 ) 205 )
196 206
197 #| Commit Author and Email 207 #| Commit Author and Email
198 execute_process( COMMAND ${GIT_EXECUTABLE} show -s --format="%cn <%ce>" 208 execute_process ( COMMAND ${GIT_EXECUTABLE} show -s --format="%cn <%ce>"
199 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 209 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
200 OUTPUT_VARIABLE Git_Commit_Author 210 OUTPUT_VARIABLE Git_Commit_Author
201 ERROR_QUIET 211 ERROR_QUIET
202 OUTPUT_STRIP_TRAILING_WHITESPACE 212 OUTPUT_STRIP_TRAILING_WHITESPACE
203 ) 213 )
204 214
205 #| Commit Revision 215 #| Commit Revision
206 execute_process( COMMAND ${GIT_EXECUTABLE} show -s --format=%H 216 execute_process ( COMMAND ${GIT_EXECUTABLE} show -s --format=%H
207 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 217 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
208 OUTPUT_VARIABLE Git_Commit_Revision 218 OUTPUT_VARIABLE Git_Commit_Revision
209 ERROR_QUIET 219 ERROR_QUIET
210 OUTPUT_STRIP_TRAILING_WHITESPACE 220 OUTPUT_STRIP_TRAILING_WHITESPACE
211 ) 221 )
212 222
213 #| Origin URL 223 #| Origin URL
214 execute_process( COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url 224 execute_process ( COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url
215 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 225 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
216 OUTPUT_VARIABLE Git_Origin_URL 226 OUTPUT_VARIABLE Git_Origin_URL
217 ERROR_QUIET 227 ERROR_QUIET
218 OUTPUT_STRIP_TRAILING_WHITESPACE 228 OUTPUT_STRIP_TRAILING_WHITESPACE
219 ) 229 )
220 230
221 #| Build Date 231 #| Build Date
222 execute_process( COMMAND "date" "+%Y-%m-%d %T %z" 232 execute_process ( COMMAND "date" "+%Y-%m-%d %T %z"
223 OUTPUT_VARIABLE Build_Date 233 OUTPUT_VARIABLE Build_Date
224 ERROR_QUIET 234 ERROR_QUIET
225 OUTPUT_STRIP_TRAILING_WHITESPACE 235 OUTPUT_STRIP_TRAILING_WHITESPACE
226 ) 236 )
227 237
228 #| Last Commit Date 238 #| Last Commit Date
229 set( GitLastCommitDate "${Git_Modified_Status} ${Git_Branch_INFO} - ${Git_Date_INFO}" ) 239 set ( GitLastCommitDate "${Git_Modified_Status} ${Git_Branch_INFO} - ${Git_Date_INFO}" )
230 240
231 #| Uses CMake variables to include as defines 241 #| Uses CMake variables to include as defines
232 #| Primarily for USB configuration 242 #| Primarily for USB configuration
233 configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Lib/_buildvars.h buildvars.h ) 243 configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/Lib/_buildvars.h buildvars.h )
234 244
235 245
236 246
237 ### 247 ###
238 # Source Defines 248 # Source Defines
239 # 249 #
240 set( SRCS 250 set ( SRCS
241 ${MAIN_SRCS} 251 ${MAIN_SRCS}
242 ${COMPILER_SRCS} 252 ${COMPILER_SRCS}
243 ${Scan_SRCS} 253 ${Scan_SRCS}
244 ${Macro_SRCS} 254 ${Macro_SRCS}
245 ${Output_SRCS} 255 ${Output_SRCS}
246 ${Debug_SRCS} 256 ${Debug_SRCS}
247 ) 257 )
248 258
249 #| Directories to include by default 259 #| Directories to include by default
250 include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) 260 include_directories ( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} )
251 261
252 262
253 263
254 ### 264 ###
255 # ctag Generation 265 # ctag Generation
256 # 266 #
257 267
258 if( CTAGS_EXECUTABLE ) 268 if ( CTAGS_EXECUTABLE )
259 # Populate list of directories for ctags to parse 269 # Populate list of directories for ctags to parse
260 # NOTE: Doesn't support dots in the folder names... 270 # NOTE: Doesn't support dots in the folder names...
261 foreach( filename ${SRCS} ) 271 foreach ( filename ${SRCS} )
262 string( REGEX REPLACE "/[a-zA-Z0-9_-]+.c$" "" pathglob ${filename} ) 272 string ( REGEX REPLACE "/[a-zA-Z0-9_-]+.c$" "" pathglob ${filename} )
263 file( GLOB filenames "${pathglob}/*.c" ) 273 file ( GLOB filenames "${pathglob}/*.c" )
264 set( CTAG_PATHS ${CTAG_PATHS} ${filenames} ) 274 set ( CTAG_PATHS ${CTAG_PATHS} ${filenames} )
265 file( GLOB filenames "${pathglob}/*.h" ) 275 file ( GLOB filenames "${pathglob}/*.h" )
266 set( CTAG_PATHS ${CTAG_PATHS} ${filenames} ) 276 set ( CTAG_PATHS ${CTAG_PATHS} ${filenames} )
267 endforeach() 277 endforeach ()
268 278
269 # Generate the ctags 279 # Generate the ctags
270 execute_process( COMMAND ctags ${CTAG_PATHS} 280 execute_process ( COMMAND ctags ${CTAG_PATHS}
271 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} 281 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
272 ) 282 )
273 endif() 283 endif ()
274 284