export function configureArgs()

in src/preset.ts [1476:1529]


export function configureArgs(preset: ConfigurePreset): string[] {
    const result: string[] = [];

    // CacheVariables
    if (preset.cacheVariables) {
        util.objectPairs(preset.cacheVariables).forEach(([key, value]) => {
            if (util.isString(value) || typeof value === 'boolean') {
                result.push(`-D${key}=${value}`);
            } else if (value) {
                result.push(`-D${key}:${value.type}=${value.value}`);
            }
        });
    }

    if (preset.toolchainFile) {
        result.push(`-DCMAKE_TOOLCHAIN_FILE=${preset.toolchainFile}`);
    }
    if (preset.installDir) {
        result.push(`-DCMAKE_INSTALL_PREFIX=${preset.installDir}`);
    }

    // Warnings
    if (preset.warnings) {
        if (preset.warnings.dev !== undefined) {
            result.push(preset.warnings.dev ? '-Wdev' : '-Wno-dev');
        }
        if (preset.warnings.deprecated !== undefined) {
            result.push(preset.warnings.deprecated ? '-Wdeprecated' : '-Wno-deprecated');
        }

        preset.warnings.uninitialized && result.push('--warn-uninitialized');
        preset.warnings.unusedCli === false && result.push('--no-warn-unused-cli');
        preset.warnings.systemVars && result.push('--check-system-vars');
    }

    // Errors
    if (preset.errors) {
        if (preset.errors.dev !== undefined) {
            result.push(preset.errors.dev ? '-Werror=dev' : '-Wno-error=dev');
        }
        if (preset.errors.deprecated !== undefined) {
            result.push(preset.errors.deprecated ? '-Werror=deprecated' : '-Wno-error=deprecated');
        }
    }

    // Debug
    if (preset.debug) {
        preset.debug.output && result.push('--debug-output');
        preset.debug.tryCompile && result.push('--debug-trycompile');
        preset.debug.find && result.push('--debug-find');
    }

    return result;
}