В моем проекте c ++ cmake я хочу, чтобы мой CMakeLists.txt и исходные файлы находились в разных местах.Как вы можете указать это для cmake?Я хочу знать это, потому что считаю, что имеет смысл отделить файлы сборки от исходных файлов.
В моем случае это для кроссплатформенного проекта.Я знаю, что обычно используют единственные условные конструкции CMakeLists.txt + верхнего уровня для обработки различных целей / платформ, но я планирую иметь разные файлы CMakeLists.txt для каждой платформы и получать их вдали от источников.Примерно так:
-my_project
-sources
-module1
-common.hpp
-common.cpp
-windows
-win_functions.cpp
-win_functions.hpp
-linux
-linux_functions.cpp
-linux_functions.hpp
-module2 (...)
-module3 (...)
-build_projects
-windows
-CMakeLists.txt
-linux
-CMakeLists.txt
Мне кажется, что это вопрос определения рабочего / исходного каталога нового cmake, но до сих пор у меня есть доступ к правильному расположению при добавлении исходных файлов, как в:
target_sources(my_target_windows PRIVATE ${win_source_dir}/win_functions.cpp)
Но проблема в том, что Visual Studio не позволяет мне предварительно просматривать исходные файлы при их добавлении таким образом, и, похоже, я не могу решить эту проблему и в CMakeSettings.json для Visual Studio.Поэтому я ищу более встроенную функцию для этого.