* fbt: split sdk management code * scripts: fixed import handling * fbt: sdk: reformatted paths * scrips: dist: bundling libs as a build artifact * fbt: sdk: better path management * typo fix * fbt: sdk: minor path handling fixes * toolchain: fixed windows toolchain download * fbt: minor refactorin * fbt: moved sdk management code to extapps.scons * fbt: fixed sdk symbols header path; disabled -fstack-usage * fbt: changed pathing for .py scripts * fbt: changed SDK_HEADERS pathing; added libusb to SDK; added icon_i.h to SDK; added hw target to SDK meta * fbt: added libusb headers to SDK * picopass: include cleanup; api: added subghz/registry.h; api: added mbedtls to exported headers * picopass: fixed formatting * fbt: fixed COPRO_ASSETS_SCRIPT * sdk: added basic infrared apis * toolchain: added ufbt to list of legal fbtenv callers; updated error messages * fbt: changed manifest collection & icon processing code * fbt: simpler srcdir lookup * toolchain: path management fixes; fbt: fixes for fap private libs paths * scripts: toolchain: reworked download on Windows * toolchain: v17 * scripts: added colorlog for logging * Github: fix unit tests Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			114 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
Import("env")
 | 
						|
 | 
						|
wrapped_fn_list = [
 | 
						|
    #
 | 
						|
    # used by our firmware, so we provide their realizations
 | 
						|
    #
 | 
						|
    "fflush",
 | 
						|
    "printf",
 | 
						|
    "putc",  # fallback from printf, thanks gcc
 | 
						|
    "putchar",  # storage cli
 | 
						|
    "puts",  # fallback from printf, thanks gcc
 | 
						|
    "snprintf",
 | 
						|
    "vsnprintf",  # m-string
 | 
						|
    "__assert",  # ???
 | 
						|
    "__assert_func",  # ???
 | 
						|
    #
 | 
						|
    # wrap other functions to make sure they are not called
 | 
						|
    # realization is not provided
 | 
						|
    #
 | 
						|
    "setbuf",
 | 
						|
    "setvbuf",
 | 
						|
    "fprintf",
 | 
						|
    "vfprintf",
 | 
						|
    "vprintf",
 | 
						|
    "fputc",
 | 
						|
    "fputs",
 | 
						|
    "sprintf",  # specially, because this function is dangerous
 | 
						|
    "asprintf",
 | 
						|
    "vasprintf",
 | 
						|
    "asiprintf",
 | 
						|
    "asniprintf",
 | 
						|
    "asnprintf",
 | 
						|
    "diprintf",
 | 
						|
    "fiprintf",
 | 
						|
    "iprintf",
 | 
						|
    "siprintf",
 | 
						|
    "sniprintf",
 | 
						|
    "vasiprintf",
 | 
						|
    "vasniprintf",
 | 
						|
    "vasnprintf",
 | 
						|
    "vdiprintf",
 | 
						|
    "vfiprintf",
 | 
						|
    "viprintf",
 | 
						|
    "vsiprintf",
 | 
						|
    "vsniprintf",
 | 
						|
    #
 | 
						|
    # Scanf is not implemented 4 now
 | 
						|
    #
 | 
						|
    # "fscanf",
 | 
						|
    # "scanf",
 | 
						|
    # "sscanf",
 | 
						|
    # "vsprintf",
 | 
						|
    # "fgetc",
 | 
						|
    # "fgets",
 | 
						|
    # "getc",
 | 
						|
    # "getchar",
 | 
						|
    # "gets",
 | 
						|
    # "ungetc",
 | 
						|
    # "vfscanf",
 | 
						|
    # "vscanf",
 | 
						|
    # "vsscanf",
 | 
						|
    # "fiscanf",
 | 
						|
    # "iscanf",
 | 
						|
    # "siscanf",
 | 
						|
    # "vfiscanf",
 | 
						|
    # "viscanf",
 | 
						|
    # "vsiscanf",
 | 
						|
    #
 | 
						|
    # File management
 | 
						|
    #
 | 
						|
    # "fclose",
 | 
						|
    # "freopen",
 | 
						|
    # "fread",
 | 
						|
    # "fwrite",
 | 
						|
    # "fgetpos",
 | 
						|
    # "fseek",
 | 
						|
    # "fsetpos",
 | 
						|
    # "ftell",
 | 
						|
    # "rewind",
 | 
						|
    # "feof",
 | 
						|
    # "ferror",
 | 
						|
    # "fopen",
 | 
						|
    # "remove",
 | 
						|
    # "rename",
 | 
						|
    # "fseeko",
 | 
						|
    # "ftello",
 | 
						|
]
 | 
						|
 | 
						|
for wrapped_fn in wrapped_fn_list:
 | 
						|
    env.Append(
 | 
						|
        LINKFLAGS=[
 | 
						|
            "-Wl,--wrap," + wrapped_fn,
 | 
						|
            "-Wl,--wrap," + wrapped_fn + "_unlocked",
 | 
						|
            "-Wl,--wrap,_" + wrapped_fn + "_r",
 | 
						|
            "-Wl,--wrap,_" + wrapped_fn + "_unlocked_r",
 | 
						|
        ]
 | 
						|
    )
 | 
						|
 | 
						|
env.Append(
 | 
						|
    SDK_HEADERS=[
 | 
						|
        File("wrappers.h"),
 | 
						|
    ],
 | 
						|
)
 | 
						|
 | 
						|
libenv = env.Clone(FW_LIB_NAME="print")
 | 
						|
libenv.ApplyLibFlags()
 | 
						|
libenv.Append(CCFLAGS=["-Wno-double-promotion"])
 | 
						|
 | 
						|
sources = libenv.GlobRecursive("*.c*", ".")
 | 
						|
 | 
						|
lib = libenv.StaticLibrary("${FW_LIB_NAME}", sources)
 | 
						|
libenv.Install("${LIB_DIST_DIR}", lib)
 | 
						|
Return("lib")
 |