Plumb package suffix, version, and revision info to release packages.
diff --git a/.gitignore b/.gitignore
index b0a8cbc..2e0b7c6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,6 +25,7 @@
# Local-only config options
configured.bazelrc
user.bazelrc
+version_info.json
# Dear ImGui Ini files
imgui.ini
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 040f863..f3e65d4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -54,6 +54,11 @@
set(IREE_TARGET_BACKENDS_TO_BUILD "all"
CACHE STRING "Semicolon-separated list of target backends to build, or \"all\".")
+# Properties controlling version and naming of release artifacts.
+set(IREE_RELEASE_PACKAGE_SUFFIX "-dev" CACHE STRING "Suffix to append to distributed package names")
+set(IREE_RELEASE_VERSION "0.1a1" CACHE STRING "Version to embed in distributed packages")
+set(IREE_RELEASE_REVISION "HEAD" CACHE STRING "Version control revision information to embed in distributed packages")
+
# Master enable for tensorflow build support.
# Note that this is a normal CMake variable used to gate build features (not
# a cache variable that is user-settable).
diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt
index 20e193c..b27f1ad 100644
--- a/bindings/python/CMakeLists.txt
+++ b/bindings/python/CMakeLists.txt
@@ -18,8 +18,6 @@
set(PYBIND_EXTENSION_COPTS "-fvisibility=hidden")
# Generated setup scripts.
-# TODO: Make the version configurable.
-set(IREE_PYTHON_VERSION "0.1a1")
configure_file(setup.py setup.py COPYONLY)
configure_file(setup_tools_tf.py.in setup_tools_tf.py)
diff --git a/bindings/python/pyiree/compiler2/CMakeLists.txt b/bindings/python/pyiree/compiler2/CMakeLists.txt
index 05a064b..e48400f 100644
--- a/bindings/python/pyiree/compiler2/CMakeLists.txt
+++ b/bindings/python/pyiree/compiler2/CMakeLists.txt
@@ -26,18 +26,27 @@
# Installation.
configure_file(setup.py.in setup.py)
+configure_file(version.py.in version.py)
set(_install_component IreePythonCompiler)
set(_install_package_dir "${CMAKE_INSTALL_PREFIX}/python_packages/iree_compiler")
set(_install_destination "${_install_package_dir}/pyiree/compiler2")
install(
- FILES ${CMAKE_CURRENT_BINARY_DIR}/setup.py
+ FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/setup.py
COMPONENT ${_install_component}
DESTINATION "${_install_package_dir}"
)
install(
+ FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/version.py
+ COMPONENT ${_install_component}
+ DESTINATION "${_install_destination}"
+)
+
+install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
COMPONENT ${_install_component}
DESTINATION "${_install_destination}"
diff --git a/bindings/python/pyiree/compiler2/setup.py.in b/bindings/python/pyiree/compiler2/setup.py.in
index 5c7c814..25262f1 100644
--- a/bindings/python/pyiree/compiler2/setup.py.in
+++ b/bindings/python/pyiree/compiler2/setup.py.in
@@ -95,8 +95,8 @@
bdist_wheel = None
setup(
- name="iree-compiler@IREE_PYTHON_PACKAGE_SUFFIX@",
- version="@IREE_PYTHON_VERSION@",
+ name="iree-compiler@IREE_RELEASE_PACKAGE_SUFFIX@",
+ version="@IREE_RELEASE_VERSION@",
author="The IREE Team",
author_email="iree-discuss@googlegroups.com",
license="Apache",
diff --git a/bindings/python/pyiree/compiler2/version.py.in b/bindings/python/pyiree/compiler2/version.py.in
new file mode 100644
index 0000000..e932b2f
--- /dev/null
+++ b/bindings/python/pyiree/compiler2/version.py.in
@@ -0,0 +1,17 @@
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+PACKAGE_SUFFIX = "@IREE_RELEASE_PACKAGE_SUFFIX@"
+VERSION = "@IREE_RELEASE_VERSION@"
+REVISION = "@IREE_RELEASE_REVISION@"
diff --git a/bindings/python/pyiree/rt/CMakeLists.txt b/bindings/python/pyiree/rt/CMakeLists.txt
index a18c907..af3135f 100644
--- a/bindings/python/pyiree/rt/CMakeLists.txt
+++ b/bindings/python/pyiree/rt/CMakeLists.txt
@@ -93,18 +93,27 @@
# Installation.
configure_file(setup.py.in setup.py)
+configure_file(version.py.in version.py)
set(_install_component IreePythonRt)
set(_install_package_dir "${CMAKE_INSTALL_PREFIX}/python_packages/iree_rt")
set(_install_destination "${_install_package_dir}/pyiree/rt")
install(
- FILES ${CMAKE_CURRENT_BINARY_DIR}/setup.py
+ FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/setup.py
COMPONENT ${_install_component}
DESTINATION "${_install_package_dir}"
)
install(
+ FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/version.py
+ COMPONENT ${_install_component}
+ DESTINATION "${_install_destination}"
+)
+
+install(
TARGETS bindings_python_pyiree_rt_PyExtRt
COMPONENT ${_install_component}
DESTINATION "${_install_destination}"
diff --git a/bindings/python/pyiree/rt/setup.py.in b/bindings/python/pyiree/rt/setup.py.in
index f61380f..b0b9cf4 100644
--- a/bindings/python/pyiree/rt/setup.py.in
+++ b/bindings/python/pyiree/rt/setup.py.in
@@ -27,8 +27,8 @@
"""
setup(
- name="iree-runtime@IREE_PYTHON_PACKAGE_SUFFIX@",
- version="@IREE_PYTHON_VERSION@",
+ name="iree-runtime@IREE_RELEASE_PACKAGE_SUFFIX@",
+ version="@IREE_RELEASE_VERSION@",
author="The IREE Team",
author_email="iree-discuss@googlegroups.com",
license="Apache",
diff --git a/bindings/python/pyiree/rt/version.py.in b/bindings/python/pyiree/rt/version.py.in
new file mode 100644
index 0000000..e932b2f
--- /dev/null
+++ b/bindings/python/pyiree/rt/version.py.in
@@ -0,0 +1,17 @@
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+PACKAGE_SUFFIX = "@IREE_RELEASE_PACKAGE_SUFFIX@"
+VERSION = "@IREE_RELEASE_VERSION@"
+REVISION = "@IREE_RELEASE_REVISION@"
diff --git a/build_tools/cmake/cmake_ci.py b/build_tools/cmake/cmake_ci.py
index e98743b..10f18e3 100644
--- a/build_tools/cmake/cmake_ci.py
+++ b/build_tools/cmake/cmake_ci.py
@@ -103,6 +103,7 @@
cmake_command_prefix = [use_cmake]
cmake_environ = os.environ
+
def cmake_commandline(args):
return cmake_command_prefix + args
@@ -133,13 +134,14 @@
vcvars_all = os.path.join(vs_install_path, 'VC', 'Auxiliary', 'Build',
'vcvarsall.bat')
vcvars_arch = get_setting('VCVARS_ARCH', 'x64')
- with tempfile.NamedTemporaryFile(mode='wt', delete=False, suffix='.cmd') as f:
+ with tempfile.NamedTemporaryFile(mode='wt', delete=False,
+ suffix='.cmd') as f:
f.write('@echo off\n')
f.write(f'call "{vcvars_all}" {vcvars_arch} > NUL\n')
f.write('set\n')
try:
- env_vars = subprocess.check_output(
- ["cmd", "/c", f.name]).decode('utf-8').splitlines()
+ env_vars = subprocess.check_output(["cmd", "/c",
+ f.name]).decode('utf-8').splitlines()
finally:
os.unlink(f.name)
@@ -149,7 +151,7 @@
cmake_environ[name] = value
if 'VCINSTALLDIR' not in cmake_environ:
report('vcvars environment did not include VCINSTALLDIR:\n',
- cmake_environ)
+ cmake_environ)
return cmake_environ
cmake_environ = compute_vcvars_environ()
@@ -196,6 +198,9 @@
f'-S{repo_root}',
f'-DPython3_EXECUTABLE:FILEPATH={sys.executable}',
f'-DPython3_INCLUDE_DIR:PATH={sysconfig.get_path("include")}',
+ f'-DIREE_RELEASE_PACKAGE_SUFFIX:STRING={version_info.get("package-suffix") or "-dev"}',
+ f'-DIREE_RELEASE_VERSION:STRING={version_info.get("package-version") or "0.0.1a1"}',
+ f'-DIREE_RELEASE_REVISION:STRING={version_info.get("iree-revision") or "HEAD"}',
]
### HACK: Add a Python3_LIBRARY because cmake needs it, but it legitimately