mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-07 11:29:56 -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;
|
||||
|
||||
#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
|
||||
|
@ -21,12 +21,20 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "dwarfs/types.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#define SYS_MAIN wmain
|
||||
#else
|
||||
#define SYS_MAIN main
|
||||
#endif
|
||||
|
||||
namespace dwarfs {
|
||||
|
||||
int mkdwarfs_main(int argc, char** argv);
|
||||
int dwarfsck_main(int argc, char** argv);
|
||||
int dwarfsextract_main(int argc, char** argv);
|
||||
int dwarfsbench_main(int argc, char** argv);
|
||||
int mkdwarfs_main(int argc, sys_char** argv);
|
||||
int dwarfsck_main(int argc, sys_char** argv);
|
||||
int dwarfsextract_main(int argc, sys_char** argv);
|
||||
int dwarfsbench_main(int argc, sys_char** argv);
|
||||
int dwarfs_main(int argc, char** argv);
|
||||
|
||||
} // namespace dwarfs
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "dwarfs/error.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::dwarfsbench_main(argc, argv); });
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ namespace po = boost::program_options;
|
||||
|
||||
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,
|
||||
log_level;
|
||||
size_t num_workers;
|
||||
|
@ -22,6 +22,6 @@
|
||||
#include "dwarfs/error.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); });
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ namespace dwarfs {
|
||||
|
||||
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);
|
||||
|
||||
std::string log_level, input, export_metadata, image_offset;
|
||||
@ -93,9 +93,11 @@ int dwarfsck_main(int argc, char** argv) {
|
||||
po::variables_map vm;
|
||||
|
||||
try {
|
||||
po::store(
|
||||
po::command_line_parser(argc, argv).options(opts).positional(pos).run(),
|
||||
vm);
|
||||
po::store(po::basic_command_line_parser<sys_char>(argc, argv)
|
||||
.options(opts)
|
||||
.positional(pos)
|
||||
.run(),
|
||||
vm);
|
||||
po::notify(vm);
|
||||
} catch (po::error const& e) {
|
||||
std::cerr << "error: " << e.what() << std::endl;
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "dwarfs/error.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::dwarfsextract_main(argc, argv); });
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ namespace po = boost::program_options;
|
||||
|
||||
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,
|
||||
image_offset;
|
||||
size_t num_workers;
|
||||
|
@ -22,6 +22,6 @@
|
||||
#include "dwarfs/error.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); });
|
||||
}
|
||||
|
@ -372,7 +372,7 @@ class script_options : public options_interface {
|
||||
|
||||
} // namespace
|
||||
|
||||
int mkdwarfs_main(int argc, char** argv) {
|
||||
int mkdwarfs_main(int argc, sys_char** argv) {
|
||||
using namespace folly::gen;
|
||||
|
||||
const size_t num_cpu = std::max(folly::hardware_concurrency(), 1u);
|
||||
@ -559,8 +559,8 @@ int mkdwarfs_main(int argc, char** argv) {
|
||||
po::collect_unrecognized(parsed.options, po::include_positional);
|
||||
|
||||
if (!unrecognized.empty()) {
|
||||
std::cerr << "error: unrecognized argument(s) '"
|
||||
<< boost::join(unrecognized, " ") << "'" << std::endl;
|
||||
std::wcerr << "error: unrecognized argument(s) '"
|
||||
<< boost::join(unrecognized, " ") << "'" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
} catch (po::error const& e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user