Better support for windows

Summary:
Basically, this should make windows {static_lib, shared_lib} * {static_runtime, shared_runtime} * {cpu, gpu} work. A few highlights:

(1) Updated newest protobuf.
(2) use protoc dllexport command to ensure proper symbol export.
(3) various code updates to make sure that C2 symbols are properly shown
(4) cmake file changes to make build proper
(5) option to choose static runtime and shared runtime similar to protobuf
(6) revert to visual studio 2015 as current cuda and msvc 2017 do not play well together.
Closes https://github.com/caffe2/caffe2/pull/1793

Reviewed By: dzhulgakov

Differential Revision: D6817719

Pulled By: Yangqing

fbshipit-source-id: d286264fccc72bf90a2fcd7da533ecca23ce557e
29 files changed
tree: cac300b721112d215e55936601ad37f3e248bf1b
  1. .github/
  2. .jenkins/
  3. .travis/
  4. caffe/
  5. caffe2/
  6. cmake/
  7. conda/
  8. docker/
  9. docs/
  10. modules/
  11. scripts/
  12. third_party/
  13. .gitattributes
  14. .gitignore
  15. .gitmodules
  16. .travis.yml
  17. appveyor.yml
  18. CMakeLists.txt
  19. LICENSE
  20. Makefile
  21. NOTICE
  22. README.md
  23. release-notes.md
  24. setup.py
  25. VERSION_NUMBER
README.md

Caffe2

License Jenkins Build Status Appveyor Build Status

Caffe2 is a lightweight, modular, and scalable deep learning framework. Building on the original Caffe, Caffe2 is designed with expression, speed, and modularity in mind.

Questions and Feedback

Please use Github issues (https://github.com/caffe2/caffe2/issues) to ask questions, report bugs, and request new features.

Please participate in our survey (https://www.surveymonkey.com/r/caffe2). We will send you information about new releases and special developer events/webinars.

License

Caffe2 is released under the Apache 2.0 license. See the NOTICE file for details.

Further Resources on Caffe2.ai