Skip to content

Commit 99b5907

Browse files
committed
simplify version file. (#1203)
* simplify version file. * add code fingerprint to avoid rebuild unchange code.
1 parent cbd1b32 commit 99b5907

File tree

3 files changed

+28
-16
lines changed

3 files changed

+28
-16
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ torch/test/
9191
torch/version.py
9292

9393
intel_extension_for_pytorch/version.py
94-
csrc/utils/version.cpp
94+
csrc/utils/version.h
9595

9696
cscope.*
9797

csrc/utils/version.h

Lines changed: 0 additions & 12 deletions
This file was deleted.

setup.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,24 @@ def get_build_version(ipex_git_sha):
298298
return ipex_version
299299

300300

301+
def generate_code_fingerprint(ipex_build_version, ipex_git_sha, torch_git_sha, build_mode):
302+
fingerprint = "{}_{}_{}_{}".format(ipex_build_version, ipex_git_sha, torch_git_sha, build_mode)
303+
return fingerprint
304+
305+
def check_code_fingerprint_in_file(file_path, fingerprint):
306+
b_exist = os.path.isfile(file_path)
307+
if b_exist is False:
308+
return False
309+
310+
with open(file_path) as file:
311+
# read all content of a file
312+
content = file.read()
313+
# check if string present in a file
314+
if fingerprint in content:
315+
return True
316+
else:
317+
return False
318+
301319
def create_version_files(base_dir, ipex_build_version, ipex_git_sha, torch_git_sha):
302320
def write_buffer_to_file(file_path, buffer):
303321
write_buffer_flag = True
@@ -315,7 +333,7 @@ def write_buffer_to_file(file_path, buffer):
315333

316334
print('Building Intel Extension for PyTorch. Version: {}'.format(ipex_build_version))
317335
py_version_path = os.path.join(base_dir, package_name, 'version.py')
318-
cpp_version_path = os.path.join(base_dir, package_name, '..', 'csrc', 'utils', 'version.cpp')
336+
cpp_version_path = os.path.join(base_dir, package_name, '..', 'csrc', 'utils', 'version.h')
319337

320338
py_buffer = "# Autogenerated file, do not edit!\n"
321339
py_buffer += "__version__ = '{}'\n".format(ipex_build_version)
@@ -326,9 +344,15 @@ def write_buffer_to_file(file_path, buffer):
326344
mode_str = "debug"
327345
py_buffer += "__mode__ = '{}'\n".format(mode_str)
328346

347+
current_code_fingerprint = generate_code_fingerprint(ipex_build_version, ipex_git_sha, torch_git_sha, mode_str)
348+
b_same_fingerprint = check_code_fingerprint_in_file(cpp_version_path, current_code_fingerprint)
349+
if b_same_fingerprint is True:
350+
return
351+
329352
c_buffer = '// Autogenerated file, do not edit!\n'
330-
# c_buffer += '#include "intel_extension_for_pytorch/csrc/version.h"\n\n'
331-
c_buffer += '#include "version.h"\n\n'
353+
c_buffer += '// code fingerprint: {}\n\n'.format(current_code_fingerprint)
354+
c_buffer += '#pragma once\n'
355+
c_buffer += '#include <string>\n\n'
332356
c_buffer += 'namespace torch_ipex {\n\n'
333357
c_buffer += 'const std::string __version__()\n'.format(ipex_build_version)
334358
c_buffer += '{{ return "{}"; }}\n\n'.format(ipex_build_version)

0 commit comments

Comments
 (0)