[Castor-users] CASToR build on Windows platform

Simon Stute simon.stute at cea.fr
Wed Feb 14 13:09:04 CET 2018


Hi Moritz Schaar !

Better late than never to thank you for that kind email !

Thanks for spotting all these errors. We will fix them in the next 
release which we are currently preparing.
I think that nobody never used ROOT with CASToR under Windows ...

I personally use the mingw-w64 cross compiler to compile CASToR for 
Windows 64 bits from a linux distribution.
We thought about distributing these binaries for Windows users.
Finally, the datafile are now managed using file mapping so 
reconstructing huge files without much memory won't be a problem anymore.

If I may ask, for what purpose are you using CASToR ? Whatever the 
reason, thanks for using it !

Best
Simon


Le 02/02/2018 à 11:53, Moritz Schaar a écrit :
>
> Hi CASToR users and developers,
>
> I recently started working with CASToR and managed to compile it for 
> Ubuntu and Windows. As I am forced to work with Windows, this was my 
> primary targeted platform (Ubuntu VM just for cross-checks).
>
> However, I managed to build a 32bit release with Windows 7 64bit, 
> Visual Studio 2017 (v15.5.5), CMake 3.9.6 and pre-compiled ROOT 
> binaries for Visual Studio 2013 (“root_v5.34.36.win32.vc12.zip”).
>
> During this journey I discovered a couple of errors with CASToR’s 
> (CMake) configuration files which I would to draw your attention to.
>
> This is probably not the right place to submit this, but I could not 
> find any bug tracker or repository to issue cases.
>
> Due to my limited knowledge with CMake I just mention issues here 
> instead of offering true solutions.
>
> My issues:
>
> 1)The default CMakeLists.txt of CASToR provides two forks, one for 
> “win32” and one for unix-based system.
>
> Whereas the unix fork cares for flags as “CASToR_BUILD_GATE_UTILITIES” 
> and checks if “CASToR_ROOT” is set (which is required to read ROOT 
> files), the win32 fork does not check this.
>
> Hence, the build will fail due to missing ROOT libraries.
>
> My solution to this was to copy the parts from the unix part to the 
> corresponding win32 section and it worked. Maybe this is not the way 
> it is supposed to be, please check.
>
> 2)ROOT for Windows can only be built in 32bit mode, as the 64bit 
> version would require a lot of changes to ROOT and the underlying 
> libraries (see 
> https://root-forum.cern.ch/t/native-windows-64-bit-build/9102/27).
>
> Therefore, whenever a windows platform is detected, the compiler 
> should be force to 32bit mode and the CASToR build as well (see 
> variable “CASToR_64bits”).
>
> At least some prominent error should be displayed if this is easier to 
> implement.
>
> 3)The “FindROOT.cmake” file you provide in “cmake-modules” only works 
> for unix-systems.
>
> Here, the calls to ${ROOT_CONFIG_EXECUTABLE} in the “execute_process” 
> instructions do not work for windows as the “root-config” file cannot 
> be executed.
>
> I adjusted this section by borrowing parts from here: 
> https://git.fangmeier.tech/caleb/TTTT/src/master/cmake/FindROOT.cmake
>
> Again, I do not know if this is the way to go but it works for me.
>
> 4)When using CASToR_ROOT and building in 32bit mode using Visual 
> Studio 2017, this still fails due to some weird error namely:
>
> path_to_my_root_build\include\tvirtualx.h(183): error C2059: syntax 
> error : 'constant'
>
> I nailed this down to a ROOT bug submitted several years ago:
>
> https://sft.its.cern.ch/jira/browse/ROOT-3158
>
> The solution is to add the line “#include "Windows4Root.h" right 
> before “#include "TCanvas.h" in the file:
>
> castor_v1.2_0\source\include\management\gDataConversionUtilities.hh
>
> I do not know what consequences this has.
>
> 5)One small cosmetic issue (maybe it is a real issue but I did not 
> have an problems with this):
>
> Probably both lines of “add_definitions( /DCASTOR_ROOT )” in the 
> unix-fork of the CMakeLists.txt should be replaced with the hyphenated 
> version (-DCASTOR_ROOT).
>
> At least this is the case for all other flags (-DCASTOR_MPI, 
> -DCASTOR_VERBOSE et.c) in this section. Maybe the compiler will also 
> handle the slash version.
>
> Long story short, the build now works and the results of the 
> executables look promising. Nevertheless, due to the 32bit memory 
> restrictions, this CASToR build is suboptimal.
>
> I now plan on using a 32bit release to convert my GATE geometry data 
> and the corresponding ROOT simulation files into CASToR data files.
>
> In addition, I’m going to build a 64bit release as well and develop my 
> own stuff.
>
> Bottom line: You guys did an amazing job and I really like what v1.2 
> offers. Keep up the good work!
>
> *Yours sincerely,*
>
> *Moritz Schaar*
>
>
>
> _______________________________________________
> Castor-users mailing list
> Castor-users at lists.castor-project.org
> http://lists.castor-project.org/listinfo/castor-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.castor-project.org/pipermail/castor-users/attachments/20180214/97ed851b/attachment.html>


More information about the Castor-users mailing list