From cd3f6ee42e5c60d55b02e2bbad3db217c77e66ce Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 29 Oct 2021 11:54:43 +0300 Subject: [PATCH] build, cmake: add quotes for FW_UTIL variable arguments MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit CMake macro arguments are special, so when passing ${ZLIB_LIBRARIES} as an argument, this can actually be a list of strings. In this case, the first library (for zlib) will be added to TARGET_LINK_LIBRARIES() and the others will be discarded. This is likely due to some expansion from the FW_UTIL macro. So, if FindZLIB returns more libraries for linking, they will not be considered. This is the case when trying to change OPENSSL_CRYPTO_LIBRARY -> OPENSSL_CRYPTO_LIBRARIES. OPENSSL_CRYPTO_LIBRARY is just libcrypto.a OPENSSL_CRYPTO_LIBRARIES can also include -ldl There's a few points made here about macros: https://cmake.org/cmake/help/latest/command/macro.html#argument-caveats Signed-off-by: Alexandru Ardelean Reviewed-by: Petr Å tetiar --- CMakeLists.txt | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 556ec72..3e206a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,10 +18,10 @@ ADD_DEFINITIONS(-Wall -Wno-unused-parameter) MACRO(FW_UTIL util deps extra_cflags libs) ADD_EXECUTABLE(${util} src/${util}.c ${deps}) INSTALL(TARGETS ${util} RUNTIME) - IF(NOT ${ARGV2} STREQUAL "") + IF(NOT "${extra_cflags}" STREQUAL "") SET_TARGET_PROPERTIES(${util} PROPERTIES COMPILE_FLAGS ${extra_cflags}) ENDIF() - IF(NOT ${ARGV3} STREQUAL "") + IF(NOT "${libs}" STREQUAL "") TARGET_LINK_LIBRARIES(${util} ${libs}) ENDIF() ENDMACRO(FW_UTIL) @@ -42,9 +42,9 @@ FW_UTIL(encode_crc "" "" "") FW_UTIL(fix-u-media-header src/cyg_crc32.c "" "") FW_UTIL(hcsmakeimage src/bcmalgo.c "" "") FW_UTIL(imagetag "src/imagetag_cmdline.c;src/cyg_crc32.c" "" "") -FW_UTIL(jcgimage "" "" ${ZLIB_LIBRARIES}) +FW_UTIL(jcgimage "" "" "${ZLIB_LIBRARIES}") FW_UTIL(lxlfw "" "" "") -FW_UTIL(lzma2eva "" "" ${ZLIB_LIBRARIES}) +FW_UTIL(lzma2eva "" "" "${ZLIB_LIBRARIES}") FW_UTIL(makeamitbin "" "" "") FW_UTIL(mkbrncmdline "" "" "") FW_UTIL(mkbrnimg "" "" "") @@ -56,20 +56,20 @@ FW_UTIL(mkcsysimg "" "" "") FW_UTIL(mkdapimg "" "" "") FW_UTIL(mkdapimg2 "" "" "") FW_UTIL(mkdhpimg src/buffalo-lib.c "" "") -FW_UTIL(mkdlinkfw src/mkdlinkfw-lib.c --std=c99 ${ZLIB_LIBRARIES}) +FW_UTIL(mkdlinkfw src/mkdlinkfw-lib.c --std=c99 "${ZLIB_LIBRARIES}") FW_UTIL(mkdniimg "" "" "") FW_UTIL(mkedimaximg "" "" "") -FW_UTIL(mkfwimage "" "-Wextra -D_FILE_OFFSET_BITS=64" ${ZLIB_LIBRARIES}) -FW_UTIL(mkfwimage2 "" "" ${ZLIB_LIBRARIES}) -FW_UTIL(mkheader_gemtek "" "" ${ZLIB_LIBRARIES}) -FW_UTIL(mkhilinkfw "" "" ${OPENSSL_CRYPTO_LIBRARY}) +FW_UTIL(mkfwimage "" "-Wextra -D_FILE_OFFSET_BITS=64" "${ZLIB_LIBRARIES}") +FW_UTIL(mkfwimage2 "" "" "${ZLIB_LIBRARIES}") +FW_UTIL(mkheader_gemtek "" "" "${ZLIB_LIBRARIES}") +FW_UTIL(mkhilinkfw "" "" "${OPENSSL_CRYPTO_LIBRARY}") FW_UTIL(mkmerakifw src/sha1.c "" "") FW_UTIL(mkmerakifw-old "" "" "") FW_UTIL(mkmylofw "" "" "") FW_UTIL(mkplanexfw src/sha1.c "" "") FW_UTIL(mkporayfw "" "" "") FW_UTIL(mkrasimage "" --std=gnu99 "") -FW_UTIL(mkrtn56uimg "" "" ${ZLIB_LIBRARIES}) +FW_UTIL(mkrtn56uimg "" "" "${ZLIB_LIBRARIES}") FW_UTIL(mksenaofw src/md5.c --std=gnu99 "") FW_UTIL(mksercommfw "" "" "") FW_UTIL(mktitanimg "" "" "") @@ -96,8 +96,8 @@ FW_UTIL(tplink-safeloader src/md5.c --std=gnu99 "") FW_UTIL(trx "" "" "") FW_UTIL(trx2edips "" "" "") FW_UTIL(trx2usr "" "" "") -FW_UTIL(uimage_padhdr "" "" ${ZLIB_LIBRARIES}) -FW_UTIL(uimage_sgehdr "" "" ${ZLIB_LIBRARIES}) +FW_UTIL(uimage_padhdr "" "" "${ZLIB_LIBRARIES}") +FW_UTIL(uimage_sgehdr "" "" "${ZLIB_LIBRARIES}") FW_UTIL(wrt400n src/cyg_crc32.c "" "") FW_UTIL(xiaomifw "" "" "") FW_UTIL(xorimage "" "" "") -- 2.30.2