我想知道如何使用 CMake 3.13 用两个项目生成 Visual Studio 解决方案( vs 15 2017 Win64 )。其中一个项目(例如“ CUDA_Project”)是启用了CUDA语言支持的C ++项目,在项目属性页(即CUDA C / C ++和CUDA Linker)中也具有相关的CUDA属性。这是一个看起来像这样的示例:CUDA properties present。
而另一个项目(例如“ CXX_Project”)是一个C ++项目,没有CUDA语言支持,并且在其项目属性页中没有任何CUDA相关属性。以下是示例代码的示例:CUDA properties missing。
我如何实现该项目的分离?
我当前的简单测试设置如下所示。 “ src”是一个包含两个文件夹的根目录:“ CUDA_Project”和“ CXX_Project”。 “ src”目录还包含CMakeLists.txt
文件,该文件具有以下内容:
cmake_minimum_required(VERSION 3.13)
project(CMakeTest)
add_subdirectory(CUDA_Project)
add_subdirectory(CXX_Project)
子目录“ CUDA_Project”包含一个空的* .cpp文件“ CUDA_Empty.cpp”和一个CMakeLists.txt
文件:
cmake_minimum_required(VERSION 3.13)
project(CUDA_Project LANGUAGES CXX CUDA)
add_library(CUDA_Project SHARED CUDA_Empty.cpp)
子目录“ CXX_Project”包含一个空的* .cpp文件“ CXX_Empty.cpp”和一个CMakeLists.txt
文件:
cmake_minimum_required(VERSION 3.13)
project(CXX_Project LANGUAGES CXX)
add_library(CXX_Project SHARED CXX_Empty.cpp)
在“ src”目录上运行cmake会产生一个解决方案,如下图所示:produced solution
问题是,两个项目都启用了CUDA语言支持,两个项目的项目属性页中都列出了CUDA属性,如CUDA properties present所示,这不是期望的效果,就像我想的那样就像只有“ CUDA_Project”一样,在其项目属性页中列出了CUDA属性。