制作。根据体系结构定义项目语言 (CMAKE_SYSTEM_NAME)
cmake. define project languages according to architecture (CMAKE_SYSTEM_NAME)
我的项目定义需要根据体系结构(macOS 或 Windows)使用不同的语言集。
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
project(myProj CXX OBJC OBJCXX)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
project(myProj)
endif()
但是,看起来 CMAKE_SYSTEM_NAME 只是在项目命令之后定义的。
就像在这个示例代码中一样,只有第二条消息会显示有效的 arch。
message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
project(myProj)
message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
知道如何在定义项目之前获取 运行 arch 吗?
以下是您的意图:
project(myProj LANGUAGES NONE)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
enable_language(CXX)
enable_language(OBJC)
enable_language(OBJCXX)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
enable_language(C)
enable_language(CXX)
endif()
当然,这不会在其他系统上配置任何语言,这可能不是您想要的...
我的项目定义需要根据体系结构(macOS 或 Windows)使用不同的语言集。
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
project(myProj CXX OBJC OBJCXX)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
project(myProj)
endif()
但是,看起来 CMAKE_SYSTEM_NAME 只是在项目命令之后定义的。 就像在这个示例代码中一样,只有第二条消息会显示有效的 arch。
message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
project(myProj)
message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
知道如何在定义项目之前获取 运行 arch 吗?
以下是您的意图:
project(myProj LANGUAGES NONE)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
enable_language(CXX)
enable_language(OBJC)
enable_language(OBJCXX)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
enable_language(C)
enable_language(CXX)
endif()
当然,这不会在其他系统上配置任何语言,这可能不是您想要的...