Add automatic flash CRC patching to cmake
This commit is contained in:
		@@ -43,6 +43,27 @@ else (GIT_FOUND)
 | 
			
		||||
	message("Version is set to: ${GIT_DESCRIBE}${ColorReset}")
 | 
			
		||||
endif (GIT_FOUND)
 | 
			
		||||
 | 
			
		||||
find_program(VIRTUALENV virtualenv)
 | 
			
		||||
if (VIRTUALENV)
 | 
			
		||||
	message("Python virtual environment found")
 | 
			
		||||
	execute_process(
 | 
			
		||||
		COMMAND ${VIRTUALENV} venv
 | 
			
		||||
		WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
 | 
			
		||||
		OUTPUT_QUIET
 | 
			
		||||
		COMMAND_ERROR_IS_FATAL ANY
 | 
			
		||||
	)
 | 
			
		||||
	set(VENV_BIN "${CMAKE_CURRENT_BINARY_DIR}/venv/bin")
 | 
			
		||||
	execute_process(
 | 
			
		||||
		COMMAND ./pip install -r "${CMAKE_CURRENT_SOURCE_DIR}/crc-patcher/requirements.txt"
 | 
			
		||||
		WORKING_DIRECTORY ${VENV_BIN}
 | 
			
		||||
		OUTPUT_QUIET
 | 
			
		||||
		COMMAND_ERROR_IS_FATAL ANY
 | 
			
		||||
	)
 | 
			
		||||
	message("${BoldGreen}python virtual environment set up!${ColorReset}")
 | 
			
		||||
else(VIRTUALENV)
 | 
			
		||||
endif (VIRTUALENV)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(ELFFILE ${PROJECT_NAME}.elf)
 | 
			
		||||
set(HEXFILE ${PROJECT_NAME}.hex)
 | 
			
		||||
set(MAPFILE ${PROJECT_NAME}.map)
 | 
			
		||||
@@ -105,6 +126,14 @@ target_link_options(${ELFFILE} PRIVATE -mlittle-endian -mthumb -mcpu=cortex-m4 -
 | 
			
		||||
target_link_libraries(${ELFFILE} base64-lib linklist-lib)
 | 
			
		||||
target_include_directories(${ELFFILE} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/updater/ram-code/include/")
 | 
			
		||||
 | 
			
		||||
add_custom_command(
 | 
			
		||||
    TARGET ${ELFFILE}
 | 
			
		||||
    POST_BUILD
 | 
			
		||||
    COMMAND ./python "${CMAKE_CURRENT_SOURCE_DIR}/crc-patcher/crc-patch-elf.py" "${CMAKE_CURRENT_BINARY_DIR}/${ELFFILE}"
 | 
			
		||||
    WORKING_DIRECTORY ${VENV_BIN}
 | 
			
		||||
    COMMENT "Running Flash CRC Patcher"
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
set(HEX_PATH "${CMAKE_CURRENT_BINARY_DIR}/${HEXFILE}")
 | 
			
		||||
add_custom_target(update-image ALL DEPENDS ${HEX_PATH})
 | 
			
		||||
add_custom_command(
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								stm-firmware/crc-patcher/requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								stm-firmware/crc-patcher/requirements.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
crcmod==1.7
 | 
			
		||||
pyelftools==0.27
 | 
			
		||||
		Reference in New Issue
	
	Block a user