anchor.diff:      sb.Append(sprintf " -target:library -out:%s/%s.dll -version:%s -fileversion:%s" OutputDirectory "FlexLucene" 
                     LuceneFullVersion FileVersion).ToString()
   
  +!>"Execute IKVM"
   Exec(IkvmPath, GetIkvmBuildString())
   !>"Append build information"
   
  
positive.code:        sprintf "lucene-spatial-%s" LuceneVersion
         sprintf "lucene-sandbox-%s" LuceneVersion |]
  
  let JarFiles = Directory.GetFiles(RootDirectory, "*.jar", System.IO.SearchOption.AllDirectories)
  let cmdExec (args : string) = Exec(@"C:\Program Files\Java\jre7\bin\java.exe", args)
  
  // Copy lucene files to be compiled
  LuceneJars |> Array.iter (fun jar -> 
                    match JarFiles.FirstOrDefault(fun x -> x.Contains(jar)) with
                    | null -> failwithf "Jar not found: %s" jar
                    | filePath -> File.Copy(filePath, LuceneDirectory <!!> (Path.GetFileName(filePath))))
  // Extract meta information from packages
  loopFiles LuceneDirectory |> Seq.iter (fun file -> 
                                   use archive = ZipFile.Open(file, ZipArchiveMode.Update)
                                   
  
negative.code: let loopFiles (dir : string) = Directory.EnumerateFiles(dir)
  let createDir (dir : string) = Directory.CreateDirectory(dir) |> ignore
  let (!>) (content : string) = printfn "%s" content |> ignore
  let (!>>) (content : string) = printfn "\t%s" content |> ignore
  let OK() = printfn "[SUCCESS]"
  let FAIL() = printfn "[FAILED]"
  
  