blitzpp / blitz

Blitz++ Multi-Dimensional Array Library for C++
https://github.com/blitzpp/blitz/wiki
Other
405 stars 84 forks source link

Windows build #154

Closed David-A-Blankenship closed 4 years ago

David-A-Blankenship commented 4 years ago

Changes for building on Windows with MSVC 2019 with boost serialization.

Changes: blitz/blitz.h - to add __declspec for #ifdef WIN32 cmake/BlitzConfigFileName.cmake - to change EQUAL to STREQUAL cmake/Win32Compat.cmake - to change the CMAKE_RUNTIME_OUTPUT_DIRECTORY to CMAKE_BINARY_DIR/src src/CMakeLists.txt - to add find_package for Boost serialization if ENABLE_SERIALISATION

Tested: Windows

CMake 3.15.2 MSVS 2019 version 16.3.9 Boost 1.70.0

CentOS

CMake 3.15.3 gcc 8.3.1 20190311 (Red Hat 8.3.1-3) Boost 1.70.0

Here are the cmake command lines that I used to create the projects.

Windows: cmake.exe" -DENABLE_SERIALISATION=1 -G"Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX="c:/dev/blitz" ..

CentOS: cmake -DENABLE_SERIALISATION=1 -DCMAKE_INSTALL_PREFIX="/home/dblanken/blitz" -DCMAKE_BUILD_TYPE=Debug ..

slayoo commented 4 years ago

Thank you! It would be great to add the above use cases to the continuous integration scenarios defined in:

David-A-Blankenship commented 4 years ago

I don’t know anything about what is going on with these .yml files, but with a little bit of guidance I am happy to give it a try. Is there some documentation on how to use these files?

One thing that I would like to point out with my changes is the addition of CMAKE_CXX_COMPILER_ID in the install paths. I am trying to create a multi platform install, but that is a change over what was there.

David

On Wed, Dec 4, 2019 at 2:08 PM Sylwester Arabas notifications@github.com wrote:

Thank you! It would be great to add the above use cases to the continuous integration scenarios defined in:

  • .travis.yml (for Linux and OSX)
  • appveyor.yml (for Windows) Let me ask if you'd have time to give it a try? (we can merge without it, but then there is little guarantee this will not be broken by subsequent PRs)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/blitzpp/blitz/pull/154?email_source=notifications&email_token=AN6PV2FN4UFKLOVCLCYSKYLQXAE3HA5CNFSM4JVL5XT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEF6KSMY#issuecomment-561817907, or unsubscribe https://github.com/notifications/unsubscribe-auth/AN6PV2C73FBROEL7QGRQZTDQXAE3HANCNFSM4JVL5XTQ .

slayoo commented 4 years ago

We have automatic builds set up on Linux, OSX and Windows that are triggered for every pull requests. If you click on "Show all checks" below and then click on "Details", you will have access to the logs from these builds.

Windows builds are done with the Appveyor platform, and the instructions to be executed are given in the appveyor.yml file: https://github.com/blitzpp/blitz/blob/master/appveyor.yml

Linux and OSX builds are done with Travis, and are set up through .travis.yml: https://github.com/blitzpp/blitz/blob/master/.travis.yml

If you commit something to the branch behind this PR, new builds will be triggered automatically.

Documentation and other info on Travis and Appveyor is here:

HTH, and thanks again!

David-A-Blankenship commented 4 years ago

I will look into this. You just want to add the build with ENABLE_SERIALISATION=1? Is that correct? If so, I am assuming that the build system has boost installed.

slayoo commented 4 years ago

Yes, my point is to test the ENABLE_SERIALISATION feature.

To get Boost.serialize on the build machines, we would probably need to:

On Appveyor, Boost is pre-installed, see here: https://www.appveyor.com/docs/windows-images-software/#boost

David-A-Blankenship commented 4 years ago

I will see if I can make those changes.

David-A-Blankenship commented 4 years ago

I did get the AppVeyor check working with an additional check for -DENABLE_SERIALISATION. The Travis checks are beyond what I have time to learn right now.