Sygmei / 11Zip

Dead simple zipping / unzipping C++ Lib
MIT License
92 stars 20 forks source link

CMake Error #28

Open RedactedProfile opened 10 months ago

RedactedProfile commented 10 months ago

Following the installation instructions of

add_subdirectory(
        vendor/elzip
)
target_link_libraries(docproc2 PRIVATE
        elzip
)

results in this outcome:

-- Fetching zlib https://github.com/madler/zlib master
CMake Error at vendor/elzip/extlibs/minizip/CMakeLists.txt:197 (add_subdirectory):
  The binary directory

    /home/kharrison/source/docproc-v2/cmake-build-debug/_deps/zlib-build

  is already used to build a source directory.  It cannot be used to build
  source directory

    /home/kharrison/source/docproc-v2/cmake-build-debug/_deps/zlib-src

  Specify a unique binary directory name.

I understand this is more to do with minizip at that point, but what does one advise to do when encountering this situation while installing this library?

Sygmei commented 10 months ago

Oh, interesting problem

Do you include zlib in your main project directly ? Do you happen to know why it doesn't trigger this condition ?

https://github.com/zlib-ng/minizip-ng/blob/cee6d8cbd4da70c48e9df1426607ff95b4f24fa6/CMakeLists.txt#L175

Monsterovich commented 1 month ago

I have a similar cmake error:

Клонирование в «11Zip»...
remote: Enumerating objects: 556, done.
remote: Counting objects: 100% (160/160), done.
remote: Compressing objects: 100% (90/90), done.
remote: Total 556 (delta 74), reused 106 (delta 60), pack-reused 396
Получение объектов: 100% (556/556), 1.15 МиБ | 5.14 МиБ/с, готово.
Определение изменений: 100% (217/217), готово.
Подмодуль «extlibs/minizip» (https://github.com/zlib-ng/minizip-ng.git) зарегистрирован по пути «extlibs/minizip»
Клонирование в «/home/monsterovich/Distfiles/projects/openjdk-downloader/11Zip/extlibs/minizip»...
remote: Enumerating objects: 3359, done.        
remote: Counting objects: 100% (3359/3359), done.        
remote: Compressing objects: 100% (1705/1705), done.        
remote: Total 3359 (delta 2745), reused 2077 (delta 1643), pack-reused 0        
Получение объектов: 100% (3359/3359), 2.79 МиБ | 7.79 МиБ/с, готово.
Определение изменений: 100% (2745/2745), готово.
Submodule path 'extlibs/minizip': checked out 'cee6d8cbd4da70c48e9df1426607ff95b4f24fa6'
CMake Warning:
  No source or binary directory provided.  Both will be assumed to be the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.

-- The C compiler identification is GNU 10.0.0
-- The CXX compiler identification is GNU 10.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/i686-w64-mingw32-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/i686-w64-mingw32-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CMake version 3.22.1
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - done
-- Looking for fseeko
-- Looking for fseeko - found
-- Fetching zlib https://github.com/madler/zlib master
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Renaming
--     /home/monsterovich/Distfiles/projects/openjdk-downloader/11Zip/extlibs/minizip/third-party/zlib/zconf.h
-- to 'zconf.h.included' because this file is included with zlib
-- but CMake generates it automatically in the build directory.
-- Using CryptoAPI
-- The following features have been enabled:

 * MZ_COMPAT, Enables compatibility layer
 * MZ_ZLIB, Enables ZLIB compression
 * MZ_FETCH_LIBS, Enables fetching third-party libraries if not found
 * MZ_PKCRYPT, Enables PKWARE traditional encryption
 * MZ_WZAES, Enables WinZIP AES encryption

-- The following features have been disabled:

 * MZ_BZIP2, Enables BZIP2 compression
 * MZ_LZMA, Enables LZMA & XZ compression
 * MZ_ZSTD, Enables ZSTD compression
 * MZ_LIBCOMP, Enables Apple compression
 * MZ_FORCE_FETCH_LIBS, Enables fetching third-party libraries always
 * MZ_OPENSSL, Enables OpenSSL for encryption
 * MZ_LIBBSD, Build with libbsd for crypto random
 * MZ_SIGNING, Enables zip signing support
 * MZ_ICONV, Enables iconv string encoding conversion library
 * MZ_COMPRESS_ONLY, Only support compression
 * MZ_DECOMPRESS_ONLY, Only support decompression
 * MZ_FILE32_API, Builds using posix 32-bit file api
 * MZ_BUILD_TESTS, Builds minizip test executable
 * MZ_BUILD_UNIT_TESTS, Builds minizip unit test project
 * MZ_BUILD_FUZZ_TESTS, Builds minizip fuzzer executables
 * MZ_CODE_COVERAGE, Builds with code coverage flags

-- Configuring done
CMake Error in extlibs/minizip/third-party/zlib/CMakeLists.txt:
  Target "zlibstatic" INTERFACE_INCLUDE_DIRECTORIES property contains path:

    "/home/monsterovich/Distfiles/projects/openjdk-downloader/11Zip/_deps/zlib-build"

  which is prefixed in the build directory.

CMake Error in extlibs/minizip/third-party/zlib/CMakeLists.txt:
  Target "zlibstatic" INTERFACE_INCLUDE_DIRECTORIES property contains path:

    "/home/monsterovich/Distfiles/projects/openjdk-downloader/11Zip/extlibs/minizip/third-party/zlib"

  which is prefixed in the build directory.

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.
[  2%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/adler32.c.obj
[  5%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/deflate.c.obj
[  8%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/gzlib.c.obj
[ 11%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/crc32.c.obj
[ 16%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/gzclose.c.obj
[ 19%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/compress.c.obj
[ 19%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/inflate.c.obj
[ 22%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/gzwrite.c.obj
[ 25%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/infback.c.obj
[ 27%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/inftrees.c.obj
[ 30%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/inffast.c.obj
[ 33%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/gzread.c.obj
[ 36%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/trees.c.obj
[ 38%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/uncompr.c.obj
[ 41%] Building C object _deps/zlib-build/CMakeFiles/zlibstatic.dir/zutil.c.obj
[ 44%] Linking C static library libzlibstatic.a
[ 44%] Built target zlibstatic
[ 50%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_strm.c.obj
[ 50%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_crypt.c.obj
[ 52%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_os.c.obj
[ 55%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_strm_mem.c.obj
[ 58%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_strm_split.c.obj
[ 61%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_strm_buf.c.obj
[ 63%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_strm_zlib.c.obj
[ 66%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_zip_rw.c.obj
[ 69%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_zip.c.obj
[ 75%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_os_win32.c.obj
[ 75%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_crypt_win32.c.obj
[ 77%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_strm_os_win32.c.obj
[ 83%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_compat.c.obj
[ 83%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_strm_pkcrypt.c.obj
[ 86%] Building C object extlibs/minizip/CMakeFiles/minizip.dir/mz_strm_wzaes.c.obj
[ 88%] Linking C static library libminizip.a
[ 88%] Built target minizip
[ 91%] Building CXX object CMakeFiles/elzip.dir/src/zipper.cpp.obj
[ 94%] Building CXX object CMakeFiles/elzip.dir/src/elzip.cpp.obj
[ 97%] Building CXX object CMakeFiles/elzip.dir/src/unzipper.cpp.obj
[100%] Linking CXX static library libelzip.a
[100%] Built target elzip
Done.