我希望为我的项目中的不同文件夹设置各种编译器,这些编译器应该编译为共享库。
项目结构如下——
/Cuda
a.cu
b.cu
c.cu
header.cuh
/SYCL
a.cpp
b.cpp
c.cpp
header.h
main.cpp
test.cpp
Cuda 文件夹下的所有文件都必须由 nvcc 编译,SYCL 文件夹下的文件必须由系统路径中存在的特定编译器编译。这些文件夹之外的所有文件(即 main.cpp 和 test.cpp)都是普通的 C++ 代码,并使用这两个文件夹中的头文件,并且必须使用 GCC 编译。
我该如何为这样的项目结构(旨在成为共享库)编写 CMake。
编辑 - 项目不需要只有一个专用的 CMake。我的方法如下 -
- 每个文件夹(Cuda 和 SYCL)都可以有它们专用的 CmakeLists.txt,它会指定编译器和与之配套的各种标志。
- 文件夹外的主 CMake 可以使用该
add_subdirectory
命令。这就是我卡住的地方,我不确定下一步该怎么做,如何将这两个文件夹与主文件和测试文件链接起来。