mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-10 13:04:15 -04:00
Use wmain() on Windows
This commit is contained in:
parent
83ab473add
commit
1dcab5996e
@ -27,4 +27,12 @@ namespace dwarfs {
|
|||||||
|
|
||||||
using file_off_t = int64_t;
|
using file_off_t = int64_t;
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
using sys_char = wchar_t;
|
||||||
|
using sys_string = std::wstring;
|
||||||
|
#else
|
||||||
|
using sys_char = char;
|
||||||
|
using sys_string = std::string;
|
||||||
|
#endif
|
||||||
|
|
||||||
} // namespace dwarfs
|
} // namespace dwarfs
|
||||||
|
@ -21,12 +21,20 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "dwarfs/types.h"
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define SYS_MAIN wmain
|
||||||
|
#else
|
||||||
|
#define SYS_MAIN main
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace dwarfs {
|
namespace dwarfs {
|
||||||
|
|
||||||
int mkdwarfs_main(int argc, char** argv);
|
int mkdwarfs_main(int argc, sys_char** argv);
|
||||||
int dwarfsck_main(int argc, char** argv);
|
int dwarfsck_main(int argc, sys_char** argv);
|
||||||
int dwarfsextract_main(int argc, char** argv);
|
int dwarfsextract_main(int argc, sys_char** argv);
|
||||||
int dwarfsbench_main(int argc, char** argv);
|
int dwarfsbench_main(int argc, sys_char** argv);
|
||||||
int dwarfs_main(int argc, char** argv);
|
int dwarfs_main(int argc, char** argv);
|
||||||
|
|
||||||
} // namespace dwarfs
|
} // namespace dwarfs
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "dwarfs/error.h"
|
#include "dwarfs/error.h"
|
||||||
#include "dwarfs_tool_main.h"
|
#include "dwarfs_tool_main.h"
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int SYS_MAIN(int argc, dwarfs::sys_char** argv) {
|
||||||
return dwarfs::safe_main(
|
return dwarfs::safe_main(
|
||||||
[&] { return dwarfs::dwarfsbench_main(argc, argv); });
|
[&] { return dwarfs::dwarfsbench_main(argc, argv); });
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ namespace po = boost::program_options;
|
|||||||
|
|
||||||
namespace dwarfs {
|
namespace dwarfs {
|
||||||
|
|
||||||
int dwarfsbench_main(int argc, char** argv) {
|
int dwarfsbench_main(int argc, sys_char** argv) {
|
||||||
std::string filesystem, cache_size_str, lock_mode_str, decompress_ratio_str,
|
std::string filesystem, cache_size_str, lock_mode_str, decompress_ratio_str,
|
||||||
log_level;
|
log_level;
|
||||||
size_t num_workers;
|
size_t num_workers;
|
||||||
|
@ -22,6 +22,6 @@
|
|||||||
#include "dwarfs/error.h"
|
#include "dwarfs/error.h"
|
||||||
#include "dwarfs_tool_main.h"
|
#include "dwarfs_tool_main.h"
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int SYS_MAIN(int argc, dwarfs::sys_char** argv) {
|
||||||
return dwarfs::safe_main([&] { return dwarfs::dwarfsck_main(argc, argv); });
|
return dwarfs::safe_main([&] { return dwarfs::dwarfsck_main(argc, argv); });
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ namespace dwarfs {
|
|||||||
|
|
||||||
namespace po = boost::program_options;
|
namespace po = boost::program_options;
|
||||||
|
|
||||||
int dwarfsck_main(int argc, char** argv) {
|
int dwarfsck_main(int argc, sys_char** argv) {
|
||||||
const size_t num_cpu = std::max(folly::hardware_concurrency(), 1u);
|
const size_t num_cpu = std::max(folly::hardware_concurrency(), 1u);
|
||||||
|
|
||||||
std::string log_level, input, export_metadata, image_offset;
|
std::string log_level, input, export_metadata, image_offset;
|
||||||
@ -93,8 +93,10 @@ int dwarfsck_main(int argc, char** argv) {
|
|||||||
po::variables_map vm;
|
po::variables_map vm;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
po::store(
|
po::store(po::basic_command_line_parser<sys_char>(argc, argv)
|
||||||
po::command_line_parser(argc, argv).options(opts).positional(pos).run(),
|
.options(opts)
|
||||||
|
.positional(pos)
|
||||||
|
.run(),
|
||||||
vm);
|
vm);
|
||||||
po::notify(vm);
|
po::notify(vm);
|
||||||
} catch (po::error const& e) {
|
} catch (po::error const& e) {
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "dwarfs/error.h"
|
#include "dwarfs/error.h"
|
||||||
#include "dwarfs_tool_main.h"
|
#include "dwarfs_tool_main.h"
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int SYS_MAIN(int argc, dwarfs::sys_char** argv) {
|
||||||
return dwarfs::safe_main(
|
return dwarfs::safe_main(
|
||||||
[&] { return dwarfs::dwarfsextract_main(argc, argv); });
|
[&] { return dwarfs::dwarfsextract_main(argc, argv); });
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ namespace po = boost::program_options;
|
|||||||
|
|
||||||
namespace dwarfs {
|
namespace dwarfs {
|
||||||
|
|
||||||
int dwarfsextract_main(int argc, char** argv) {
|
int dwarfsextract_main(int argc, sys_char** argv) {
|
||||||
std::string filesystem, output, format, cache_size_str, log_level,
|
std::string filesystem, output, format, cache_size_str, log_level,
|
||||||
image_offset;
|
image_offset;
|
||||||
size_t num_workers;
|
size_t num_workers;
|
||||||
|
@ -22,6 +22,6 @@
|
|||||||
#include "dwarfs/error.h"
|
#include "dwarfs/error.h"
|
||||||
#include "dwarfs_tool_main.h"
|
#include "dwarfs_tool_main.h"
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int SYS_MAIN(int argc, dwarfs::sys_char** argv) {
|
||||||
return dwarfs::safe_main([&] { return dwarfs::mkdwarfs_main(argc, argv); });
|
return dwarfs::safe_main([&] { return dwarfs::mkdwarfs_main(argc, argv); });
|
||||||
}
|
}
|
||||||
|
@ -372,7 +372,7 @@ class script_options : public options_interface {
|
|||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
int mkdwarfs_main(int argc, char** argv) {
|
int mkdwarfs_main(int argc, sys_char** argv) {
|
||||||
using namespace folly::gen;
|
using namespace folly::gen;
|
||||||
|
|
||||||
const size_t num_cpu = std::max(folly::hardware_concurrency(), 1u);
|
const size_t num_cpu = std::max(folly::hardware_concurrency(), 1u);
|
||||||
@ -559,7 +559,7 @@ int mkdwarfs_main(int argc, char** argv) {
|
|||||||
po::collect_unrecognized(parsed.options, po::include_positional);
|
po::collect_unrecognized(parsed.options, po::include_positional);
|
||||||
|
|
||||||
if (!unrecognized.empty()) {
|
if (!unrecognized.empty()) {
|
||||||
std::cerr << "error: unrecognized argument(s) '"
|
std::wcerr << "error: unrecognized argument(s) '"
|
||||||
<< boost::join(unrecognized, " ") << "'" << std::endl;
|
<< boost::join(unrecognized, " ") << "'" << std::endl;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user