CUDA с визуальной студией и cmake для конкретного проекта - PullRequest
0 голосов
/ 11 ноября 2018

Мне было интересно, как я могу создать решение 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, перечисленные на его странице свойств проекта.

...