BuildCplusplus Latest Wiki

11 views
Skip to first unread message

Kuganesan Sivasubramaniam

unread,
Mar 15, 2017, 7:45:38 AM3/15/17
to shyft
Hi,
I built C++ environment based on the earlier Wiki document BuildCplusplus.
Now the document is updated. I have some questions.

1) Need I download new versions of boost, Armadillo, Dlib? Can I build with existing old versions of them?

Previous       Current
boost 1.61     boost 1.63
Armadillo 7.400.2   Armadillo 7.800.1
Dlib 19.1   Dlib 19.2

Is it possible to update without downloading?


2)Previous Wiki documentation,

Create folder C:\bin to hold binaries needed to run shyft
Update PATH environment variable with C:\bin
Don't we do this now?


3) In the new instructions,
Add paths to DLLs needed to run shyft in system environment variable PATH:%SHYFT_DEPENDENCIES%\blaslapack;%SHYFT_DEPENDENCIES%\boost\stage\lib;
But previously, it was not there. What is the reason you set it now?


3) Previously cxxtest but now doctest
what is the difference? Need I delete the folder cxxtest?


4) What is the procedure to move from old Buildcplusplus to new Buildcpluplus?

Thanking You
Best Regards
Kuganesan

sigbjorn.helset

unread,
Mar 16, 2017, 3:22:56 PM3/16/17
to shyft
Hi,
Ans 1) yes, you could try to build, run the tests to see. The reason we keep our dependencies up to latest is to ensure we are on supported versions of 3rd party
components. The effort for doing this is minimal, and ensures we have the latest
and best versions of our 3rd party dependencies.

Ans 2) No, you don't need the path to C:\bin, since we introduce SHYFT_DEPENDENCIES, and path to each single binary compiled 3rd party package, we this is not needed. The sole purpose of either C:\bin, or individual is to ensure that windows finds the .dll's of our 3rd party binary dependencies, boost, blas,lapack.
There are several approaches for this, we now have tried two of them. The latter means you don't have to do a a copy to C:\bin after rebuilding boost, since the system PATH already points to the build destination directory.

Ans 3) doctest replaces cxxtest as testing framework for shyft. The reason is that the doctest is a header-only library, faster compile, and less overhead writing and maintaining the c++ test suite.

Ans 4) The procedure I would recommend is as follows.

  1. Update the python env. use latest miniconda.
 This includes removing the old anaconda/miniconda, then
follow the recipe on BuildCpp Wiki.
Since many packages still lacks on the standard anaconda package repo, use the -c conda-forge option to select the user-group packages (they have so far proven to work very well).

  Ensure that you download all dependencies for running shyft
 including netCD4 shapely nosetests gdal pyproj pyyaml

 2. Download 1.63 boost, and compile (rename the old to boost.1.61, or delete it)

 3. Download dlib 19.4 (this is the latest by now)
     Also download and install cmake (it's also mentioned on wiki), since it's
  is needed for building dlib (follow wiki)

 4. Get doctest from git, (remove cxxtest directory)

 4. update shyft, shyft-doc, shyft-data
    Ensure you have set the env.variables as described on wiki

 5. Open visual studio, select x64, Release and rebuild solution.

  6. Run tests
    First cd shyft/bin/Release and run test_shyft
    Secondly set PYTHONPATH=C:\projects\shyft
    then cd C:\projects\shyft\shyft\tests
    and run  nosetests
    to verify that all python tests runs well.

Kuganesan Sivasubramaniam

unread,
Mar 17, 2017, 8:15:21 AM3/17/17
to shyft
Hi,
Thank you very much.
Kuganesan
Reply all
Reply to author
Forward
0 new messages