**Use case**
We want to use self-extracting compressor utility during build, which can be cross-compiled.
Currently self-extracting compressor utility includes appended decompressor binary, which is a base for building self-extracting executable. The problem arise from the fact that self-extracting executable usually required to be built during clickhouse build - which can be cross-compiled - so in such case additional compressor in native architecture should be built and then this compressor should compress target binaries and attach to target decompressor built in the target architecture.

**Describe the solution you'd like**
Provide --decompressor parameter so proper decompressor binary can be chosen.

**Additional context**
ref #34755

break;
        }
        decompressed_size = ZSTD_getFrameContentSize(input + in_pointer, max_block_size);
        if (ZSTD_isError(decompressed_size))
        {
            std::cerr << "Error (ZSTD): " << decompressed_size << " " << ZSTD_getErrorName(decompressed_size) << std::endl;
            error_happened = true;
            break;
        }
        pid = fork();
        if (-1 == pid)
        {
            perror(nullptr);
            
            if (0 != doDecompress(input, output, in_pointer, out_pointer, size, max_block_size, dctx))
                break;
        }
        else if (pid == 0)
        {
            
            if (0 != doDecompress(input, output, in_pointer, out_pointer, size, max_block_size, dctx))
                exit(1);
            exit(0);
        }
        else
        {
            ++number_of_forks;
            while (number_of_forks >= max_number_of_forks)
            {