Hi Alan

> (3) Static PLplot libraries + device driver code embedded in our core
> static library (identified by its "plplot" basename).

I always use (3).

I repeated what I had done before:

My wxwidgets libraries are located at

M:\wx\wxwidgets-3.1.0\lib\vc_lib

here there are several .lib files like this one

wxmsw31ud_core.lib

1) I deleted all .lib files from that location
2) did a PLplot cmake run with

cmake ".." -G "Visual Studio 
14" -DPL_DOUBLE:BOOL=ON -DBUILD_TEST:BOOL=ON 
-DCMAKE_CONFIGURATION_TYPES:STRING="Debug" 
 -DCMAKE_BUILD_TYPE:STRING="Debug" -DBUILD_SHARED_LIBS:BOOL=OFF 
-DSTATIC_RUNTIME:BOOL=ON 
 -DPLD_wxwidgets:BOOL=ON -DwxWidgets_ROOT_DIR:PATH=%WXWIN% 
-DwxWidgets_LIB_DIR:PATH=%WXWIN%\lib\vc_lib 
 -DwxWidgets_CONFIGURATION=mswud -DwxWidgets_EXCLUDE_COMMON_LIBRARIES:BOOL=OFF 
 > cmake.out.txt 2>&1

where
%WXWIN%
is
M:\wx\wxwidgets-3.1.0

 cmake.out.txt  is attached and it detected wxwidgets

2) Built the Visual Studio generated solution and got the wxwidgets linking 
errors

4) rebuilt wxwidgets libraries at M:\wx\wxwidgets-3.1.0\lib\vc_lib

5) did the same  PLplot cmake run

6) Built the Visual Studio generated solution , no errors


I took a look at the PLplot
FindwxWidgets.cmake
module and it seems that there is an attempt to find the wxwidgets libraries 
(the actual file names), here

find_library(WX_${LIB}${_DBG}
        NAMES
        wxbase31${_UCD}${_DBG}_${LIB}


so, not sure exactly what happened, and probably we could leave this 
possible non-critical bug for after the release (if it's a bug).

I started using cmake in my projects some months ago, and what I do to 
detect libraries is like this,
an example for the JSON jansson library:


find_library(JANSSON_LIBRARY NAMES jansson HINTS 
"/data/data127/pvicente/install/jansson-2.9/lib/")
if(NOT JANSSON_LIBRARY)
  message(FATAL_ERROR "jansson library not found")
else()
  message("-- Found jansson library at: " ${JANSSON_LIBRARY})
endif()

on a typical Unix system where jansson is installed on a standard place I 
get this by doing just

cmake ..

-- Found jansson.h header file at: /usr/include
-- Found jansson library at: /usr/lib/i386-linux-gnu/libjansson.so

On a Unix system where I don't have jansson on a standard place , I do the 
HINTS option , like

find_library(JANSSON_LIBRARY NAMES jansson HINTS 
"/data/data127/pvicente/install/jansson-2.9/lib/")

and I can do also

cmake ..


On a Windows system (or  a Unix system) I provide the option

cmake .. -DJANSSON_LIBRARY=/my/path/to/jansson

Here's my Windows call (the path like /C/ is because this is in Git Bash)

cmake 
.. -DSTATIC_CRT:BOOL=ON -DJANSSON_INCLUDE:PATH=/C/include 
-DJANSSON_LIBRARY=/C/lib/jansson.lib


my library file is actually called (extra _d)
/C/lib/jansson_d.lib

and cmake said

-- Found jansson.h header file at: C:/include
-- Found jansson library at: C:/lib/jansson.lib

then when I build Visual Studio I get

LINK : fatal error LNK1104: cannot open file 'C:\lib\jansson.lib'

my understanding is that
find_library

does not actually detect if the argument is an existent file

Or could be that it does not because I am using the same variable name 
JANSSON_LIBRARY
for both the argument of
cmake .. -DJANSSON_LIBRARY
and
find_library(JANSSON_LIBRARY

so , this print
-- Found jansson library at: C:/lib/jansson.lib

is not actually true for this example.

Probably it would be possible to actually detect if the file does indeed 
exist, but I did it like this to keep things simple

So, the solution I have for
find_library

assumes that the supplied argument
-DJANSSON_LIBRARY
is a valid file

-Pedro



----- Original Message ----- 
From: "Alan W. Irwin" <ir...@beluga.phys.uvic.ca>
To: "Pedro Vicente" <pedro.vice...@space-research.org>
Cc: "PLplot development list" <plplot-devel@lists.sourceforge.net>
Sent: Saturday, December 17, 2016 4:26 AM
Subject: Re: [Plplot-devel] Cmake generation with wxWidgets on Windows


> On 2016-12-17 03:30-0500 Pedro Vicente wrote:
>
>> false alarm, sorry
>>
>> what happened is that my wxWidgets libraries were not built.
>>
>> In Windows , I don't do install, but rather build software and leave it 
>> where it was built, and sometimes delete and rebuild.
>>
>> In PLplot 5.11.1 the build actually did not include the wxWidgets 
>> projects and files, so it built.
>> but in the git version it did include the wxWidgets projects and files, 
>> so it failed.
>>
>> there's the small detail that cmake should have had allerted that 
>> wxWidgets was not built...but probably not important , or could just have 
>> been my mistake somewhere.
>>
>> so the result is for cmake build with wxWidgets
>>
>> Rebuild All: 88 succeeded, 0 failed, 0 skipped =
>
> To give some quick background for my answer,
> our build system enables three principal configurations:
>
> (1) Shared PLplot libraries + dll device drivers which are dynamically 
> loaded by
> our core shared library (identified by its "plplot" basename).
>
> (2) Shared PLplot libraries + device driver code embedded in our core
> shareded library (identified by its "plplot" basename).
>
> (3) Static PLplot libraries + device driver code embedded in our core
> static library (identified by its "plplot" basename).
>
> In case (1) the wxwidgets device driver dll (with basename of wxwidgets)
> exists, but otherwise that dll does not exist for cases (2) and (3).
> Of course, that device driver dll must be distinguished from
> the wxwidgets binding library (identified with the basename of
> plplotwxwidgets) which exists in all 3 cases, and which in
> cases (1) and (2) will be shared and in case (3) will be static.
>
> I am not sure whether you are referring to the wxwidgets device driver
> (which if you use a static build will make it become part of the
> plplot library) or plplotwxwidgets library above.
>
> As far as I know, our build system handles all build dependencies of
> wxwidgets (when it exists for case (1)), our plplot library (both
> without [case (1)] and with [cases (2) and (3)] wxwidgets device
> driver code embedded in it) and the plplotwxwidgets library.  Can you
> give me an example of a wxwidgets-related specific target
> (e.g., wxwidgets, plplot, plplotwxwidgets, wxPLviewer,
> test_wxPLplotDemo, or even wxPLplotDemo) (where I include plplot in
> the list for just cases (2) and (3) and exclude wxwidgets for those cases)
> that you attempt to (re)build with your Windows IDE that obviously has
> incorrect dependencies?
>
> Also, you cannot change horses in mid-stream, i.e., you cannot change
> a build tree that is configured for (1), (2), or (3) into one of the
> other cases.  Instead, you have to start fresh with an empty build
> tree for each of those three cases.  Is that the source of the
> dependency difficulty you have encountered?
>
> 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
> __________________________
> 


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to