Мне было интересно, как я могу создать решение Visual Studio ( против 15 2017 Win64 ) с двумя проектами, использующими CMake 3.13 , так что один из projects (например, «CUDA_Project») - это проект C ++ с включенной поддержкой языка CUDA, который также имеет соответствующие свойства CUDA на странице свойств проекта (например, CUDA C / C ++ и CUDA Linker). Вот пример того, как это может выглядеть: присутствуют свойства CUDA .
Принимая во внимание, что другой проект (например, «CXX_Project») является проектом C ++ без поддержки языка CUDA и без каких-либо соответствующих свойств CUDA на странице свойств проекта. Вот пример того, как это может выглядеть: Свойства CUDA отсутствуют .
Как я могу добиться отделения этого проекта?
Моя текущая простая настройка теста выглядит следующим образом. «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)
Запуск cmake в каталоге «src» приводит к решению, как показано на следующем рисунке: произведенное решение
Проблема в том, что в обоих проектах включена поддержка языка CUDA, в обоих проектах свойства CUDA перечислены на их страницах свойств проекта, как показано в Присутствуют свойства CUDA , что не является желаемым эффектом. , поскольку я хотел бы, чтобы только «CUDA_Project» имел свойства CUDA, перечисленные на его странице свойств проекта.