summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/pin_base.mpb2
-rw-r--r--config/pintool.mpb4
-rw-r--r--config/winapp.mpb2
-rw-r--r--config/wireshark.mpb3
-rw-r--r--docs/USAGE2
-rw-r--r--docs/html/MakeProjectCreator.html29
-rw-r--r--modules/VS2019ProjectCreator.pm58
-rw-r--r--modules/VS2019WorkspaceCreator.pm41
-rwxr-xr-xregistry.pl1
-rw-r--r--templates/vs2019dll.mpt4
-rw-r--r--templates/vs2019exe.mpt4
-rw-r--r--templates/vs2019lib.mpt4
-rw-r--r--templates/vs2019libexe.mpt4
-rw-r--r--templates/vs2019platforms.mpt24
14 files changed, 169 insertions, 13 deletions
diff --git a/config/pin_base.mpb b/config/pin_base.mpb
index dca15a09..d583d2cb 100644
--- a/config/pin_base.mpb
+++ b/config/pin_base.mpb
@@ -13,7 +13,7 @@ project {
compile_flags += /Oy
}
- specific (vc10, vc11, vc12, vc14, vs2017) {
+ specific (vc10, vc11, vc12, vc14, vs2017, vs2019) {
runtime_library = MultiThreaded
ImageHasSafeExceptionHandlers = false
diff --git a/config/pintool.mpb b/config/pintool.mpb
index a343f7e4..e6b4bc10 100644
--- a/config/pintool.mpb
+++ b/config/pintool.mpb
@@ -41,7 +41,7 @@ feature (ia32) {
link_options += /ENTRY:Ptrace_DllMainCRTStartup@12
}
- specific (vc10, vc11, vc12, vc14, vs2017) {
+ specific (vc10, vc11, vc12, vc14, vs2017, vs2019) {
EntryPointSymbol = Ptrace_DllMainCRTStartup@12
}
}
@@ -51,7 +51,7 @@ feature (intel64) {
link_options += /ENTRY:Ptrace_DllMainCRTStartup
}
- specific (vc10, vc11, vc12, vc14, vs2017) {
+ specific (vc10, vc11, vc12, vc14, vs2017, vs2019) {
EntryPointSymbol = Ptrace_DllMainCRTStartup
}
}
diff --git a/config/winapp.mpb b/config/winapp.mpb
index 0c7a76d5..b87b3d42 100644
--- a/config/winapp.mpb
+++ b/config/winapp.mpb
@@ -5,7 +5,7 @@ project {
} else {
subsystem = 2
}
- specific(vc10, vc11, vc12, vc14, vs2017) {
+ specific(vc10, vc11, vc12, vc14, vs2017, vs2019) {
subsystem = Windows
}
}
diff --git a/config/wireshark.mpb b/config/wireshark.mpb
index 87b07612..0a8c24ef 100644
--- a/config/wireshark.mpb
+++ b/config/wireshark.mpb
@@ -29,6 +29,9 @@ project : glib {
specific(vs2017) {
macros += MSC_VER_REQUIRED=1910
}
+ specific(vs2019) {
+ macros += MSC_VER_REQUIRED=1920
+ }
verbatim(nmake, top, 1) {
include $(WIRESHARK_SRC)/config.nmake
}
diff --git a/docs/USAGE b/docs/USAGE
index 7c0f4457..6f4e520e 100644
--- a/docs/USAGE
+++ b/docs/USAGE
@@ -26,7 +26,7 @@ Usage: mwc.pl [-global <file>] [-include <directory>] [-recurse]
[-type <automake | bcb2007 | bcb2009 | bds4 | bmake | cc | cdt6 |
cdt7 | em3 | ghs | html | make | nmake | rpmspec | sle |
uvis | vc6 | vc7 | vc8 | vc9 | vc10 | vc11 | vc12 |
- vc14 | vc15 | vc71 | wb26 | wb30 | wix>]
+ vc14 | vs2017 | vs2019 | vc71 | wb26 | wb30 | wix>]
[files]
-base Add <project> as a base project to each generated
diff --git a/docs/html/MakeProjectCreator.html b/docs/html/MakeProjectCreator.html
index 42589174..e27f5ba6 100644
--- a/docs/html/MakeProjectCreator.html
+++ b/docs/html/MakeProjectCreator.html
@@ -518,6 +518,18 @@
<tr>
<td rowspan="1" colspan="1">
<p class="TblCode">
+ <em class="TableCode">vs2019</em>
+ </p>
+ </td>
+
+ <td rowspan="1" colspan="1">
+ <p class="Tbl-Body">Visual Studio 2019.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td rowspan="1" colspan="1">
+ <p class="TblCode">
<em class="TableCode">
<a href="WB26.html">
wb26
@@ -1825,8 +1837,8 @@ class="XRef">the -workers_port option</a>,
"Code">em3</em>, <em class="Code">vc6</em>, <em class=
"Code">vc7</em>, <em class="Code">vc71</em>, <em class="Code">vc8</em>,
<em class="Code">vc9</em>, <em class="Code">vc10</em>, <em class="Code">vc11</em>,
- <em class="Code">vc12</em>, <em class="Code">vc14</em> and
- <em class="Code">vs2017</em> project types. If this environment
+ <em class="Code">vc12</em>, <em class="Code">vc14</em>,
+ <em class="Code">vs2017</em>, and <em class="Code">vs2019</em> project types. If this environment
variable is set, MPC will generate inter-project dependencies for
libraries within a single workspace. This is usually not desired
since adding these dependencies in a static workspace has the side
@@ -1982,7 +1994,7 @@ class="XRef">the -workers_port option</a>,
<p class="Code">
&nbsp;&nbsp;exclude(vc6, vc7, vc71, vc8, vc9,
- vc10, vc11, vc12, vc14, vs2017, nmake) {
+ vc10, vc11, vc12, vc14, vs2017, vs2019, nmake) {
</p>
<p class="Code">&nbsp;&nbsp;&nbsp;&nbsp;this_directory</p>
@@ -2590,7 +2602,8 @@ class="Code">specific</em> clause.
<em class="Code">vc8</em>, <em class="Code">vc9</em>,
<em class="Code">vc10</em>, <em class="Code">vc11</em>,
<em class="Code">vc12</em>, <em class="Code">vc14</em>,
- and <em class="Code">vs2017</em> project types.
+ <em class="Code">vc12</em>, <em class="Code">vc14</em>,
+ <em class="Code">vs2017</em>, and <em class="Code">vs2019</em> project types.
</p>
</td>
</tr>
@@ -3236,8 +3249,8 @@ class="Code">specific</em> clause.
"Code">gnuace</em>, <em class="Code">vc6</em>, <em class=
"Code">vc7</em>, <em class="Code">vc71</em>, <em class="Code">vc8</em>,
<em class="Code">vc9</em>, <em class="Code">vc10</em>, <em class="Code">vc11</em>,
- <em class="Code">vc12</em>, <em class="Code">vc14</em>, and
- <em class="Code">vs2017</em> project types.
+ <em class="Code">vc12</em>, <em class="Code">vc14</em>,
+ <em class="Code">vs2017</em>, and <em class="Code">vs2019</em> project types.
</p>
<p class="Body">
@@ -8097,7 +8110,7 @@ class="Code">specific</em> clause.
7.10 is return for vc71 and 8.00 is returned for vc8,
9.00 is returned for vc9, 10.00 is returned for vc10,
11.00 is returned for vc11, 12.0 is returned for vc12,
- 14.0 is returned for vc14, 14.1 is returned for vs2017.
+ 14.0 is returned for vc14, 14.1 is returned for vs2017, 14.2 is returned for vs2019.
</p>
</td>
</tr>
@@ -8415,7 +8428,7 @@ class="Code">specific</em> clause.
<p class="Body">
Certain project types don't support the same
input file used by multiple custom types (current examples of
- this are vc10, vc11, vc12, vc14, vs2017, cdt6, and cdt7). To accommodate these types, MPC
+ this are vc10, vc11, vc12, vc14, vs2017, vs2019, cdt6, and cdt7). To accommodate these types, MPC
has a capability called "combined custom". With this capability
enabled in the specific ProjectCreator, MPC will "fold together"
the multiple custom steps so that the target tool (Visual Studio
diff --git a/modules/VS2019ProjectCreator.pm b/modules/VS2019ProjectCreator.pm
new file mode 100644
index 00000000..0d12db89
--- /dev/null
+++ b/modules/VS2019ProjectCreator.pm
@@ -0,0 +1,58 @@
+package VS2019ProjectCreator;
+
+# ************************************************************
+# Description : A vs2019 (Visual Studio 2019) Project Creator
+# Author : Johnny Willemsen
+# Create Date : 28/03/2010
+# ************************************************************
+
+# ************************************************************
+# Pragmas
+# ************************************************************
+
+use strict;
+
+use VC12ProjectCreator;
+
+use vars qw(@ISA);
+@ISA = qw(VC12ProjectCreator);
+
+## NOTE: We call the constant as a function to support Perl 5.6.
+my %info = (Creator::cplusplus() => {'ext' => '.vcxproj',
+ 'dllexe' => 'vs2019exe',
+ 'libexe' => 'vs2019libexe',
+ 'dll' => 'vs2019dll',
+ 'lib' => 'vs2019lib',
+ 'template' => [ 'vc10', 'vc10filters' ],
+ },
+ );
+
+my %config = ('vcversion' => '16.00',
+ 'toolsversion' => '16.0',
+ );
+
+# ************************************************************
+# Subroutine Section
+# ************************************************************
+
+sub get_info_hash {
+ my($self, $key) = @_;
+
+ ## If we have the setting in our information map, then use it.
+ return $info{$key} if (defined $info{$key});
+
+ ## Otherwise, see if our parent type can take care of it.
+ return $self->SUPER::get_info_hash($key);
+}
+
+sub get_configurable {
+ my($self, $name) = @_;
+
+ ## If we have the setting in our config map, then use it.
+ return $config{$name} if (defined $config{$name});
+
+ ## Otherwise, see if our parent type can take care of it.
+ return $self->SUPER::get_configurable($name);
+}
+
+1;
diff --git a/modules/VS2019WorkspaceCreator.pm b/modules/VS2019WorkspaceCreator.pm
new file mode 100644
index 00000000..be265968
--- /dev/null
+++ b/modules/VS2019WorkspaceCreator.pm
@@ -0,0 +1,41 @@
+package VS2019WorkspaceCreator;
+
+# ************************************************************
+# Description : A vs2019 (Visual Studio 2019) Workspace Creator
+# Author : Johnny Willemsen
+# Create Date : 28/03/2019
+# ************************************************************
+
+# ************************************************************
+# Pragmas
+# ************************************************************
+
+use strict;
+
+use VS2019ProjectCreator;
+use VC12WorkspaceCreator;
+
+use vars qw(@ISA);
+@ISA = qw(VC12WorkspaceCreator);
+
+# ************************************************************
+# Subroutine Section
+# ************************************************************
+
+sub pre_workspace {
+ my($self, $fh) = @_;
+ my $crlf = $self->crlf();
+
+ print $fh '', $crlf,
+ 'Microsoft Visual Studio Solution File, Format Version 12.00', $crlf;
+ $self->print_workspace_comment($fh,
+ '# Visual Studio 16', $crlf,
+ '#', $crlf,
+ '# This file was generated by MPC. Any changes made directly to', $crlf,
+ '# this file will be lost the next time it is generated.', $crlf,
+ '#', $crlf,
+ '# MPC Command:', $crlf,
+ '# ', $self->create_command_line_string($0, @ARGV), $crlf);
+}
+
+1;
diff --git a/registry.pl b/registry.pl
index dba41f43..d221b1bd 100755
--- a/registry.pl
+++ b/registry.pl
@@ -37,6 +37,7 @@ my %types = ('nmake' => ['NMAKE', 'NMAKE'],
'vc12' => ['SLN 12.0', 'VCPROJ 12.0'],
'vc14' => ['SLN 14.0', 'VCPROJ 14.0'],
'vs2017' => ['SLN 2017', 'PROJ 2017'],
+ 'vs2019' => ['SLN 2019', 'PROJ 2019'],
'wix' => ['WiX', 'WiX Project'],
);
diff --git a/templates/vs2019dll.mpt b/templates/vs2019dll.mpt
new file mode 100644
index 00000000..9034a6b2
--- /dev/null
+++ b/templates/vs2019dll.mpt
@@ -0,0 +1,4 @@
+// -*- MPC -*-
+conditional_include "vs2019platforms"
+conditional_include "vc1xdll"
+conditional_include "user_vs2019dll"
diff --git a/templates/vs2019exe.mpt b/templates/vs2019exe.mpt
new file mode 100644
index 00000000..17c8b408
--- /dev/null
+++ b/templates/vs2019exe.mpt
@@ -0,0 +1,4 @@
+// -*- MPC -*-
+conditional_include "vs2019platforms"
+conditional_include "vc1xexe"
+conditional_include "user_vs2019exe"
diff --git a/templates/vs2019lib.mpt b/templates/vs2019lib.mpt
new file mode 100644
index 00000000..eb550df9
--- /dev/null
+++ b/templates/vs2019lib.mpt
@@ -0,0 +1,4 @@
+// -*- MPC -*-
+conditional_include "vs2019platforms"
+conditional_include "vc1xlib"
+conditional_include "user_vs2019lib"
diff --git a/templates/vs2019libexe.mpt b/templates/vs2019libexe.mpt
new file mode 100644
index 00000000..20d63cac
--- /dev/null
+++ b/templates/vs2019libexe.mpt
@@ -0,0 +1,4 @@
+// -*- MPC -*-
+conditional_include "vs2019platforms"
+conditional_include "vc1xlibexe"
+conditional_include "user_vs2019libexe"
diff --git a/templates/vs2019platforms.mpt b/templates/vs2019platforms.mpt
new file mode 100644
index 00000000..040f4ffa
--- /dev/null
+++ b/templates/vs2019platforms.mpt
@@ -0,0 +1,24 @@
+// -*- MPC -*-
+//
+// Any of these platforms can set using value_template platforms=
+// when generating solutions/projects.
+//
+//platforms = Win32 x64
+
+platforms = Win32 x64
+default_platform = Win32
+PlatformToolset = v142
+WindowsTargetPlatformVersion = 10.0.17763.0
+
+Win32 {
+ output_subdir = I386
+}
+
+x64 {
+ output_subdir = AMD64
+ cpu_defines = _AMD64_
+ platform_defines = _WIN64
+ TargetMachine = "0" // We let VC++ figure it out for us.
+ link_options = /machine:AMD64
+}
+