if 'OS=macosx' not in config.available_features:
    config.unsupported = True

else:
    config.sourcekitd_test = config.inferSwiftBinary('sourcekitd-test')
    config.complete_test = config.inferSwiftBinary('complete-test')

    def sed_clean(x):
        sed_cmd = "grep -v 'key.hash: \"0\"'"
        sed_cmd += " | sed -e 's/key.filepath: \".*[/\\\\]\\(.*\\)\\.swiftmodule\"/key.filepath: \\1.swiftmodule/g'"
        sed_cmd += " | sed -e 's/key.filepath: \".*[/\\\\]\\(.*\\)\\.swift\"/key.filepath: \\1.swift/g'"
        sed_cmd += " | sed -e 's/key.filepath: \".*[/\\\\]\\(.*\\)-[0-9A-Z]*\\.pcm\"/key.filepath: \\1.pcm/g'"
        sed_cmd += " | sed -e 's/ file=\\\\\".*[/\\\\]\\(.*\\)\\.h\\\\\"/ file=\\1.h/g'"
        sed_cmd += " | sed -e 's/key.hash: \".*\"/key.hash: <hash>/g'"
        return sed_cmd

    config.substitutions.append( ('%sourcekitd-test', config.sourcekitd_test) )
    config.substitutions.append( ('%complete-test', config.complete_test) )
    config.substitutions.append( ('%swiftlib_dir', config.swiftlib_dir) )
    config.substitutions.append( ('%sed_clean', sed_clean) )
