我们的东西是横向的CmakeFileList.txt file.它试图在ARM平台上构建IA32组件.我正在努力解决这个问题.
有问题的文件是从GLOB过滤掉的,其名称为rdrand.cpp:
list(REMOVE_ITEM cryptopp_SOURCES
...
${CMAKE_CURRENT_SOURCE_DIR}/rdrand.cpp
...
${cryptopp_SOURCES_TEST}
)
set(cryptopp_SOURCES
Run Code Online (Sandbox Code Playgroud)
现在我想重新加入rdrand,cppIA32平台.据与CMake的,锵和忍者在Windows上构建C++项目(不般配,但它有一些有用的信息)和CMakePlatformId.h.in,它看起来像我需要使用一个谓词ARCHITECTURE_ID和"X86","X32","X64"或者"x64"(不是DUP时, x是小写而不是大写).
这是我尝试创建谓词:
# http://github.com/weidai11/cryptopp/issues/419
if (${ARCHITECTURE_ID} == "X86" OR ${ARCHITECTURE_ID} == "X32" OR ${ARCHITECTURE_ID} == "X64" )
list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/rdrand.cpp)
endif()
Run Code Online (Sandbox Code Playgroud)
以下结果来自BeagleBoard和Cmake 3.5.2.无论是==,=,STREQUAL似乎工作:
CMake Error at CMakeLists.txt:310 (if):
if given arguments:
"==" "X86" "OR" "==" "X32" "OR" "==" "X64"
Unknown arguments specified …Run Code Online (Sandbox Code Playgroud)