2

我正在尝试使用 Biicode 使用 nana gui 库编译我的代码。 https://www.biicode.com/qiangwu/qiangwu/nana/master/0/biicode.conf

    # Biicode configuration file migrated from old config files

[requirements]
    qiangwu/nana: 0

[parent]

[paths]

[dependencies]
    include/nana/config.hpp + build/cmake/config.hpp
[mains]

[hooks]

[includes]

[data]

命令bii build 输出后为:

H:\na4\nana>bii build
INFO: Processing changes...
WARN: user/nana/biicode.conf, [dependencies] include/nana/config.hpp + build/cmake/config.hpp
        There are no files matching pattern include/nana/config.hpp
Building: "cmake" --build .

                BLOCK: qiangwu/nana
-----------------------------------------------------------
CMake Error at H:/na4/nana/bii/deps/qiangwu/nana/CMakeLists.txt:19 (list):
  list sub-command REMOVE_ITEM requires two or more arguments.


Error copying file (if different) from "H:/na4/nana/bii/deps/qiangwu/nana/build/cmake/config.hpp" to "H:/na4/nana/bii/deps/qiangwu/nana/include/nana/".
+ LIB: qiangwu_nana

                BLOCK: user/nana
-----------------------------------------------------------
+ LIB: user_nana
+ EXE: user_nana_main
-- Configuring incomplete, errors occurred!
See also "H:/na4/nana/bii/build/CMakeFiles/CMakeOutput.log".
See also "H:/na4/nana/bii/build/CMakeFiles/CMakeError.log".
mingw32-make.exe: *** [cmake_check_build_system] Error 1
ERROR: Build failed

CmakeLists.txt:

if(NOT BIICODE)
    project(nana)
    cmake_minimum_required(VERSION 2.8)
else()
    set(LIB_SRC ${BII_LIB_SRC})

    foreach(cpp ${BII_LIB_SRC})
        if(${cpp} MATCHES "(include/nana|source)/detail/[A-Za-z0-9_]+/.+$")
            list(APPEND trash_files ${cpp})
        endif()
    endforeach()

    list(REMOVE_ITEM BII_LIB_SRC ${trash_files})
endif()

第 19 行是:“列表(REMOVE_ITEM BII_LIB_SRC ${trash_files})”

4

2 回答 2

1

似乎它与 biicode 无关,但与 CMake 相关。您的${trash_files}变量实际上是空的,然后 REMOVE_ITEM 列表函数失败。在常规 CMakeLists.txt 中检查此代码:

SET(MY_VAR a b c)
SET(TRASH_FILES )
SET(MY_LIST a b c d)
foreach(cpp ${MY_VAR})
    if(${cpp} MATCHES d)
        list(APPEND trash_files ${cpp})
    endif()
endforeach()
list(REMOVE_ITEM MY_LIST ${trash_files})

如果您认为在此类操作中变量可能为空,请使用条件保护该代码:

if(trash_files)
    list(REMOVE_ITEM MY_LIST ${trash_files})
endif()
于 2015-04-11T23:44:48.667 回答
0

Resently 这是解决此问题的更新。

在 GitHub 中,您将需要使用分支开发

于 2015-04-15T16:25:16.337 回答