Some updated to librarizing
This commit is contained in:
@@ -10,7 +10,7 @@ generate_arduino_library(checkm8_arduino_libhostshield)
|
|||||||
set(checkm8_arduino_BOARD uno)
|
set(checkm8_arduino_BOARD uno)
|
||||||
set(checkm8_arduino_HDRS include/User_Setup.h include/Usb.h)
|
set(checkm8_arduino_HDRS include/User_Setup.h include/Usb.h)
|
||||||
set(checkm8_arduino_LIBS checkm8_arduino_libhostshield)
|
set(checkm8_arduino_LIBS checkm8_arduino_libhostshield)
|
||||||
set(checkm8_arduino_SKETCH src/checkm8_arduino.ino)
|
set(checkm8_arduino_SKETCH checkm8_arduino.ino)
|
||||||
set(checkm8_arduino_PROGRAMMER avrispmkii)
|
set(checkm8_arduino_PROGRAMMER avrispmkii)
|
||||||
set(checkm8_arduino_PORT /dev/ttyACM0)
|
set(checkm8_arduino_PORT /dev/ttyACM0)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../include/User_Setup.h"
|
#include "include/User_Setup.h"
|
||||||
#include "../include/Usb.h"
|
#include "include/Usb.h"
|
||||||
#include "checkm8_config.h"
|
#include "checkm8_config.h"
|
||||||
#include "ard_protocol.h"
|
#include "ard_protocol.h"
|
||||||
|
|
||||||
@@ -20,13 +20,10 @@ endforeach(NAME)
|
|||||||
add_subdirectory(pl)
|
add_subdirectory(pl)
|
||||||
|
|
||||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
||||||
add_custom_target(libpayload_sources # TODO: somehow only pass names that need to be udpated?
|
add_custom_command(OUTPUT ${PL_SRC_LONG}
|
||||||
DEPENDS ${PL_TARGETS}
|
DEPENDS ${PL_TARGETS}
|
||||||
BYPRODUCTS ${PL_SRC_LONG}
|
COMMAND python3 ${CMAKE_CURRENT_LIST_DIR}/scripts/librarize.py
|
||||||
COMMENT "running librarizer"
|
${CMAKE_CURRENT_BINARY_DIR}/pl/bin
|
||||||
COMMAND python3 ${CMAKE_CURRENT_LIST_DIR}/scripts/librarize.py
|
${CMAKE_CURRENT_BINARY_DIR}/lib)
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/pl/bin
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/lib)
|
|
||||||
|
|
||||||
add_library(payload ${PL_SRC_LONG})
|
add_library(payload ${PL_SRC_LONG})
|
||||||
add_dependencies(payload libpayload_sources)
|
|
||||||
@@ -13,11 +13,10 @@ set(CMAKE_C_FLAGS "-nostdlib -O")
|
|||||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||||
foreach(PL ${PL_NAMES_SHORT})
|
foreach(PL ${PL_NAMES_SHORT})
|
||||||
add_executable(payload_${PL} src/${PL}.c)
|
add_executable(payload_${PL} src/${PL}.c)
|
||||||
add_custom_command(TARGET payload_${PL} POST_BUILD
|
add_custom_command(TARGET payload_${PL} POST_BUILD
|
||||||
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/bin/payload_${PL}.bin
|
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/bin/payload_${PL}.bin
|
||||||
COMMENT "objcopying ${PL}"
|
COMMAND ${CMAKE_OBJCOPY}
|
||||||
COMMAND ${CMAKE_OBJCOPY}
|
ARGS -O binary -j .text -j .payload_text -j .payload_data
|
||||||
ARGS -O binary -j .text -j .payload_text -j .payload_data
|
${CMAKE_CURRENT_BINARY_DIR}/payload_${PL}
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/payload_${PL}
|
${CMAKE_CURRENT_BINARY_DIR}/bin/payload_${PL}.bin)
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/bin/payload_${PL}.bin)
|
|
||||||
endforeach(PL)
|
endforeach(PL)
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
import sys
|
import sys
|
||||||
from collections import defaultdict
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from collections import defaultdict
|
||||||
|
from operator import eq
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print('ffffffffffffffffff')
|
|
||||||
if len(sys.argv) < 3:
|
if len(sys.argv) < 3:
|
||||||
print('Usage: librarize.py [bin names ...] [lib dir]')
|
print('Usage: librarize.py [bin names ...] [lib dir]')
|
||||||
exit(1)
|
exit(1)
|
||||||
@@ -38,18 +39,33 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
for i, b in enumerate(fbytes):
|
for i, b in enumerate(fbytes):
|
||||||
if i % 16 == 0:
|
if i % 16 == 0:
|
||||||
source_lines[payload_name].append('\n\t\t')
|
source_lines[payload_name][-1] += '\n'
|
||||||
|
source_lines[payload_name].append('\t\t')
|
||||||
|
|
||||||
source_lines[payload_name][-1] += '0x%02x, ' % b
|
source_lines[payload_name][-1] += '0x%02x, ' % b
|
||||||
|
if i == len(fbytes) - 1:
|
||||||
|
source_lines[payload_name][-1] += '\n'
|
||||||
|
|
||||||
source_lines[payload_name].append('\n\t};\n')
|
source_lines[payload_name].append('\t};\n')
|
||||||
|
|
||||||
header_lines.append('\n')
|
header_lines.append('\n')
|
||||||
header_lines.append('#endif //CHECKM8_TOOL_LIBPAYLOAD_H\n')
|
header_lines.append('#endif //CHECKM8_TOOL_LIBPAYLOAD_H\n')
|
||||||
|
|
||||||
with open(lib_dir + '/libpayload.h', 'w+') as f:
|
files_updated = False
|
||||||
f.writelines(header_lines)
|
|
||||||
|
|
||||||
for sname, lines in source_lines.items():
|
for sname, lines in source_lines.items():
|
||||||
with open(lib_dir + '/' + sname + '.c', 'w+') as f:
|
sfname = lib_dir + '/' + sname + '.c'
|
||||||
|
|
||||||
|
if os.path.exists(sfname):
|
||||||
|
with open(sfname, 'r') as f:
|
||||||
|
old_lines = f.readlines()
|
||||||
|
|
||||||
|
if all(map(eq, lines, old_lines)):
|
||||||
|
continue
|
||||||
|
|
||||||
|
with open(sfname, 'w+') as f:
|
||||||
|
files_updated = True
|
||||||
f.writelines(lines)
|
f.writelines(lines)
|
||||||
|
|
||||||
|
if files_updated:
|
||||||
|
with open(lib_dir + '/libpayload.h', 'w+') as f:
|
||||||
|
f.writelines(header_lines)
|
||||||
Reference in New Issue
Block a user