Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FI Microsoft/bond/master => lokitoth/bond/master #1

Merged
merged 242 commits into from Dec 8, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
242 commits
Select commit Hold shift + click to select a range
6be2fe9
Fix typos and grammar in why_bond.md
sapek Jan 10, 2015
013bf9b
Fixing CMake permissions for OSX
dnmiller Jan 13, 2015
3d5905a
Fix compiler build for non-ascii cabal path
sapek Jan 13, 2015
fa37e7b
Merge pull request #9 from dnmiller/cmake-fix
sapek Jan 13, 2015
4428342
Remove references to precompiler from C# projects
sapek Jan 13, 2015
dfcd3bd
Fix a typo in documentation
Jan 13, 2015
d8048bd
Merge pull request #10 from kanakk/master
sapek Jan 13, 2015
65ac915
Fix mistake in bond_cs.md
Jan 13, 2015
eacce24
Merge pull request #11 from kanakk/outputbuffer_interface
sapek Jan 13, 2015
f724242
Fix C# build problem when cmake.bat is in PATH
sapek Jan 14, 2015
cf895a2
Add C# NuGet package
sapek Jan 14, 2015
f395b06
Remove unused C# example
sapek Jan 14, 2015
f229cd1
Update NuGet package readme
sapek Jan 14, 2015
f10b4fb
Configure travis-ci build
sapek Jan 14, 2015
d1d3f17
Add build status and stat indicators to README
sapek Jan 15, 2015
5867d2d
Update OS X instructions for homebrew Python
dnmiller Jan 14, 2015
27bddf8
Merge pull request #12 from dnmiller/cmake-fix
sapek Jan 15, 2015
a3c8a97
Simplify OS X build instructions
sapek Jan 15, 2015
5abde46
Rename NuGet packages
sapek Jan 15, 2015
c502e7d
Don't update Boost to avoid travis-ci timeout
sapek Jan 15, 2015
5ccd52d
Fix a typo in README.md
sapek Jan 17, 2015
3f85e73
Update configuration for Visual Studio 2015 CTP 5
sapek Jan 17, 2015
f3a6501
Fix JSON multi-line string test
sapek Jan 19, 2015
5178e2a
Fix C# unit test configuration for .NET 4.0
sapek Jan 19, 2015
14cac06
Add CI support for C# on Windows
sapek Jan 19, 2015
db46850
Optimize C# byte[]
sapek Jan 17, 2015
e61db91
Fix AppVeyor configuration
sapek Jan 19, 2015
389f742
Fix parsing of enum default values starting with L
sapek Jan 19, 2015
19f45c9
Merge pull request #17 from Microsoft/byte_array
sapek Jan 20, 2015
ee4fadd
Use environment variable to specify signing key
sapek Jan 20, 2015
7617045
Propagate cabal failures to the calling cmake script
sapek Jan 20, 2015
f01eed1
Fix symbol lookup logic in the parser
sapek Jan 20, 2015
708545f
Trim/split long running unit tests
sapek Jan 21, 2015
4b75744
Add GA tracking to GitHub pages
sapek Jan 21, 2015
1934e7e
Update README links to https
sapek Jan 21, 2015
24a0f23
Configure C# CI status badge for the master branch
sapek Jan 22, 2015
7e1f476
Make Bond compilable with mono xbuild
xplicit Jan 22, 2015
7d31555
Merge pull request #19 from xplicit/mono_csproj_2
sapek Jan 22, 2015
d8935bf
Make test and examples projects are compilable with xbuild
xplicit Jan 23, 2015
956e472
Merge pull request #20 from xplicit/fix_path
sapek Jan 23, 2015
9504bfb
Shorten NuGet package description
sapek Jan 22, 2015
1401636
Add a NuGet badge to README
sapek Jan 23, 2015
4f303d8
Enable C++ CI build and tests on Windows
sapek Jan 24, 2015
0452c66
Make documentation pages responsive
sapek Jan 25, 2015
73630c7
Add rudimentary Sublime Text 3 syntax highlighting
Jan 28, 2015
1af198f
Merge branch 'sublime'
sapek Jan 29, 2015
4ab240d
Remove possible underflow in string buffer encoder
dnmiller Jan 31, 2015
80b1e15
Merge pull request #25 from dnmiller/underflow-fix
sapek Jan 31, 2015
342f33e
Remove unnecessary semicolons
dnmiller Feb 1, 2015
2a48d5b
Merge pull request #26 from dnmiller/unused-semis
sapek Feb 3, 2015
7fc1377
Fix clone of MemoryStream on Mono
xplicit Feb 3, 2015
033c45b
Move cabal install from ps script to cmd
sapek Feb 4, 2015
dcfe9fb
Document setting the initial size of OutputBuffer
sapek Feb 4, 2015
5464999
Relax cabal version requirement to 1.18+
sapek Feb 4, 2015
8ac3689
Add to mingw\bin to PATH during AppVeyor build
sapek Feb 4, 2015
5a57de1
Add missing double-quote to appveyor.yml
sapek Feb 4, 2015
aaa2bc5
Merge pull request #27 from xplicit/mono_fix2
sapek Feb 4, 2015
4bd6d04
Update appveyor.yml for the open source plan
sapek Feb 5, 2015
1244a6b
Disable extracting Boost in AppVeyor CI
sapek Feb 6, 2015
047d913
Quote include directories in C# targets
chwarr Feb 5, 2015
a4dd310
Whitespace cleanup
chwarr Feb 6, 2015
c616bb6
Add unit test for files with spaces in their paths
chwarr Feb 6, 2015
cb58d75
Cache NuGet packages between AppVeyor builds
sapek Feb 6, 2015
42bc0cb
Merge pull request #29 from chwarr/msbuild_quotes
sapek Feb 6, 2015
a844553
Add example showing how import can be used
chwarr Feb 6, 2015
c8a0fc4
Fix import directories with trailing slashes
chwarr Feb 7, 2015
6ba51ef
Merge pull request #31 from chwarr/msbuild_import_dir_trailing_slash
sapek Feb 7, 2015
d00e761
Merge pull request #30 from chwarr/import_example
sapek Feb 7, 2015
d720a97
Split tests by framework version
sapek Feb 7, 2015
697198c
Replace throw with noexcept
dnmiller Feb 7, 2015
fdfa177
Add syntax highlighting support for Notepad++
rambho Feb 7, 2015
4bea59d
Merge branch 'ramb0x-master'
sapek Feb 7, 2015
3039923
Use a smaller buffer when marshaling bonded<T>
sapek Feb 10, 2015
9765915
Disable Boost download in appveyor.yml
sapek Feb 10, 2015
440dd35
Use Array.Resize to grow OutputBuffer
sapek Feb 10, 2015
40f3888
Combine unit tests into fewer assemblies
sapek Feb 11, 2015
72fa67e
Remove CollectionInterfaces config from appveyor
sapek Feb 11, 2015
235c3a0
Convert unit tests from MSTest to NUnit
xplicit Feb 12, 2015
87b098a
Merge pull request #35 from xplicit/nunit-merge6
sapek Feb 12, 2015
8f2a8e5
Add building cs.sln and running unit tests in Travis.CI
xplicit Feb 12, 2015
90f0265
Merge pull request #36 from xplicit/travis2
sapek Feb 12, 2015
0c4d4ad
Add --jobs option to gbc
sapek Feb 10, 2015
c764d99
Avoid parsing the same import multiple times
sapek Feb 12, 2015
f5ed61e
Run multiple gbc jobs when using Bond.CSharp.targets
sapek Feb 12, 2015
cb336cf
Update repositories.config
sapek Feb 12, 2015
ac2c686
Remove MSTest residues from test projects
sapek Feb 12, 2015
044f72d
Run gbc from BOND_COMPILER_PATH or the system path
sapek Feb 12, 2015
5f53211
Update the NuGet test for version 3.0.4
sapek Feb 13, 2015
ee7f382
Update .gitignore for NuGet packages
sapek Feb 13, 2015
3294b3e
Fix bug in JSON parsing when string value is a date
ranrav Feb 26, 2015
1e3653a
Add comment explaining negative value for jobs number
sapek Feb 27, 2015
165c072
Add `cabal update` to the Windows build instructions
sapek Feb 27, 2015
ebf9175
Switch AppVeyor to previous builder image
sapek Feb 27, 2015
7c84c4f
Merge pull request #40 from ranrav/master
sapek Feb 27, 2015
4367367
Update JSON parser test expression
ranrav Feb 28, 2015
1fdba69
Merge pull request #42 from ranrav/UpdateJsonExpression
sapek Feb 28, 2015
9336771
Merge pull request #32 from dnmiller/noexcept
sapek Mar 3, 2015
312be3b
Fix warnings in the Bond compiler code
qnikst Feb 16, 2015
a852f6a
Merge branch 'qnikst-warning-cleanup'
sapek Mar 5, 2015
2450f5f
Define type alias for mapping parsers
sapek Mar 5, 2015
e782093
Add `cabal update` for OS X in README.txt
oliora Mar 9, 2015
ae5d1ba
Merge branch 'oliora-master'
sapek Mar 10, 2015
f710ceb
Add test suite to Bond compiler
sapek Mar 19, 2015
c2adfae
Separate schema data definitions and helper functions
sapek Mar 10, 2015
f13b706
Improve parser error handling for user defined types
sapek Mar 17, 2015
45a37d5
Add compiler support for schema AST output
sapek Mar 17, 2015
e30c898
Reduce code duplication around codegen
sapek Mar 17, 2015
ff01c24
Add round-trip unit test for AST JSON representation
sapek Mar 19, 2015
5881640
Use standalone deriving Generic declarations
sapek Mar 20, 2015
860c108
Hide parser environment and ReaderT behind parseBond
sapek Mar 20, 2015
f7020b0
Customize JSON representation of Default
sapek Mar 20, 2015
8555e49
Remove helper functions to modify MappingContext
sapek Mar 20, 2015
c921a23
Add support for using schema AST as compiler input
sapek Mar 20, 2015
0944a12
Improve errors when parsing invalid schema AST file
sapek Mar 20, 2015
1521020
Add CMake project to build documentation
sapek Mar 25, 2015
df910f4
Add documentation page for the compiler
sapek Mar 25, 2015
48e1a55
Simplify the JSON representation of AST
sapek Mar 26, 2015
1e4ed55
Document the JSON representation of the schema AST
sapek Mar 26, 2015
f631591
Add unit tests comparing AST from .json and .bond
sapek Mar 30, 2015
6fb30c9
Add gbc-tests to CMake tests
sapek Apr 1, 2015
f47fd52
Update cs\Compiler.vcxproj project
sapek Apr 1, 2015
91db1c4
Fix parser bug for bonded<T> with forward declaration
sapek Apr 2, 2015
7a14f45
Update CI configuration files
sapek Apr 2, 2015
0d8653f
Add support for Deserializer without inlining
Apr 11, 2015
6d04dc7
Add code generation tests
sapek Apr 20, 2015
aa5f28c
Build gbc with -Wall -Werror
sapek Apr 20, 2015
be14e55
Move test schema files to a separate directory
sapek Apr 20, 2015
f78ccea
Add type alias codegen tests
sapek Apr 21, 2015
e882d28
Fix various type alias bugs
sapek Apr 21, 2015
f1b59f2
Work around the unused import warnings
sapek Apr 21, 2015
6525952
Merge branch 'type-alias-fixes'
sapek Apr 23, 2015
84ce176
Merge pull request #55 from ranrav/no-inlining-deserializer
sapek Apr 23, 2015
99b95e7
Don't initialize BondCodegen.Options in .targets
sapek Apr 27, 2015
0454fd0
Update the Nuget tests for version 3.0.5
sapek Apr 28, 2015
286701b
Fix broken links in the documentation
sapek Apr 28, 2015
cd031a9
Add title to the Why Bond page
sapek Apr 28, 2015
3d82ae2
Explicitly specify short names of compiler options
sapek Apr 28, 2015
1b0031f
Update the Nuget tests to version 3.0.6
sapek Apr 28, 2015
1c9e96f
Add Chocolatey instructions to README
sapek Apr 28, 2015
73f9865
Add python3 support
alfpark May 6, 2015
0213ec0
Merge pull request #61 from alfpark/py3k
sapek May 19, 2015
556ce21
Fix build races
sapek May 30, 2015
b28bb3f
Fix name conflict in C++ unit test
sapek Jun 5, 2015
95b8103
Update Windows build instructions in README
sapek Jun 6, 2015
3728127
Work around a compiler bug in VS2015 RTM
sapek Jun 11, 2015
e0a8294
Expand Travis CI build matrix
sapek Jun 11, 2015
5fb697b
Add C++ build/test to Appveyor CI build matrix
sapek Jun 11, 2015
3f34325
Fix Typo in C# bond manual
vineelkovvuri Jun 17, 2015
4d110cc
Merge pull request #64 from vineelkovvuri/master
sapek Jun 17, 2015
99d6220
Use version number from cabal generated module
sapek May 21, 2015
9fe9eec
Refactor compiler/codegen as a Haskell library
sapek May 22, 2015
d181a0d
Remove internal functions from exposed modules
sapek May 22, 2015
286a3c7
Add Haddock documentation comments
sapek May 22, 2015
d2f12c2
Remove an unused Language constructor
sapek Jun 1, 2015
9554cd5
Eliminate Marshaler/Serializer code duplication
sapek Jun 2, 2015
0697cc8
Use fast pass-through for bonded<T, Reader&>
sapek Jun 3, 2015
1b3642d
Allow fixing version of multi-version protocols
sapek Jun 3, 2015
c9367ae
Fix formating of compiler errors
sapek Jun 3, 2015
979183d
Create cmake source groups for compiler sources
sapek Jun 12, 2015
7d53e1a
Expand code generation test coverage
sapek Jun 27, 2015
1e95d49
Convert compiler tests from test-framework to tasty
sapek Jun 28, 2015
856c3a9
Reimplement code generation tests with Tasty.Golden
sapek Jun 28, 2015
9692499
Add C++ and compiler tests to appveyor matrix
sapek Jun 30, 2015
58addc3
Revamp C# type mappings and codegen
sapek Jul 1, 2015
b87b832
Remove Appveyor build speed workaround
sapek Jul 4, 2015
a742977
Simplify Appveyor configuration
sapek Jul 5, 2015
c9a8314
Add doxygen doc generation to makefiles
sapek Jul 6, 2015
0a91797
Update documentation syntax highlighting styles
sapek Jul 6, 2015
fdebb65
Remove the exe extension from doxygen program name
sapek Jul 7, 2015
ca92c77
Build documentation as part of Appveyor CI build
sapek Jul 7, 2015
559c336
Add Visual Studio 12/Boost 1.58 to CI build matrix
sapek Jul 7, 2015
9634ef5
Fix a typo in README
sapek Jul 8, 2015
234170a
Fix a bug with nullable type aliases
sapek Jul 28, 2015
caac0d4
Add a reference to NUnit.VisualStudio.TestAdapter
sapek Jul 29, 2015
c451890
Fix a bug with derived protocol reader/writer
sapek Jul 29, 2015
965d3e5
Update the Nuget tests to version 3.0.7
sapek Jul 30, 2015
d4540fe
Fix bugs when using C# structs to represent schemas
sapek Aug 14, 2015
2abd39f
Compile C++ code with -Wall -Werror
sapek Aug 17, 2015
3d63c2d
Allow split python struct defs across many files
alfpark Aug 19, 2015
71034c1
Merge pull request #77 from alfpark/py3k
sapek Aug 19, 2015
d874d1e
Update appveyor CI build to Boost 1.59
sapek Aug 20, 2015
4e3d141
Add Python build/test to appveyor CI
sapek Aug 20, 2015
3b106b3
Optimize Serializer for type-aliased blob fields
alexsatch Aug 21, 2015
8ec41f8
Merge pull request #79 from alexsatch/master
sapek Aug 22, 2015
c4c6bbf
Work around g++ 4.8 issue in Python implementation
sapek Aug 25, 2015
93bd2ee
Switch Travis CI to container based infrastructure
sapek Aug 21, 2015
c6d19ab
Deploy GitHub Pages from Appveyor CI build
sapek Aug 25, 2015
f0d23a0
Add cabal constraint: process < 1.3
sapek Aug 26, 2015
5c09e9c
Don't cast the instance contained in Bonded<T>
sapek Aug 27, 2015
8bc9158
Enable Travis CI caching
sapek Aug 27, 2015
be80684
Update the performance section of C# user's manual
sapek Aug 28, 2015
3d09043
Don't try to commit documentation w/o GitHub token
sapek Sep 8, 2015
f030199
Document the @listfile syntax in gbc usage help
sapek Sep 20, 2015
be41d67
Fix buffer allocation performance bugs
sapek Sep 24, 2015
ec7e0eb
Fix containers of nullable<T> and blob in Python
sapek Sep 27, 2015
74485fa
Don't allow JSON null for scalar types
sapek Oct 2, 2015
9570e06
Add codegen test for alias fields with default nothing
sapek Oct 2, 2015
7808a28
Fix fields of alias type with the default `nothing`
sapek Oct 2, 2015
38a92c6
Add information about nullable types to C# docs
sapek Oct 9, 2015
ef83b48
Assert in unused write-only rapidjson::Stream methods
sapek Oct 12, 2015
28c7580
Revert "Add cabal constraint: process < 1.3"
sapek Sep 9, 2015
8d64c0e
Fix C++ warnings with XCode 7 compiler
sapek Oct 16, 2015
ab71ef8
Update README
sapek Oct 29, 2015
a420185
Group CMake targets into folders
sapek Oct 27, 2015
d2200bd
Work around the old wget version in Travis CI
sapek Nov 5, 2015
31eddb5
Fix typos in C# comments
redknightlois Nov 9, 2015
1d62273
Merge pull request #99 from redknightlois/typos
sapek Nov 9, 2015
e57fd7f
Fail Appveyor build when C# tests fail
sapek Nov 10, 2015
a60b3c4
Make fieldModifier and fieldAttributes optional
sapek Nov 9, 2015
3c2a105
Fix generated C++ code using custom allocator
sapek Nov 7, 2015
200b71f
Fix typos in C# comments
redknightlois Nov 12, 2015
55cf387
Add cabal constraint: process < 1.4
sapek Nov 14, 2015
b8f143b
Merge pull request #101 from redknightlois/typos
sapek Nov 15, 2015
e8f214d
Remove private modifiers
redknightlois Nov 13, 2015
bde7038
Merge branch 'redknightlois-private'
sapek Nov 15, 2015
623c7e8
Fix a bug in rendering compiler docs in Firefox
sapek Nov 15, 2015
11a11ca
Revamp C# integer limits test
sapek Nov 16, 2015
67e2db4
Revamp C# integer limits test
sapek Nov 16, 2015
e1b6819
Merge branch 'master' of https://github.com/Microsoft/bond
sapek Nov 17, 2015
8b3728a
Add C# unit tests for SimpleBinary v2
sapek Nov 17, 2015
814c176
Fix off-by-one bug in varint decoding
sapek Nov 17, 2015
3027156
Handle C# classes with a static constructor
sapek Nov 17, 2015
f800503
Fix extra ref count on blob to PyBytes conversion
alfpark Nov 23, 2015
57662ca
Merge pull request #104 from alfpark/py3k
sapek Nov 23, 2015
f5c6fe8
Implement input/output streams on unmanaged memory
redknightlois Nov 4, 2015
01b3587
Merge branch 'redknightlois-master'
sapek Nov 30, 2015
2089f40
Add .NET Core 5.0 target to Nuget package
sapek Nov 30, 2015
e362cc0
Update Newtonsoft.Json dependency to version 7.0.1
sapek Dec 1, 2015
0e47dd6
Add symbols to Nuget package specification
sapek Dec 1, 2015
c7a76a2
Define core Nuget package w/o Json.NET dependency
sapek Dec 1, 2015
9f5b51a
Fix logic determining which C++ headers to include
sapek Nov 20, 2015
25bfd29
Fix resolveAlias to handle nested type parameters
sapek Nov 23, 2015
7f474a6
Allow float and double w/o decimal point in JSON
sapek Nov 28, 2015
fb9806c
Allow SchemaDef in JSON format as argument to bf
sapek Nov 29, 2015
7d3c94c
Fix C++ enum codegen for -2147483648
sapek Dec 2, 2015
aeccf7d
Add gbc option to generate runtime schema from IDL
sapek Nov 21, 2015
f392764
Allow the word 'Schema' in namespace identifiers
sapek Oct 6, 2015
b8a70f0
Support custom C# representations of bonded<T>
sapek Oct 6, 2015
24aa206
Allow reader interfaces to be used with Bonded<T, R>
sapek Oct 8, 2015
b813487
Remove redundant Tag.bonded<T> annotations
sapek Oct 8, 2015
15706d7
Add unit test for an alias of bonded<T>
sapek Oct 8, 2015
f422bd6
Add C# compatibility test to Appveyor CI matrix
sapek Dec 4, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
92 changes: 92 additions & 0 deletions .travis.yml
@@ -0,0 +1,92 @@
sudo: false
language: csharp
os:
- linux
- osx
cache:
directories:
- compiler/.cabal-sandbox
- cs/packages
env:
- BOND_LANG=cpp-clang
- BOND_LANG=cpp-gcc
- BOND_LANG=cs
- BOND_LANG=py-clang
- BOND_LANG=py-gcc
- BOND_GHC_VERSION=-7.8.4
- BOND_GHC_VERSION=-7.6.3
addons:
apt:
sources:
- boost-latest
- ubuntu-toolchain-r-test
- hvr-ghc
packages:
- g++-4.8
- libboost1.55-all-dev
- cabal-install-1.22
- ghc-7.8.4
- ghc-7.6.3
- ghc
matrix:
exclude:
# linux VM is too small to build C++ unit tests with g++
- os: linux
env: BOND_LANG=cpp-gcc
# linux C++ build/test already includes Python
- os: linux
env: BOND_LANG=py-clang
# don't test non-default versions of GHC on OSX
- os: osx
env: BOND_GHC_VERSION=-7.8.4
- os: osx
env: BOND_GHC_VERSION=-7.6.3
# on OS X g++ and clang++ are the same compiler
- os: osx
env: BOND_LANG=cpp-gcc
- os: osx
env: BOND_LANG=py-gcc

