Example #1
0
        /// <summary>
        ///     DownloadAndBuild method downloads selected VTK version and builds it for selected parameters (i.e. x64
        ///     and Visual Studio 13)
        /// </summary>
        public void DownloadAndBuild()
        {
            try
            {
                if (!Directory.Exists(destinationFolder))
                {
                    Directory.CreateDirectory(destinationFolder);
                }

                message("Checking Dependencies...");

                DependencyChecker.CheckCommanDependency();

                message("Checking Dependencies done!");

                message("Downloading VTK...");

                string vtkDownloadURL = VTKInfo.GetDownloadURL(vtkVersion);
                string vtkZIPFilename = VTKInfo.GetVTKZipFileName(vtkVersion);

                DownloadHelper.DownloadFileFromURL(vtkDownloadURL, destinationFolder + vtkZIPFilename);

                message("Start to unzip VTK...");

                // Unzip VTK
                SevenZip.Decompress(destinationFolder + "/" + vtkZIPFilename, destinationFolder);

                message("VTK has been unzipped!");

                message("Building VTK...");

                runCMake(destinationFolder);
                runMSBuild(destinationFolder, " /property:Configuration=" + Folder.ReleaseFolderName);

                message("VTK successfully built!");

                // remove downloaded file
                if (File.Exists(Path.Combine(destinationFolder, vtkZIPFilename)))
                {
                    System.IO.File.Delete(Path.Combine(destinationFolder, vtkZIPFilename));
                }

                OnFinished();
            }
            catch (Exception ex)
            {
                message(string.Empty);
                OnFailure();
                MessageBox.Show(ex.ToString());
            }
        }
Example #2
0
        public void DownloadAndInstall()
        {
            try
            {
                string CMakeEXEDestination = PreferencesManager.Instance.ApplicationDownloadFolder + "/" + "cmake-3.3.1-win32-x86.exe";

                message("Downloading " + @"http://www.cmake.org/files/v3.3/cmake-3.3.1-win32-x86.exe" + "...");

                DownloadHelper.DownloadFileFromURL(@"http://www.cmake.org/files/v3.3/cmake-3.3.1-win32-x86.exe",
                                                   CMakeEXEDestination);

                message("Starting installation process...");

                var info = new ProcessStartInfo();
                info.UseShellExecute        = true;
                info.WorkingDirectory       = @"C:\Windows\System32";
                info.FileName               = @"C:\Windows\System32\cmd.exe";
                info.Verb                   = "runas";
                info.RedirectStandardInput  = true;
                info.UseShellExecute        = false;
                info.RedirectStandardOutput = true;
                info.RedirectStandardError  = true;

                Process p = new Process();
                p.StartInfo = info;

                p.Start();

                using (StreamWriter sw = p.StandardInput)
                {
                    if (sw.BaseStream.CanWrite)
                    {
                        sw.WriteLine("cd /D " + PreferencesManager.Instance.ApplicationDownloadFolder);
                        sw.WriteLine("cmake-3.3.1-win32-x86.exe /S");
                    }
                }

                readStandardOutput(p);
                readStandardError(p);

                p.WaitForExit();
                p.Close();
            }
            catch (Exception ex)
            {
                message("CMake Installation failed: " + ex.ToString());
            }
        }
