How to using gui nana library with biicode

248 views Asked by At

I am trying to compile my code with nana gui library using Biicode. 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]

After command bii build Output is:

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()

Line 19 is : " list(REMOVE_ITEM BII_LIB_SRC ${trash_files})"

2

There are 2 answers

0
drodri On

It seems it is not biicode related, but CMake related. Your ${trash_files} variable is actually empty, and then the REMOVE_ITEM list function fails. Check this code in a regular 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 you think that a variable might be empty in such operations, protect that code with a conditional:

if(trash_files)
    list(REMOVE_ITEM MY_LIST ${trash_files})
endif()
0
qPCR4vir On

Resently it was an update addresing this.

In GitHub you will need to use the branch develop