Building on Windows: Difference between revisions

From NEOSYS Dev Wiki
Jump to navigationJump to search
 
(104 intermediate revisions by 4 users not shown)
Line 1: Line 1:
==Software to install:==
== Setting up Exodus Build Environment on Windows ==


{|cellpadding="5" cellspacing="0" border="1" width="60%"
|Install and configure MS VC++
|[[Step_by_step_instructions#INSTALL_COMPILER]]<BR>You need SDK *and* Visual Studio
|*Ignore the section to "test Exodus compilation - you haven't built it yet!"
|-
|Install and configure Postgresql
|[[Step_by_step_instructions#INSTALL_DATABASE]]
|Ignore any configuration "for Exodus"
|-
|Install Subversion client
|http://tortoisesvn.net/downloads.html
|Ignore its suggestion to reboot after installation.
|-
|Install NSIS Installer Builder
|http://sourceforge.net/projects/nsis/files/
|
|-
|Install Python
|http://python.org/download/
|Only needed to upload binaries to Google Code
|}


# WinRAR
== Get Boost Libraries ==
# PostgresSQL
# TortoiseSVN 9(32 bit)
# Boost c++ libraries 1.34.0
# Visual Studio C++ Express Edition
# Windows Platform SDK.


[[Installing WinRAR]]
Install or build Boost 1_46_1 binary libraries and header/include source files.


[[Installing Postgres]]
If you are simply building Exodus for packaging and release then you need only the release versions of Boost. You only need Boost debug libraries o develop/debug Exodus itself.


[[Installing Tortoise Subversion]]
=== Source 1 - build them from source ===


[[Building Boost 32/64 on Windows]]


=== Source 2 - download from Exodus project ===


==Boost C++ Libraries 1.34.0==
Header/Includes: [[Building_Boost_32/64_on_Windows#Get_Boost_Source]]


# Go to http://www.boost-consulting.com/products/free
Binaries: http://exodusdb.googlecode.com/files/boost1461-vc100-x86x64-rd.zip
# Click the 2nd download, Boost 1.34.0 Installer.
# Click Run and again.
# Agree to the licenses.
# Click Next.
# Tick the Visual C++ 8.0 (Visual studio 2005).
# Tick the Multithread, static runtime and Multithread Debug, static runtime then click Next
[[Image:multithreadstatic.jpg]]


# Now untick every box except:
Unzip the binaries into the main boost source/header/includes like this:
#* Boost Header files<br>
#* Boost Start menu shortcut<br>
#* Boost Source and Documentation<br>
#* Tools<br>
#* Boost DateTime<br>
#* Boost FileSystem<br>
#* Boost IOstream<br>
#* Boost ProgramOptions<br>
#* Boost Regex<br>
#* Boost Thread<br>


[[Image:choosingcomp.jpg]] <br>
boost_1_46_1\stage32
9. Click Next, Install. (take note of where you saved boost).
boost_1_46_1\stage64


==Downloading & Installing Visual Studio C++ Express Edition:==
=== Source 3 - download from BoostPro (but no x64! and no Unicode regex(?)) ===


# Go to http://msdn2.microsoft.com/en-gb/express/aa700735.aspx
Installs includes and binaries.
# Click on the download button near the top right hand of your screen.
# Scroll down the web page till you see 6 different downloads e.g. Visual Basic, SQL Server and Visual C++.
# Select your language for Visual C++ 2005 Express Edition, as soon as you select your language a "File download" window will pop up, click Run.
# There should be a bit of loading, once finished click Run and again.
# There should be a minute or two of loading, click Next in the Visual Studio C++ set-up.
# Accept the terms and click Yes.
# Tick the Graphical IDE if it hasn't been ticked already and click Next.
# Browse for a location in where you would like Visual Studio C++ (although, it would be best to keep the default location in case something need to find the Visual Studio C++ folder and cannot find it in its default location) then click Next.
# If you have any minor jobs to do, I suggest you do so now as it will take a while, but keep checking on how the installation is coming.
# Then reboot your computer.
# Once your pc is ready look for Visual Studio C++ on icon your desktop, if its not there go to start, all programs in the start menu and look for Visual Studio C++ Edition as shown in the example: <br>[[Image:whereVSC++.jpg]]
# The window below will pop up, telling you that you need to register your copy of Visual Studio C++ Express Edition.
[[Image:registerVSC++.jpg]]


==Downloading & Installing Platform SDK:==
See [[Installing_Boost]] but get:
*Version 1_46_1
*Visual Studio 2010
*mt and mt-debug version


===Part 1: Installing Platform SDK===
== Checkout Exodus ==


# Go to http://www.microsoft.com/downloads/details.aspx?familyid=0baf2b35-c656-4969-ace8-e4c0c0716adb&displaylang=en.
To commit any bug fixes or developments, send your gmail address [http://code.google.com/p/exodusdb/people/list here] to get a password.
# Click on the <b>Continue</b> button.
# Depending on your internet browser, you might have to install a plug-in. IF not, scroll down the web page and click on the <B>Continue</B> button.
# Click on the link called "Download Files Below" or you can just find the subheading <b>Files in this Download</b>
# There will be list of different types of files, depending on your processor to download. <br>
#* If you have a 64 bit Intel processor download <b>PSDK-ia64.exe</b>
#* If you have a 64 bit AMD processor download <b>PSDK-amd64.exe</b>
#* If you have another processor type, and it's listed on the web site but not here choose that Download.
#* If you have another processor type which is not included in the list on the web page download <b>PSDK-x86.exe</b><br><br>
#*
<br>Extra: If your on a virtual computer, then check the version on windows you are using.
# Save the file into your download folder.
# Then click Run, Then click Run again.
# At the next window, with two button, click Cancel.
# Click Next.
# Agree to the terms, and click Next.
# Do a custom installation, and click Next.
# You come to a stage in the set-up where it asks "In which driver do you want to save you files to?". Pick the drive you prefer. To change from drive to drive you change the beginning of the location. So if you want to save SDK in the C drive, leave it as it is and if you want to save SDK to the D drive, change C to D. Or click browse. Then click Next.
# Click Next again, and wait for the loading.
# Then continue the download, till the end.


===Part 2 Configuring & Compiling===
=== GUI  ===


# Run Microsoft Visual Studio C++ Express Edition.
#Create a folder called "exodus" F:\exodus
# Now go to File, Open, File, Desktop, Exodus, agency, agency.sln and then open.
#Right exodus click and choose "SVN checkout"
# You should see:<br>[[Image:newsolutionExplor.JPG]]<br>
#url of respository: HTTPS://exodusdb.googlecode.com/svn/trunk/
# Open agency pointed to you by the red arrow, by clicking on the + sign.
# Remove Market and schedule.
# In the agency folder, open Main then double click on main.cpp
# You should now have C++ code to the right side of the Visual Studio program window.
# Go to Tools, Options, open Project and Solutions and go to VC++ Directoies
# Your window should look like this:<br>[[Image:VSC++EEoptions.JPG]]
# Do the following:
#* Click the drop down menu for Show directories for: and click Include Files, now click the button that looks like a yellow folder and in the field were the cursor is blinking copy an paste the following path, and then press Enter: <b>C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin</b> 
#* Click the drop down menu for Show directories for: and click Include Files, now click the button that looks like a yellow folder and in the field were the cursor is blinking copy an paste the following path, and then press Enter: <b>C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include</b>
#* Click the drop down menu for Show directories for: and click Library files, now click the button that looks like a yellow folder and in the field were the cursor is blinking copy an paste the following path, and then press Enter: <b>C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib</b>
#* Click the drop down menu for Show directories for: and click Include Files, now click the button that looks like a yellow folder and in the field were the cursor is blinking copy and paste the path to the <b>boost_1_34_0</b> folder you created earlier when installing the Boost libraries.
#* Click the drop down menu for Show directories for: and click Library Files, now click the button that looks like a yellow folder in the field were the cursor is blinking copy and paste the path to the <b>boost_1_34_0\lib</b> folder you created earlier when installing the Boost libraries.
# Then click Ok.
[[Image:errormessage.JPG]]
# Check whether libpq.dll is in C:\Program Files\PostgreSQL\8.1\lib\????, if not there then change project properties to reflect version on location in where you installed postgreSQL.
# Right click on My computer, properties, advanced, environment variables, system variables, scroll down and find Path, double click it. variable value, go to the end of the path and type a semi-colon, then copy and paste the following path after the semi-colon:<br><b>C:\Program Files\PostgreSQL\8.1\lib\ms</b> and close Visual Studio C++ Express Edition, and then open again.
[[Image:PCconfig.JPG]]


===Update the corewin_express.vsprops file.===
=== TUI ===
<br>One more step is needed to make the Win32 template work in Visual C++ Express. You need to edit the corewin_express.vsprops file (found in C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults) and<br>
Change the string that reads:<br>
<br>AdditionalDependencies=<b>"kernel32.lib"</b>
<br>to
<br>AdditionalDependencies=<b>"kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"</b><br><br>


===Generate and build a Win32 application to test your paths.===
svn co HTTPS://exodusdb.googlecode.com/svn/trunk/ c:\exodus
<br>In Visual C++ Express, the Win32 Windows Application type is disabled in the Win32 Application Wizard. To enable that type, you need to edit the file AppSettings.htm file located in the folder %ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1033\".
<br>In a text editor comment out lines 441 - 444 by putting a // in front of them as shown here:<br>
<br>// WIN_APP.disabled = true;
<br>// WIN_APP_LABEL.disabled = true;
<br>// DLL_APP.disabled = true;
<br>// DLL_APP_LABEL.disabled = true;<br>
<br> Save and close the file and open Visual C++ Express. <br>


From the File menu, click New Project. In the New Project dialog box, expand the Visual C++ node in the Product Types tree and then click Win32. Click on the Win32 Console Application template and then give your project a name and click OK. In the Win32 Application Wizard dialog box, make sure that Windows application is selected as the Application type and the ATL is not selected. Click the Finish button to generate the project.<br>
You can use all the power of subversion to keep your build directory up to date, select previous versions of Exodus and generally be in control.
Compile by pressing F5.<br>
Win32 application should build and run.  
<br><br>
BY GREG BUSH 19/10/2007


==Helpful Websites==
NB always use HTTPS not http for the subversion link below - just in case you need to commit any changes back up into the subversion repository.


# For help on Microsoft Visual Studio C++ Express Edition go to http://msdn2.microsoft.com/en-gb/express/aa700755.aspx
== Configure Exodus for Developing, Building, Packing, Uploading ==
# For help on Boost go to http://www.boost.org
 
# For help on PostgeSQL go to http://www.postgresql.org/
copy the configlocalEXAMPLE.cmd to configlocal.cmd and edit it to reflect your configuration. Only configure those stages that you plan to do.
# For help on WinRAR go to http://www.win-rar.com/winrarsupport.html
 
# For help on TortoiseSVN go to http://tortoisesvn.tigris.org/
If you are only building x64 then you don't need to set the x32 variables. Note that BOOST32 and BOOST64 may point to the same folder since the headers/includes are the same and the binaries are in different libs eg stage64 or lib64 etc.
# For how to use tortoiseSVN go to http://devwiki.neosys.com/index.php/Installing_and_Using_Tortoise_Subversion
 
You can run clean, dev, make, pack, upload etc by just clicking on them without opening a command prompt.
 
[[configlocalEXAMPLE.cmd]] as at 2010/5/20
 
for packing, you need to edit version.cmd, for example
 
set EXO_MAJOR_VER=11
set EXO_MINOR_VER=5
set EXO_MICRO_VER=28
set EXO_BUILD_VER=0
 
== Either Build/Develop Using Visual Studio ==
 
The exodus_all.sln relies on environment variables to identify location of boost, postgresql. All the necessary environment variables are set in the fixed config.cmd and your local configlocal.cmd.
 
To open visual studio with all the right environment variables set you must run dev.cmd which calls config.cmd and then opens your solution
 
dev.cmd
 
#Select Configuration: Release or Debug
#Select Platform: x64 or Win32
#Build the solution
#Check the startup project is exodus_cli
#Debug/Run the solution. You should get an exodus/cmd command console.
#Type testsort, edic etc. configexodus may require adminstrator access to install pgexodus.dll into Postgresql's bin directory.
 
== Or Build Using Scripts or Command Line ==
 
Once configlocal.cmd is setup then making is a completely automatic process. Currently configlocal.cmd only supports one configuration/platform (e.g. Release/x64) at a time.
 
make.cmd
clean.cmd
 
== Packaging Exodus ==
 
Once configlocal.cmd is setup then packing is a completely automatic process. Look for output files like exodus-x86-11.5.3.exe.
 
pack.cmd
 
== Uploading Exodus ==
 
Once configlocal.cmd is setup then uploading new versions is a completely automatic process.
 
upload.cmd
 
== Old Info ==
 
[[Building on Windows - Old Version]]

Latest revision as of 14:24, 18 February 2012

Setting up Exodus Build Environment on Windows

Install and configure MS VC++ Step_by_step_instructions#INSTALL_COMPILER
You need SDK *and* Visual Studio
*Ignore the section to "test Exodus compilation - you haven't built it yet!"
Install and configure Postgresql Step_by_step_instructions#INSTALL_DATABASE Ignore any configuration "for Exodus"
Install Subversion client http://tortoisesvn.net/downloads.html Ignore its suggestion to reboot after installation.
Install NSIS Installer Builder http://sourceforge.net/projects/nsis/files/
Install Python http://python.org/download/ Only needed to upload binaries to Google Code

Get Boost Libraries

Install or build Boost 1_46_1 binary libraries and header/include source files.

If you are simply building Exodus for packaging and release then you need only the release versions of Boost. You only need Boost debug libraries o develop/debug Exodus itself.

Source 1 - build them from source

Building Boost 32/64 on Windows

Source 2 - download from Exodus project

Header/Includes: Building_Boost_32/64_on_Windows#Get_Boost_Source

Binaries: http://exodusdb.googlecode.com/files/boost1461-vc100-x86x64-rd.zip

Unzip the binaries into the main boost source/header/includes like this:

boost_1_46_1\stage32
boost_1_46_1\stage64

Source 3 - download from BoostPro (but no x64! and no Unicode regex(?))

Installs includes and binaries.

See Installing_Boost but get:

  • Version 1_46_1
  • Visual Studio 2010
  • mt and mt-debug version

Checkout Exodus

To commit any bug fixes or developments, send your gmail address here to get a password.

GUI

  1. Create a folder called "exodus" F:\exodus
  2. Right exodus click and choose "SVN checkout"
  3. url of respository: HTTPS://exodusdb.googlecode.com/svn/trunk/

TUI

svn co HTTPS://exodusdb.googlecode.com/svn/trunk/ c:\exodus

You can use all the power of subversion to keep your build directory up to date, select previous versions of Exodus and generally be in control.

NB always use HTTPS not http for the subversion link below - just in case you need to commit any changes back up into the subversion repository.

Configure Exodus for Developing, Building, Packing, Uploading

copy the configlocalEXAMPLE.cmd to configlocal.cmd and edit it to reflect your configuration. Only configure those stages that you plan to do.

If you are only building x64 then you don't need to set the x32 variables. Note that BOOST32 and BOOST64 may point to the same folder since the headers/includes are the same and the binaries are in different libs eg stage64 or lib64 etc.

You can run clean, dev, make, pack, upload etc by just clicking on them without opening a command prompt.

configlocalEXAMPLE.cmd as at 2010/5/20

for packing, you need to edit version.cmd, for example

set EXO_MAJOR_VER=11
set EXO_MINOR_VER=5
set EXO_MICRO_VER=28
set EXO_BUILD_VER=0

Either Build/Develop Using Visual Studio

The exodus_all.sln relies on environment variables to identify location of boost, postgresql. All the necessary environment variables are set in the fixed config.cmd and your local configlocal.cmd.

To open visual studio with all the right environment variables set you must run dev.cmd which calls config.cmd and then opens your solution

dev.cmd
  1. Select Configuration: Release or Debug
  2. Select Platform: x64 or Win32
  3. Build the solution
  4. Check the startup project is exodus_cli
  5. Debug/Run the solution. You should get an exodus/cmd command console.
  6. Type testsort, edic etc. configexodus may require adminstrator access to install pgexodus.dll into Postgresql's bin directory.

Or Build Using Scripts or Command Line

Once configlocal.cmd is setup then making is a completely automatic process. Currently configlocal.cmd only supports one configuration/platform (e.g. Release/x64) at a time.

make.cmd
clean.cmd

Packaging Exodus

Once configlocal.cmd is setup then packing is a completely automatic process. Look for output files like exodus-x86-11.5.3.exe.

pack.cmd

Uploading Exodus

Once configlocal.cmd is setup then uploading new versions is a completely automatic process.

upload.cmd

Old Info

Building on Windows - Old Version