Пример #1
0
/**
* 解析
*/
BOOL COption::Analysis(int argc, TCHAR* argv[])
{
    for (int i = 1; i < argc; i++) {
        BOOL result = FALSE;
        izanagi::tool::CString cmd(argv[i]);

        if (i < argc - 1) {
            if (result = (cmd == "-i")) {
                // -i
                in.format("%s", argv[++i]);
                in.replace('/', '\\');
            }
            else if (result = (cmd == "-o")) {
                // -o
                out.format("%s", argv[++i]);
            }
            else if (result = (cmd == "-p")) {
                // -p
                izanagi::tool::CString tmp(argv[++i]);
                tmp = tmp.make_lower();

                if (tmp == "dx9") {
                    type = izanagi::E_PLATFORM_DX9;
                }
                else if (tmp == "gles2") {
                    type = izanagi::E_PLATFORM_GLES2;
                }
                else {
                    result = FALSE;
                }
            }
        }

        if (!result) {
            // 引数無しオプション
        }

        if (!result) {
            // TODO
            ::fprintf(stderr, "Invalid Option [%s]\n\n", cmd.c_str());
            //IZ_ASSERT(FALSE);
            return FALSE;
        }
    }

    // 後処理
    if (!AfterAnalysis()) {
        IZ_ASSERT(FALSE);
        return FALSE;
    }

    return TRUE;
}
Пример #2
0
// 解析
BOOL COption::Analysis(int argc, char* argv[])
{
    for (int i = 1; i < argc; i++) {
        BOOL result = FALSE;
        izanagi::tool::CString cmd(argv[i]);

        if (i < argc - 1) {
            if (result = (cmd == "-i")) {
                // -i
                in_dir.format("%s", argv[++i]);
            }
            else if (result = (cmd == "-o")) {
                // -o
                output.format("%s", argv[++i]);
            }
            else if (result = (cmd == "-h")) {
                // -h
                file_id.format("%s", argv[++i]);
            }
            else if (result = (cmd == "-obj")) {
                // -obj
                obj_dir.format("%s", argv[++i]);
            }
        }

        if (!result) {
            // 引数無しオプション
        }

        if (!result) {
            // TODO
            printf("無効なオプションです[%s]\n\n", cmd);
            //IZ_ASSERT(FALSE);
            return FALSE;
        }
    }

    // 後処理
    if (!AfterAnalysis()) {
        IZ_ASSERT(FALSE);
        return FALSE;
    }

    return TRUE;
}