【问题标题】:Specify output name in biicode在 biicode 中指定输出名称
【发布时间】:2015-05-17 21:44:09
【问题描述】:

我有一个通过简单布局生成的项目。我的layout.bii:

cmake: bii/cmake
lib: bii/lib
build: bii/build

deps: bii/deps
auto-root-block: True

当我执行以下操作时...

bii cpp:configure -G "Visual Studio 12"
bii cpp:build

...它修改layout.bii在末尾添加这一行root-block: user/testsdl2

这似乎与auto-root-block 标志冲突,可能与我的问题有关。

我的问题:生成的文件是user_testsdl2_main.exe。如何指定“testsdl2.exe”之类的内容?

【问题讨论】:

    标签: biicode


    【解决方案1】:

    自动根块:真正的行为如下:

    • 如果项目根目录中有一个 biicode.conf 对应于主项目块,并带有 [parent] 部分,则块名称将取自其中。
    • 如果没有带有父级的biicode.conf,则块名称将自动从当前用户和项目文件夹名称中定义。更改其中任何一个,都应该重命名该块。

    重命名项目文件夹很简单,更改当前用户名只需:

    $ bii user myusername
    

    如果您想要特定的块名称,请写入 [父] 或禁用自动根块并手动写入根块。

    使用 CMake 更改可执行文件的输出名称很简单。添加到您的 CMakeLists.txt:

    ADD_BIICODE_TARGETS()
    SET_TARGET_PROPERTIES(${BII_main_TARGET} PROPERTIES OUTPUT_NAME testsdl2)
    

    实际的 tartet 名称将取决于包含 main() 函数的文件的路径,如果它在 src/myfile.cpp 中,则可执行目标名称将为 ${BII_src_myfile_TARGET}

    另一个提示,从 2.6.3 开始,您可以跳过 cpp:,只写 bii buildbii configure

    【讨论】:

    • 对不起,我想我不明白。为什么我要更改我的用户名来设置 exe 的名称?关于[父母],我不知道该放什么。 “。”? “testsdl2”?我收到一个错误,因为它需要用户/阻止我也尝试了你关于 CMakeLists.txt 的建议,但它没有任何区别。
    • 代码以块的形式组织。每个块称为“用户名/块”。内部带有 main() 函数的名为“main2.cpp”的文件将生成名为“username_block_main2”的可执行文件。这是为了在构建多个可执行文件时避免名称冲突。如果您在未注册的情况下运行(匿名),则该用户称为“用户”。要让 biicode 知道你想使用的注册用户,你可以使用“bii user wtjones”命令,然后将你的 [parent] 留空,第一次发布时它会自动命名为“wtjones/testsdl2”。你也可以写成“wtjones/testsdl2:-1”
    • 我能够使用您的 CMakeLists.txt 建议解决此问题,但该变量不是${BII_user_project_TARGET} 的形式,而是基于目录/源结构。对于我来说,它看起来像这样:SET_TARGET_PROPERTIES(${BII_src_main_TARGET} PROPERTIES OUTPUT_NAME testsdl2)。我dumped the cmake variables找到它。
    • 你说得对,感谢您的建议,我已经编辑了答案,还添加了关于目标名称的小说明。
    猜你喜欢
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    相关资源
    最近更新 更多