一、问题:CMake编译后,在不同的平台需要使用不同的文件,这里主要指的是不同的配置文件。
二、解决方法:
1. 手动修改:运营人员手动修改配置等。
2. 代码中写死:程序员在代码中判断平台,加载不同的配置文件。
3. 编译时判断平台,复制文件。
这里主要讲第三种方法。
三、CMake复制文件:
1. 编译前复制文件:调用shell命令
在CMakeLists.txt中加入如下语句:
if (${CMAKE_SYSTEM_NAME} STREQUAL "XXX平台") #XXX平台可以是“Linux”等
EXECUTE_PROCESS(COMMAND cp -f ${PROJECT_SOURCE_DIR}/config/xxxx1.config ${PROJECT_SOURCE_DIR}/config/xxxx2.config)
else()
EXECUTE_PROCESS(COMMAND cp -f ${PROJECT_SOURCE_DIR}/config/xxxx2.config ${PROJECT_SOURCE_DIR}/config/xxxx.config)
endif()
2. 安装时复制:使用install RENAME
在CMakeLists.txt中加入如下语句:
#copy corresponding config file to config directory when installing.
if (${CMAKE_SYSTEM_NAME} STREQUAL "XXX平台")
install(FILES config/xxxx1.config
DESTINATION ${PACKAGE_CONFIG_DESTINATION}
RENAME xxxx.config
)
else()
install(FILES config/xxxx2.config
DESTINATION ${PACKAGE_CONFIG_DESTINATION}
RENAME xxxx.config
)
endif()
install RENAME还可以用于发布的应用程序改名。
四、条条大路通罗马,按需取法。