X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=setup.cmake;h=c754f920869e1e8caf8a036a9f318bf869c2275f;hb=4ce6d34cd8dfbcc6fa51a69e42dce38b3416b736;hp=90340bb500b0bf5c8220658389ec6a4e973056ea;hpb=fc7998d605195c306d90fe068aa786796a17e028;p=kiibohd-controller.git diff --git a/setup.cmake b/setup.cmake index 90340bb..c754f92 100644 --- a/setup.cmake +++ b/setup.cmake @@ -20,7 +20,7 @@ #| Please the {Scan,Macro,USB,Debug}/module.txt for information on the modules and how to create new ones ##| Deals with acquiring the keypress information and turning it into a key index -set( ScanModule "MBC-55X" ) +set( ScanModule "avr-capsense" ) ##| Uses the key index and potentially applies special conditions to it, mapping it to a usb key code set( MacroModule "buffer" ) @@ -37,9 +37,9 @@ set( DebugModule "full" ) ### # Module Overrides (Used in the buildall.bash script) # -if ( ( DEFINED ${ScanModuleOverride} ) AND ( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Scan/${ScanModuleOverride} ) ) +if ( ( DEFINED ScanModuleOverride ) AND ( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Scan/${ScanModuleOverride} ) ) set( ScanModule ${ScanModuleOverride} ) -endif ( ( DEFINED ${ScanModuleOverride} ) AND ( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Scan/${ScanModuleOverride} ) ) +endif () @@ -68,11 +68,11 @@ function( ModuleCompatibility ModulePath ) if ( ${mod_var} STREQUAL ${COMPILER_FAMILY} ) # Module found, no need to scan further return() - endif ( ${mod_var} STREQUAL ${COMPILER_FAMILY} ) - endforeach( mod_var ${ARGN} ) + endif () + endforeach() message( FATAL_ERROR "${ModulePath} does not support the ${COMPILER_FAMILY} family..." ) -endfunction( ModuleCompatibility ModulePath ) +endfunction() @@ -108,11 +108,11 @@ macro( PathPrepend Output SourcesPath ) foreach( item ${ARGN} ) # Set the path set( tmpSource ${tmpSource} "${SourcesPath}/${item}" ) - endforeach( item ) + endforeach() # Finalize by writing the new list back over the old one set( ${Output} ${tmpSource} ) -endmacro( PathPrepend ) +endmacro() #| Scan Module @@ -142,3 +142,60 @@ message( "${USB_SRCS}" ) message( STATUS "Detected Debug Module Source Files:" ) message( "${DEBUG_SRCS}" ) + + +### +# Generate USB Defines +# + +#| Manufacturer name +set( MANUFACTURER "Kiibohd" ) + + +#| Serial Number +#| Attempt to call Git to get the branch, last commit date, and whether code modified since last commit + +#| Modified +#| Takes a bit of work to extract the "M " using CMake, and not using it if there are no modifications +execute_process( COMMAND git status -s -uno --porcelain + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE Git_Modified_INFO + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE +) +string( LENGTH "${Git_Modified_INFO}" Git_Modified_LENGTH ) +if ( ${Git_Modified_LENGTH} GREATER 2 ) + string( SUBSTRING "${Git_Modified_INFO}" 1 2 Git_Modified_Flag_INFO ) +endif () + +#| Branch +execute_process( COMMAND git rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE Git_Branch_INFO + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +#| Date +execute_process( COMMAND git show -s --format=%ci + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE Git_Date_INFO + RESULT_VARIABLE Git_RETURN + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE +) + + +#| Only use Git variables if we were successful in calling the commands +if ( ${Git_RETURN} EQUAL 0 ) + set( GitLastCommitDate "${Git_Modified_Flag_INFO}${Git_Branch_INFO} - ${Git_Date_INFO}" ) +else () + # TODO Figure out a good way of finding the current branch + commit date + modified + set( GitLastCommitDate "Pft...Windows Build" ) +endif () + + +#| Uses CMake variables to include as defines +#| Primarily for USB configuration +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Lib/_buildvars.h buildvars.h ) +