Hi Alan Just for info Visual Studio Express is free (as in free beer), but obviously not open source. I think the big difference between the express version and the paid for version is lack of microsoft foundation classes which are helper classes for windows programming and there are probably some source code control/team working bits of the IDE missing. The compiler and linker are the same I think. I would guess that most of ourWindows users are using VS as it has become the de-facto standard for C/C++ on Windows since Microsoft started releasing the free express version. I would guess MinGW after that. As far as LIB_TAG is concerned. It would be good to be able to tag it. I would like to add suffix d to indicate debug (which would give suffix dd for double debug) which would allow the librarys to be installed in the same place without overwriting. But it's not the biggest issue in the world. Regarding static builds I think we have had this discussion before. There is a significant difference I think between linux and windows and static build on windows can refer to two things. 1) Creating a .lib rather than a .dll. This is what the BUILD_SHARED_LIBS flag does. 2) Linking against the static runtime library. On Windows there is a .lib version of the runtime libraries and a .dll version. If you link against the .lib version then your resulting .exe will run on any windows machine. If you link against the dll version then a user must install the runtime library on their machine to run your exe. Every library and your exe must be linked against the same version of the runtime library or the linker generates link errors - this can be a real pain to debug. This is what I would like a flag for. I've attached the patch I created which works, but as I'm not very good with CMAKE I'm not sure it's the most elegant solution. While I am emailing just another comment on the wxWidgets work I'm doing. I'm trying to remove all usage of the plstream internally to avoid race conditions. One hitch at the moment is the plsKeyEH function. Currently this creates a race as the KeyEH function can be set in the main thread and read in the GUI thread at the same time. In particular changing the KeyEH function from non-NULL to NULL at the same time as hitting a key can cause a segfault. The only way to avoid this (as far as I can think) would be to remove the KeyEH function from plstream and delegate it to the interactive devices. This would however require a change to all the interactive devices. Any thoughts? Phil
________________________________ From: Alan W. Irwin <[email protected]> To: phil rosenberg <[email protected]> Cc: PLplot development list <[email protected]>; Andrew Ross <[email protected]>; Arjen Markus <[email protected]> Sent: Saturday, 2 March 2013, 0:22 Subject: Re: Notes on building the wxwidgets software package on MinGW/MSYS On 2013-03-01 14:48-0800 phil rosenberg wrote: > Hi Alan > Good to hear your interest. It's always useful to be able to pass code around to get more than one person test it. As far as compilers go I use visual studio express. Windows has a number of faults when it comes to programming but the VS IDE and debugger really are fantastic and on its own VS is the reason why I use windows. Slightly off topic a friend emailed me this link http://xkcd.com/378/ which I think nicely sums up the case for a good IDE. Hi Phil: I just reviewed the download statistics for PLplot-5.9.9 at SourceForge over the last 12 months (see http://sourceforge.net/projects/plplot/files/plplot/5.9.9%20Source/plplot-5.9.9.tar.gz/stats/os?dates=2012-02-23%20to%202013-03-01). They have been averaging ~500 per month for many months which is quite credible this long after the release. Windows, Linux, and Mac OS X respectively had 51 per cent, 23 per cent, and 11 per cent download share (with the rest of the downloaders having an unidentified OS). However, in contrast to the order of those download shares, I would say the current status is the PLplot experience is smoothest on Linux, and I therefore encourage all internal and external PLplot developers to help make the Windows experience just as smooth. For those (such as myself) only interested in using free (as in freedom) software, the Windows platform of choice is Wine. That platform is available both for Linux and Mac OS X, and on Linux I have had very good luck with the combination of CMake-2.8.10.2, MinGW-4.7.0, MSYS, and Wine-1.5.19. My efforts to make the PLplot experience on that platform as smooth as it is on Linux should also help PLplot users on the Microsoft Windows platform, and those working on smoothing the PLplot experience on Microsoft Windows also helps those on the Wine version of PLplot. > Anyway on a similar vein to your details on MinGW I've attached instructions for setting up plplot using Visual Studio if you are interested in giving it a go. It's intended to be a full walkthrough so may be a bit on the basic side for you. They are also for VS 2008, the latest version 2012 is a bit different and I have yet to try building plplot or wxwidgets wth it. This will change very soon however so I can access the C++11 threading functions we discussed previously. My intention was to put this on the wiki, but I was waiting for feedback on a patch I submitted to set up static linked builds. I'll update the instructions for 2012 and put them on the wiki when I get chance. Although I have no interest in using the Microsoft compilers because of their cost and also for the software freedom reasons mentioned above, I did take a quick look at your notes, and I certainly hope you make those notes available on our Wiki so that other Microsoft compiler users can benefit from what you have discovered. I have two further remarks about your notes. (1) The original purpose of the CMake LIB_TAG variable was to indicate (with a "d" suffix) whenever our library was compiled with a PLFLT type of double rather than float. We currently do not use this suffix on the csiro library names because that software does not use the PLFLT type. My opinion is we should continue to set PLFLT to double by default. However, we should add ${LIB_TAG} to the csiro library names, and by default set LIB_TAG to the empty string. This would then give users the freedom to set LIB_TAG to anything they like (which you do now for all but the csiro libraries according to your notes). But others here probably have different ideas because we have used the "d" suffix for our PLFLT == double non-csiro library names for literally decades. (2) I don't recall your submitted patch for static linking builds, but can't you arrange that simply by specifying -DBUILD_SHARED_LIBS=OFF for unpatched PLplot? > I will try to check the wingc driver this weekend to confirm your findings. Thanks. As part of making the PLplot Windows experience smooth, I think it is important for the -np (no pause) option to work for this device. So any help you can give making that so (assuming it is not just a Wine issue) would be appreciated. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________
cmake static runtime.patch
Description: Binary data
------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________ Plplot-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/plplot-devel
