Есть ли способ скомпилировать один и тот же исходный файл на двух разных языках за один прогон CMake? - PullRequest
0 голосов
/ 07 марта 2019

Я знаю, что название может показаться странным, но, пожалуйста, продолжайте читать.

Я разрабатываю программное обеспечение на C ++, основанное на библиотеке заголовков, которое можно скомпилировать для работы на x64 и CUDA.

В последние годы правильным способом создания исходного файла в CUDA является использование специального языка CMake CUDA, поэтому, если я хочу скомпилировать исполняемый файл в CUDA, я просто устанавливаю язык следующим образом:

set_property(SOURCE test.cpp PROPERTY LANGUAGE CUDA)

У меня есть модульные тесты, основанные на test.cpp, которые впоследствии могут быть скомпилированы либо на x64 на CUDA.

Пока что для построения тестов я запускаю CMake дважды - один раз для сборки версии x64, а другой (с другим флагом) для сборки версии CUDA.

Вопрос: есть ли шанс собрать обе версии моего теста (т. Е. X64 и CUDA), основанные на одних и тех же исходных файлах за один прогон CMake? Я знаю, что заставляю один CMake порождать другие CMake по аналогии с суперстройкой, но я не об этом спрашиваю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...