top bar

Difference between revisions of "Building MM on Windows"

(Building the Java layer: Micro-Manager Studio: Update mmstudio build info)
(Building the full source in one step: New instructions for new Ant build system (svn r11554))
Line 84: Line 84:
 
==Building the full source in one step==
 
==Building the full source in one step==
  
To build the entire Micro-Manager project for Windows with a single command, µManager 1.4 provides a batch file in the source repository in buildscripts. You need to have the installed tools and libraries described above: ant, Java JDK, boost, zlib and some java jar stuff.
+
You can build the C++, Java, and Clojure components in one step by typing, in <root>/projects/micro-manager-1.4, the following command:
  
From the C++ source, you can build the 32 bit version with the free 'Express' version of Visual Studio, though per my understanding, you need at least the 'Professional' version to build the 64 bit binaries. As of this writing, we are using the 2008 version of Visual studio. It's been built and tested preliminarily with Visual Studio 2010 also (some modification to the project files is necessary).
+
  ant stage -Dmm.architecture=Win32 -Dmm.configuration=Release -Dmm.build.failonerror=false
  
To build the 32 bit binary, open a command prompt and type
+
The value for mm.architecture can also be x64. The mm.build.failonerror=false setting causes device adapters and plugins to be skipped if they do not compile. Built files are placed in the stage/Release/Win32 directory.
  
  cd \projects\micromanager
+
Following the above command,
  buildscripts\Build
+
  
The 64 bit binary is built as follows:
+
  ant package -Dmm.architecture=Win32 -Dmm.configuration=Release
  
  buildscripts\Buildx64
+
will produce an installer in the dist/ directory.
 
+
If you've got all the tools and libraries installed correctly, these scripts will build everything and automatically install µManager onto your system. By default, the builds are incremental, if you want to clean the binaries (don't know why this is ever necessary, except perhaps in the case of virus infections) specify FULL, e.g.
+
 
+
  buildscripts\Buildx64 FULL
+
 
+
The final step of the build makes the installer using InnoSetup, the current builds scripts assume it's installed in:
+
 
+
  \projects\3rdparty\Inno_Setup_5\iscc.exe
+
 
+
(Note: Currently, Build.bat and Buildx64.bat include actions that are specific to our nightly build, so you may get some errors. You can build just the C++ conponents by running buildscripts\buildCpp. --[[User:Mark Tsuchida|Mark Tsuchida]] 17:38, 16 May 2013 (PDT))
+
  
 
{{Programming_Sidebar}}
 
{{Programming_Sidebar}}

Revision as of 18:23, 13 August 2013

Preparation

First make sure you have enough hard disk space. 5 GB is probably enough.

Directory structure for the source code

Create a directory named projects. The projects directory may reside anywhere you like and will contain the subdirectories micro-manager1.4, 3rdpartypublic, and 3rdparty.

Downloading the source code

To check out the Micro-Manager Source Code, first obtain a Subversion client. From projects/, run:

svn co https://valelab.ucsf.edu/svn/micromanager2/trunk/ micro-manager1.4
svn co https://valelab.ucsf.edu/svn/3rdpartypublic/

Required tools and applications

To build the entire application from the source code, you will need to install the following tools:

To build device adapters:

  1. Microsoft Visual Studio 2008 (Express is fine, and doesn't cost anything.)

(Work is underway to migrate Micro-Manager to Visual Studio 2010.)

Additionally, to build the entire Micro-Manager package:

  1. JDK Standard Edition 6 or later
  2. Apache Ant 1.8.1 or later (tested with 1.9.2)

Tell the build tools where to find Java and Ant by opening the System control panel / Advanced system settings / Environment Variables / System variables and addding the following new entries:

ANT_HOME=C:\apache-ant-1.9.2 (or path to Ant)
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20 (or path to Java)
PATH=%PATH%;%ANT_HOME%\bin

Device libraries and SDKs

Some device adapter require the installation of manufacturer's SDKs in order to build. All SDKs should be installed in the <root>/projects/3rdparty directory. The actual names of SDK directories should match the paths in the corresponding header files in the Micro-manager source code for device adapters.

If you don't want to build one or more device adapters (because you don't have the SDK), you should remove corresponding projects from the master solution: MMCoreJ_wrap.sln.

To add a device adapter to the automated build, use Visual Studio 2008 to add the device adapter project (a .vcproj file) to the MMCoreJ_wrap.sln or MMCoreJ_wrap_x64.sln. Under the device adapter's project properties, make sure the device adapter has this command under Build Events > Post-build Event:

copy "$(TargetPath)" ..\..\bin_$(PlatformName)

and a Linker > General > Output File of

$(OutDir)/mmgr_dal_YourDeviceName.dll

Setting up library paths

The project files in the repository should have the correct path settings.

To deal with the flood of text in the Output window, in the Solution Explorer right-click and build one project at a time.

If in Visual Studio you get an error:

       Target(FOO) does not match the Linker's OutputFile property value (BAR) ...

You could right-click on the project > properties > Configuration Properties > General > Target Name and add the leading "mmgr_dal_" to the beginning of $(ProjectName) to satisfy it.

Setting up 64-bit support on Visual C++ Express

Visual Studio Express does not include 64-bit compiler support out of the box. To compile x64 libraries in addition to Win32, you need to install the Windows SDK: http://msdn.microsoft.com/en-us/windows/bb980924

After installation you should find the x64 specific libraries at a path similar to:

       C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64

To build your x64 project you would need to make sure this is in the 'Additional Library Directories' setting in your project, specifically in Project > Properties > Configuration Properties > Linker > Additional Library Directories. If you do not do this you will get linker errors similar to:

       LINK: fatal error LNK1181: cannot open input file FOO.lib

Building the C++ layer: MMCore and device adapters

You can build C++ part of the project by opening MMCoreJ_wrap.sln in MSDEV and running the full build. This will build the MMCore, Java wrappers and all device adapters. You can remove any device adapter project from the solution if you don't have the corresponding SDK or if you don't need to build it.

Building the Java layer: Micro-Manager Studio

Java layer of the Micro-Manager can be build using the standard ANT utility with build.xml project file, located in the <root>/projects/micro-manager-1.4/mmstudio directory.

In the mmstudio directory from the commandline, run:

     ant jar

Which should produce MMJ_.jar in <root>/projects/micro-manager-1.4/build/Java. (This step requires that MMCoreJ.jar be present in build/Java.)

Building the full source in one step

You can build the C++, Java, and Clojure components in one step by typing, in <root>/projects/micro-manager-1.4, the following command:

 ant stage -Dmm.architecture=Win32 -Dmm.configuration=Release -Dmm.build.failonerror=false

The value for mm.architecture can also be x64. The mm.build.failonerror=false setting causes device adapters and plugins to be skipped if they do not compile. Built files are placed in the stage/Release/Win32 directory.

Following the above command,

 ant package -Dmm.architecture=Win32 -Dmm.configuration=Release

will produce an installer in the dist/ directory.

© Micro-Manager : Vale Lab, UCSF 2006-2011 | All Rights Reserved | Contact