Build cross-platform release v1.0.0 (Windows & Linux binaries)
This commit is contained in:
+23
@@ -26,6 +26,19 @@
|
||||
#include <errno.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <io.h>
|
||||
#include <process.h>
|
||||
#define F_OK 0
|
||||
#define W_OK 2
|
||||
#define R_OK 4
|
||||
#define access _access
|
||||
#define unlink _unlink
|
||||
#define getpid _getpid
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
// ── Banner ─────────────────────────────────────────────────────────
|
||||
static void print_banner(void) {
|
||||
printf("\n");
|
||||
@@ -159,6 +172,15 @@ static int untar_file(const char *tar_path, const char *output_dir) {
|
||||
// Create output directory if needed
|
||||
char cmd[VKZ_MAX_FILENAME * 3];
|
||||
|
||||
#ifdef _WIN32
|
||||
if (output_dir) {
|
||||
snprintf(cmd, sizeof(cmd),
|
||||
"if not exist \"%s\" mkdir \"%s\" && tar xf \"%s\" -C \"%s\"",
|
||||
output_dir, output_dir, tar_path, output_dir);
|
||||
} else {
|
||||
snprintf(cmd, sizeof(cmd), "tar xf \"%s\"", tar_path);
|
||||
}
|
||||
#else
|
||||
if (output_dir) {
|
||||
snprintf(cmd, sizeof(cmd),
|
||||
"mkdir -p '%s' && tar xf '%s' -C '%s' 2>/dev/null", output_dir,
|
||||
@@ -166,6 +188,7 @@ static int untar_file(const char *tar_path, const char *output_dir) {
|
||||
} else {
|
||||
snprintf(cmd, sizeof(cmd), "tar xf '%s' 2>/dev/null", tar_path);
|
||||
}
|
||||
#endif
|
||||
|
||||
int ret = system(cmd);
|
||||
return (ret == 0) ? 0 : -1;
|
||||
|
||||
Reference in New Issue
Block a user