From 2391fb785063b8914738ef16dc8d9294ca251253 Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 5 Apr 2022 18:38:22 +0200
Subject: [PATCH 1/2] build, refactor: Add set_properties() to msvc-autogen.py
---
build_msvc/msvc-autogen.py | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/build_msvc/msvc-autogen.py b/build_msvc/msvc-autogen.py
index 2a70cd93324..ad705f733d1 100755
--- a/build_msvc/msvc-autogen.py
+++ b/build_msvc/msvc-autogen.py
@@ -92,6 +92,11 @@ def parse_config_into_btc_config():
with open(os.path.join(SOURCE_DIR,'../build_msvc/bitcoin_config.h'), "w", encoding="utf8") as btc_config:
btc_config.writelines(template)
+def set_properties(vcxproj_filename, placeholder, content):
+ with open(vcxproj_filename + '.in', 'r', encoding='utf-8') as vcxproj_in_file:
+ with open(vcxproj_filename, 'w', encoding='utf-8') as vcxproj_file:
+ vcxproj_file.write(vcxproj_in_file.read().replace(placeholder, content))
+
def main():
parser = argparse.ArgumentParser(description='Bitcoin-core msbuild configuration initialiser.')
parser.add_argument('-toolset', nargs='?',help='Optionally sets the msbuild platform toolset, e.g. v142 for Visual Studio 2019.'
@@ -110,10 +115,7 @@ def main():
content += ' \n'
content += ' $(IntDir)' + object_filename + '\n'
content += ' \n'
- with open(vcxproj_filename + '.in', 'r', encoding='utf-8') as vcxproj_in_file:
- with open(vcxproj_filename, 'w', encoding='utf-8') as vcxproj_file:
- vcxproj_file.write(vcxproj_in_file.read().replace(
- '@SOURCE_FILES@\n', content))
+ set_properties(vcxproj_filename, '@SOURCE_FILES@\n', content):
parse_config_into_btc_config()
copyfile(os.path.join(SOURCE_DIR,'../build_msvc/bitcoin_config.h'), os.path.join(SOURCE_DIR, 'config/bitcoin-config.h'))
copyfile(os.path.join(SOURCE_DIR,'../build_msvc/libsecp256k1_config.h'), os.path.join(SOURCE_DIR, 'secp256k1/src/libsecp256k1-config.h'))
From ba0bf79a224d92e122f98fda94cb9f77092fea1f Mon Sep 17 00:00:00 2001
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date: Tue, 5 Apr 2022 18:58:05 +0200
Subject: [PATCH 2/2] build: Do not modify `common.init.vcxproj` directly
---
build_msvc/.gitignore | 1 +
...common.init.vcxproj => common.init.vcxproj.in} | 4 ++--
build_msvc/msvc-autogen.py | 15 ++++-----------
3 files changed, 7 insertions(+), 13 deletions(-)
rename build_msvc/{common.init.vcxproj => common.init.vcxproj.in} (98%)
diff --git a/build_msvc/.gitignore b/build_msvc/.gitignore
index b0e557bc0ca..b2eb9313a06 100644
--- a/build_msvc/.gitignore
+++ b/build_msvc/.gitignore
@@ -22,6 +22,7 @@ bench_bitcoin/bench_bitcoin.vcxproj
libtest_util/libtest_util.vcxproj
/bitcoin_config.h
+/common.init.vcxproj
*/Win32
libbitcoin_qt/QtGeneratedFiles/*
diff --git a/build_msvc/common.init.vcxproj b/build_msvc/common.init.vcxproj.in
similarity index 98%
rename from build_msvc/common.init.vcxproj
rename to build_msvc/common.init.vcxproj.in
index 0cbe2effd55..182efff2332 100644
--- a/build_msvc/common.init.vcxproj
+++ b/build_msvc/common.init.vcxproj.in
@@ -39,7 +39,7 @@
false
false
- v142
+ @TOOLSET@
Unicode
No
$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\
@@ -49,7 +49,7 @@
true
true
- v142
+ @TOOLSET@
Unicode
$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\
$(Platform)\$(Configuration)\$(ProjectName)\
diff --git a/build_msvc/msvc-autogen.py b/build_msvc/msvc-autogen.py
index ad705f733d1..819fe1b7aef 100755
--- a/build_msvc/msvc-autogen.py
+++ b/build_msvc/msvc-autogen.py
@@ -50,13 +50,6 @@ def parse_makefile(makefile):
lib_sources[current_lib] = []
break
-def set_common_properties(toolset):
- with open(os.path.join(SOURCE_DIR, '../build_msvc/common.init.vcxproj'), 'r', encoding='utf-8') as rfile:
- s = rfile.read()
- s = re.sub('.*?', ''+toolset+'', s)
- with open(os.path.join(SOURCE_DIR, '../build_msvc/common.init.vcxproj'), 'w', encoding='utf-8',newline='\n') as wfile:
- wfile.write(s)
-
def parse_config_into_btc_config():
def find_between( s, first, last ):
try:
@@ -99,11 +92,11 @@ def set_properties(vcxproj_filename, placeholder, content):
def main():
parser = argparse.ArgumentParser(description='Bitcoin-core msbuild configuration initialiser.')
- parser.add_argument('-toolset', nargs='?',help='Optionally sets the msbuild platform toolset, e.g. v142 for Visual Studio 2019.'
+ parser.add_argument('-toolset', nargs='?', default=DEFAULT_PLATFORM_TOOLSET,
+ help='Optionally sets the msbuild platform toolset, e.g. v142 for Visual Studio 2019.'
' default is %s.'%DEFAULT_PLATFORM_TOOLSET)
args = parser.parse_args()
- if args.toolset:
- set_common_properties(args.toolset)
+ set_properties(os.path.join(SOURCE_DIR, '../build_msvc/common.init.vcxproj'), '@TOOLSET@', args.toolset)
for makefile_name in os.listdir(SOURCE_DIR):
if 'Makefile' in makefile_name:
@@ -115,7 +108,7 @@ def main():
content += ' \n'
content += ' $(IntDir)' + object_filename + '\n'
content += ' \n'
- set_properties(vcxproj_filename, '@SOURCE_FILES@\n', content):
+ set_properties(vcxproj_filename, '@SOURCE_FILES@\n', content)
parse_config_into_btc_config()
copyfile(os.path.join(SOURCE_DIR,'../build_msvc/bitcoin_config.h'), os.path.join(SOURCE_DIR, 'config/bitcoin-config.h'))
copyfile(os.path.join(SOURCE_DIR,'../build_msvc/libsecp256k1_config.h'), os.path.join(SOURCE_DIR, 'secp256k1/src/libsecp256k1-config.h'))