IPSDK
4_1_0_2
IPSDK : Image Processing Software Development Kit
IPSDK_Nightly
include
public
IPSDKUtil
Tools
ProgramOptionsMacros.h
Go to the documentation of this file.
1
// BaseMacros.h:
3
// -------------
4
//
18
19
#ifndef __IPSDKUTIL_PROGRAMOPTIONSMACROS_H__
20
#define __IPSDKUTIL_PROGRAMOPTIONSMACROS_H__
21
22
#include <boost/program_options/cmdline.hpp>
23
#include <boost/program_options/options_description.hpp>
24
#include <boost/program_options/parsers.hpp>
25
#include <boost/program_options/variables_map.hpp>
26
29
30
35
#ifdef IPSDK_WINDOWS
36
#define IPSDK_PROGRAM_OPTION_STORE_CMD_LINE_PARSER(strArgvInput, desc, vm)\
37
boost::program_options::store(boost::program_options::command_line_parser(boost::program_options::split_winmain(strArgvInput)).options(desc).run(), vm);
38
#else // Linux
39
#define IPSDK_PROGRAM_OPTION_STORE_CMD_LINE_PARSER(strArgvInput, desc, vm)\
40
boost::program_options::store(boost::program_options::command_line_parser(boost::program_options::split_unix(strArgvInput)).options(desc).run(), vm);
41
#endif // IPSDK_WINDOWS
42
46
#define IPSDK_PROGRAM_OPTION_PARSER(argc, argv, desc, vm, bBoostTest) \
47
const int argOffset = (bBoostTest ? 2 : 1); \
48
if(argc > argOffset) { \
49
for (int i = 1; i < argc; ++i) { \
50
int j = 0; \
51
while (argv[i][j] != '\0') { \
52
if (argv[i][j] == '#') \
53
argv[i][j] = ' '; \
54
++j; \
55
} \
56
} \
57
std::string strArgvInput = argv[argOffset]; \
58
for (int i = 1 + argOffset; i < argc; ++i) \
59
strArgvInput += " " + std::string(argv[i]); \
60
IPSDK_PROGRAM_OPTION_STORE_CMD_LINE_PARSER(strArgvInput, desc, vm) \
61
notify(vm); \
62
}
63
64
67
68
#endif // __IPSDKUTIL_PROGRAMOPTIONSMACROS_H__
Generated on Tue Apr 15 2025 16:20:49 for IPSDK by
1.8.14