diff --git a/msvc/_msvc_project.py b/msvc/_msvc_project.py
index 609ce261..67319df5 100644
--- a/msvc/_msvc_project.py
+++ b/msvc/_msvc_project.py
@@ -2,6 +2,7 @@
# generate vcxproj file
from os.path import normpath, join, split, relpath
+from os import access, F_OK
from enum import IntEnum
class Project_Type(IntEnum):
@@ -64,13 +65,13 @@ def vcx_cpp_props(outf):
'''
outf.write(f1)
-def vcx_extensions(outf):
+def vcx_extensions(outf, dir):
f1 = r'''
-
+
'''
- outf.write(f1)
+ outf.write(f1.format(dir))
def vcx_user_props(plat, proj_type, outf):
@@ -247,7 +248,7 @@ def gen_vcxproj(path, root_dir, proj_name, guid, config, plat, proj_type,
f3 = r'''
'''
f4 = r'''
-
+
'''
@@ -258,6 +259,8 @@ def gen_vcxproj(path, root_dir, proj_name, guid, config, plat, proj_type,
'''
relp = split(relpath(root_dir, path))[0] + '\\'
+ vsy_path = split(path)[0] + '\\..\\vsyasm.targets'
+ dir = '..\\' if access(vsy_path, F_OK) else '..\\..\\'
with open(path, 'w') as outf:
outf.write(f1.format(vs_info['vcx_tool']))
vcx_proj_cfg(plat, outf)
@@ -266,7 +269,7 @@ def gen_vcxproj(path, root_dir, proj_name, guid, config, plat, proj_type,
vcx_library_type(plat, proj_type, vs_info, outf)
vcx_cpp_props(outf)
if af_list:
- vcx_extensions(outf)
+ vcx_extensions(outf, dir)
vcx_user_props(plat, proj_type, outf)
outf.write(f2)
vcx_target_name_and_dirs(proj_name, plat, proj_type, outf)
@@ -278,6 +281,6 @@ def gen_vcxproj(path, root_dir, proj_name, guid, config, plat, proj_type,
vcx_a_items(af_list, relp, outf)
outf.write(f3)
if af_list:
- outf.write(f4)
+ outf.write(f4.format(dir))
outf.write(f5)
diff --git a/msvc/_msvc_solution.py b/msvc/_msvc_solution.py
index 1d65da67..acf7fd30 100644
--- a/msvc/_msvc_solution.py
+++ b/msvc/_msvc_solution.py
@@ -93,10 +93,10 @@ class msvc_solution(object):
m = re_acfg.search(ln)
if m:
g = m.group(1)
+ if not g in self.g2acfg.keys():
+ self.g2acfg[g] = [0, 1, 2, 3]
ix = 2 * (m.group(2) == 'Release') + (m.group(3) == 'x64')
ac = 2 * (m.group(4) == 'Release') + (m.group(5) == 'x64')
- if not g in self.g2acfg.keys():
- self.g2acfg[g] = [0] * 4
self.g2acfg[g][ix] = ac
for g in self.g2proj:
diff --git a/msvc/vs13/vsyasm.props b/msvc/vs13/vsyasm.props
new file mode 100644
index 00000000..80b93c7e
--- /dev/null
+++ b/msvc/vs13/vsyasm.props
@@ -0,0 +1,27 @@
+
+
+
+ Midl
+ CustomBuild
+
+
+ _SelectedFiles;$(YASMDependsOn)
+
+
+ $(VCInstallDir)bin\
+
+
+
+ False
+ $(IntDir)
+ 0
+ 0
+ "$(YasmPath)"vsyasm.exe -Xvc -f $(Platform) [AllOptions] [AdditionalOptions] [Inputs]
+ %(ObjectFile)
+ Assembling %(Filename)%(Extension)
+ false
+
+
+
\ No newline at end of file
diff --git a/msvc/vs13/vsyasm.targets b/msvc/vs13/vsyasm.targets
new file mode 100644
index 00000000..3c084119
--- /dev/null
+++ b/msvc/vs13/vsyasm.targets
@@ -0,0 +1,108 @@
+
+
+
+
+
+ _YASM
+
+
+
+ $(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ComputeLinkInputsTargets);
+ ComputeYASMOutput;
+
+
+ $(ComputeLibInputsTargets);
+ ComputeYASMOutput;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/msvc/vs13/vsyasm.xml b/msvc/vs13/vsyasm.xml
new file mode 100644
index 00000000..a108f005
--- /dev/null
+++ b/msvc/vs13/vsyasm.xml
@@ -0,0 +1,283 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ General
+
+
+
+
+
+ Symbols
+
+
+
+
+
+ Files
+
+
+
+
+
+ Command Line
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/msvc/vs15/mpir.sln b/msvc/vs15/mpir.sln
index d2d04f0e..bd545d9d 100644
--- a/msvc/vs15/mpir.sln
+++ b/msvc/vs15/mpir.sln
@@ -1,7 +1,6 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 14.0.24720.0
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_mpir_cxx", "lib_mpir_cxx\lib_mpir_cxx.vcxproj", "{6AA894FE-FFA3-4830-8B2F-E5EF87FA07F9}"
EndProject
@@ -9,22 +8,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_mpir_gc", "dll_mpir_gc\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_mpir_gc", "lib_mpir_gc\lib_mpir_gc.vcxproj", "{5A360D9F-9C7D-452D-9634-63CB4DB57D6D}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_mpir_p6", "dll_mpir_p6\dll_mpir_p6.vcxproj", "{2D8A50A2-394B-4E4F-92F1-9383C2EAF28F}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_mpir_p6", "lib_mpir_p6\lib_mpir_p6.vcxproj", "{292DE0DA-3891-465C-B3A7-C123C76F6BB8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_mpir_core2", "dll_mpir_core2\dll_mpir_core2.vcxproj", "{EED586F9-74AE-48F7-BD90-10C5781F7ADD}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_mpir_core2", "lib_mpir_core2\lib_mpir_core2.vcxproj", "{796D2C88-B558-44EA-93AB-EE5CEF1BBCA8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_mpir_p6_p3mmx", "dll_mpir_p6_p3mmx\dll_mpir_p6_p3mmx.vcxproj", "{D34091B4-7310-48C8-97F9-B0511DCB1FF9}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_mpir_p6_p3mmx", "lib_mpir_p6_p3mmx\lib_mpir_p6_p3mmx.vcxproj", "{45B3B9DA-3B20-4251-A794-2D73D047602C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_mpir_bulldozer", "dll_mpir_bulldozer\dll_mpir_bulldozer.vcxproj", "{E7CD77BC-B670-495C-91FC-8446FB17176C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_mpir_bulldozer", "lib_mpir_bulldozer\lib_mpir_bulldozer.vcxproj", "{2624A49D-842B-4A53-BB1B-B945CE2D8550}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -33,50 +16,18 @@ Global
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {6AA894FE-FFA3-4830-8B2F-E5EF87FA07F9}.Release|Win32.ActiveCfg = Release|Win32
- {6AA894FE-FFA3-4830-8B2F-E5EF87FA07F9}.Release|x64.ActiveCfg = Release|x64
{6AA894FE-FFA3-4830-8B2F-E5EF87FA07F9}.Debug|Win32.ActiveCfg = Debug|Win32
{6AA894FE-FFA3-4830-8B2F-E5EF87FA07F9}.Debug|x64.ActiveCfg = Debug|x64
- {F7309E89-0DE2-4343-A564-E3DE7730A32E}.Release|Win32.ActiveCfg = Release|Win32
- {F7309E89-0DE2-4343-A564-E3DE7730A32E}.Release|x64.ActiveCfg = Release|x64
+ {6AA894FE-FFA3-4830-8B2F-E5EF87FA07F9}.Release|Win32.ActiveCfg = Release|Win32
+ {6AA894FE-FFA3-4830-8B2F-E5EF87FA07F9}.Release|x64.ActiveCfg = Release|x64
{F7309E89-0DE2-4343-A564-E3DE7730A32E}.Debug|Win32.ActiveCfg = Debug|Win32
{F7309E89-0DE2-4343-A564-E3DE7730A32E}.Debug|x64.ActiveCfg = Debug|x64
- {5A360D9F-9C7D-452D-9634-63CB4DB57D6D}.Release|Win32.ActiveCfg = Release|Win32
- {5A360D9F-9C7D-452D-9634-63CB4DB57D6D}.Release|x64.ActiveCfg = Release|x64
+ {F7309E89-0DE2-4343-A564-E3DE7730A32E}.Release|Win32.ActiveCfg = Release|Win32
+ {F7309E89-0DE2-4343-A564-E3DE7730A32E}.Release|x64.ActiveCfg = Release|x64
{5A360D9F-9C7D-452D-9634-63CB4DB57D6D}.Debug|Win32.ActiveCfg = Debug|Win32
{5A360D9F-9C7D-452D-9634-63CB4DB57D6D}.Debug|x64.ActiveCfg = Debug|x64
- {2D8A50A2-394B-4E4F-92F1-9383C2EAF28F}.Release|Win32.ActiveCfg = Release|Win32
- {2D8A50A2-394B-4E4F-92F1-9383C2EAF28F}.Release|x64.ActiveCfg = Release|x64
- {2D8A50A2-394B-4E4F-92F1-9383C2EAF28F}.Debug|Win32.ActiveCfg = Debug|Win32
- {2D8A50A2-394B-4E4F-92F1-9383C2EAF28F}.Debug|x64.ActiveCfg = Debug|x64
- {292DE0DA-3891-465C-B3A7-C123C76F6BB8}.Release|Win32.ActiveCfg = Release|Win32
- {292DE0DA-3891-465C-B3A7-C123C76F6BB8}.Release|x64.ActiveCfg = Release|x64
- {292DE0DA-3891-465C-B3A7-C123C76F6BB8}.Debug|Win32.ActiveCfg = Debug|Win32
- {292DE0DA-3891-465C-B3A7-C123C76F6BB8}.Debug|x64.ActiveCfg = Debug|x64
- {EED586F9-74AE-48F7-BD90-10C5781F7ADD}.Release|Win32.ActiveCfg = Release|Win32
- {EED586F9-74AE-48F7-BD90-10C5781F7ADD}.Release|x64.ActiveCfg = Release|x64
- {EED586F9-74AE-48F7-BD90-10C5781F7ADD}.Debug|Win32.ActiveCfg = Debug|Win32
- {EED586F9-74AE-48F7-BD90-10C5781F7ADD}.Debug|x64.ActiveCfg = Debug|x64
- {796D2C88-B558-44EA-93AB-EE5CEF1BBCA8}.Release|Win32.ActiveCfg = Release|Win32
- {796D2C88-B558-44EA-93AB-EE5CEF1BBCA8}.Release|x64.ActiveCfg = Release|x64
- {796D2C88-B558-44EA-93AB-EE5CEF1BBCA8}.Debug|Win32.ActiveCfg = Debug|Win32
- {796D2C88-B558-44EA-93AB-EE5CEF1BBCA8}.Debug|x64.ActiveCfg = Debug|x64
- {D34091B4-7310-48C8-97F9-B0511DCB1FF9}.Release|Win32.ActiveCfg = Release|Win32
- {D34091B4-7310-48C8-97F9-B0511DCB1FF9}.Release|x64.ActiveCfg = Release|x64
- {D34091B4-7310-48C8-97F9-B0511DCB1FF9}.Debug|Win32.ActiveCfg = Debug|Win32
- {D34091B4-7310-48C8-97F9-B0511DCB1FF9}.Debug|x64.ActiveCfg = Debug|x64
- {45B3B9DA-3B20-4251-A794-2D73D047602C}.Release|Win32.ActiveCfg = Release|Win32
- {45B3B9DA-3B20-4251-A794-2D73D047602C}.Release|x64.ActiveCfg = Release|x64
- {45B3B9DA-3B20-4251-A794-2D73D047602C}.Debug|Win32.ActiveCfg = Debug|Win32
- {45B3B9DA-3B20-4251-A794-2D73D047602C}.Debug|x64.ActiveCfg = Debug|x64
- {E7CD77BC-B670-495C-91FC-8446FB17176C}.Release|Win32.ActiveCfg = Release|Win32
- {E7CD77BC-B670-495C-91FC-8446FB17176C}.Release|x64.ActiveCfg = Release|x64
- {E7CD77BC-B670-495C-91FC-8446FB17176C}.Debug|Win32.ActiveCfg = Debug|Win32
- {E7CD77BC-B670-495C-91FC-8446FB17176C}.Debug|x64.ActiveCfg = Debug|x64
- {2624A49D-842B-4A53-BB1B-B945CE2D8550}.Release|Win32.ActiveCfg = Release|Win32
- {2624A49D-842B-4A53-BB1B-B945CE2D8550}.Release|x64.ActiveCfg = Release|x64
- {2624A49D-842B-4A53-BB1B-B945CE2D8550}.Debug|Win32.ActiveCfg = Debug|Win32
- {2624A49D-842B-4A53-BB1B-B945CE2D8550}.Debug|x64.ActiveCfg = Debug|x64
+ {5A360D9F-9C7D-452D-9634-63CB4DB57D6D}.Release|Win32.ActiveCfg = Release|Win32
+ {5A360D9F-9C7D-452D-9634-63CB4DB57D6D}.Release|x64.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/msvc/vs15/vsyasm.props b/msvc/vs15/vsyasm.props
new file mode 100644
index 00000000..80b93c7e
--- /dev/null
+++ b/msvc/vs15/vsyasm.props
@@ -0,0 +1,27 @@
+
+
+
+ Midl
+ CustomBuild
+
+
+ _SelectedFiles;$(YASMDependsOn)
+
+
+ $(VCInstallDir)bin\
+
+
+
+ False
+ $(IntDir)
+ 0
+ 0
+ "$(YasmPath)"vsyasm.exe -Xvc -f $(Platform) [AllOptions] [AdditionalOptions] [Inputs]
+ %(ObjectFile)
+ Assembling %(Filename)%(Extension)
+ false
+
+
+
\ No newline at end of file
diff --git a/msvc/vs15/vsyasm.targets b/msvc/vs15/vsyasm.targets
new file mode 100644
index 00000000..3c084119
--- /dev/null
+++ b/msvc/vs15/vsyasm.targets
@@ -0,0 +1,108 @@
+
+
+
+
+
+ _YASM
+
+
+
+ $(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ComputeLinkInputsTargets);
+ ComputeYASMOutput;
+
+
+ $(ComputeLibInputsTargets);
+ ComputeYASMOutput;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/msvc/vs15/vsyasm.xml b/msvc/vs15/vsyasm.xml
new file mode 100644
index 00000000..a108f005
--- /dev/null
+++ b/msvc/vs15/vsyasm.xml
@@ -0,0 +1,283 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ General
+
+
+
+
+
+ Symbols
+
+
+
+
+
+ Files
+
+
+
+
+
+ Command Line
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/msvc/vs19/mpir.sln b/msvc/vs19/mpir.sln
index 889e4bdb..fe9e20b2 100644
--- a/msvc/vs19/mpir.sln
+++ b/msvc/vs19/mpir.sln
@@ -1,6 +1,7 @@
+
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.28705.295
+# Visual Studio 19
+VisualStudioVersion = 19.20.27027.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_mpir_cxx", "lib_mpir_cxx\lib_mpir_cxx.vcxproj", "{B265237A-08C6-4BC3-A582-2B480F27C987}"
EndProject
@@ -18,21 +19,18 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B265237A-08C6-4BC3-A582-2B480F27C987}.Debug|Win32.ActiveCfg = Debug|Win32
{B265237A-08C6-4BC3-A582-2B480F27C987}.Debug|x64.ActiveCfg = Debug|x64
- {B265237A-08C6-4BC3-A582-2B480F27C987}.Release|Win32.ActiveCfg = Debug|Win32
+ {B265237A-08C6-4BC3-A582-2B480F27C987}.Release|Win32.ActiveCfg = Release|Win32
{B265237A-08C6-4BC3-A582-2B480F27C987}.Release|x64.ActiveCfg = Release|x64
{C1DEEFFD-CA22-481B-9F4E-436709F9C6AE}.Debug|Win32.ActiveCfg = Debug|Win32
{C1DEEFFD-CA22-481B-9F4E-436709F9C6AE}.Debug|x64.ActiveCfg = Debug|x64
- {C1DEEFFD-CA22-481B-9F4E-436709F9C6AE}.Release|Win32.ActiveCfg = Debug|Win32
+ {C1DEEFFD-CA22-481B-9F4E-436709F9C6AE}.Release|Win32.ActiveCfg = Release|Win32
{C1DEEFFD-CA22-481B-9F4E-436709F9C6AE}.Release|x64.ActiveCfg = Release|x64
{2ACEC5D2-F039-4A7F-B9D6-0025BAFD667B}.Debug|Win32.ActiveCfg = Debug|Win32
{2ACEC5D2-F039-4A7F-B9D6-0025BAFD667B}.Debug|x64.ActiveCfg = Debug|x64
- {2ACEC5D2-F039-4A7F-B9D6-0025BAFD667B}.Release|Win32.ActiveCfg = Debug|Win32
+ {2ACEC5D2-F039-4A7F-B9D6-0025BAFD667B}.Release|Win32.ActiveCfg = Release|Win32
{2ACEC5D2-F039-4A7F-B9D6-0025BAFD667B}.Release|x64.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {E3E498CC-6B6A-4DBC-BECA-9D4E5F9A8ED7}
- EndGlobalSection
EndGlobal
diff --git a/msvc/vs19/test-config.props b/msvc/vs19/test-config.props
deleted file mode 100644
index 0e21ade8..00000000
--- a/msvc/vs19/test-config.props
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
- ..\..\lib_mpir_skylake_avx\x64\Release\
- ..\..\lib_mpir_skylake_avx\x64\Release\mpir.lib;..\..\lib_mpir_cxx\x64\Release\mpirxx.lib
-
-
-
- MultiThreaded
- $(MPDIR);$(SolutionDir)..\..\tests
-
-
- $(MPLIBS);$(OutDir)\add-test-lib.lib;%(AdditionalDependencies)
-
-
-
-
- $(MPDIR)
- true
-
-
- $(MPLIBS)
- true
-
-
-