diff --git a/CHANGELOG.md b/CHANGELOG.md
index d679b649da..b158f1842d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,8 @@ different versioning scheme, following the Haskell community's
## Unreleased ##
* `gbc` & compiler library: TBD (major bump needed)
+* IDL core version: 1.0 (first release)
+* IDL comm version: 1.0 (first release)
* C++ version: TBD (minor bump needed)
* C# NuGet version: TBD (minor bump needed)
* C# Comm NuGet version: TBD (minor bump needed due to dependencies)
@@ -42,6 +44,17 @@ different versioning scheme, following the Haskell community's
the same name, generated C++ would contain ambiguous references.
[Issue #202](https://github.com/Microsoft/bond/issues/202)
+### IDL core ###
+
+* Set up a separate IDL directory so that IDL is independent of language
+ bindings. [Pull request #219](https://github.com/Microsoft/bond/pull/219)
+
+### IDL comm ###
+
+* Set up a separate IDL directory so that IDL is independent of language
+ bindings. Convert comm IDL files to use C++-style naming convention. [Pull
+ request #219](https://github.com/Microsoft/bond/pull/219)
+
### C++ ###
* Improvements in the `nullable` implementation. [Pull request #174](https://github.com/Microsoft/bond/pull/174)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d474b38ae0..dab1175c3f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,6 +9,7 @@ set (CMAKE_MODULE_PATH
enable_testing()
+set (BOND_IDL ${CMAKE_CURRENT_SOURCE_DIR}/idl)
set (BOND_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/cpp/inc)
set (BOND_PYTHON_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/python/inc)
set (BOND_GENERATED ${CMAKE_CURRENT_SOURCE_DIR}/cpp/generated)
diff --git a/cmake/Bond.cmake b/cmake/Bond.cmake
index 5bb1d7ddce..eb9662c1b7 100644
--- a/cmake/Bond.cmake
+++ b/cmake/Bond.cmake
@@ -21,7 +21,7 @@ function (add_bond_codegen)
else()
endif()
list (APPEND options --output-dir="${outputDir}")
- list (APPEND options --import-dir="${BOND_INCLUDE}")
+ list (APPEND options --import-dir="${BOND_IDL}")
foreach (dir ${arg_IMPORT_DIR})
list(APPEND options --import-dir="${dir}")
endforeach()
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index b1c313ec81..cacf9dec6d 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -1,6 +1,6 @@
set (sources
- ${BOND_INCLUDE}/bond/core/bond.bond
- ${BOND_INCLUDE}/bond/core/bond_const.bond)
+ ${BOND_IDL}/bond/core/bond.bond
+ ${BOND_IDL}/bond/core/bond_const.bond)
add_bond_codegen (${sources}
ENUM_HEADER
@@ -72,4 +72,6 @@ install (TARGETS bond bond_apply
ARCHIVE DESTINATION lib/bond
INCLUDES DESTINATION include)
+install (DIRECTORY ${BOND_IDL}/bond/core/ DESTINATION include/bond/core)
+
add_subdirectory (test)
diff --git a/cs/build/internal/Common.Internal.props b/cs/build/internal/Common.Internal.props
index 5bea0a25c8..88d0b1fb60 100644
--- a/cs/build/internal/Common.Internal.props
+++ b/cs/build/internal/Common.Internal.props
@@ -6,7 +6,7 @@
AnyCPU
- $(MSBuildThisFileDirectory)..\..\..\cpp\inc
+ $(MSBuildThisFileDirectory)..\..\..\idl
diff --git a/cs/nuget/bond.compiler.csharp.nuspec b/cs/nuget/bond.compiler.csharp.nuspec
index 4e32e8849c..6ce5e93fe0 100644
--- a/cs/nuget/bond.compiler.csharp.nuspec
+++ b/cs/nuget/bond.compiler.csharp.nuspec
@@ -28,8 +28,8 @@
files in this package. They're pretty small. -->
-
-
+
+
diff --git a/cs/nuget/bond.compiler.nuspec b/cs/nuget/bond.compiler.nuspec
index 228ffb1111..8562c0bafc 100644
--- a/cs/nuget/bond.compiler.nuspec
+++ b/cs/nuget/bond.compiler.nuspec
@@ -25,7 +25,7 @@
-
-
+
+
diff --git a/cs/nuget/bond.csharp.nuspec b/cs/nuget/bond.csharp.nuspec
index c8246295a3..88f6dcc9de 100644
--- a/cs/nuget/bond.csharp.nuspec
+++ b/cs/nuget/bond.csharp.nuspec
@@ -28,8 +28,8 @@
-
-
+
+
diff --git a/cs/src/comm/epoxy-transport/epoxy-transport.csproj b/cs/src/comm/epoxy-transport/epoxy-transport.csproj
index d7657583bd..ec73905798 100644
--- a/cs/src/comm/epoxy-transport/epoxy-transport.csproj
+++ b/cs/src/comm/epoxy-transport/epoxy-transport.csproj
@@ -23,11 +23,11 @@
-
+
--namespace=bond.comm=Bond.Comm --namespace=bond.comm.epoxy=Bond.Comm.Epoxy
-
+
diff --git a/cs/src/comm/interfaces/interfaces.csproj b/cs/src/comm/interfaces/interfaces.csproj
index fd0f9dbef6..ff64be8037 100644
--- a/cs/src/comm/interfaces/interfaces.csproj
+++ b/cs/src/comm/interfaces/interfaces.csproj
@@ -26,11 +26,11 @@
-
+
--namespace=bond.comm=Bond.Comm
-
+
diff --git a/cs/src/comm/interfaces/Comm.bond b/idl/bond/comm/comm.bond
similarity index 100%
rename from cs/src/comm/interfaces/Comm.bond
rename to idl/bond/comm/comm.bond
diff --git a/cs/src/comm/epoxy-transport/EpoxyTransport.bond b/idl/bond/comm/epoxy_transport.bond
similarity index 99%
rename from cs/src/comm/epoxy-transport/EpoxyTransport.bond
rename to idl/bond/comm/epoxy_transport.bond
index 7b1473f4a3..78bbca5893 100644
--- a/cs/src/comm/epoxy-transport/EpoxyTransport.bond
+++ b/idl/bond/comm/epoxy_transport.bond
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-import "Comm.bond"
+import "comm.bond"
namespace bond.comm.epoxy;
diff --git a/cpp/inc/bond/core/bond.bond b/idl/bond/core/bond.bond
similarity index 100%
rename from cpp/inc/bond/core/bond.bond
rename to idl/bond/core/bond.bond
diff --git a/cpp/inc/bond/core/bond_const.bond b/idl/bond/core/bond_const.bond
similarity index 100%
rename from cpp/inc/bond/core/bond_const.bond
rename to idl/bond/core/bond_const.bond