Генерация 32-битных / 64-битных проектов Eclipse CDT с использованием CMake - PullRequest
4 голосов
/ 05 июля 2011

Я настраиваю проект C ++, который будет построен для 32-битных и 64-битных версий Windows и Ubuntu. Я использую CMake 2.8.4 и, поиграв с ним несколько часов, настроил 32-битные и 64-битные проекты VS2010. Проблема, с которой я столкнулся, состоит в том, что генератор для Eclipse на стороне Ubuntu (технически для генераторов Eclipse на всех платформах) не имеет отдельных версий для 32-битных / 64-битных.

Я понимаю, что есть переключатель компилятора GCC, чтобы указать, какой тип битов вы хотите (-m32, -m64), и я не против иметь отдельные решения, но когда я запускаю cmake в каталогах сборки, как мне это сделать? скажи, какой я хочу? Если встроенного способа нет, возможно ли передать пользовательскую переменную / значение, например BITTYPE=64, команде cmake? Таким образом, я мог бы обработать все остальное в файле CMakeLists.txt с помощью простого if / else.

1 Ответ

3 голосов
/ 05 июля 2011

Под Linux CMake просматривает флаги компилятора, чтобы определить, используете ли вы 32-битную или 64-битную компиляцию.Вы можете передать эту информацию, установив информацию CMAKE_C_FLAGS и CMAKE_CXX_FLAGS при запуске cmake:

cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32

Портативный способ определить, генерирует ли cmake 32-битный или 64-битный проект, -запросить переменную CMAKE_SIZEOF_VOID_P , например:

if (CMAKE_SIZEOF_VOID_P EQUAL 8)
   # 64-bit project
else()
   # 32-bit project
endif()
...