我希望这是一个简单的问题,我只是缺少一些基本的东西。
我试图使用CMake项目为嵌入式Cortex-M0目标模拟二进制构建管理器。我在确定如何为可执行目标的每个依赖项生成列表文件时遇到了一些麻烦。
当构建名为main.c
的文件时,当前构建系统将-Wa,-alh=.\CortexM0\ARM_GCC_493\Debug/main.lst
作为gcc的参数传递。我无法弄清楚如何让CMake使用当前文件名而不使用扩展名来保存文件。
我查看了get_filename_component命令,但它似乎只是获取输出的文件名:
add_executable(TestExe main.c)
get_filename_component(curr_name TestExe NAME_WM)
message(${curr_name})
正如预期的那样,这会打印TestExe
,而不是main
是否有一个简单的变量我忽略了我可以放入我的工具链文件中的-Wa,-alh=${CURR_SOURCE}.lst
CMAKE_C_FLAGS?或者其他一些我没见过的方法?
系统信息:
答案 0 :(得分:1)
您可以使用Expansion Rules并扩展CMAKE_C_COMPILE_OBJECT
:
calcPercent
但不幸的是
for path, dirs, filename in os.walk(rootDir): #omit files, loop through later
for dirname in dirs:
fullpath = os.path.join(path,dirname)
if "dcm" in dirname:
dcm.append(fullpath)
final = []
uni = 0
final.append(dcm[0])
for i in range(len(dcm)):
if len(os.listdir(dcm[i])) < 10:
pass
elif dcm[i][16:19] != final[uni][16:19]:
final.append(dcm[i])
uni += 1
tags = ((0x8, 0x70)),((0x8, 0x1090)), ((0x18, 0x1020))
values = []
printout = []
for p in range(len(final)):
file = os.path.join(final[p],os.listdir(final[p])[0])
ds = dicom.read_file(file)
printout.append([final[p]])
for k in range(len(tags)):
printout.append([ds[tags[k]]])
作为输出名称 脚注:在CMake生成的makefile项目中,如果只需要汇编文件,可以set(CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT} -Wa,-alh=<OBJECT>.lst")
或预处理文件main.c.o.lst
。