Example #3
0
        public void DownloadAndBuild()
        {
            try
            {
                if (!Directory.Exists(destinationFolder))
                {
                    Directory.CreateDirectory(destinationFolder);
                }

                message("Downloading Eigen...");


                string downloadURL      = EigenInfo.GetDownloadURL(version);
                string eigenZIPFilename = EigenInfo.GetZipFileName(version);

                DownloadHelper.DownloadFileFromURL(downloadURL, destinationFolder + eigenZIPFilename);

                message("Start to unzip...");

                // Unzip Boost
                SevenZip.Decompress(destinationFolder + eigenZIPFilename, destinationFolder);

                message("file has been unzipped!");

                string strVersion = EigenInfo.TransformVersionToString(version);

                Directory.Move(FindEigenDirectory(destinationFolder), destinationFolder + "/Eigen_" + strVersion);

                message("start building...");

                // remove downloaded file
                if (File.Exists(Path.Combine(destinationFolder, eigenZIPFilename)))
                {
                    System.IO.File.Delete(Path.Combine(destinationFolder, eigenZIPFilename));
                }

                message("Eigen successfully built!");


                OnFinished();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Example #4
0
        public void DownloadAndBuild()
        {
            try
            {
                if (!Directory.Exists(destinationFolder))
                {
                    Directory.CreateDirectory(destinationFolder);
                }

                message("Downloading OpenSceneGraph...");

                string downloadURL = OpenSceneGraphInfo.GetDownloadURL(version);
                string ZIPFilename = OpenSceneGraphInfo.GetZipFileName(version);

                DownloadHelper.DownloadFileFromURL(downloadURL, destinationFolder + ZIPFilename);

                message("Start to unzip boost...");

                // Unzip Boost
                SevenZip.Decompress(destinationFolder + "/" + ZIPFilename, destinationFolder);

                message("OpenSceneGraph has been unzipped!");
                message("start building OpenSceneGraph...");

                // Build OpenSceneGraph
                runCMake(destinationFolder);

                // now build release mode
                runMSBuild(destinationFolder, " /property:Configuration=Release");

                runMSBuild(destinationFolder);

                // remove downloaded file
                System.IO.File.Delete(destinationFolder + ZIPFilename);

                message("OpenSceneGraph successfully built!");

                OnFinished();
            }
            catch (Exception ex)
            {
                message(string.Empty);
                OnFailure();
                MessageBox.Show(ex.ToString());
            }
        }
Example #5
0
        public void DownloadAndBuild()
        {
            try
            {
                if (!Directory.Exists(destinationFolder))
                {
                    Directory.CreateDirectory(destinationFolder);
                }

                message("Downloading OpenCV...");

                string boostDownloadURL = OpenCVInfo.GetDownloadURL(boostVersion);
                string boostZIPFilename = OpenCVInfo.GetZipFileName(boostVersion);

                DownloadHelper.DownloadFileFromURL(boostDownloadURL, destinationFolder + boostZIPFilename);

                message("Start to unzip boost...");

                // Unzip Boost
                SevenZip.Decompress(destinationFolder + "/" + boostZIPFilename, destinationFolder);

                message("boost has been unzipped!");
                message("start building boost...");

                // Build boost


                // remove downloaded file
                System.IO.File.Delete(destinationFolder + boostZIPFilename);

                message("boost successfully built!");


                OnFinished();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Example #6
0
        /// <summary>
        ///     DownloadAndBuild method downloads selected Flann version and builds it for selected parameters (i.e. x64
        ///     and Visual Studio 13)
        /// </summary>
        public void DownloadAndBuild()
        {
            try
            {
                // TODO: Ankit - Customize Message box with BlueGo UX
                string fVersion = FlannInfo.TransformFlannVersionToString(flannVersion);
                //prompt for dependencies
                MessageBox.Show("Information:Flann " + fVersion + " requires Python 2.x & Numpy as dependencies to build successfully!");

                if (!Directory.Exists(destinationFolder))
                {
                    Directory.CreateDirectory(destinationFolder);
                }

                message("Checking Dependencies...");

                DependencyChecker.CheckCommanDependency();

                string python2FullPath = Executable.GetPython2ExePath();

                if (String.IsNullOrEmpty(python2FullPath))
                {
                    throw new Exception(PythonAndNumpyNotInstalledMessage);
                }

                message("Checking Dependencies done!");

                message("Downloading Flann...");

                string FlannDownloadURL = FlannInfo.GetDownloadURL(flannVersion);
                string FlannZIPFilename = FlannInfo.GetFlannZipFileName(flannVersion);

                DownloadHelper.DownloadFileFromURL(FlannDownloadURL, destinationFolder + FlannZIPFilename);

                message("Start to unzip Flann...");

                // Unzip Flann
                SevenZip.Decompress(destinationFolder + "/" + FlannZIPFilename, destinationFolder);

                message("Flann has been unzipped!");

                //patch the serialization.h for building successfully with x64
                if (platform == ePlatform.x64)
                {
                    patchForX64Platform();
                }

                message("Building Flann...");

                runCMake(destinationFolder, python2FullPath);
                runMSBuild(destinationFolder, " /property:Configuration=" + Folder.ReleaseFolderName);

                message("Flann successfully built!");

                // remove downloaded file
                if (File.Exists(Path.Combine(destinationFolder, FlannZIPFilename)))
                {
                    System.IO.File.Delete(Path.Combine(destinationFolder, FlannZIPFilename));
                }

                OnFinished();
            }
            catch (Exception ex)
            {
                message(string.Empty);
                OnFailure();
                MessageBox.Show(ex.ToString());
            }
        }
Example #7
0
        /// <summary>
        ///     DownloadAndBuild method downloads selected PCL version and builds it for selected parameters (i.e. x64
        ///     and Visual Studio 13)
        /// </summary>
        public void DownloadAndBuild()
        {
            try
            {
                // TODO: Ankit - Customize Message box with BlueGo UX
                // prompt for dependencies
                if (MessageBox.Show(PCLWaring, "Warning", MessageBoxButtons.OKCancel) != DialogResult.OK)
                {
                    OnFinished();
                    return;
                }

                if (!Directory.Exists(destinationFolder))
                {
                    Directory.CreateDirectory(destinationFolder);
                }

                message("Checking Dependencies...");

                DependencyChecker.CheckCommanDependency();

                python2ExeFullPath = Executable.GetPython2ExePath();

                if (String.IsNullOrEmpty(python2ExeFullPath))
                {
                    throw new Exception(PythonAndNumpyNotInstalledMessage);
                }

                message("Checking Dependencies done!");

                message("Downloading PCL...");

                string pclDownloadURL = PCLInfo.GetDownloadURL(pclVersion);
                string pclZIPFilename = PCLInfo.GetPCLZipFileName(pclVersion);
                pclFolderName = PCLInfo.GetPCLInfo(pclVersion).ExtractFolderName;

                DownloadHelper.DownloadFileFromURL(pclDownloadURL, destinationFolder + pclZIPFilename);

                message("Start to unzip PCL...");

                // unzip pcl
                SevenZip.Decompress(destinationFolder + "/" + pclZIPFilename, destinationFolder);

                message("PCL has been unzipped!");

                if (Directory.Exists(destinationFolder + "/pcl-" + pclFolderName))
                {
                    Directory.Move(destinationFolder + "/pcl-" + pclFolderName, destinationFolder + pclFolderName);
                }
                else if (Directory.Exists(destinationFolder + pclFolderName) && (ePCLVersion.FromSourceGIT == pclVersion))
                {
                    Directory.Move(destinationFolder + pclFolderName, destinationFolder + "/" + PCLFromSourceGITFolderName);
                    pclFolderName = PCLFromSourceGITFolderName;
                }

                message("start to build pcl...");

                runCMake(destinationFolder);
                runMSBuild(destinationFolder, " /property:Configuration=" + Folder.ReleaseFolderName);

                message("PCL successfully built!");

                // remove downloaded file
                if (File.Exists(Path.Combine(destinationFolder, pclZIPFilename)))
                {
                    System.IO.File.Delete(Path.Combine(destinationFolder, pclZIPFilename));
                }

                OnFinished();
            }
            catch (Exception ex)
            {
                message(string.Empty);
                OnFailure();
                MessageBox.Show(ex.ToString());
            }
        }
Example #8
0
        public void DownloadAndBuild()
        {
            try
            {
                if (!Directory.Exists(destinationFolder))
                {
                    Directory.CreateDirectory(destinationFolder);
                }

                message("downloading QT");

                string QtDownloadURL = QtInfo.GetDownloadURL(qtVersion);
                string QtZipFilename = QtInfo.GetZipFileName(qtVersion);

                if (!File.Exists(destinationFolder + QtZipFilename) || downloadThirdPartyLibraryEveryTime)
                {
                    // Download Qt
                    DownloadHelper.DownloadFileFromURL(QtDownloadURL, destinationFolder + QtZipFilename);

                    message("extracting QT");
                }

                // Extract Qt
                SevenZip.Decompress(destinationFolder + QtZipFilename, destinationFolder);

                // patch qt
                if (compilerType == eCompiler.VS2012 && qtVersion == eQtVersion.Qt4_8_3)
                {
                    // patch Qt 4.8.3
                    message("patching Qt 4.8.3");

                    System.Reflection.Assembly a = System.Reflection.Assembly.GetEntryAssembly();
                    string baseDir         = System.IO.Path.GetDirectoryName(a.Location);
                    string qmakeConfigPath = baseDir + @"\qt4.8.3vs2012patch\qmake.conf";

                    if (!File.Exists(qmakeConfigPath))
                    {
                        throw new Exception("File " + qmakeConfigPath + " does not exist");
                    }

                    File.Copy(
                        qmakeConfigPath,
                        destinationFolder + @"qt-everywhere-opensource-src-4.8.3\mkspecs\win32-msvc2010\qmake.conf", true);

                    File.Copy(
                        @"qt4.8.3vs2012patch\HashSet.h",
                        destinationFolder + @"qt-everywhere-opensource-src-4.8.3\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h", true);
                }

                // patch qt
                if (compilerType == eCompiler.VS2012 && qtVersion == eQtVersion.Qt4_8_4)
                {
                    // patch Qt 4.8.4
                    message("patching Qt 4.8.4");

                    System.Reflection.Assembly a = System.Reflection.Assembly.GetEntryAssembly();
                    string baseDir         = System.IO.Path.GetDirectoryName(a.Location);
                    string qmakeConfigPath = baseDir + @"\qt4.8.3vs2012patch\qmake.conf";

                    if (!File.Exists(qmakeConfigPath))
                    {
                        throw new Exception("File " + qmakeConfigPath + " does not exist");
                    }

                    File.Copy(
                        qmakeConfigPath,
                        destinationFolder + @"qt-everywhere-opensource-src-4.8.4\mkspecs\win32-msvc2010\qmake.conf", true);

                    File.Copy(
                        @"qt4.8.3vs2012patch\HashSet.h",
                        destinationFolder + @"qt-everywhere-opensource-src-4.8.4\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h", true);
                }

                message("configure qt");

                if (qtVersion == eQtVersion.Qt4_8_3 ||
                    qtVersion == eQtVersion.Qt4_8_4)
                {
                    configureQT4();
                }
                else
                {
                    configureQT5();
                }

                message("building qt");

                buildQT();

                // remove downloaded file
                if (File.Exists(Path.Combine(destinationFolder, QtZipFilename)))
                {
                    System.IO.File.Delete(Path.Combine(destinationFolder, QtZipFilename));
                }

                message("Finished buidling qt  - - - DONE");

                OnFinished();
            }
            catch (Exception ex)
            {
                message(string.Empty);
                OnFailure();
                MessageBox.Show(ex.ToString());
            }
        }
Example #9
0
        public void DownloadAndBuild()
        {
            try
            {
                if (!Directory.Exists(destinationFolder))
                {
                    Directory.CreateDirectory(destinationFolder);
                }

                // Boost.IOStreams Zlib filters see http://stackoverflow.com/questions/2629421/how-to-use-boost-in-visual-studio-2010
                bool bBuildBoostIOStreams = false;
                if (bBuildBoostIOStreams)
                {
                    message("Downloading zlib127...");
                    DownloadHelper.DownloadFileFromURL(@"http://zlib.net/zlib127.zip", destinationFolder + "zlib127.zip");
                    message("Start to unzip zlib127...");
                    // Unzip zlib127
                    SevenZip.Decompress(destinationFolder + "/" + "zlib127.zip", destinationFolder);

                    string ZLIB_SOURCE  = destinationFolder + "zlib127";
                    string ZLIB_INCLUDE = destinationFolder + "zlib127";
                }

                message("Downloading boost...");

                string boostDownloadURL = BoostInfo.GetDownloadURL(boostVersion);
                string boostZIPFilename = BoostInfo.GetBoostZipFileName(boostVersion);
                if (boostVersion == eBoostVersion.FromSourceSVN)
                {
                    string boostFromSourceSVNFolderPath = Path.Combine(destinationFolder, BoostHelper.BoostFromSourceSVNFolderName);
                    DownloadHelper.CheckOutFromSourceSVN("svn", boostDownloadURL, boostFromSourceSVNFolderPath);
                }
                else
                {
                    DownloadHelper.DownloadFileFromURL(boostDownloadURL, destinationFolder + boostZIPFilename);

                    message("Start to unzip boost...");

                    if (boostVersion == eBoostVersion.Boost1_51_0)
                    {
                        FileInfo fi         = new FileInfo(destinationFolder + boostZIPFilename);
                        long     fileLength = fi.Length;

                        if (fileLength != 91365553)
                        {
                            MessageBox.Show("Invalid file size of " + boostZIPFilename + " Size in bytes should be 91365553");
                        }
                    }

                    // Unzip Boost
                    SevenZip.Decompress(destinationFolder + "/" + boostZIPFilename, destinationFolder);

                    message("boost has been unzipped!");
                }

                if (boostVersion == eBoostVersion.Boost1_54_0 || compilerType == eCompiler.VS2013)
                {
                    // patch boost!
                    // https://svn.boost.org/trac/boost/attachment/ticket/8750/vc12.patch
                }

                if (boostVersion == eBoostVersion.Boost1_58_0 && compilerType == eCompiler.VS2015)
                {
                    message("Patching boost 1.58.0 config file to support VS2015.");
                    // patch boost!
                    // http://stackoverflow.com/questions/30760889/c-c-unknown-compiler-version-while-compiling-boost-with-msvc-14-0-vs-2015/30959156#30959156
                    File.Copy(@"boost1.58.0patch\vc14_visualc.hpp", destinationFolder + @"\boost_1_58_0\boost\config\compiler\visualc.hpp", true);
                }

                message("start building boost...");

                // Build boost
                if (boostVersion == eBoostVersion.Boost1_51_0 || boostVersion == eBoostVersion.Boost1_44_0)
                {
                    buildBoost_1_51_0_x64(destinationFolder);
                }
                else
                {
                    bootstrapBoost_1_52_0_AndLaterVersion();
                    buildBoost_1_52_0_AndLaterVersion();
                }

                // remove downloaded file
                if (File.Exists(Path.Combine(destinationFolder, boostZIPFilename)))
                {
                    System.IO.File.Delete(Path.Combine(destinationFolder, boostZIPFilename));
                }

                message("boost successfully built!");


                OnFinished();
            }
            catch (Exception ex)
            {
                message(string.Empty);
                OnFailure();
                MessageBox.Show(ex.ToString());
            }
        }