[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [IMP-users] Windows build



At first, the configure stage failed because your latest commit still contained a symlink. I then merged 'develop' into my feature branch where I took care of the symlinks already. I have only learned yesterday after looking at your code that Windows can correctly handle paths with mixed separators such as "/a/b\c\d" (well, in most cases - e.g. "dir /my_dir" will not work because it thinks /my_dir is a parameter; in Python os.path.split("/a/b\c\d") will not split correctly).
Then, the build worked for most targets, which is great. There were still a few errors with some Windows API functions complaining about path format. There was a lot of errors about various symbols present twice in the same Boost library (program_options). I am not sure yet what to make of that. Can that be related to your define /DBOOST_ALL_DYN_LINK which I did not use?
I am using binary build of Boost from http://boost.teeks99.com/.
There was a great number of warnings about symbols not being exported. I guess they can be ignored?
I have made my edits to the build process available at git://github.com/andreyto/imp-fork-proddl.git in branch feature/vsbuild, in case you want to pick them up. It also replaces a symlink inside scons directory with a Python package that behaves like a symlink when imported. I also kept my version of injecting Python interpreter into imp_execute_process because it can handle multiple COMMAND statements per call, as allowed by CMake execute_process.
Andrey

On 03/26/2013 05:18 PM, Ben Webb wrote:
The latest SVN or git should now build on a 'real' Windows system (there 
are still a few rough edges, but 'cmake', 'nmake', 'ctest' worked for 
me). The binary Windows packages should also be updated now.

Just a few notes:

1. You need to have some version of Python 2 in your PATH in order for 
various setup scripts to work.

2. If you don't have avrocpp installed already, you'll need to replace 
the avro->api symlink in order to build RMF (just go into 
modules/rmf/dependency/RMF/AvroCpp and replace the avro symlink with a 
copy of the api subdirectory). This has already been done in RMF 
upstream, so will work its way into IMP shortly.

3. On Unix a setup_environment.sh script is generated that is used to 
set necessary environment variables to run IMP tools. On Windows a 
setup_environment.bat file is generated instead (it need only be run 
once, not for each command line).

4. cmake will probably need some help finding IMP dependencies. On my 
system where I have most dependencies built as DLLs I had to add
    -DCMAKE_CXX_FLAGS='/DBOOST_ALL_DYN_LINK /EHsc /D_HDF5USEDLL_ /DWIN32 
/DGSL_DLL'"
    -Dfftw3_LIBRARY='C:/Program Files/Microsoft Visual Studio 
10.0/VC/lib/libfftw3-3.lib'
to my cmake invocation.

5. There are still a few symlinks in the repo, so the handful of 
testcases that use these links will probably fail for now. But I'll 
address that shortly.

	Ben