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