Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt 6.3.1 Cannot Find <directory>: Permission Denied
Forum Updated to NodeBB v4.3 + New Features

Qt 6.3.1 Cannot Find <directory>: Permission Denied

Scheduled Pinned Locked Moved Unsolved General and Desktop
10 Posts 4 Posters 2.4k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Simplexity
    wrote on last edited by
    #1

    Using Qt 6.3.1. Trying to build a github cloned libzip on windows 10. The CMakeLists.txt parses fine and have set the paths to the dependent zlib libraries and includes in the CMakeLists.txt file. I successfully build the zlib library in another Qt project without error.

    I simplified the path to D:/ctest, to ensure I wasn't making a typo, but I still get the permission denied error. I turned off the virus protection and rebooted the machine.

    Any ideas please?

    267d31d1-ca67-4557-bd4e-54bd3744db04-image.png

    Compilation output

    e82a4a0b-679c-4ee8-9978-54259121f27e-image.png

    1 Reply Last reply
    0
    • C Offline
      C Offline
      ChrisW67
      wrote on last edited by
      #2

      The error message tells you that D:/ctest does not exist. It is right: the path separator on Windows is the backslash d:\ctest. CMake is not a Qt application so does not automagically convert slashes for you.

      1 Reply Last reply
      0
      • S Offline
        S Offline
        Simplexity
        wrote on last edited by
        #3

        Thanks. If you use windows backslashes \ in the CMakeFiles.txt file, you get this error, when making:

        7e518190-c7b1-474a-a7c7-7dd6d2d61713-image.png

        Other posts previously alerted me, that I need to use forward slashes, even though I am on windows.

        1 Reply Last reply
        0
        • Christian EhrlicherC Offline
          Christian EhrlicherC Offline
          Christian Ehrlicher
          Lifetime Qt Champion
          wrote on last edited by
          #4

          It can be either 'C:\test' or 'C:/test'. But that's not the problem. Please show how you use those two cmake variables later on. You're doing something wrong there.

          Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
          Visit the Qt Academy at https://academy.qt.io/catalog

          S 1 Reply Last reply
          1
          • Christian EhrlicherC Christian Ehrlicher

            It can be either 'C:\test' or 'C:/test'. But that's not the problem. Please show how you use those two cmake variables later on. You're doing something wrong there.

            S Offline
            S Offline
            Simplexity
            wrote on last edited by
            #5

            @Christian-Ehrlicher

            Not sure if you wanted to see the CMakeLists.txt, but here is the compiler output:

            12:39:09: Running steps for project libzip...
            12:39:09: Starting: "D:\Qt\Tools\CMake_64\bin\cmake.exe" --build D:/c-repos/libzip-qt/build-libzip-Desktop_Qt_6_3_1_MinGW_64_bit-Debug --target all
            [1/20 4.3/sec] Generating zip_source_win32handle.html
            [2/20 8.5/sec] Generating zip_stat.html
            [3/20 12.5/sec] Generating zip_source_write.html
            [4/20 16.6/sec] Generating ziptool.html
            [5/20 20.7/sec] Generating zip_unchange.html
            [6/20 24.9/sec] Generating zip_unchange_all.html
            [7/20 29.0/sec] Generating zip_source_win32a.html
            [8/20 33.1/sec] Generating zipmerge.html
            [9/20 37.2/sec] Generating zip_unchange_archive.html
            [10/20 41.2/sec] Generating zipcmp.html
            [11/20 6.7/sec] Building C object examples/CMakeFiles/in-memory.dir/in-memory.c.obj
            [12/20 7.3/sec] Building C object src/CMakeFiles/zipcmp.dir/diff_output.c.obj
            [13/20 7.9/sec] Building C object src/CMakeFiles/zipmerge.dir/zipmerge.c.obj
            [14/20 8.5/sec] Building C object src/CMakeFiles/zipcmp.dir/zipcmp.c.obj
            [15/20 9.1/sec] Building C object src/CMakeFiles/ziptool.dir/ziptool.c.obj
            [16/20 6.9/sec] Linking C shared library lib\libzip.dll
            FAILED: lib/libzip.dll lib/libzip.dll.a
            cmd.exe /C "cd . && D:\Qt\Tools\mingw1120_64\bin\gcc.exe -g -shared -o lib\libzip.dll -Wl,--out-implib,lib\libzip.dll.a -Wl,--major-image-version,5,--minor-image-version,5 lib/CMakeFiles/zip.dir/zip_add.c.obj lib/CMakeFiles/zip.dir/zip_add_dir.c.obj lib/CMakeFiles/zip.dir/zip_add_entry.c.obj lib/CMakeFiles/zip.dir/zip_algorithm_deflate.c.obj lib/CMakeFiles/zip.dir/zip_buffer.c.obj lib/CMakeFiles/zip.dir/zip_close.c.obj lib/CMakeFiles/zip.dir/zip_delete.c.obj lib/CMakeFiles/zip.dir/zip_dir_add.c.obj lib/CMakeFiles/zip.dir/zip_dirent.c.obj lib/CMakeFiles/zip.dir/zip_discard.c.obj lib/CMakeFiles/zip.dir/zip_entry.c.obj lib/CMakeFiles/zip.dir/zip_error.c.obj lib/CMakeFiles/zip.dir/zip_error_clear.c.obj lib/CMakeFiles/zip.dir/zip_error_get.c.obj lib/CMakeFiles/zip.dir/zip_error_get_sys_type.c.obj lib/CMakeFiles/zip.dir/zip_error_strerror.c.obj lib/CMakeFiles/zip.dir/zip_error_to_str.c.obj lib/CMakeFiles/zip.dir/zip_extra_field.c.obj lib/CMakeFiles/zip.dir/zip_extra_field_api.c.obj lib/CMakeFiles/zip.dir/zip_fclose.c.obj lib/CMakeFiles/zip.dir/zip_fdopen.c.obj lib/CMakeFiles/zip.dir/zip_file_add.c.obj lib/CMakeFiles/zip.dir/zip_file_error_clear.c.obj lib/CMakeFiles/zip.dir/zip_file_error_get.c.obj lib/CMakeFiles/zip.dir/zip_file_get_comment.c.obj lib/CMakeFiles/zip.dir/zip_file_get_external_attributes.c.obj lib/CMakeFiles/zip.dir/zip_file_get_offset.c.obj lib/CMakeFiles/zip.dir/zip_file_rename.c.obj lib/CMakeFiles/zip.dir/zip_file_replace.c.obj lib/CMakeFiles/zip.dir/zip_file_set_comment.c.obj lib/CMakeFiles/zip.dir/zip_file_set_encryption.c.obj lib/CMakeFiles/zip.dir/zip_file_set_external_attributes.c.obj lib/CMakeFiles/zip.dir/zip_file_set_mtime.c.obj lib/CMakeFiles/zip.dir/zip_file_strerror.c.obj lib/CMakeFiles/zip.dir/zip_fopen.c.obj lib/CMakeFiles/zip.dir/zip_fopen_encrypted.c.obj lib/CMakeFiles/zip.dir/zip_fopen_index.c.obj lib/CMakeFiles/zip.dir/zip_fopen_index_encrypted.c.obj lib/CMakeFiles/zip.dir/zip_fread.c.obj lib/CMakeFiles/zip.dir/zip_fseek.c.obj lib/CMakeFiles/zip.dir/zip_ftell.c.obj lib/CMakeFiles/zip.dir/zip_get_archive_comment.c.obj lib/CMakeFiles/zip.dir/zip_get_archive_flag.c.obj lib/CMakeFiles/zip.dir/zip_get_encryption_implementation.c.obj lib/CMakeFiles/zip.dir/zip_get_file_comment.c.obj lib/CMakeFiles/zip.dir/zip_get_name.c.obj lib/CMakeFiles/zip.dir/zip_get_num_entries.c.obj lib/CMakeFiles/zip.dir/zip_get_num_files.c.obj lib/CMakeFiles/zip.dir/zip_hash.c.obj lib/CMakeFiles/zip.dir/zip_io_util.c.obj lib/CMakeFiles/zip.dir/zip_libzip_version.c.obj lib/CMakeFiles/zip.dir/zip_memdup.c.obj lib/CMakeFiles/zip.dir/zip_name_locate.c.obj lib/CMakeFiles/zip.dir/zip_new.c.obj lib/CMakeFiles/zip.dir/zip_open.c.obj lib/CMakeFiles/zip.dir/zip_pkware.c.obj lib/CMakeFiles/zip.dir/zip_progress.c.obj lib/CMakeFiles/zip.dir/zip_rename.c.obj lib/CMakeFiles/zip.dir/zip_replace.c.obj lib/CMakeFiles/zip.dir/zip_set_archive_comment.c.obj lib/CMakeFiles/zip.dir/zip_set_archive_flag.c.obj lib/CMakeFiles/zip.dir/zip_set_default_password.c.obj lib/CMakeFiles/zip.dir/zip_set_file_comment.c.obj lib/CMakeFiles/zip.dir/zip_set_file_compression.c.obj lib/CMakeFiles/zip.dir/zip_set_name.c.obj lib/CMakeFiles/zip.dir/zip_source_accept_empty.c.obj lib/CMakeFiles/zip.dir/zip_source_begin_write.c.obj lib/CMakeFiles/zip.dir/zip_source_begin_write_cloning.c.obj lib/CMakeFiles/zip.dir/zip_source_buffer.c.obj lib/CMakeFiles/zip.dir/zip_source_call.c.obj lib/CMakeFiles/zip.dir/zip_source_close.c.obj lib/CMakeFiles/zip.dir/zip_source_commit_write.c.obj lib/CMakeFiles/zip.dir/zip_source_compress.c.obj lib/CMakeFiles/zip.dir/zip_source_crc.c.obj lib/CMakeFiles/zip.dir/zip_source_error.c.obj lib/CMakeFiles/zip.dir/zip_source_file_common.c.obj lib/CMakeFiles/zip.dir/zip_source_file_stdio.c.obj lib/CMakeFiles/zip.dir/zip_source_free.c.obj lib/CMakeFiles/zip.dir/zip_source_function.c.obj lib/CMakeFiles/zip.dir/zip_source_get_file_attributes.c.obj lib/CMakeFiles/zip.dir/zip_source_is_deleted.c.obj lib/CMakeFiles/zip.dir/zip_source_layered.c.obj lib/CMakeFiles/zip.dir/zip_source_open.c.obj lib/CMakeFiles/zip.dir/zip_source_pkware_decode.c.obj lib/CMakeFiles/zip.dir/zip_source_pkware_encode.c.obj lib/CMakeFiles/zip.dir/zip_source_read.c.obj lib/CMakeFiles/zip.dir/zip_source_remove.c.obj lib/CMakeFiles/zip.dir/zip_source_rollback_write.c.obj lib/CMakeFiles/zip.dir/zip_source_seek.c.obj lib/CMakeFiles/zip.dir/zip_source_seek_write.c.obj lib/CMakeFiles/zip.dir/zip_source_stat.c.obj lib/CMakeFiles/zip.dir/zip_source_supports.c.obj lib/CMakeFiles/zip.dir/zip_source_tell.c.obj lib/CMakeFiles/zip.dir/zip_source_tell_write.c.obj lib/CMakeFiles/zip.dir/zip_source_window.c.obj lib/CMakeFiles/zip.dir/zip_source_write.c.obj lib/CMakeFiles/zip.dir/zip_source_zip.c.obj lib/CMakeFiles/zip.dir/zip_source_zip_new.c.obj lib/CMakeFiles/zip.dir/zip_stat.c.obj lib/CMakeFiles/zip.dir/zip_stat_index.c.obj lib/CMakeFiles/zip.dir/zip_stat_init.c.obj lib/CMakeFiles/zip.dir/zip_strerror.c.obj lib/CMakeFiles/zip.dir/zip_string.c.obj lib/CMakeFiles/zip.dir/zip_unchange.c.obj lib/CMakeFiles/zip.dir/zip_unchange_all.c.obj lib/CMakeFiles/zip.dir/zip_unchange_archive.c.obj lib/CMakeFiles/zip.dir/zip_unchange_data.c.obj lib/CMakeFiles/zip.dir/zip_utf-8.c.obj lib/CMakeFiles/zip.dir/zip_err_str.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32_named.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32_utf16.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32_utf8.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32_ansi.c.obj lib/CMakeFiles/zip.dir/zip_random_win32.c.obj lib/CMakeFiles/zip.dir/zip_crypto_win.c.obj lib/CMakeFiles/zip.dir/zip_winzip_aes.c.obj lib/CMakeFiles/zip.dir/zip_source_winzip_aes_decode.c.obj lib/CMakeFiles/zip.dir/zip_source_winzip_aes_encode.c.obj -ladvapi32 -lbcrypt D:/ctest -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
            D:/Qt/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find D:/ctest: Permission denied
            collect2.exe: error: ld returned 1 exit status
            ninja: build stopped: subcommand failed.
            12:39:12: The process "D:\Qt\Tools\CMake_64\bin\cmake.exe" exited with code 1.
            Error while building/deploying project libzip (kit: Desktop Qt 6.3.1 MinGW 64-bit)
            When executing step "Build"
            12:39:12: Elapsed time: 00:03.

            S 1 Reply Last reply
            0
            • S Offline
              S Offline
              Simplexity
              wrote on last edited by
              #6

              A problem seems to be with my setting the ZLIB_LIBRARY path to D:/something, because if I set it to /ctest, then I get a ninja error:
              ctest needed by lib/libzip.dll, missing and no known rule to make it:

              5e86e935-079b-4cc9-8b22-d6b13e8ccde1-image.png

              1 Reply Last reply
              0
              • S Simplexity

                @Christian-Ehrlicher

                Not sure if you wanted to see the CMakeLists.txt, but here is the compiler output:

                12:39:09: Running steps for project libzip...
                12:39:09: Starting: "D:\Qt\Tools\CMake_64\bin\cmake.exe" --build D:/c-repos/libzip-qt/build-libzip-Desktop_Qt_6_3_1_MinGW_64_bit-Debug --target all
                [1/20 4.3/sec] Generating zip_source_win32handle.html
                [2/20 8.5/sec] Generating zip_stat.html
                [3/20 12.5/sec] Generating zip_source_write.html
                [4/20 16.6/sec] Generating ziptool.html
                [5/20 20.7/sec] Generating zip_unchange.html
                [6/20 24.9/sec] Generating zip_unchange_all.html
                [7/20 29.0/sec] Generating zip_source_win32a.html
                [8/20 33.1/sec] Generating zipmerge.html
                [9/20 37.2/sec] Generating zip_unchange_archive.html
                [10/20 41.2/sec] Generating zipcmp.html
                [11/20 6.7/sec] Building C object examples/CMakeFiles/in-memory.dir/in-memory.c.obj
                [12/20 7.3/sec] Building C object src/CMakeFiles/zipcmp.dir/diff_output.c.obj
                [13/20 7.9/sec] Building C object src/CMakeFiles/zipmerge.dir/zipmerge.c.obj
                [14/20 8.5/sec] Building C object src/CMakeFiles/zipcmp.dir/zipcmp.c.obj
                [15/20 9.1/sec] Building C object src/CMakeFiles/ziptool.dir/ziptool.c.obj
                [16/20 6.9/sec] Linking C shared library lib\libzip.dll
                FAILED: lib/libzip.dll lib/libzip.dll.a
                cmd.exe /C "cd . && D:\Qt\Tools\mingw1120_64\bin\gcc.exe -g -shared -o lib\libzip.dll -Wl,--out-implib,lib\libzip.dll.a -Wl,--major-image-version,5,--minor-image-version,5 lib/CMakeFiles/zip.dir/zip_add.c.obj lib/CMakeFiles/zip.dir/zip_add_dir.c.obj lib/CMakeFiles/zip.dir/zip_add_entry.c.obj lib/CMakeFiles/zip.dir/zip_algorithm_deflate.c.obj lib/CMakeFiles/zip.dir/zip_buffer.c.obj lib/CMakeFiles/zip.dir/zip_close.c.obj lib/CMakeFiles/zip.dir/zip_delete.c.obj lib/CMakeFiles/zip.dir/zip_dir_add.c.obj lib/CMakeFiles/zip.dir/zip_dirent.c.obj lib/CMakeFiles/zip.dir/zip_discard.c.obj lib/CMakeFiles/zip.dir/zip_entry.c.obj lib/CMakeFiles/zip.dir/zip_error.c.obj lib/CMakeFiles/zip.dir/zip_error_clear.c.obj lib/CMakeFiles/zip.dir/zip_error_get.c.obj lib/CMakeFiles/zip.dir/zip_error_get_sys_type.c.obj lib/CMakeFiles/zip.dir/zip_error_strerror.c.obj lib/CMakeFiles/zip.dir/zip_error_to_str.c.obj lib/CMakeFiles/zip.dir/zip_extra_field.c.obj lib/CMakeFiles/zip.dir/zip_extra_field_api.c.obj lib/CMakeFiles/zip.dir/zip_fclose.c.obj lib/CMakeFiles/zip.dir/zip_fdopen.c.obj lib/CMakeFiles/zip.dir/zip_file_add.c.obj lib/CMakeFiles/zip.dir/zip_file_error_clear.c.obj lib/CMakeFiles/zip.dir/zip_file_error_get.c.obj lib/CMakeFiles/zip.dir/zip_file_get_comment.c.obj lib/CMakeFiles/zip.dir/zip_file_get_external_attributes.c.obj lib/CMakeFiles/zip.dir/zip_file_get_offset.c.obj lib/CMakeFiles/zip.dir/zip_file_rename.c.obj lib/CMakeFiles/zip.dir/zip_file_replace.c.obj lib/CMakeFiles/zip.dir/zip_file_set_comment.c.obj lib/CMakeFiles/zip.dir/zip_file_set_encryption.c.obj lib/CMakeFiles/zip.dir/zip_file_set_external_attributes.c.obj lib/CMakeFiles/zip.dir/zip_file_set_mtime.c.obj lib/CMakeFiles/zip.dir/zip_file_strerror.c.obj lib/CMakeFiles/zip.dir/zip_fopen.c.obj lib/CMakeFiles/zip.dir/zip_fopen_encrypted.c.obj lib/CMakeFiles/zip.dir/zip_fopen_index.c.obj lib/CMakeFiles/zip.dir/zip_fopen_index_encrypted.c.obj lib/CMakeFiles/zip.dir/zip_fread.c.obj lib/CMakeFiles/zip.dir/zip_fseek.c.obj lib/CMakeFiles/zip.dir/zip_ftell.c.obj lib/CMakeFiles/zip.dir/zip_get_archive_comment.c.obj lib/CMakeFiles/zip.dir/zip_get_archive_flag.c.obj lib/CMakeFiles/zip.dir/zip_get_encryption_implementation.c.obj lib/CMakeFiles/zip.dir/zip_get_file_comment.c.obj lib/CMakeFiles/zip.dir/zip_get_name.c.obj lib/CMakeFiles/zip.dir/zip_get_num_entries.c.obj lib/CMakeFiles/zip.dir/zip_get_num_files.c.obj lib/CMakeFiles/zip.dir/zip_hash.c.obj lib/CMakeFiles/zip.dir/zip_io_util.c.obj lib/CMakeFiles/zip.dir/zip_libzip_version.c.obj lib/CMakeFiles/zip.dir/zip_memdup.c.obj lib/CMakeFiles/zip.dir/zip_name_locate.c.obj lib/CMakeFiles/zip.dir/zip_new.c.obj lib/CMakeFiles/zip.dir/zip_open.c.obj lib/CMakeFiles/zip.dir/zip_pkware.c.obj lib/CMakeFiles/zip.dir/zip_progress.c.obj lib/CMakeFiles/zip.dir/zip_rename.c.obj lib/CMakeFiles/zip.dir/zip_replace.c.obj lib/CMakeFiles/zip.dir/zip_set_archive_comment.c.obj lib/CMakeFiles/zip.dir/zip_set_archive_flag.c.obj lib/CMakeFiles/zip.dir/zip_set_default_password.c.obj lib/CMakeFiles/zip.dir/zip_set_file_comment.c.obj lib/CMakeFiles/zip.dir/zip_set_file_compression.c.obj lib/CMakeFiles/zip.dir/zip_set_name.c.obj lib/CMakeFiles/zip.dir/zip_source_accept_empty.c.obj lib/CMakeFiles/zip.dir/zip_source_begin_write.c.obj lib/CMakeFiles/zip.dir/zip_source_begin_write_cloning.c.obj lib/CMakeFiles/zip.dir/zip_source_buffer.c.obj lib/CMakeFiles/zip.dir/zip_source_call.c.obj lib/CMakeFiles/zip.dir/zip_source_close.c.obj lib/CMakeFiles/zip.dir/zip_source_commit_write.c.obj lib/CMakeFiles/zip.dir/zip_source_compress.c.obj lib/CMakeFiles/zip.dir/zip_source_crc.c.obj lib/CMakeFiles/zip.dir/zip_source_error.c.obj lib/CMakeFiles/zip.dir/zip_source_file_common.c.obj lib/CMakeFiles/zip.dir/zip_source_file_stdio.c.obj lib/CMakeFiles/zip.dir/zip_source_free.c.obj lib/CMakeFiles/zip.dir/zip_source_function.c.obj lib/CMakeFiles/zip.dir/zip_source_get_file_attributes.c.obj lib/CMakeFiles/zip.dir/zip_source_is_deleted.c.obj lib/CMakeFiles/zip.dir/zip_source_layered.c.obj lib/CMakeFiles/zip.dir/zip_source_open.c.obj lib/CMakeFiles/zip.dir/zip_source_pkware_decode.c.obj lib/CMakeFiles/zip.dir/zip_source_pkware_encode.c.obj lib/CMakeFiles/zip.dir/zip_source_read.c.obj lib/CMakeFiles/zip.dir/zip_source_remove.c.obj lib/CMakeFiles/zip.dir/zip_source_rollback_write.c.obj lib/CMakeFiles/zip.dir/zip_source_seek.c.obj lib/CMakeFiles/zip.dir/zip_source_seek_write.c.obj lib/CMakeFiles/zip.dir/zip_source_stat.c.obj lib/CMakeFiles/zip.dir/zip_source_supports.c.obj lib/CMakeFiles/zip.dir/zip_source_tell.c.obj lib/CMakeFiles/zip.dir/zip_source_tell_write.c.obj lib/CMakeFiles/zip.dir/zip_source_window.c.obj lib/CMakeFiles/zip.dir/zip_source_write.c.obj lib/CMakeFiles/zip.dir/zip_source_zip.c.obj lib/CMakeFiles/zip.dir/zip_source_zip_new.c.obj lib/CMakeFiles/zip.dir/zip_stat.c.obj lib/CMakeFiles/zip.dir/zip_stat_index.c.obj lib/CMakeFiles/zip.dir/zip_stat_init.c.obj lib/CMakeFiles/zip.dir/zip_strerror.c.obj lib/CMakeFiles/zip.dir/zip_string.c.obj lib/CMakeFiles/zip.dir/zip_unchange.c.obj lib/CMakeFiles/zip.dir/zip_unchange_all.c.obj lib/CMakeFiles/zip.dir/zip_unchange_archive.c.obj lib/CMakeFiles/zip.dir/zip_unchange_data.c.obj lib/CMakeFiles/zip.dir/zip_utf-8.c.obj lib/CMakeFiles/zip.dir/zip_err_str.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32_named.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32_utf16.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32_utf8.c.obj lib/CMakeFiles/zip.dir/zip_source_file_win32_ansi.c.obj lib/CMakeFiles/zip.dir/zip_random_win32.c.obj lib/CMakeFiles/zip.dir/zip_crypto_win.c.obj lib/CMakeFiles/zip.dir/zip_winzip_aes.c.obj lib/CMakeFiles/zip.dir/zip_source_winzip_aes_decode.c.obj lib/CMakeFiles/zip.dir/zip_source_winzip_aes_encode.c.obj -ladvapi32 -lbcrypt D:/ctest -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
                D:/Qt/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find D:/ctest: Permission denied
                collect2.exe: error: ld returned 1 exit status
                ninja: build stopped: subcommand failed.
                12:39:12: The process "D:\Qt\Tools\CMake_64\bin\cmake.exe" exited with code 1.
                Error while building/deploying project libzip (kit: Desktop Qt 6.3.1 MinGW 64-bit)
                When executing step "Build"
                12:39:12: Elapsed time: 00:03.

                S Offline
                S Offline
                SimonSchroeder
                wrote on last edited by
                #7

                @Simplexity said in Qt 6.3.1 Cannot Find <directory>: Permission Denied:

                cmd.exe /C "cd . && D:\Qt\Tools\mingw1120_64\bin\gcc.exe -g -shared -o lib\libzip.dll -Wl,--out-implib,lib\libzip.dll.a -Wl,--major-image-version,5,--minor-image-version,5 [lib/CMakeFiles/zip.dir/*.obj] -ladvapi32 -lbcrypt D:/ctest -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."

                This command only shows D:/ctest which tells the linker to link to a file ctest in the directory D:/. What you need instead is -LD:/ctest. Please provide the full CMakeLists.txt (as text, not as screenshot!) so we can figure out why this problem occurs in the generated command.

                S 1 Reply Last reply
                3
                • S SimonSchroeder

                  @Simplexity said in Qt 6.3.1 Cannot Find <directory>: Permission Denied:

                  cmd.exe /C "cd . && D:\Qt\Tools\mingw1120_64\bin\gcc.exe -g -shared -o lib\libzip.dll -Wl,--out-implib,lib\libzip.dll.a -Wl,--major-image-version,5,--minor-image-version,5 [lib/CMakeFiles/zip.dir/*.obj] -ladvapi32 -lbcrypt D:/ctest -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."

                  This command only shows D:/ctest which tells the linker to link to a file ctest in the directory D:/. What you need instead is -LD:/ctest. Please provide the full CMakeLists.txt (as text, not as screenshot!) so we can figure out why this problem occurs in the generated command.

                  S Offline
                  S Offline
                  Simplexity
                  wrote on last edited by
                  #8

                  @SimonSchroeder

                  Many thanks, here is the CMakeLists.txt I am using. It is the current version from https://github.com/nih-at/libzip, where I have added the CMake set commands to set the ZLIB variables.


                  cmake_minimum_required(VERSION 3.0.2)

                  #set(ZLIB_LIBRARY "D:/c-repos/zlib-qt/build-zlib-Desktop_Qt_6_3_1_MinGW_64_bit-Debug")
                  #set(ZLIB_INCLUDE_DIR "D:/c-repos/zlib-qt/build-zlib-Desktop_Qt_6_3_1_MinGW_64_bit-Debug")

                  #set(ZLIB_LIBRARY "D:/ctest")
                  #set(ZLIB_INCLUDE_DIR "D:/ctest")

                  set(ZLIB_LIBRARY ctest)
                  set(ZLIB_INCLUDE_DIR ctest)

                  list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
                  if (${CMAKE_VERSION} VERSION_LESS "3.17.0")
                  list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-compat)
                  endif()

                  project(libzip
                  VERSION 1.9.2
                  LANGUAGES C)

                  option(ENABLE_COMMONCRYPTO "Enable use of CommonCrypto" ON)
                  option(ENABLE_GNUTLS "Enable use of GnuTLS" ON)
                  option(ENABLE_MBEDTLS "Enable use of mbed TLS" ON)
                  option(ENABLE_OPENSSL "Enable use of OpenSSL" ON)
                  option(ENABLE_WINDOWS_CRYPTO "Enable use of Windows cryptography libraries" ON)

                  option(ENABLE_BZIP2 "Enable use of BZip2" ON)
                  option(ENABLE_LZMA "Enable use of LZMA" ON)
                  option(ENABLE_ZSTD "Enable use of Zstandard" ON)

                  option(BUILD_TOOLS "Build tools in the src directory (zipcmp, zipmerge, ziptool)" ON)
                  option(BUILD_REGRESS "Build regression tests" ON)
                  option(BUILD_EXAMPLES "Build examples" ON)
                  option(BUILD_DOC "Build documentation" ON)

                  include(CheckFunctionExists)
                  include(CheckIncludeFiles)
                  include(CheckLibraryExists)
                  include(CheckSymbolExists)
                  include(CheckTypeSize)
                  include(CheckCSourceRuns)
                  include(CheckCSourceCompiles)
                  include(CheckStructHasMember)
                  include(TestBigEndian)
                  include(GNUInstallDirs)

                  if(ENABLE_COMMONCRYPTO)
                  check_include_files(CommonCrypto/CommonCrypto.h COMMONCRYPTO_FOUND)
                  endif()
                  if(ENABLE_GNUTLS)
                  find_package(Nettle 3.0)
                  find_package(GnuTLS)
                  endif()
                  if(ENABLE_MBEDTLS)
                  find_package(MbedTLS 1.0)
                  endif()
                  if(ENABLE_OPENSSL)
                  find_package(OpenSSL)
                  endif()
                  if(WIN32)
                  if(ENABLE_WINDOWS_CRYPTO)
                  set(WINDOWS_CRYPTO_FOUND TRUE)
                  endif()
                  endif()

                  option(BUILD_SHARED_LIBS "Build shared libraries" ON)
                  option(LIBZIP_DO_INSTALL "Install libzip and the related files" ON)

                  option(SHARED_LIB_VERSIONNING "Add SO version in .so build" ON)

                  find_program(MDOCTOOL NAMES mandoc groff)
                  if (MDOCTOOL)
                  set(DOCUMENTATION_FORMAT "mdoc" CACHE STRING "Documentation format")
                  else()
                  find_program(MANTOOL NAMES nroff)
                  if (MANTOOL)
                  set(DOCUMENTATION_FORMAT "man" CACHE STRING "Documentation format")
                  else()
                  set(DOCUMENTATION_FORMAT "html" CACHE STRING "Documentation format")
                  endif()
                  endif()

                  include(Dist)
                  Dist(${CMAKE_PROJECT_NAME}-${CMAKE_PROJECT_VERSION})

                  #ADD_CUSTOM_TARGET(uninstall

                  COMMAND cat ${PROJECT_BINARY_DIR}/install_manifest.txt | xargs rm

                  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}

                  )

                  if(BUILD_SHARED_LIBS)
                  set(HAVE_SHARED TRUE)
                  else()
                  set(ZIP_STATIC TRUE)
                  endif()

                  Checks

                  check_function_exists(_close HAVE__CLOSE)
                  check_function_exists(_dup HAVE__DUP)
                  check_function_exists(_fdopen HAVE__FDOPEN)
                  check_function_exists(_fileno HAVE__FILENO)
                  check_function_exists(_setmode HAVE__SETMODE)
                  check_symbol_exists(_snprintf stdio.h HAVE__SNPRINTF)
                  check_function_exists(_strdup HAVE__STRDUP)
                  check_symbol_exists(_stricmp string.h HAVE__STRICMP)
                  check_function_exists(_strtoi64 HAVE__STRTOI64)
                  check_function_exists(_strtoui64 HAVE__STRTOUI64)
                  check_function_exists(_unlink HAVE__UNLINK)
                  check_function_exists(arc4random HAVE_ARC4RANDOM)
                  check_function_exists(clonefile HAVE_CLONEFILE)
                  check_function_exists(explicit_bzero HAVE_EXPLICIT_BZERO)
                  check_function_exists(explicit_memset HAVE_EXPLICIT_MEMSET)
                  check_function_exists(fchmod HAVE_FCHMOD)
                  check_function_exists(fileno HAVE_FILENO)
                  check_function_exists(fseeko HAVE_FSEEKO)
                  check_function_exists(ftello HAVE_FTELLO)
                  check_function_exists(getprogname HAVE_GETPROGNAME)
                  check_function_exists(localtime_r HAVE_LOCALTIME_R)
                  check_function_exists(setmode HAVE_SETMODE)
                  check_symbol_exists(snprintf stdio.h HAVE_SNPRINTF)
                  check_symbol_exists(strcasecmp strings.h HAVE_STRCASECMP)
                  check_function_exists(strdup HAVE_STRDUP)
                  check_function_exists(stricmp HAVE_STRICMP)
                  check_function_exists(strtoll HAVE_STRTOLL)
                  check_function_exists(strtoull HAVE_STRTOULL)

                  check_include_files("sys/types.h;sys/stat.h;fts.h" HAVE_FTS_H)

                  fts functions may be in external library

                  if(HAVE_FTS_H)
                  check_function_exists(fts_open HAVE_FTS_OPEN)
                  if(NOT HAVE_FTS_OPEN)
                  check_library_exists(fts fts_open "" HAVE_LIB_FTS)
                  else(NOT HAVE_FTS_OPEN)
                  set(HAVE_LIB_FTS "" CACHE INTERNAL "")
                  endif(NOT HAVE_FTS_OPEN)
                  else(HAVE_FTS_H)
                  set(HAVE_LIB_FTS "" CACHE INTERNAL "")
                  endif(HAVE_FTS_H)

                  if(HAVE_LIB_FTS)
                  set(FTS_LIB fts CACHE INTERNAL "")
                  else()
                  set(FTS_LIB "" CACHE INTERNAL "")
                  endif()

                  check_include_files(stdbool.h HAVE_STDBOOL_H)
                  check_include_files(strings.h HAVE_STRINGS_H)
                  check_include_files(unistd.h HAVE_UNISTD_H)

                  check_include_files(inttypes.h HAVE_INTTYPES_H_LIBZIP)
                  check_include_files(stdint.h HAVE_STDINT_H_LIBZIP)
                  check_include_files(sys/types.h HAVE_SYS_TYPES_H_LIBZIP)

                  TODO: fix test

                  this test does not find __progname even when it exists

                  #check_symbol_exists(__progname stdlib.h HAVE___PROGNAME)

                  check_type_size(__int8 __INT8_LIBZIP)
                  check_type_size(int8_t INT8_T_LIBZIP)
                  check_type_size(uint8_t UINT8_T_LIBZIP)
                  check_type_size(__int16 __INT16_LIBZIP)
                  check_type_size(int16_t INT16_T_LIBZIP)
                  check_type_size(uint16_t UINT16_T_LIBZIP)
                  check_type_size(__int32 __INT32_LIBZIP)
                  check_type_size(int32_t INT32_T_LIBZIP)
                  check_type_size(uint32_t UINT32_T_LIBZIP)
                  check_type_size(__int64 __INT64_LIBZIP)
                  check_type_size(int64_t INT64_T_LIBZIP)
                  check_type_size(uint64_t UINT64_T_LIBZIP)
                  check_type_size("short" SHORT_LIBZIP)
                  check_type_size("int" INT_LIBZIP)
                  check_type_size("long" LONG_LIBZIP)
                  check_type_size("long long" LONG_LONG_LIBZIP)
                  check_type_size("off_t" SIZEOF_OFF_T)
                  check_type_size("size_t" SIZEOF_SIZE_T)

                  check_c_source_compiles("#include <sys/ioctl.h>
                  #include <linux/fs.h>
                  int main(int argc, char *argv[]) { unsigned long x = FICLONERANGE; }" HAVE_FICLONERANGE)

                  check_c_source_compiles("
                  int foo(char * _Nullable bar);
                  int main(int argc, char *argv[]) { }" HAVE_NULLABLE)

                  test_big_endian(WORDS_BIGENDIAN)

                  find_package(ZLIB 1.1.2 REQUIRED)

                  if(ENABLE_BZIP2)
                  find_package(BZip2)
                  if(BZIP2_FOUND)
                  set(HAVE_LIBBZ2 1)
                  else()
                  message(WARNING "-- bzip2 library not found; bzip2 support disabled")
                  endif(BZIP2_FOUND)
                  endif(ENABLE_BZIP2)

                  if(ENABLE_LZMA)
                  find_package(LibLZMA 5.2)
                  if(LIBLZMA_FOUND)
                  set(HAVE_LIBLZMA 1)
                  else()
                  message(WARNING "-- lzma library not found; lzma/xz support disabled")
                  endif(LIBLZMA_FOUND)
                  endif(ENABLE_LZMA)

                  if(ENABLE_ZSTD)
                  find_package(Zstd 1.3.6)
                  if(Zstd_FOUND)
                  set(HAVE_LIBZSTD 1)
                  else()
                  message(WARNING "-- zstd library not found; zstandard support disabled")
                  endif(Zstd_FOUND)
                  endif(ENABLE_ZSTD)

                  if (COMMONCRYPTO_FOUND)
                  set(HAVE_CRYPTO 1)
                  set(HAVE_COMMONCRYPTO 1)
                  elseif (WINDOWS_CRYPTO_FOUND)
                  set(HAVE_CRYPTO 1)
                  set(HAVE_WINDOWS_CRYPTO 1)
                  elseif (GNUTLS_FOUND AND NETTLE_FOUND)
                  set(HAVE_CRYPTO 1)
                  set(HAVE_GNUTLS 1)
                  elseif (OPENSSL_FOUND)
                  set(HAVE_CRYPTO 1)
                  set(HAVE_OPENSSL 1)
                  elseif (MBEDTLS_FOUND)
                  set(HAVE_CRYPTO 1)
                  set(HAVE_MBEDTLS 1)
                  endif()

                  if ((ENABLE_COMMONCRYPTO OR ENABLE_GNUTLS OR ENABLE_MBEDTLS OR ENABLE_OPENSSL OR ENABLE_WINDOWS_CRYPTO) AND NOT HAVE_CRYPTO)
                  message(WARNING "-- neither Common Crypto, GnuTLS, mbed TLS, OpenSSL, nor Windows Cryptography found; AES support disabled")
                  endif()

                  if(MSVC)
                  add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
                  add_compile_definitions(_CRT_NONSTDC_NO_DEPRECATE)
                  endif(MSVC)

                  if(WIN32)
                  if(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
                  add_compile_definitions(MS_UWP)
                  endif(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
                  endif(WIN32)

                  rpath handling: use rpath in installed binaries

                  if(NOT CMAKE_SYSTEM_NAME MATCHES Linux)
                  set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
                  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
                  endif()

                  for code completion frameworks

                  set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

                  Testing

                  ENABLE_TESTING()

                  Targets

                  ADD_SUBDIRECTORY(lib)

                  if(BUILD_DOC)
                  ADD_SUBDIRECTORY(man)
                  endif()

                  if(BUILD_TOOLS)
                  ADD_SUBDIRECTORY(src)
                  else(BUILD_TOOLS)
                  if(BUILD_REGRESS)
                  message(WARNING "-- tools build has been disabled, but they are needed for regression tests; regression testing disabled")
                  set(BUILD_REGRESS OFF)
                  endif(BUILD_REGRESS)
                  endif()

                  include(FindPerl)

                  if(BUILD_REGRESS AND NOT PERL_FOUND)
                  message(WARNING "-- perl not found, regression testing disabled")
                  set(BUILD_REGRESS OFF)
                  endif()

                  if(BUILD_REGRESS)
                  add_subdirectory(regress)
                  endif()

                  if(BUILD_EXAMPLES)
                  add_subdirectory(examples)
                  endif()

                  pkgconfig file

                  file(RELATIVE_PATH pc_relative_bindir ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_FULL_BINDIR})
                  set(bindir "${prefix}/${pc_relative_bindir}")
                  file(RELATIVE_PATH pc_relative_libdir ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_FULL_LIBDIR})
                  set(libdir "${prefix}/${pc_relative_libdir}")
                  file(RELATIVE_PATH pc_relative_includedir ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_FULL_INCLUDEDIR})
                  set(includedir "${prefix}/${pc_relative_includedir}")
                  if(CMAKE_SYSTEM_NAME MATCHES BSD)
                  set(PKG_CONFIG_RPATH "-Wl,-R${libdir}")
                  endif(CMAKE_SYSTEM_NAME MATCHES BSD)
                  get_target_property(LIBS_PRIVATE zip LINK_LIBRARIES)
                  foreach(LIB ${LIBS_PRIVATE})
                  if(LIB MATCHES "^/")
                  get_filename_component(LIB ${LIB} NAME_WE)
                  string(REGEX REPLACE "^lib" "" LIB ${LIB})
                  endif()
                  set(LIBS "${LIBS} -l${LIB}")
                  endforeach()
                  string(REGEX REPLACE "-lBZip2::BZip2" "-lbz2" LIBS ${LIBS})
                  string(REGEX REPLACE "-lLibLZMA::LibLZMA" "-llzma" LIBS ${LIBS})
                  string(REGEX REPLACE "-lZstd::Zstd" "-lzstd" LIBS ${LIBS})
                  string(REGEX REPLACE "-lOpenSSL::Crypto" "-lssl -lcrypto" LIBS ${LIBS})
                  string(REGEX REPLACE "-lZLIB::ZLIB" "-lz" LIBS ${LIBS})
                  string(REGEX REPLACE "-lGnuTLS::GnuTLS" "-lgnutls" LIBS ${LIBS})
                  string(REGEX REPLACE "-lNettle::Nettle" "-lnettle" LIBS ${LIBS})
                  configure_file(libzip.pc.in libzip.pc @ONLY)
                  if(LIBZIP_DO_INSTALL)
                  install(FILES ${PROJECT_BINARY_DIR}/libzip.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
                  endif()

                  fixed size integral types

                  if(HAVE_INTTYPES_H_LIBZIP)
                  set(LIBZIP_TYPES_INCLUDE "#if !defined(__STDC_FORMAT_MACROS)
                  #define __STDC_FORMAT_MACROS 1
                  #endif
                  #include <inttypes.h>")
                  elseif(HAVE_STDINT_H_LIBZIP)
                  set(LIBZIP_TYPES_INCLUDE "#include <stdint.h>")
                  elseif(HAVE_SYS_TYPES_H_LIBZIP)
                  set(LIBZIP_TYPES_INCLUDE "#include <sys/types.h>")
                  endif()

                  if(HAVE_INT8_T_LIBZIP)
                  set(ZIP_INT8_T int8_t)
                  elseif(HAVE___INT8_LIBZIP)
                  set(ZIP_INT8_T __int8)
                  else()
                  set(ZIP_INT8_T "signed char")
                  endif()

                  if(HAVE_UINT8_T_LIBZIP)
                  set(ZIP_UINT8_T uint8_t)
                  elseif(HAVE___INT8_LIBZIP)
                  set(ZIP_UINT8_T "unsigned __int8")
                  else()
                  set(ZIP_UINT8_T "unsigned char")
                  endif()

                  if(HAVE_INT16_T_LIBZIP)
                  set(ZIP_INT16_T int16_t)
                  elseif(HAVE___INT16_LIBZIP)
                  set(INT16_T_LIBZIP __int16)
                  elseif(SHORT_LIBZIP EQUAL 2)
                  set(INT16_T_LIBZIP short)
                  endif()

                  if(HAVE_UINT16_T_LIBZIP)
                  set(ZIP_UINT16_T uint16_t)
                  elseif(HAVE___INT16_LIBZIP)
                  set(UINT16_T_LIBZIP "unsigned __int16")
                  elseif(SHORT_LIBZIP EQUAL 2)
                  set(UINT16_T_LIBZIP "unsigned short")
                  endif()

                  if(HAVE_INT32_T_LIBZIP)
                  set(ZIP_INT32_T int32_t)
                  elseif(HAVE___INT32_LIBZIP)
                  set(ZIP_INT32_T __int32)
                  elseif(INT_LIBZIP EQUAL 4)
                  set(ZIP_INT32_T int)
                  elseif(LONG_LIBZIP EQUAL 4)
                  set(ZIP_INT32_T long)
                  endif()

                  if(HAVE_UINT32_T_LIBZIP)
                  set(ZIP_UINT32_T uint32_t)
                  elseif(HAVE___INT32_LIBZIP)
                  set(ZIP_UINT32_T "unsigned __int32")
                  elseif(INT_LIBZIP EQUAL 4)
                  set(ZIP_UINT32_T "unsigned int")
                  elseif(LONG_LIBZIP EQUAL 4)
                  set(ZIP_UINT32_T "unsigned long")
                  endif()

                  if(HAVE_INT64_T_LIBZIP)
                  set(ZIP_INT64_T int64_t)
                  elseif(HAVE___INT64_LIBZIP)
                  set(ZIP_INT64_T __int64)
                  elseif(LONG_LIBZIP EQUAL 8)
                  set(ZIP_INT64_T long)
                  elseif(LONG_LONG_LIBZIP EQUAL 8)
                  set(ZIP_INT64_T "long long")
                  endif()

                  if(HAVE_UINT64_T_LIBZIP)
                  set(ZIP_UINT64_T uint64_t)
                  elseif(HAVE___INT64_LIBZIP)
                  set(ZIP_UINT64_T "unsigned __int64")
                  elseif(LONG_LIBZIP EQUAL 8)
                  set(ZIP_UINT64_T "unsigned long")
                  elseif(LONG_LONG_LIBZIP EQUAL 8)
                  set(ZIP_UINT64_T "unsigned long long")
                  endif()

                  if(HAVE_NULLABLE)
                  set(ZIP_NULLABLE_DEFINES)
                  else()
                  set(ZIP_NULLABLE_DEFINES "#define _Nullable
                  #define _Nonnull")
                  endif()

                  write out config file

                  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake-config.h.in ${PROJECT_BINARY_DIR}/config.h)
                  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake-zipconf.h.in ${PROJECT_BINARY_DIR}/zipconf.h)

                  for tests

                  set(srcdir ${CMAKE_CURRENT_SOURCE_DIR}/regress)
                  set(abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR}/regress)
                  set(top_builddir ${PROJECT_BINARY_DIR}) # used to find config.h

                  configure_file(regress/nihtest.conf.in ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/nihtest.conf @ONLY)
                  file(COPY ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/nihtest.conf
                  DESTINATION ${PROJECT_BINARY_DIR}/regress
                  FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

                  configure_file(regress/runtest.in ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/runtest @ONLY)
                  file(COPY ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/runtest
                  DESTINATION ${PROJECT_BINARY_DIR}/regress
                  FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
                  )

                  create package config file

                  include(CMakePackageConfigHelpers)
                  write_basic_package_version_file("${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
                  COMPATIBILITY AnyNewerVersion)

                  configure_package_config_file("${PROJECT_NAME}-config.cmake.in" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
                  INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libzip)

                  if(LIBZIP_DO_INSTALL)

                  Add targets to the build-tree export set

                  export(TARGETS zip
                  FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-targets.cmake")

                  installation

                  install(FILES ${PROJECT_BINARY_DIR}/zipconf.h DESTINATION include)
                  install(FILES ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
                  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
                  )
                  install(EXPORT ${PROJECT_NAME}-targets NAMESPACE libzip:: FILE ${PROJECT_NAME}-targets.cmake
                  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
                  )
                  endif()

                  S 1 Reply Last reply
                  0
                  • S Simplexity

                    @SimonSchroeder

                    Many thanks, here is the CMakeLists.txt I am using. It is the current version from https://github.com/nih-at/libzip, where I have added the CMake set commands to set the ZLIB variables.


                    cmake_minimum_required(VERSION 3.0.2)

                    #set(ZLIB_LIBRARY "D:/c-repos/zlib-qt/build-zlib-Desktop_Qt_6_3_1_MinGW_64_bit-Debug")
                    #set(ZLIB_INCLUDE_DIR "D:/c-repos/zlib-qt/build-zlib-Desktop_Qt_6_3_1_MinGW_64_bit-Debug")

                    #set(ZLIB_LIBRARY "D:/ctest")
                    #set(ZLIB_INCLUDE_DIR "D:/ctest")

                    set(ZLIB_LIBRARY ctest)
                    set(ZLIB_INCLUDE_DIR ctest)

                    list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
                    if (${CMAKE_VERSION} VERSION_LESS "3.17.0")
                    list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-compat)
                    endif()

                    project(libzip
                    VERSION 1.9.2
                    LANGUAGES C)

                    option(ENABLE_COMMONCRYPTO "Enable use of CommonCrypto" ON)
                    option(ENABLE_GNUTLS "Enable use of GnuTLS" ON)
                    option(ENABLE_MBEDTLS "Enable use of mbed TLS" ON)
                    option(ENABLE_OPENSSL "Enable use of OpenSSL" ON)
                    option(ENABLE_WINDOWS_CRYPTO "Enable use of Windows cryptography libraries" ON)

                    option(ENABLE_BZIP2 "Enable use of BZip2" ON)
                    option(ENABLE_LZMA "Enable use of LZMA" ON)
                    option(ENABLE_ZSTD "Enable use of Zstandard" ON)

                    option(BUILD_TOOLS "Build tools in the src directory (zipcmp, zipmerge, ziptool)" ON)
                    option(BUILD_REGRESS "Build regression tests" ON)
                    option(BUILD_EXAMPLES "Build examples" ON)
                    option(BUILD_DOC "Build documentation" ON)

                    include(CheckFunctionExists)
                    include(CheckIncludeFiles)
                    include(CheckLibraryExists)
                    include(CheckSymbolExists)
                    include(CheckTypeSize)
                    include(CheckCSourceRuns)
                    include(CheckCSourceCompiles)
                    include(CheckStructHasMember)
                    include(TestBigEndian)
                    include(GNUInstallDirs)

                    if(ENABLE_COMMONCRYPTO)
                    check_include_files(CommonCrypto/CommonCrypto.h COMMONCRYPTO_FOUND)
                    endif()
                    if(ENABLE_GNUTLS)
                    find_package(Nettle 3.0)
                    find_package(GnuTLS)
                    endif()
                    if(ENABLE_MBEDTLS)
                    find_package(MbedTLS 1.0)
                    endif()
                    if(ENABLE_OPENSSL)
                    find_package(OpenSSL)
                    endif()
                    if(WIN32)
                    if(ENABLE_WINDOWS_CRYPTO)
                    set(WINDOWS_CRYPTO_FOUND TRUE)
                    endif()
                    endif()

                    option(BUILD_SHARED_LIBS "Build shared libraries" ON)
                    option(LIBZIP_DO_INSTALL "Install libzip and the related files" ON)

                    option(SHARED_LIB_VERSIONNING "Add SO version in .so build" ON)

                    find_program(MDOCTOOL NAMES mandoc groff)
                    if (MDOCTOOL)
                    set(DOCUMENTATION_FORMAT "mdoc" CACHE STRING "Documentation format")
                    else()
                    find_program(MANTOOL NAMES nroff)
                    if (MANTOOL)
                    set(DOCUMENTATION_FORMAT "man" CACHE STRING "Documentation format")
                    else()
                    set(DOCUMENTATION_FORMAT "html" CACHE STRING "Documentation format")
                    endif()
                    endif()

                    include(Dist)
                    Dist(${CMAKE_PROJECT_NAME}-${CMAKE_PROJECT_VERSION})

                    #ADD_CUSTOM_TARGET(uninstall

                    COMMAND cat ${PROJECT_BINARY_DIR}/install_manifest.txt | xargs rm

                    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}

                    )

                    if(BUILD_SHARED_LIBS)
                    set(HAVE_SHARED TRUE)
                    else()
                    set(ZIP_STATIC TRUE)
                    endif()

                    Checks

                    check_function_exists(_close HAVE__CLOSE)
                    check_function_exists(_dup HAVE__DUP)
                    check_function_exists(_fdopen HAVE__FDOPEN)
                    check_function_exists(_fileno HAVE__FILENO)
                    check_function_exists(_setmode HAVE__SETMODE)
                    check_symbol_exists(_snprintf stdio.h HAVE__SNPRINTF)
                    check_function_exists(_strdup HAVE__STRDUP)
                    check_symbol_exists(_stricmp string.h HAVE__STRICMP)
                    check_function_exists(_strtoi64 HAVE__STRTOI64)
                    check_function_exists(_strtoui64 HAVE__STRTOUI64)
                    check_function_exists(_unlink HAVE__UNLINK)
                    check_function_exists(arc4random HAVE_ARC4RANDOM)
                    check_function_exists(clonefile HAVE_CLONEFILE)
                    check_function_exists(explicit_bzero HAVE_EXPLICIT_BZERO)
                    check_function_exists(explicit_memset HAVE_EXPLICIT_MEMSET)
                    check_function_exists(fchmod HAVE_FCHMOD)
                    check_function_exists(fileno HAVE_FILENO)
                    check_function_exists(fseeko HAVE_FSEEKO)
                    check_function_exists(ftello HAVE_FTELLO)
                    check_function_exists(getprogname HAVE_GETPROGNAME)
                    check_function_exists(localtime_r HAVE_LOCALTIME_R)
                    check_function_exists(setmode HAVE_SETMODE)
                    check_symbol_exists(snprintf stdio.h HAVE_SNPRINTF)
                    check_symbol_exists(strcasecmp strings.h HAVE_STRCASECMP)
                    check_function_exists(strdup HAVE_STRDUP)
                    check_function_exists(stricmp HAVE_STRICMP)
                    check_function_exists(strtoll HAVE_STRTOLL)
                    check_function_exists(strtoull HAVE_STRTOULL)

                    check_include_files("sys/types.h;sys/stat.h;fts.h" HAVE_FTS_H)

                    fts functions may be in external library

                    if(HAVE_FTS_H)
                    check_function_exists(fts_open HAVE_FTS_OPEN)
                    if(NOT HAVE_FTS_OPEN)
                    check_library_exists(fts fts_open "" HAVE_LIB_FTS)
                    else(NOT HAVE_FTS_OPEN)
                    set(HAVE_LIB_FTS "" CACHE INTERNAL "")
                    endif(NOT HAVE_FTS_OPEN)
                    else(HAVE_FTS_H)
                    set(HAVE_LIB_FTS "" CACHE INTERNAL "")
                    endif(HAVE_FTS_H)

                    if(HAVE_LIB_FTS)
                    set(FTS_LIB fts CACHE INTERNAL "")
                    else()
                    set(FTS_LIB "" CACHE INTERNAL "")
                    endif()

                    check_include_files(stdbool.h HAVE_STDBOOL_H)
                    check_include_files(strings.h HAVE_STRINGS_H)
                    check_include_files(unistd.h HAVE_UNISTD_H)

                    check_include_files(inttypes.h HAVE_INTTYPES_H_LIBZIP)
                    check_include_files(stdint.h HAVE_STDINT_H_LIBZIP)
                    check_include_files(sys/types.h HAVE_SYS_TYPES_H_LIBZIP)

                    TODO: fix test

                    this test does not find __progname even when it exists

                    #check_symbol_exists(__progname stdlib.h HAVE___PROGNAME)

                    check_type_size(__int8 __INT8_LIBZIP)
                    check_type_size(int8_t INT8_T_LIBZIP)
                    check_type_size(uint8_t UINT8_T_LIBZIP)
                    check_type_size(__int16 __INT16_LIBZIP)
                    check_type_size(int16_t INT16_T_LIBZIP)
                    check_type_size(uint16_t UINT16_T_LIBZIP)
                    check_type_size(__int32 __INT32_LIBZIP)
                    check_type_size(int32_t INT32_T_LIBZIP)
                    check_type_size(uint32_t UINT32_T_LIBZIP)
                    check_type_size(__int64 __INT64_LIBZIP)
                    check_type_size(int64_t INT64_T_LIBZIP)
                    check_type_size(uint64_t UINT64_T_LIBZIP)
                    check_type_size("short" SHORT_LIBZIP)
                    check_type_size("int" INT_LIBZIP)
                    check_type_size("long" LONG_LIBZIP)
                    check_type_size("long long" LONG_LONG_LIBZIP)
                    check_type_size("off_t" SIZEOF_OFF_T)
                    check_type_size("size_t" SIZEOF_SIZE_T)

                    check_c_source_compiles("#include <sys/ioctl.h>
                    #include <linux/fs.h>
                    int main(int argc, char *argv[]) { unsigned long x = FICLONERANGE; }" HAVE_FICLONERANGE)

                    check_c_source_compiles("
                    int foo(char * _Nullable bar);
                    int main(int argc, char *argv[]) { }" HAVE_NULLABLE)

                    test_big_endian(WORDS_BIGENDIAN)

                    find_package(ZLIB 1.1.2 REQUIRED)

                    if(ENABLE_BZIP2)
                    find_package(BZip2)
                    if(BZIP2_FOUND)
                    set(HAVE_LIBBZ2 1)
                    else()
                    message(WARNING "-- bzip2 library not found; bzip2 support disabled")
                    endif(BZIP2_FOUND)
                    endif(ENABLE_BZIP2)

                    if(ENABLE_LZMA)
                    find_package(LibLZMA 5.2)
                    if(LIBLZMA_FOUND)
                    set(HAVE_LIBLZMA 1)
                    else()
                    message(WARNING "-- lzma library not found; lzma/xz support disabled")
                    endif(LIBLZMA_FOUND)
                    endif(ENABLE_LZMA)

                    if(ENABLE_ZSTD)
                    find_package(Zstd 1.3.6)
                    if(Zstd_FOUND)
                    set(HAVE_LIBZSTD 1)
                    else()
                    message(WARNING "-- zstd library not found; zstandard support disabled")
                    endif(Zstd_FOUND)
                    endif(ENABLE_ZSTD)

                    if (COMMONCRYPTO_FOUND)
                    set(HAVE_CRYPTO 1)
                    set(HAVE_COMMONCRYPTO 1)
                    elseif (WINDOWS_CRYPTO_FOUND)
                    set(HAVE_CRYPTO 1)
                    set(HAVE_WINDOWS_CRYPTO 1)
                    elseif (GNUTLS_FOUND AND NETTLE_FOUND)
                    set(HAVE_CRYPTO 1)
                    set(HAVE_GNUTLS 1)
                    elseif (OPENSSL_FOUND)
                    set(HAVE_CRYPTO 1)
                    set(HAVE_OPENSSL 1)
                    elseif (MBEDTLS_FOUND)
                    set(HAVE_CRYPTO 1)
                    set(HAVE_MBEDTLS 1)
                    endif()

                    if ((ENABLE_COMMONCRYPTO OR ENABLE_GNUTLS OR ENABLE_MBEDTLS OR ENABLE_OPENSSL OR ENABLE_WINDOWS_CRYPTO) AND NOT HAVE_CRYPTO)
                    message(WARNING "-- neither Common Crypto, GnuTLS, mbed TLS, OpenSSL, nor Windows Cryptography found; AES support disabled")
                    endif()

                    if(MSVC)
                    add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
                    add_compile_definitions(_CRT_NONSTDC_NO_DEPRECATE)
                    endif(MSVC)

                    if(WIN32)
                    if(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
                    add_compile_definitions(MS_UWP)
                    endif(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
                    endif(WIN32)

                    rpath handling: use rpath in installed binaries

                    if(NOT CMAKE_SYSTEM_NAME MATCHES Linux)
                    set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
                    set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
                    endif()

                    for code completion frameworks

                    set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

                    Testing

                    ENABLE_TESTING()

                    Targets

                    ADD_SUBDIRECTORY(lib)

                    if(BUILD_DOC)
                    ADD_SUBDIRECTORY(man)
                    endif()

                    if(BUILD_TOOLS)
                    ADD_SUBDIRECTORY(src)
                    else(BUILD_TOOLS)
                    if(BUILD_REGRESS)
                    message(WARNING "-- tools build has been disabled, but they are needed for regression tests; regression testing disabled")
                    set(BUILD_REGRESS OFF)
                    endif(BUILD_REGRESS)
                    endif()

                    include(FindPerl)

                    if(BUILD_REGRESS AND NOT PERL_FOUND)
                    message(WARNING "-- perl not found, regression testing disabled")
                    set(BUILD_REGRESS OFF)
                    endif()

                    if(BUILD_REGRESS)
                    add_subdirectory(regress)
                    endif()

                    if(BUILD_EXAMPLES)
                    add_subdirectory(examples)
                    endif()

                    pkgconfig file

                    file(RELATIVE_PATH pc_relative_bindir ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_FULL_BINDIR})
                    set(bindir "${prefix}/${pc_relative_bindir}")
                    file(RELATIVE_PATH pc_relative_libdir ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_FULL_LIBDIR})
                    set(libdir "${prefix}/${pc_relative_libdir}")
                    file(RELATIVE_PATH pc_relative_includedir ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_FULL_INCLUDEDIR})
                    set(includedir "${prefix}/${pc_relative_includedir}")
                    if(CMAKE_SYSTEM_NAME MATCHES BSD)
                    set(PKG_CONFIG_RPATH "-Wl,-R${libdir}")
                    endif(CMAKE_SYSTEM_NAME MATCHES BSD)
                    get_target_property(LIBS_PRIVATE zip LINK_LIBRARIES)
                    foreach(LIB ${LIBS_PRIVATE})
                    if(LIB MATCHES "^/")
                    get_filename_component(LIB ${LIB} NAME_WE)
                    string(REGEX REPLACE "^lib" "" LIB ${LIB})
                    endif()
                    set(LIBS "${LIBS} -l${LIB}")
                    endforeach()
                    string(REGEX REPLACE "-lBZip2::BZip2" "-lbz2" LIBS ${LIBS})
                    string(REGEX REPLACE "-lLibLZMA::LibLZMA" "-llzma" LIBS ${LIBS})
                    string(REGEX REPLACE "-lZstd::Zstd" "-lzstd" LIBS ${LIBS})
                    string(REGEX REPLACE "-lOpenSSL::Crypto" "-lssl -lcrypto" LIBS ${LIBS})
                    string(REGEX REPLACE "-lZLIB::ZLIB" "-lz" LIBS ${LIBS})
                    string(REGEX REPLACE "-lGnuTLS::GnuTLS" "-lgnutls" LIBS ${LIBS})
                    string(REGEX REPLACE "-lNettle::Nettle" "-lnettle" LIBS ${LIBS})
                    configure_file(libzip.pc.in libzip.pc @ONLY)
                    if(LIBZIP_DO_INSTALL)
                    install(FILES ${PROJECT_BINARY_DIR}/libzip.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
                    endif()

                    fixed size integral types

                    if(HAVE_INTTYPES_H_LIBZIP)
                    set(LIBZIP_TYPES_INCLUDE "#if !defined(__STDC_FORMAT_MACROS)
                    #define __STDC_FORMAT_MACROS 1
                    #endif
                    #include <inttypes.h>")
                    elseif(HAVE_STDINT_H_LIBZIP)
                    set(LIBZIP_TYPES_INCLUDE "#include <stdint.h>")
                    elseif(HAVE_SYS_TYPES_H_LIBZIP)
                    set(LIBZIP_TYPES_INCLUDE "#include <sys/types.h>")
                    endif()

                    if(HAVE_INT8_T_LIBZIP)
                    set(ZIP_INT8_T int8_t)
                    elseif(HAVE___INT8_LIBZIP)
                    set(ZIP_INT8_T __int8)
                    else()
                    set(ZIP_INT8_T "signed char")
                    endif()

                    if(HAVE_UINT8_T_LIBZIP)
                    set(ZIP_UINT8_T uint8_t)
                    elseif(HAVE___INT8_LIBZIP)
                    set(ZIP_UINT8_T "unsigned __int8")
                    else()
                    set(ZIP_UINT8_T "unsigned char")
                    endif()

                    if(HAVE_INT16_T_LIBZIP)
                    set(ZIP_INT16_T int16_t)
                    elseif(HAVE___INT16_LIBZIP)
                    set(INT16_T_LIBZIP __int16)
                    elseif(SHORT_LIBZIP EQUAL 2)
                    set(INT16_T_LIBZIP short)
                    endif()

                    if(HAVE_UINT16_T_LIBZIP)
                    set(ZIP_UINT16_T uint16_t)
                    elseif(HAVE___INT16_LIBZIP)
                    set(UINT16_T_LIBZIP "unsigned __int16")
                    elseif(SHORT_LIBZIP EQUAL 2)
                    set(UINT16_T_LIBZIP "unsigned short")
                    endif()

                    if(HAVE_INT32_T_LIBZIP)
                    set(ZIP_INT32_T int32_t)
                    elseif(HAVE___INT32_LIBZIP)
                    set(ZIP_INT32_T __int32)
                    elseif(INT_LIBZIP EQUAL 4)
                    set(ZIP_INT32_T int)
                    elseif(LONG_LIBZIP EQUAL 4)
                    set(ZIP_INT32_T long)
                    endif()

                    if(HAVE_UINT32_T_LIBZIP)
                    set(ZIP_UINT32_T uint32_t)
                    elseif(HAVE___INT32_LIBZIP)
                    set(ZIP_UINT32_T "unsigned __int32")
                    elseif(INT_LIBZIP EQUAL 4)
                    set(ZIP_UINT32_T "unsigned int")
                    elseif(LONG_LIBZIP EQUAL 4)
                    set(ZIP_UINT32_T "unsigned long")
                    endif()

                    if(HAVE_INT64_T_LIBZIP)
                    set(ZIP_INT64_T int64_t)
                    elseif(HAVE___INT64_LIBZIP)
                    set(ZIP_INT64_T __int64)
                    elseif(LONG_LIBZIP EQUAL 8)
                    set(ZIP_INT64_T long)
                    elseif(LONG_LONG_LIBZIP EQUAL 8)
                    set(ZIP_INT64_T "long long")
                    endif()

                    if(HAVE_UINT64_T_LIBZIP)
                    set(ZIP_UINT64_T uint64_t)
                    elseif(HAVE___INT64_LIBZIP)
                    set(ZIP_UINT64_T "unsigned __int64")
                    elseif(LONG_LIBZIP EQUAL 8)
                    set(ZIP_UINT64_T "unsigned long")
                    elseif(LONG_LONG_LIBZIP EQUAL 8)
                    set(ZIP_UINT64_T "unsigned long long")
                    endif()

                    if(HAVE_NULLABLE)
                    set(ZIP_NULLABLE_DEFINES)
                    else()
                    set(ZIP_NULLABLE_DEFINES "#define _Nullable
                    #define _Nonnull")
                    endif()

                    write out config file

                    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake-config.h.in ${PROJECT_BINARY_DIR}/config.h)
                    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake-zipconf.h.in ${PROJECT_BINARY_DIR}/zipconf.h)

                    for tests

                    set(srcdir ${CMAKE_CURRENT_SOURCE_DIR}/regress)
                    set(abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR}/regress)
                    set(top_builddir ${PROJECT_BINARY_DIR}) # used to find config.h

                    configure_file(regress/nihtest.conf.in ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/nihtest.conf @ONLY)
                    file(COPY ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/nihtest.conf
                    DESTINATION ${PROJECT_BINARY_DIR}/regress
                    FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

                    configure_file(regress/runtest.in ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/runtest @ONLY)
                    file(COPY ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/runtest
                    DESTINATION ${PROJECT_BINARY_DIR}/regress
                    FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
                    )

                    create package config file

                    include(CMakePackageConfigHelpers)
                    write_basic_package_version_file("${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
                    COMPATIBILITY AnyNewerVersion)

                    configure_package_config_file("${PROJECT_NAME}-config.cmake.in" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
                    INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libzip)

                    if(LIBZIP_DO_INSTALL)

                    Add targets to the build-tree export set

                    export(TARGETS zip
                    FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-targets.cmake")

                    installation

                    install(FILES ${PROJECT_BINARY_DIR}/zipconf.h DESTINATION include)
                    install(FILES ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
                    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
                    )
                    install(EXPORT ${PROJECT_NAME}-targets NAMESPACE libzip:: FILE ${PROJECT_NAME}-targets.cmake
                    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
                    )
                    endif()

                    S Offline
                    S Offline
                    SimonSchroeder
                    wrote on last edited by
                    #9

                    @Simplexity said in Qt 6.3.1 Cannot Find <directory>: Permission Denied:

                    This answer on StackOverflow https://stackoverflow.com/questions/46530617/cmake-set-zlib-path says:

                    Furthermore, ZLIB_LIBRARY needs to point to the library itself. Here is my final build line which works:

                    cmake -DZLIB_INCLUDE_DIR=d:\mystuff\zlib-1.2.11 -DZLIB_LIBRARY=d:\mystuff\zlib-1.2.11

                    Can you show us the contents of D:\ctest?

                    S 1 Reply Last reply
                    0
                    • S SimonSchroeder

                      @Simplexity said in Qt 6.3.1 Cannot Find <directory>: Permission Denied:

                      This answer on StackOverflow https://stackoverflow.com/questions/46530617/cmake-set-zlib-path says:

                      Furthermore, ZLIB_LIBRARY needs to point to the library itself. Here is my final build line which works:

                      cmake -DZLIB_INCLUDE_DIR=d:\mystuff\zlib-1.2.11 -DZLIB_LIBRARY=d:\mystuff\zlib-1.2.11

                      Can you show us the contents of D:\ctest?

                      S Offline
                      S Offline
                      Simplexity
                      wrote on last edited by
                      #10

                      @SimonSchroeder

                      I think I now have the solution. My problem was:

                      • Running CMake in project libzip, issues errors that make it look as though the user needs to set path type variables, ZLIB_LIBRARY and ZLIB_LIBRARY_DIR.
                      • If you set these variables to a path like I did, you then get the errors "cannot find...permission denied"etc.
                      • The libzip CMake file has , find package ZLIB.
                      • I didnt notice that findZLIB.cmake is actually a CMake file that is installed in the Qt directories i.e. in my case, not provided by the github clone in my root project!
                        c:/Qt/Tools/CMake^4/share/cmake-3.23/Modules
                      • FindZLIB.cmake tells you:

                      Distributed under the OSI-approved BSD 3-Clause License. See accompanying

                      file Copyright.txt or https://cmake.org/licensing for details.

                      #[=======================================================================[.rst:
                      FindZLIB

                      Find the native ZLIB includes and library.

                      IMPORTED Targets
                      ^^^^^^^^^^^^^^^^

                      .. versionadded:: 3.1

                      This module defines :prop_tgt:IMPORTED target ZLIB::ZLIB, if
                      ZLIB has been found.

                      Result Variables
                      ^^^^^^^^^^^^^^^^

                      This module defines the following variables:

                      ::

                      ZLIB_INCLUDE_DIRS - where to find zlib.h, etc.
                      ZLIB_LIBRARIES - List of libraries when using zlib.
                      ZLIB_FOUND - True if zlib found.

                      ::

                      ZLIB_VERSION_STRING - The version of zlib found (x.y.z)
                      ZLIB_VERSION_MAJOR - The major version of zlib
                      ZLIB_VERSION_MINOR - The minor version of zlib
                      ZLIB_VERSION_PATCH - The patch version of zlib
                      ZLIB_VERSION_TWEAK - The tweak version of zlib

                      .. versionadded:: 3.4
                      Debug and Release variants are found separately.

                      Backward Compatibility
                      ^^^^^^^^^^^^^^^^^^^^^^

                      The following variable are provided for backward compatibility

                      ::

                      ZLIB_MAJOR_VERSION - The major version of zlib
                      ZLIB_MINOR_VERSION - The minor version of zlib
                      ZLIB_PATCH_VERSION - The patch version of zlib

                      Hints
                      ^^^^^

                      A user may set ZLIB_ROOT to a zlib installation root to tell this
                      module where to look.

                      • Once you set ZLIB_ROOT to the path where you have the dependencies (.dll and headers) (I set it to D:/ctest) then the CMake parses find and then you can successfully build.
                      1 Reply Last reply
                      1

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved