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" <[email protected]>
To: "Pedro Vicente" <[email protected]>
Cc: "PLplot development list" <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel