1

我正在尝试创建一个柯南包(提示:名称包含正斜杠)作为构建后操作,如下所示:

    add_custom_command(
    TARGET ${PROJECT_NAME} POST_BUILD
    WORKING_DIRECTORY ${PROJECT_DIR}
    COMMAND conan export-pkg .. "gtest/1.10.0@shared/testing" -f -pr ${CONAN_PROFILE}
    COMMENT "Uploading conan package..."
    )

在 Linux/Ubuntu/WSL 上,这可以正常工作。

conan export-pkg . 'gtest/1.10.0@shared/testing' -f -pr './platforms/platform_linux-x86-clang/conan_profile/linux-x86-clang'

在 Windows 上,执行的命令如下所示:

conan export-pkg . 'gtest\1.10.0@shared\testing' -f -pr .\platforms\platform_win-x86-clang\conan_profile\win-x86-clang 

如何防止 cmake 将 / 替换为 \?有这个设置吗?

4

1 回答 1

2

您可以使用该file(TO_CMAKE_PATH "<path>" <variable>)命令。它强制path具有带/分隔符的格式。

在您的情况下,您必须gtest/1.10.0@shared/testing使用以下命令输入一个变量:

file(TO_CMAKE_PATH "gtest/1.10.0@shared/testing" GTEST_PATH)
file(TO_CMAKE_PATH ${CONAN_PROFILE} CONAN_PROFILE)

add_custom_command(
    TARGET ${PROJECT_NAME} POST_BUILD
    WORKING_DIRECTORY ${PROJECT_DIR}
    COMMAND conan export-pkg .. ${GTEST_PATH} -f -pr ${CONAN_PROFILE}
    COMMENT "Uploading conan package..."
)

于 2020-05-13T13:49:54.253 回答