我正在使用LLVM编译器来执行某些分析。我还有一个测试应用程序,我写过我使用CMake构建。我想分阶段编译测试应用程序:
llvm-link
将所有bitcode文件链接在一起。例如,如果我的程序test
包含3个文件,foo.c
,bar.c
和bar.h
:
Normal compilation:
clang -I. -c foo.c // generates foo.o
clang -I. -c bar.c // generates bar.o
ld -lc -lgcc -o test foo.o bar.o // links foo.o and bar.o
Bitcode compilation & linking:
clang -I. -c -emit-llvm foo.c // generates foo.bc
clang -I. -c -emit-llvm bar.c // generates bar.bc
llvm-link -o test.bc foo.bc bar.bc // links foo.bc and bar.bc
clang -I. -o test test.bc // generates test
正如我所说,我已经编写了CMake文件,可以正常构建和编译测试应用程序(即,在一个阶段)。
通过添加自定义命令和/或目标的某种组合,是否有可能实现这样的目标?或者我应该继续使用当前使用bash / Python脚本来运行此过程的方法吗?