before_install:
# select C++ compiler
- export CXX="clang++" CC="clang"
- if [[ $BOND_LANG == *gcc ]]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
# linux prereqisite packages
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then wget --no-check-certificate https://www.cmake.org/files/v3.2/cmake-3.2.3-Linux-x86_64.tar.gz; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then tar -xzvf cmake-3.2.3-Linux-x86_64.tar.gz; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export PATH=$PWD/cmake-3.2.3-Linux-x86_64/bin:$PATH; fi
# OS X prerequisite packages
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install ghc cabal-install; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [[ $BOND_LANG == py* ]]; then brew unlink boost; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] && [[ $BOND_LANG == py* ]]; then brew install boost boost-python; fi
# nunit installation
- if [ "$BOND_LANG" == "cs" ]; then travis_retry nuget install NUnit.Runners -version 2.6.4; fi
- export PATH=/opt/cabal/1.22/bin:/opt/ghc/${BOND_GHC_VERSION#?}/bin:$PATH
- cabal update
- cabal install happy

before_script:
# restore nuget packages for solution
- if [ "$BOND_LANG" == "cs" ]; then travis_retry nuget restore cs/cs.sln; fi

script:
- mkdir build && cd build
- cmake ..
- if [ "$BOND_LANG" == "cs" ]; then make --jobs 2 DESTDIR=$HOME install; fi
- if [ "$BOND_LANG" == "cs" ]; then export BOND_COMPILER_PATH=$HOME/usr/local/bin; fi
- if [[ $BOND_LANG == cpp* ]]; then make --jobs 2 check; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export BOND_PYTHON_TARGETS="python_unit_test python_extension" BOND_PYTHON_TESTS=python_unit_test; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then export BOND_PYTHON_TARGETS="python_compatibility_test python_unit_test python_extension compatibility_test" BOND_PYTHON_TESTS=".*python.*"; fi
- if [[ $BOND_LANG == py* ]]; then make $BOND_PYTHON_TARGETS; fi
- if [[ $BOND_LANG == py* ]]; then ctest --tests-regex $BOND_PYTHON_TESTS --output-on-failure; fi
- if [ "$BOND_GHC_VERSION" != "" ]; then make gbc-tests; fi
- cd ..
- if [ "$BOND_LANG" == "cs" ]; then xbuild /p:Configuration=Debug cs/cs.sln; fi
- if [ "$BOND_LANG" == "cs" ]; then xbuild /p:Configuration=Fields cs/cs.sln; fi
- if [ "$BOND_LANG" == "cs" ]; then mono NUnit.Runners.2.6.4/tools/nunit-console.exe -framework=mono-4.5 -labels cs/test/core/bin/debug/net45/Properties/Bond.UnitTest.dll cs/test/core/bin/debug/net45/Fields/Bond.UnitTest.dll cs/test/internal/bin/debug/net45/Bond.InternalTest.dll; fi
- if [ "$BOND_GHC_VERSION" != "" ]; then cd compiler; fi
- if [ "$BOND_GHC_VERSION" != "" ]; then ../build/compiler/build/gbc-tests/gbc-tests; fi

before_cache:
- if [ "$BOND_GHC_VERSION" != "" ]; then rm -rf compiler/.cabal-sandbox; fi
5 changes: 4 additions & 1 deletion CMakeLists.txt
Expand Up @@ -22,11 +22,14 @@ include (PythonTest)

add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -C ${CMAKE_CFG_INTDIR} --output-on-failure)

