devel:compile-win-xuvbuild [2010/02/11 11:12] emanuel |
devel:compile-win-xuvbuild [2010/07/17 23:55] (current) mario updated many details to current HEAD of xuvbuild script |
| | | | |
| | * **Visual Studio:** | | * **Visual Studio:** |
| - | * It is required to have a copy of Visual Studio. Visual Studio 2008 Professional is preferred. For 32 bit only compiles, Visual Studio Express Edition should be sufficient. It is unknown if Visual Studio 2005 is sufficient. | + | * It is required to have a copy of Visual Studio. Visual Studio 2008 Professional is preferred. For all other compiles, see our [[:devel:windows_build_systems_compilers|Windows Build Systems and Compilers]] overview. |
| | * **Cygwin:** | | * **Cygwin:** |
| | * An installation of [[http://www.cygwin.com/|Cygwin]] is required in order to run the build scripts. There are also certain package requirements for Cygwin: | | * An installation of [[http://www.cygwin.com/|Cygwin]] is required in order to run the build scripts. There are also certain package requirements for Cygwin: |
| | * **recommended Cygwin packages:** subversion perl rxvt | | * **recommended Cygwin packages:** subversion perl rxvt |
| | * **disallowed Cygwin packages:** cmake qt3 qt3-devel-tools qt4 qt4-devel-tools | | * **disallowed Cygwin packages:** cmake qt3 qt3-devel-tools qt4 qt4-devel-tools |
| - | * **An subversion client:** | + | * **A subversion client:** |
| - | * Any subversion client should do, so you can absolutely use the client that comes with Cygwin (see above). However, if you plan to commit often, we recommend using a nicer SVN client like [[http://www.syntevo.com/smartsvn/download.html|SmartSVN]]. | + | * Any subversion client should do, and you can absolutely use the client that comes with Cygwin (see above). However, if you plan to commit often, we recommend using a nicer SVN client like [[http://www.syntevo.com/smartsvn/download.html|SmartSVN]]. |
| | + | |
| | + | ==== Testing your Build Environment ==== |
| | + | |
| | + | <note important>This step is still in an early stage. While the automatic testing can already help find several issues, it is not able to detect all possible problems.</note> |
| | + | |
| | + | To test if you should have a working Build environment, you can use the script xuvprepare.sh. The script will inspect your setup and warn about problems and errors. Here is a sample run on Cygwin: |
| | + | |
| | + | <code> |
| | + | emmenlau@fattie /m/emmenlau/XuvTools/trunk/xuvtools/scripts |
| | + | $ ./xuvprepare.sh --verbose |
| | + | [xuvprepare.sh]: Detected cygwin environment. |
| | + | [xuvprepare.sh]: Passed all cygwin-related checks. |
| | + | </code> |
| | | | |
| | ==== Sources, Directory Layout and Environment ==== | | ==== Sources, Directory Layout and Environment ==== |
| | | | |
| | <code> | | <code> |
| - | Sources: "M:\${USER}\XuvTools\trunk\" | + | Sources: "D:\Data\${USER}\XuvTools\trunk\" |
| | Binaries: "D:\Data\${USER}\lmbsoft\" | | Binaries: "D:\Data\${USER}\lmbsoft\" |
| | </code> | | </code> |
| | | | |
| - | If you can't use this directory layout or drive letters, please edit the script "XuvTools/trunk/xuvtools/scripts/env-lmb.sh" to reflect your directory layout. | + | If you can't use this directory layout or drive letters, please check the script "XuvTools/trunk/xuvtools/scripts/env-lmb.sh" to reflect your directory layout. |
| | | | |
| | == Getting the Sources == | | == Getting the Sources == |
| | == Path Variable == | | == Path Variable == |
| | | | |
| - | Make sure that the systems PATH variable does not contain any pathes to Windows installations of Perl, Subversion, Ant, Cmake and Boost. | + | XuvTools brings its own Ant, Cmake, and Boost. Some users had problems because their PATH variable contained paths to Windows installations of Perl, Subversion, Ant, Cmake, Make and Boost other than the ones from Cygwin or XuvTools. |
| | | | |
| | ==== Starting a Compile ==== | | ==== Starting a Compile ==== |
| | | | |
| | <code> | | <code> |
| - | rxvt-x Intel32 BuildEnv.lnk - For Intel Compiler 32bit environment | + | rxvt-x Intel32 BuildEnv.lnk - For Intel Compiler 32bit environment |
| - | rxvt-x Intel64 BuildEnv.lnk - For Intel Compiler 64bit environment | + | rxvt-x Intel64 BuildEnv.lnk - For Intel Compiler 64bit environment |
| - | rxvt-x VisualStudio32 BuildEnv.lnk - For Microsoft Visual Studio Compiler 32bit environment | + | rxvt-x MinGW64 BuildEnv.lnk - (Currently unusable) MinGW test shell |
| - | rxvt-x VisualStudio64 BuildEnv.lnk - For Microsoft Visual Studio Compiler 64bit environment | + | rxvt-x VisualStudio2008 32 BuildEnv.lnk - For Microsoft Visual Studio 2008 32bit environment |
| | + | rxvt-x VisualStudio2008 64 BuildEnv.lnk - For Microsoft Visual Studio 2008 64bit environment |
| | + | rxvt-x VisualStudio2010 32 BuildEnv.lnk - For Microsoft Visual Studio 2010 32bit environment |
| | + | rxvt-x VisualStudio2010 64 BuildEnv.lnk - For Microsoft Visual Studio 2010 64bit environment |
| | </code> | | </code> |
| | | | |
| | == Setting the environment Variables == | | == Setting the environment Variables == |
| | | | |
| - | Once you have started the Terminal via one of the above shourcuts, a new shell window should open. You can now set the environment variables for this shell by sourcing the environment script: | + | Once you have started the Terminal via one of the above shortcuts, a new shell window should open. You can now set the environment variables for this shell by sourcing the environment script: |
| | | | |
| | <code> | | <code> |
| | source XuvTools/trunk/xuvtools/scripts/env-lmb.sh | | source XuvTools/trunk/xuvtools/scripts/env-lmb.sh |
| - | </code> | |
| - | | |
| - | == Compiling Thirdparty Prerequisites == | |
| - | | |
| - | Compiling the thirdparty prerequisites is required only the first time (or whenever there are updates). Currently, these prerequisites are the Qt library only. | |
| - | | |
| - | <code> | |
| - | cd thirdparty/ | |
| - | make | |
| | </code> | | </code> |
| | | | |
| | == Starting the XuvTools Compile == | | == Starting the XuvTools Compile == |
| | | | |
| - | Finally, you can now use the "xuvbuild.sh" script to compile the sources. When compiling the sources for the first time, you need to use the parameter "--qmake" to generate the Visual Studio Project files. For a first run it also recommended to use the parameter "--genfirst". Here is a sample run for compiling the first time: | + | Finally, you can now use the "xuvbuild.sh" script to compile the sources. When compiling the sources for the first time, you need to use the parameter "--qmake" to generate the Visual Studio Project files. For a first run it also recommended to use the parameter "--genfirst". Compiling the thirdparty prerequisites is required only the first time (or whenever there are updates). Thirdparty compilation is activated with the "--thirdparty" switch. Here is a sample run for compiling the first time: |
| | | | |
| | <code> | | <code> |
| - | emmenlau@fattie /m/emmenlau/XuvTools/trunk | + | emmenlau@fattie#> xuvbuild.sh --help |
| - | $ xuvbuild.sh --help | + | |
| | usage: xuvbuild.sh | | usage: xuvbuild.sh |
| | [--verbose|-v] - be more verbose (default=0) | | [--verbose|-v] - be more verbose (default=0) |
| | [--showbuild|-sb] - show BuildLog in an extra rxvt terminal | | [--showbuild|-sb] - show BuildLog in an extra rxvt terminal |
| | | | |
| - | emmenlau@fattie /m/emmenlau/XuvTools/trunk | + | emmenlau@fattie#> xuvbuild.sh --verbose --qmake --tools --thirdparty |
| - | $ xuvbuild.sh --verbose --qmake --genfirst | + | |
| | </code> | | </code> |
| | | | |
| - | Here is a sample run for compiling all additional times: | + | Here is a sample run for compiling all future times: |
| | | | |
| | <code> | | <code> |
| - | emmenlau@fattie /m/emmenlau/XuvTools/trunk | + | emmenlau@fattie#> xuvbuild.sh --verbose |
| - | $ xuvbuild.sh --verbose | + | |
| | </code> | | </code> |
| | | | |
| - | ==== Testing your setup (Optional) ==== | + | ==== XuvTools Releases ==== |
| | | | |
| - | <note important>This step is still in its infancy. While the automatic testing can already help find several issues, it is not able to detect all possible problems. Please do not rely on xuvprepare.sh alone, but rather stick to these instructions as closely as possbile.</note> | + | XuvTools releases are packaged with the freeware software "Advanced Installer" (from http://www.advancedinstaller.com/). We provide shell scripts to package the XuvTools release automatically, and include the Java runtime environment and other dependencies. |
| | | | |
| - | To test if you should have a working Build environment, you can use the script xuvprepare.sh. The script will inspect your setup and warn about problems and errors. Here is a sample run on Cygwin: | + | == Packaging a XuvTools Release == |
| | + | |
| | + | Depending on the platform, you can use one of currently three packaging scripts: xuvpackage-win.sh, xuvpackage-mac.sh or xuvpackage-lin.sh. Here we demonstrate xuvpackage-win.sh: |
| | | | |
| | <code> | | <code> |
| - | emmenlau@fattie /m/emmenlau/XuvTools/trunk/xuvtools/scripts | + | emmenlau@fattie#> xuvpackage-win.sh --verbose --version=<versionnr> |
| - | $ ./xuvprepare.sh --verbose | + | |
| - | [xuvprepare.sh]: Detected cygwin environment. | + | |
| - | [xuvprepare.sh]: Passed all cygwin-related checks. | + | |
| | </code> | | </code> |
| | + | |
| | + | This will create a new packaged release in your XuvTools/trunk/releases/ directory. |
| | | | |