Hi  Alan
Yes I have it installed, but haven't really tried it much yet (I was
lured into playing with its new ability to us it to debug on a Linux
machine using GDB via ssh) I will try a PLPlot build now and see what
happens.

I have just read the link you provided. It is a useful mov they are
making. I personally always use static linking to the runtime so that
if I give an exe to someone else it will "just work" and there is no
need for them to install a visual studio runtime (which must be the
correct VS version). The move to including the runtime as part of the
OS is more like the way I think Linux works, and there everyone builds
using dynamic linking to the runtime with generally good result.

I don't really understand what the implication is for snprintf or
check_function_exists(). Why would having the CRT as part of the OS,
rather than as an installed component make any difference? Is this a
CMAke bug rather than a PLPlot bug?

Phil

On 3 September 2015 at 18:46, Alan W. Irwin <ir...@beluga.phys.uvic.ca> wrote:
> To Phil, Jim, and Greg:
>
> Do any of you have access to VC14 (a.k.a Visual Studio 2015)?  If so
> I need your Windows expertise for dealing with the bug report below
> which is likely the tip of the iceberg for a whole bunch of
> troubles with Windows linking for that platform.  For example,
> I looked up Universal CRT, and found
> <http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx>
> which appears to say that linking should be different for VC14 and
> beyond.  But if that is the case, the proper cure for this issue
> is to set one or more of
>
> CMAKE_REQUIRED_FLAGS = string of compile command line flags
> CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
> CMAKE_REQUIRED_INCLUDES = list of include directories
> CMAKE_REQUIRED_LIBRARIES = list of libraries to link
>
> appropriately before _all_ calls to check_* CMake functions such as
> the particular use of check_function_exists below.  But I need your
> advice on what the values of the above variables should be for VC14
> and beyond.
>
> To explore what is possible I recommend using some variant (with
> some of the above variables set) of the following test cmake
> mini-project.
>
> cmake_minimum_required(VERSION 2.8.9)
> project(test_check C)
> include(CheckFunctionExists)
> check_function_exists(snprintf PL_HAVE_SNPRINTF)
> message(STATUS "PL_HAVE_SNPRINTF = ${PL_HAVE_SNPRINTF}")
>
> This project gives good results, i.e.,
>
> -- The C compiler identification is GNU 4.7.2
> -- Check for working C compiler: /usr/bin/gcc
> -- Check for working C compiler: /usr/bin/gcc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Looking for snprintf
> -- Looking for snprintf - found
> -- PL_HAVE_SNPRINTF = 1
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /home/irwin/test_cmake2/build_dir
>
> for me on Linux, and my question for you boils down to what values
> need to be assigned to the above variables so this mini-project also
> works (i.e., yields PL_HAVE_SNPRINTF = 1) on VC14 for the latest CMake
> version you have access to?
>
> By the way, our handling of the CMAKE_REQUIRED_* variables for the
> check_* CMake functions that we use is currently a mess, and I am in
> the process of fixing that.  If your run of the above test for VC14
> shows no CMAKE_DEFINED_* variables have to be set, then my fix will be
> the only required change.  However, if CMAKE_DEFINED_* variables do
> have to be set in order for the above test to work, my fix will put me
> in a good position to use that information.
>
> 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
> __________________________
>
> ---------- Forwarded message ----------
> Date: Thu, 03 Sep 2015 12:07:41 +0000
> From: Torsten Martinsen <bullest...@users.sf.net>
> Reply-To: Ticket 179 <1...@bugs.plplot.p.re.sf.net>
> To: Ticket 179 <1...@bugs.plplot.p.re.sf.net>
> Subject: [plplot:bugs] #179 Detection of snprintf fails with VC14
>
>
>
>
> ---
>
> ** [bugs:#179] Detection of snprintf fails with VC14**
>
> **Status:** open
> **Group:**
> **Labels:** vc14
> **Created:** Thu Sep 03, 2015 12:07 PM UTC by Torsten Martinsen
> **Last Updated:** Thu Sep 03, 2015 12:07 PM UTC
> **Owner:** nobody
>
>
> Due to the Universal CRT introduced in VC14 (aka Visual Studio 2015),
> check_function_exists() no longer works for detecting the presence of
> snprintf(). This leads to a linker error when using the library.
>
> This patch fixed it for me:
> ~~~~
> diff --git a/cmake/modules/plplot.cmake b/cmake/modules/plplot.cmake
> index 90aac62..7fea410 100644
> --- a/cmake/modules/plplot.cmake
> +++ b/cmake/modules/plplot.cmake
> @@ -347,7 +347,11 @@ if(PL__HAVE_ISINF)
>  endif(PL__HAVE_ISINF)
>
>
> -check_function_exists(snprintf PL_HAVE_SNPRINTF)
> +if(MSVC_VERSION EQUAL 1900)
> +  set(PL_HAVE_SNPRINTF 1)
> +else(MSVC_VERSION EQUAL 1900)
> +  check_function_exists(snprintf PL_HAVE_SNPRINTF)
> +endif(MSVC_VERSION EQUAL 1900)
>  if(NOT PL_HAVE_SNPRINTF)
>    check_function_exists(_snprintf _PL_HAVE_SNPRINTF)
>    set(PL_HAVE_SNPRINTF ${_PL_HAVE_SNPRINTF} CACHE INTERNAL "Have function
> _sprintf")
> ~~~~
>
>
> ---
>
> Sent from sourceforge.net because you indicated interest in
> <https://sourceforge.net/p/plplot/bugs/179/>
>
>
>
> To unsubscribe from further messages, please visit
> <https://sourceforge.net/auth/subscriptions/>

------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to