add_subdirectory (compiler)
add_subfolder (compiler "compiler")
add_subdirectory (cpp)
add_subfolder (doc "doc")
add_python_subdirectory (python)
add_subdirectory (examples)

add_dependencies (check gbc-tests)

install (DIRECTORY
cpp/inc/bond
cpp/generated/bond
Expand Down
117 changes: 75 additions & 42 deletions README.md
@@ -1,3 +1,6 @@
[![Build Status](https://travis-ci.org/Microsoft/bond.svg?branch=master)](https://travis-ci.org/Microsoft/bond)
[![NuGet](https://img.shields.io/nuget/v/Bond.CSharp.svg?style=flat)](https://www.nuget.org/packages/Bond.CSharp/)

Bond
====

Expand All @@ -8,9 +11,9 @@ Microsoft in high scale services.

Bond is published on GitHub at [https://github.com/Microsoft/bond/](https://github.com/Microsoft/bond/).

For details, see the User's Manuals for [C++](http://Microsoft.github.io/bond/manual/bond_cpp.html), [C#](http://Microsoft.github.io/bond/manual/bond_cs.html) and [Python](http://Microsoft.github.io/bond/manual/bond_py.html).
For details, see the User's Manuals for [C++](https://Microsoft.github.io/bond/manual/bond_cpp.html), [C#](https://Microsoft.github.io/bond/manual/bond_cs.html) and [Python](https://Microsoft.github.io/bond/manual/bond_py.html).

For a discussion how Bond compares to similar frameworks see [Why Bond](http://Microsoft.github.io/bond/why_bond.html).
For a discussion how Bond compares to similar frameworks see [Why Bond](https://Microsoft.github.io/bond/why_bond.html).

Dependencies
------------
Expand All @@ -21,7 +24,7 @@ The Bond repository uses Git submodules and should be cloned with the
git clone --recursive https://github.com/Microsoft/bond.git

In order to build Bond you will need CMake (2.8.12+), Haskell (ghc 7.4+ and
cabal-install 1.20+) and Boost (1.54+). The core Bond C++ library can be used
cabal-install 1.18+) and Boost (1.54+). The core Bond C++ library can be used
with C++03 compilers, although Python support, unit tests and various examples
require some C++11 features.

Expand Down Expand Up @@ -67,6 +70,8 @@ packages are needed:
libboost-test-dev \
libboost-python-dev

cabal install happy

Running the following command in the build directory will build and execute all
the tests and examples:

Expand All @@ -77,22 +82,24 @@ assuming you have enough memory)

### OS X

- Install XCode 6.1
- Install CMake ([http://www.cmake.org/download/](http://www.cmake.org/download/))
- Install Haskell Platform ([http://haskell.org/platform/](http://haskell.org/platform/))
Install XCode and then run the following command to install required packages
using Homebrew ([http://brew.sh/](http://brew.sh/)):

Update cabal to the latest version:

cabal update
cabal install cabal-install
brew install \
cmake \
ghc \
cabal-install \
boost \
boost-python

Install Boost using Homebrew ([http://brew.sh/](http://brew.sh/)):
(boost-python is optional and only needed for Python support)

brew install boost boost-python
Update cabal package database and install `happy` (only needed for tests):

(boost-python is optional and only needed for Python support)
cabal update
cabal install happy

Bond can be built on OS X using either standard *nix makefiles or XCode. In
Bond can be built on OS X using either standard \*nix makefiles or XCode. In
order to generate and build makefiles, in the root `bond` directory run:

mkdir build
Expand All @@ -101,31 +108,48 @@ order to generate and build makefiles, in the root `bond` directory run:
make
sudo make install

Alternatively you can use the CMake application to generate either *nix
makefiles or XCode project into a directory of your choice (it doesn't have to
be called `build`).
Alternatively you can generate XCode project by passing `-G Xcode` option to
cmake:

You can build and run unit tests by building the `check` target in XCode or
by running make in the build directory:
cmake -G Xcode ..

You can build and run unit tests by building the `check` target in XCode or by
running make in the build directory:

make --jobs 8 check

Note that if you are using Homebrew's Python, you'll need to build
boost-python from source:

brew install --build-from-source boost-python

and tell cmake the location of Homebrew's libpython by setting `PYTHON_LIBRARY`
variable, e.g.:

cmake .. -DPYTHON_LIBRARY=/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib

### Windows

- Install Visual Studio 2013
- Install CMake ([http://www.cmake.org/download/](http://www.cmake.org/download/))
- Install Haskell Platform ([http://haskell.org/platform/](http://haskell.org/platform/))
[![Build Status](https://ci.appveyor.com/api/projects/status/github/Microsoft/bond?svg=true&branch=master)](https://ci.appveyor.com/project/sapek/bond/branch/master)

Install the following tools:

- Visual Studio 2013 or 2015
- CMake ([http://www.cmake.org/download/](http://www.cmake.org/download/))
- Haskell Platform ([http://haskell.org/platform/](http://haskell.org/platform/))

If you are building on a network behind a proxy, set the environment variable
`HTTP_PROXY`, e.g.:

Update cabal to the latest version (if behind a proxy, set environment variable
`HTTP_PROXY=http://proxy:port` before running cabal):
set HTTP_PROXY=http://your-proxy-name:80

Update cabal package database:

cabal update
cabal install cabal-install

Now you are ready to build the C# version of Bond. Open the solution file
`cs\cs.sln` in Visual Studio 2013 and build as usual. The C# unit tests can
also be run from with the solution.
also be run from within the solution.

The C++ and Python versions of Bond additionally require:

Expand All @@ -134,30 +158,39 @@ The C++ and Python versions of Bond additionally require:

You may need to set the environment variables `BOOST_ROOT` and `BOOST_LIBRARYDIR`
to specify where Boost and its pre-built libraries for your environment can be
found. The core Bond library and most examples only require Boost headers. The
found, e.g.:

set BOOST_ROOT=D:\boost_1_57_0
set BOOST_LIBRARYDIR=D:\boost_1_57_0\lib64-msvc-12.0

The core Bond library and most examples only require Boost headers. The
pre-built libraries are only needed for unit tests and Python support. If Boost
or Python libraries are not found on the system then some tests and examples will
not be built.

In order to configure C++/Python project run `cmake-gui`, select the root of
this repository as the source code directory and some other directory as the
target for generated project files and build binaries. Now press Generate and
select desired target build environment. This configuration step has to be
performed only once. From now on you can use the generated solution `bond.sln`.
In order to configure solution for Visual Studio 2013 run the following
commands from the root `bond` directory:

IMPORTANT: Bond unit tests are very large. If you are building using the Visual
Studio toolchain you have to select 64-bit tools by setting the following
environment variable:
mkdir build
cd build
cmake -G "Visual Studio 12 2013 Win64" ..

For Visual Studio 2012:
Instead of `cmake` you can also use `cmake-gui` and specify configuration
settings in the UI. This configuration step has to be performed only once. From
now on you can use the generated solution `build\bond.sln` from Visual Studio
or build from command line using `cmake`:

set _IsNativeEnvironment=true
set PreferredToolArchitecture=x64
cmake --build . --target
cmake --build . --target INSTALL

For Visual Studio 2013:
In order to build and execute the unit tests and examples run:

set PreferredToolArchitecture=x64
cmake --build . --target check -- /maxcpucount:8

In order to run unit tests on the Debug build, execute the following command in
the build directory:
Setting `PreferredToolArchitecture=x64` selects the 64-bit toolchain which
dramatically improves build speed (Bond unit tests are too big to build with
32-bit tools). This variable works for Visual Studio 2013 or 2015. For VS 2012 set the
following variable instead:

ctest -C Debug
set _IsNativeEnvironment=true