Я (в основном )успешно настроил ExternalProject _Добавить для googletest. Однако я заметил, что такие вещи, как мой выбор компилятора C++, типа сборки и т. д., не перенаправляются автоматически в ExternalProject.
Я могу легко добавить любой заданный флаг, добавив его в CMAKE _ARGS при вызове ExternalProject _Добавить так:
CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
Однако для этого требуется, чтобы я перечислил все возможные аргументы, которые должны быть перенаправлены в вызов CMake googletests, и этот список довольно огромен. Мне также нужно будет создать такой же список для каждого другого внешнего проекта _, который я хочу добавить. Это кажется хрупким и подверженным ошибкам.
Есть ли способ сообщить CMake «переслать» конфигурацию, предоставленную пользователем? Другими словами, если бы я вызывал CMake как:
cmake <path-to-project> -DCMAKE_C_COMPILER=/usr/bin/clang -DSOME_RANDOM_FLAG=stuff
Затем я хотел бы, чтобы мой вызов ExternalProject _Add предоставил тот же выбор компилятора и значение для SOME_RANDOM_FLAG
, без необходимости явно перечислять эти имена. Я не уверен, что простая передача CMake ARGV сработает, так как
CC=/usr/bin/clang cmake <path-to-project>
в идеале тоже будет работать.
Любые мысли о том, как это сделать?