Я пытаюсь установить несколько флагов CXX в зависимости от типа процессора.
IF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DAMD64")
ELSE()
STRING(FIND ${CMAKE_SYSTEM_PROCESSOR} "86" 86_res)
IF(${86_res} EQUAL -1)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DIA32")
ENDIF()
STRING(FIND ${CMAKE_SYSTEM_PROCESSOR} "arm" arm_res)
IF(${arm_res} EQUAL -1)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DARM")
ENDIF()
ENDIF()
Но по какой-то причине CMAKE_SYSTEM_PROCESSOR пуст и не может выполнить сравнение STREQUAL. Почему это пусто?
Сейчас я установил это, запустив
EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR)
Но это не сработает в Windows, поэтому я не уверен, что мне здесь делать.