зеркало из https://github.com/mono/wintools.git
Initial import of the Mono Add-in for Visual Studio 2005
svn path=/trunk/wintools/; revision=69450
This commit is contained in:
Родитель
d347925f7c
Коммит
a2a44254e4
|
@ -0,0 +1 @@
|
|||
Francisco "Paco" Martinez
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1,343 @@
|
|||
You may use, distribute and copy vsprj2make under the terms of
|
||||
GNU General Public License version 2, which is displayed below.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
2006-04-19 Francisco "Paco" Martinez <paco@mfcon.com>
|
||||
|
||||
* Initial import into mono's svn repository
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Mono.GetOptions;
|
||||
//
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
//
|
||||
|
||||
[assembly: AssemblyTitle("CreateZipFromSln")]
|
||||
[assembly: AssemblyDescription("Creates a Zip File from a MS Visual Studio .NET solution file.")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("MFConsulting")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("(c) 2004")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: Mono.About("MFConsulting, (c) 2004")]
|
||||
[assembly: Mono.Author("Paco Martinez")]
|
||||
[assembly: Mono.UsageComplement("-f <input file path>")]
|
||||
[assembly: AssemblyVersion("0.95.1.0")]
|
||||
[assembly: AssemblyDelaySign(false)]
|
||||
[assembly: AssemblyKeyFile("")]
|
||||
[assembly: AssemblyKeyName("")]
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{7546314B-68AE-4067-B3F2-3D703AACED64}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>CreateZipFromSln</AssemblyName>
|
||||
<AssemblyOriginatorKeyFile>
|
||||
</AssemblyOriginatorKeyFile>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>Mfconsulting.Vsprj2make</RootNamespace>
|
||||
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||
<StartupObject>
|
||||
</StartupObject>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<NoStdLib>false</NoStdLib>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<Optimize>false</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<NoStdLib>false</NoStdLib>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<Optimize>true</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>none</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ICSharpCode.SharpZipLib">
|
||||
<Name>ICSharpCode.SharpZipLib</Name>
|
||||
<HintPath>..\reflib\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Mono.GetOptions">
|
||||
<Name>Mono.GetOptions</Name>
|
||||
<HintPath>..\reflib\Mono.GetOptions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System">
|
||||
<Name>System</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Data">
|
||||
<Name>System.Data</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml">
|
||||
<Name>System.XML</Name>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Drive.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainOpts.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ZipCompressor.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CreateZipFile", "CreateZipFile.csproj", "{7546314B-68AE-4067-B3F2-3D703AACED64}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{7546314B-68AE-4067-B3F2-3D703AACED64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7546314B-68AE-4067-B3F2-3D703AACED64}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7546314B-68AE-4067-B3F2-3D703AACED64}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7546314B-68AE-4067-B3F2-3D703AACED64}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,254 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace Mfconsulting.Vsprj2make
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for Drive.
|
||||
/// </summary>
|
||||
public class Drive
|
||||
{
|
||||
static System.Collections.ArrayList g_straDirList = new ArrayList();
|
||||
static System.Collections.ArrayList g_straFileList = new ArrayList();
|
||||
static char []g_chaSeparator = {';'};
|
||||
static string g_strBlacListedDirectories = "CVS;obj;.svn";
|
||||
static string g_strBlacListedFiles = ".suo;.cvsignore;.vssscc;.vspscc";
|
||||
|
||||
public Drive()
|
||||
{
|
||||
//
|
||||
// TODO: Add constructor logic here
|
||||
//
|
||||
}
|
||||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
string strOutFile;
|
||||
string strSolutionFile;
|
||||
MainOpts optObj = new MainOpts();
|
||||
ZipCompressor zcObj = new ZipCompressor();
|
||||
int i;
|
||||
|
||||
// Handle command line arguments
|
||||
optObj.ProcessArgs(args);
|
||||
|
||||
// Hangle no parameters being passed
|
||||
if(args.Length < 1 || optObj.SolutionFile.Length < 1)
|
||||
{
|
||||
optObj.DoHelp();
|
||||
return;
|
||||
}
|
||||
|
||||
// Check for BlackListed Extensions being passed
|
||||
if(optObj.Extensions.Length > 0)
|
||||
{
|
||||
g_strBlacListedFiles = optObj.Extensions;
|
||||
}
|
||||
|
||||
// Check for BlackListed directories being passed
|
||||
if(optObj.BlacListedDirectories.Length > 0)
|
||||
{
|
||||
g_strBlacListedDirectories = optObj.BlacListedDirectories;
|
||||
}
|
||||
|
||||
strSolutionFile = optObj.SolutionFile;
|
||||
|
||||
if(optObj.OutputFilePath.Length > 0)
|
||||
{
|
||||
strOutFile = optObj.OutputFilePath;
|
||||
}
|
||||
else
|
||||
{
|
||||
strOutFile =
|
||||
Path.Combine(
|
||||
Path.GetDirectoryName(strSolutionFile),
|
||||
(Path.GetFileNameWithoutExtension(strSolutionFile) + ".zip")
|
||||
);
|
||||
}
|
||||
|
||||
if(System.IO.Path.GetExtension(strSolutionFile).ToUpper().CompareTo(".SLN") != 0)
|
||||
{
|
||||
Console.WriteLine("The file you submited does not seem like a Visual Studio .NET Solution file.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Parse solution
|
||||
Drive.ParseSolution(strSolutionFile);
|
||||
|
||||
// build a string array of the base solution directory
|
||||
// and the projects directory
|
||||
string []straBaseDirs = new string[g_straDirList.Count];
|
||||
for(i = 0; i < straBaseDirs.Length; i++)
|
||||
{
|
||||
straBaseDirs[i] = (string)g_straDirList[i];
|
||||
AddFilesToFileList(straBaseDirs[i]);
|
||||
}
|
||||
|
||||
// Clear the global Directory ArrayList
|
||||
g_straDirList.Clear();
|
||||
|
||||
// Build the File ArrayList
|
||||
string []straFilenames = new string[g_straFileList.Count];
|
||||
for(i = 0; i < straFilenames.Length; i++)
|
||||
{
|
||||
straFilenames[i] = (string)g_straFileList[i];
|
||||
}
|
||||
|
||||
// Clear the global File ArrayList
|
||||
g_straFileList.Clear();
|
||||
|
||||
// Invoke the Programs main functionality and purpose
|
||||
zcObj.CompressionLevel = optObj.Level;
|
||||
zcObj.CreateZipFile(straFilenames, strOutFile);
|
||||
}
|
||||
|
||||
#region Support functions
|
||||
|
||||
/// <summary>
|
||||
/// Parse through all the projects in a given solution
|
||||
/// </summary>
|
||||
/// <param name="strFname">The fully qualified path to the solution file.</param>
|
||||
static void ParseSolution(string strFname)
|
||||
{
|
||||
string strSolutionDir;
|
||||
FileStream fis = new FileStream(
|
||||
strFname,
|
||||
FileMode.Open,
|
||||
FileAccess.Read,
|
||||
FileShare.Read
|
||||
);
|
||||
|
||||
StreamReader reader = new StreamReader(fis);
|
||||
Regex regex = new Regex(@"Project\(""\{(.*)\}""\) = ""(.*)"", ""(.*)"", ""(\{.*\})""");
|
||||
|
||||
// Get the solution directory and added
|
||||
strSolutionDir = System.IO.Path.GetDirectoryName(strFname);
|
||||
|
||||
// Change the current directory to the solution directory
|
||||
System.IO.Directory.SetCurrentDirectory(strSolutionDir);
|
||||
|
||||
Drive.g_straDirList.Add(strSolutionDir);
|
||||
|
||||
while (true)
|
||||
{
|
||||
string s = reader.ReadLine();
|
||||
Match match;
|
||||
|
||||
match = regex.Match(s);
|
||||
if (match.Success)
|
||||
{
|
||||
string projectName = match.Groups[2].Value;
|
||||
string csprojPath = match.Groups[3].Value;
|
||||
string projectGuid = match.Groups[4].Value;
|
||||
|
||||
if (csprojPath.StartsWith("http://"))
|
||||
{
|
||||
Console.WriteLine("WARNING: got http:// project, guessing actual path.");
|
||||
csprojPath = Path.Combine(projectName, Path.GetFileName(csprojPath));
|
||||
}
|
||||
if (csprojPath.EndsWith (".csproj"))
|
||||
{
|
||||
string strProjDir = System.IO.Path.GetDirectoryName(
|
||||
System.IO.Path.GetFullPath(csprojPath));
|
||||
|
||||
if(strProjDir.CompareTo(strSolutionDir) != 0)
|
||||
{
|
||||
Drive.g_straDirList.Add(strProjDir);
|
||||
// Recurse to look for subdirs
|
||||
ListSubDirs(strProjDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
ListSubDirs(strProjDir);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (s.StartsWith("Global"))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Iterates through all of the directories (if any) that
|
||||
/// are contained within a given directory
|
||||
/// </summary>
|
||||
/// <param name="strInDirPath">An imput string that
|
||||
/// represents the directory to search in</param>
|
||||
public static void ListSubDirs(string strInDirPath)
|
||||
{
|
||||
System.IO.DirectoryInfo di = new DirectoryInfo(strInDirPath);
|
||||
|
||||
foreach(System.IO.DirectoryInfo diObj in di.GetDirectories())
|
||||
{
|
||||
// Determine if is fit
|
||||
if(IsDirBlackListed(diObj.Name) == false)
|
||||
{
|
||||
g_straDirList.Add(diObj.FullName);
|
||||
ListSubDirs(diObj.FullName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines if a directory name is listed on the ignore.
|
||||
/// </summary>
|
||||
/// <param name="strInDirName">String value that represents the name to check.</param>
|
||||
/// <returns>Returns true if black listed or false otherwise</returns>
|
||||
public static bool IsDirBlackListed(string strInDirName)
|
||||
{
|
||||
string []straBlackListItems = g_strBlacListedDirectories.Split(g_chaSeparator);
|
||||
|
||||
foreach(string strDirName in straBlackListItems)
|
||||
{
|
||||
if(strInDirName.ToUpper().CompareTo(strDirName.ToUpper()) == 0)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines if a given file name is in the Black List
|
||||
/// </summary>
|
||||
/// <param name="strInFileName">The file name to check against the list</param>
|
||||
/// <returns>Returns true if black listed or false otherwise</returns>
|
||||
public static bool IsFileBlackListed(string strInFileName)
|
||||
{
|
||||
string []straBlackListItems = g_strBlacListedFiles.Split(g_chaSeparator);
|
||||
|
||||
foreach(string strExtention in straBlackListItems)
|
||||
{
|
||||
if(Path.GetExtension(strInFileName).ToUpper().CompareTo(strExtention.ToUpper()) == 0)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Extract the list of files from a given directory and
|
||||
/// inserts them into the global File ArrayList
|
||||
/// </summary>
|
||||
/// <param name="strInDirPath">The full directory path to look for files</param>
|
||||
public static void AddFilesToFileList(string strInDirPath)
|
||||
{
|
||||
string []straFiles = Directory.GetFiles(strInDirPath);
|
||||
|
||||
foreach(string strFileName in straFiles)
|
||||
{
|
||||
// Check to see if blacklisted
|
||||
if(IsFileBlackListed(strFileName) == false)
|
||||
{
|
||||
Drive.g_straFileList.Add(strFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Mono.GetOptions;
|
||||
|
||||
namespace Mfconsulting.Vsprj2make
|
||||
{
|
||||
class MainOpts : Options
|
||||
{
|
||||
[Option(1, "Compression level", 'l')]
|
||||
public int Level = 4;
|
||||
|
||||
[Option(1, "Ignored extensions", "IgnoredExtensions")]
|
||||
public string Extensions = ".suo,.cvsignore,.vssscc,.vspscc";
|
||||
|
||||
[Option(1, "Ignored directories", "IgnoredDirectories")]
|
||||
public string BlacListedDirectories = "CVS,obj,.svn";
|
||||
|
||||
[Option(1, "Output file path", 'o')]
|
||||
public string OutputFilePath = "";
|
||||
|
||||
[Option(1, "Input solution or project file", 'f')]
|
||||
public string SolutionFile = "";
|
||||
|
||||
public MainOpts()
|
||||
{
|
||||
ParsingMode = OptionsParsingMode.Both;
|
||||
BreakSingleDashManyLettersIntoManyOptions = false;
|
||||
EndOptionProcessingWithDoubleDash = true;
|
||||
|
||||
if (System.IO.Path.DirectorySeparatorChar.CompareTo('/') == 0)
|
||||
ParsingMode = OptionsParsingMode.Linux;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
!if !defined (TARGET)
|
||||
TARGET=.\bin\Debug
|
||||
!else
|
||||
TARGET=.\bin\$(TARGET)
|
||||
!endif
|
||||
|
||||
MCS=mcs
|
||||
!if !defined(RELEASE)
|
||||
MCSFLAGS=-debug --stacktrace
|
||||
!endif
|
||||
|
||||
CREATEZIPFILE_EXE=$(TARGET)\CreateZipFromSln.exe
|
||||
CREATEZIPFILE_PDB=$(TARGET)\CreateZipFromSln.exe.mdb
|
||||
CREATEZIPFILE_SRC=AssemblyInfo.cs \
|
||||
Drive.cs \
|
||||
ZipCompressor.cs \
|
||||
MainOpts.cs
|
||||
|
||||
CREATEZIPFILE_RES=
|
||||
|
||||
$(CREATEZIPFILE_EXE): $(CREATEZIPFILE_SRC)
|
||||
-md $(TARGET)
|
||||
$(MCS) $(MCSFLAGS) -r:System.dll -r:System.Data.dll -r:System.Xml.dll -r:ICSharpCode.SharpZipLib.dll -r:Mono.GetOptions.dll -target:exe -out:$(CREATEZIPFILE_EXE) $(CREATEZIPFILE_RES) $(CREATEZIPFILE_SRC)
|
||||
|
||||
|
||||
# common targets
|
||||
|
||||
all: $(CREATEZIPFILE_EXE)
|
||||
|
||||
clean:
|
||||
-del "$(CREATEZIPFILE_EXE)" 2> nul
|
||||
-del "$(CREATEZIPFILE_PDB)" 2> nul
|
||||
|
||||
|
||||
# project names as targets
|
||||
|
||||
CreateZipFile: $(CREATEZIPFILE_EXE)
|
|
@ -0,0 +1,92 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using ICSharpCode.SharpZipLib.Checksums;
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
using ICSharpCode.SharpZipLib.GZip;
|
||||
|
||||
namespace Mfconsulting.Vsprj2make
|
||||
{
|
||||
public class ZipCompressor
|
||||
{
|
||||
/// <summary>
|
||||
/// Level of compression
|
||||
/// </summary>
|
||||
public int m_nCompressionLevel = 6;
|
||||
|
||||
/// <summary>
|
||||
/// Level of compression
|
||||
/// </summary>
|
||||
public int CompressionLevel
|
||||
{
|
||||
get { return m_nCompressionLevel; }
|
||||
set
|
||||
{
|
||||
if(value > 9)
|
||||
{
|
||||
m_nCompressionLevel = 9;
|
||||
return;
|
||||
}
|
||||
|
||||
if(value < 1)
|
||||
{
|
||||
m_nCompressionLevel = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
m_nCompressionLevel = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string GetFileNameWithoutDrive(string strInFullPath)
|
||||
{
|
||||
System.IO.DirectoryInfo diObj = null;
|
||||
string strRetVal;
|
||||
string strFileName = System.IO.Path.GetFileName(strInFullPath);
|
||||
string strDirectory = System.IO.Path.GetDirectoryName(strInFullPath);
|
||||
|
||||
diObj = new DirectoryInfo(strDirectory);
|
||||
|
||||
strRetVal = String.Format("{0}{1}{2}",
|
||||
diObj.FullName.Substring(diObj.Root.Name.Length),
|
||||
System.IO.Path.DirectorySeparatorChar,
|
||||
strFileName
|
||||
);
|
||||
|
||||
return strRetVal.Replace("\\", "/");
|
||||
}
|
||||
|
||||
public void CreateZipFile(string[] straFilenames, string strOutputFilename)
|
||||
{
|
||||
Crc32 crc = new Crc32();
|
||||
ZipOutputStream zos = new ZipOutputStream(File.Create(strOutputFilename));
|
||||
|
||||
zos.SetLevel(m_nCompressionLevel);
|
||||
|
||||
foreach (string strFileName in straFilenames)
|
||||
{
|
||||
FileStream fs = File.OpenRead(strFileName);
|
||||
|
||||
byte[] buffer = new byte[fs.Length];
|
||||
fs.Read(buffer, 0, buffer.Length);
|
||||
ZipEntry entry = new ZipEntry(GetFileNameWithoutDrive(strFileName));
|
||||
|
||||
entry.DateTime = DateTime.Now;
|
||||
|
||||
entry.Size = fs.Length;
|
||||
fs.Close();
|
||||
|
||||
crc.Reset();
|
||||
crc.Update(buffer);
|
||||
|
||||
entry.Crc = crc.Value;
|
||||
|
||||
zos.PutNextEntry(entry);
|
||||
|
||||
zos.Write(buffer, 0, buffer.Length);
|
||||
}
|
||||
|
||||
zos.Finish();
|
||||
zos.Close();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
INSTALL.txt for monoaddin
|
||||
-------------------------------------------
|
||||
|
|
@ -0,0 +1,170 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
namespace Mfconsulting.General.Prj2Make
|
||||
{
|
||||
class CsprojInfo
|
||||
{
|
||||
public readonly string name;
|
||||
public readonly string guid;
|
||||
public readonly string csprojpath;
|
||||
public string makename;
|
||||
public string makename_ext;
|
||||
public string assembly_name;
|
||||
public string res;
|
||||
public string src;
|
||||
private bool m_bAllowUnsafeCode;
|
||||
private Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject m_projObject;
|
||||
|
||||
public string ext_refs = "";
|
||||
public string switches = "";
|
||||
|
||||
public bool AllowUnsafeCode
|
||||
{
|
||||
get { return m_bAllowUnsafeCode; }
|
||||
}
|
||||
|
||||
public Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject Proyecto
|
||||
{
|
||||
get { return m_projObject; }
|
||||
}
|
||||
|
||||
// Project desirialization
|
||||
protected Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject LoadPrjFromFile (string strIn)
|
||||
{
|
||||
FileStream fs = new FileStream (strIn, FileMode.Open);
|
||||
|
||||
XmlSerializer xmlSer = new XmlSerializer (typeof(Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject));
|
||||
Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject prjObj = (Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject) xmlSer.Deserialize (fs);
|
||||
|
||||
fs.Close();
|
||||
|
||||
return (prjObj);
|
||||
}
|
||||
|
||||
public CsprojInfo(bool isUnixMode, bool isMcsMode, string name, string guid, string csprojpath)
|
||||
{
|
||||
this.name = name;
|
||||
this.guid = guid;
|
||||
this.csprojpath = csprojpath;
|
||||
|
||||
makename = name.Replace('.','_').ToUpper();
|
||||
makename_ext = makename + "_EXT";
|
||||
m_bAllowUnsafeCode = false;
|
||||
|
||||
// convert backslashes to slashes
|
||||
csprojpath = csprojpath.Replace("\\", "/");
|
||||
|
||||
// loads the file in order to deserialize and
|
||||
// build the object graph
|
||||
try
|
||||
{
|
||||
m_projObject = LoadPrjFromFile (csprojpath);
|
||||
}
|
||||
|
||||
catch (Exception exc)
|
||||
{
|
||||
Console.WriteLine (
|
||||
String.Format ("Could not load the file {0}\nException: {1}",
|
||||
csprojpath,
|
||||
exc.Message)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
// Establish if the allow unsafe code flag is true
|
||||
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.Config cf in m_projObject.CSHARP.Build.Settings.Config)
|
||||
{
|
||||
if(cf.AllowUnsafeBlocks == true)
|
||||
m_bAllowUnsafeCode = true;
|
||||
}
|
||||
|
||||
switch (m_projObject.CSHARP.Build.Settings.OutputType)
|
||||
{
|
||||
case "Library":
|
||||
makename_ext = makename + "_DLL";
|
||||
assembly_name = m_projObject.CSHARP.Build.Settings.AssemblyName + ".dll";
|
||||
switches += " -target:library";
|
||||
break;
|
||||
|
||||
case "Exe":
|
||||
makename_ext = makename + "_EXE";
|
||||
assembly_name = m_projObject.CSHARP.Build.Settings.AssemblyName + ".exe";
|
||||
switches += " -target:exe";
|
||||
break;
|
||||
|
||||
case "WinExe":
|
||||
makename_ext = makename + "_EXE";
|
||||
assembly_name = m_projObject.CSHARP.Build.Settings.AssemblyName + ".exe";
|
||||
switches += " -target:winexe";
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new NotSupportedException("Unsupported OutputType: " + m_projObject.CSHARP.Build.Settings.OutputType);
|
||||
|
||||
}
|
||||
|
||||
src = "";
|
||||
string basePath = Path.GetDirectoryName(csprojpath);
|
||||
string s;
|
||||
|
||||
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in m_projObject.CSHARP.Files.Include)
|
||||
{
|
||||
if(fl.BuildAction == Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.Compile)
|
||||
{
|
||||
if (src != "")
|
||||
{
|
||||
src += " \\\n\t";
|
||||
}
|
||||
|
||||
s = System.IO.Path.Combine(basePath, fl.RelPath);
|
||||
s = s.Replace("\\", "/");
|
||||
if (SlnMaker.slash != "/")
|
||||
s = s.Replace("/", SlnMaker.slash);
|
||||
|
||||
// Test for spaces
|
||||
if (isUnixMode == false) {
|
||||
// We are in win32 using a cmd.exe or other
|
||||
// DOS shell
|
||||
if(s.IndexOf(' ') > -1) {
|
||||
src += String.Format("\"{0}\"", s);
|
||||
} else {
|
||||
src += s;
|
||||
}
|
||||
} else {
|
||||
// We are in *NIX or some other
|
||||
// GNU like shell
|
||||
src += s.Replace(" ", "\\ ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res = "";
|
||||
string rootNS = m_projObject.CSHARP.Build.Settings.RootNamespace;
|
||||
string relPath;
|
||||
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in m_projObject.CSHARP.Files.Include)
|
||||
{
|
||||
if(fl.BuildAction == Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.EmbeddedResource)
|
||||
{
|
||||
if (res != "") {
|
||||
res += " \\\n\t";
|
||||
}
|
||||
|
||||
relPath = fl.RelPath.Replace("\\", "/");
|
||||
s = System.IO.Path.Combine(basePath, relPath);
|
||||
s = String.Format("-resource:{0},{1}", s, rootNS + "." + relPath.Replace("/", "."));
|
||||
s = s.Replace("\\", "/");
|
||||
if (SlnMaker.slash != "/")
|
||||
s = s.Replace("/", SlnMaker.slash);
|
||||
res += s;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,188 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
namespace Mfconsulting.General.Prj2Make
|
||||
{
|
||||
class CsprojInfo2005
|
||||
{
|
||||
public readonly string name;
|
||||
public readonly string guid;
|
||||
public readonly string csprojpath;
|
||||
public string makename;
|
||||
public string makename_ext;
|
||||
public string assembly_name;
|
||||
public string res;
|
||||
public string src;
|
||||
private bool m_bAllowUnsafeCode;
|
||||
private Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project m_projObject;
|
||||
|
||||
public string ext_refs = "";
|
||||
public string switches = "";
|
||||
|
||||
public bool AllowUnsafeCode
|
||||
{
|
||||
get { return m_bAllowUnsafeCode; }
|
||||
}
|
||||
|
||||
public Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project Proyecto
|
||||
{
|
||||
get { return m_projObject; }
|
||||
}
|
||||
|
||||
// Project desirialization
|
||||
protected Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project LoadPrjFromFile (string strIn)
|
||||
{
|
||||
FileStream fs = new FileStream (strIn, FileMode.Open);
|
||||
Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project prjObj = null;
|
||||
|
||||
try
|
||||
{
|
||||
XmlSerializer xmlSer = new XmlSerializer(typeof(Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject));
|
||||
prjObj = (Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project)xmlSer.Deserialize(fs);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Trace.WriteLine(String.Format("Error while deserializing file: {0}\n{1}", strIn, exc.Message));
|
||||
}
|
||||
|
||||
fs.Close();
|
||||
|
||||
return (prjObj);
|
||||
}
|
||||
|
||||
public CsprojInfo2005(bool isUnixMode, bool isMcsMode, string name, string guid, string csprojpath)
|
||||
{
|
||||
this.name = name;
|
||||
this.guid = guid;
|
||||
this.csprojpath = csprojpath;
|
||||
|
||||
makename = name.Replace('.','_').ToUpper();
|
||||
makename_ext = makename + "_EXT";
|
||||
m_bAllowUnsafeCode = false;
|
||||
|
||||
// convert backslashes to slashes
|
||||
csprojpath = csprojpath.Replace("\\", "/");
|
||||
|
||||
// loads the file in order to deserialize and
|
||||
// build the object graph
|
||||
try
|
||||
{
|
||||
m_projObject = LoadPrjFromFile (csprojpath);
|
||||
}
|
||||
|
||||
catch (Exception exc)
|
||||
{
|
||||
Console.WriteLine (
|
||||
String.Format ("Could not load the file {0}\nException: {1}",
|
||||
csprojpath,
|
||||
exc.Message)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
// Establish if the allow unsafe code flag is true
|
||||
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj2005.PropertyGroup propGrp in m_projObject.PropertyGroup)
|
||||
{
|
||||
if (propGrp.AllowUnsafeBlocks == true)
|
||||
m_bAllowUnsafeCode = true;
|
||||
}
|
||||
|
||||
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj2005.PropertyGroup propGrp in m_projObject.PropertyGroup)
|
||||
{
|
||||
switch (propGrp.OutputType)
|
||||
{
|
||||
case "Library":
|
||||
makename_ext = makename + "_DLL";
|
||||
assembly_name = m_projObject.PropertyGroup[0].AssemblyName + ".dll";
|
||||
switches += " -target:library";
|
||||
break;
|
||||
|
||||
case "Exe":
|
||||
makename_ext = makename + "_EXE";
|
||||
assembly_name = m_projObject.PropertyGroup[0].AssemblyName + ".exe";
|
||||
switches += " -target:exe";
|
||||
break;
|
||||
|
||||
case "WinExe":
|
||||
makename_ext = makename + "_EXE";
|
||||
assembly_name = m_projObject.PropertyGroup[0].AssemblyName + ".exe";
|
||||
switches += " -target:winexe";
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new NotSupportedException("Unsupported OutputType: " + propGrp.OutputType);
|
||||
}
|
||||
}
|
||||
|
||||
src = "";
|
||||
string basePath = Path.GetDirectoryName(csprojpath);
|
||||
string s;
|
||||
|
||||
foreach (object[][] itemGrpArray in m_projObject.ItemGroup)
|
||||
{
|
||||
foreach (object[] itemGrp in itemGrpArray)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
//foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in m_projObject.CSHARP.Files.Include)
|
||||
//{
|
||||
// if(fl.BuildAction == Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.Compile)
|
||||
// {
|
||||
// if (src != "")
|
||||
// {
|
||||
// src += " \\\n\t";
|
||||
// }
|
||||
|
||||
// s = System.IO.Path.Combine(basePath, fl.RelPath);
|
||||
// s = s.Replace("\\", "/");
|
||||
// if (SlnMaker.slash != "/")
|
||||
// s = s.Replace("/", SlnMaker.slash);
|
||||
|
||||
// // Test for spaces
|
||||
// if (isUnixMode == false) {
|
||||
// // We are in win32 using a cmd.exe or other
|
||||
// // DOS shell
|
||||
// if(s.IndexOf(' ') > -1) {
|
||||
// src += String.Format("\"{0}\"", s);
|
||||
// } else {
|
||||
// src += s;
|
||||
// }
|
||||
// } else {
|
||||
// // We are in *NIX or some other
|
||||
// // GNU like shell
|
||||
// src += s.Replace(" ", "\\ ");
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//res = "";
|
||||
//string rootNS = m_projObject.CSHARP.Build.Settings.RootNamespace;
|
||||
//string relPath;
|
||||
//foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in m_projObject.CSHARP.Files.Include)
|
||||
//{
|
||||
// if(fl.BuildAction == Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.EmbeddedResource)
|
||||
// {
|
||||
// if (res != "") {
|
||||
// res += " \\\n\t";
|
||||
// }
|
||||
|
||||
// relPath = fl.RelPath.Replace("\\", "/");
|
||||
// s = System.IO.Path.Combine(basePath, relPath);
|
||||
// s = String.Format("-resource:{0},{1}", s, rootNS + "." + relPath.Replace("/", "."));
|
||||
// s = s.Replace("\\", "/");
|
||||
// if (SlnMaker.slash != "/")
|
||||
// s = s.Replace("/", SlnMaker.slash);
|
||||
// res += s;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
!if !defined (TARGET)
|
||||
TARGET=.\bin\Debug
|
||||
!else
|
||||
TARGET=.\bin\$(TARGET)
|
||||
!endif
|
||||
|
||||
MCS=mcs
|
||||
!if !defined(RELEASE)
|
||||
MCSFLAGS=-debug --stacktrace
|
||||
!endif
|
||||
|
||||
PRJ2MAKESHARP_EXE=$(TARGET)\prj2makesharpWin32.exe
|
||||
PRJ2MAKESHARP_PDB=$(TARGET)\prj2makesharpWin32.exe.mdb
|
||||
PRJ2MAKESHARP_SRC=csproj_ver2003.cs \
|
||||
CsprojInfo.cs \
|
||||
MdPrjHelper.cs \
|
||||
MsPrjHelper.cs \
|
||||
pkgconfiginvoker.cs \
|
||||
PrjHelper.cs \
|
||||
PrjxInfo.cs \
|
||||
sharp_d_cmbx.cs \
|
||||
sharp_d_prjx.cs \
|
||||
cui\AssemblyInfo.cs \
|
||||
cui\Main.cs \
|
||||
cui\MainMod.cs \
|
||||
cui\MainOpts.cs
|
||||
PRJ2MAKESHARP_RES=
|
||||
|
||||
$(PRJ2MAKESHARP_EXE): $(PRJ2MAKESHARP_SRC)
|
||||
-md $(TARGET)
|
||||
$(MCS) $(MCSFLAGS) -r:System.Xml.dll -r:Mono.GetOptions.dll -r:System.dll -target:exe -out:$(PRJ2MAKESHARP_EXE) $(PRJ2MAKESHARP_RES) $(PRJ2MAKESHARP_SRC)
|
||||
|
||||
|
||||
# common targets
|
||||
|
||||
all: $(PRJ2MAKESHARP_EXE)
|
||||
|
||||
clean:
|
||||
-del "$(PRJ2MAKESHARP_EXE)" 2> nul
|
||||
-del "$(PRJ2MAKESHARP_PDB)" 2> nul
|
||||
|
||||
|
||||
# project names as targets
|
||||
|
||||
prj2makesharp: $(PRJ2MAKESHARP_EXE)
|
|
@ -0,0 +1,362 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Mfconsulting.General.Prj2Make
|
||||
{
|
||||
public class CmbxMaker
|
||||
{
|
||||
public static string slash;
|
||||
static Hashtable projNameInfo = new Hashtable();
|
||||
static Hashtable projGuidInfo = new Hashtable();
|
||||
private Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine m_cmbObject;
|
||||
private bool m_bIsUnix;
|
||||
private bool m_bIsMcs;
|
||||
private bool m_bIsUsingLib;
|
||||
|
||||
// Flag use to determine if the LIB variable will be used in
|
||||
// the Makefile that prj2make generates
|
||||
public bool IsUsingLib
|
||||
{
|
||||
get{ return m_bIsUsingLib; }
|
||||
set{ m_bIsUsingLib = value; }
|
||||
}
|
||||
|
||||
// Determines if the makefile is intended for nmake or gmake for urposes of path separator character
|
||||
public bool IsUnix
|
||||
{
|
||||
get{ return m_bIsUnix; }
|
||||
set{ m_bIsUnix = value; }
|
||||
}
|
||||
|
||||
// Determines if using MCS or CSC
|
||||
public bool IsMcs
|
||||
{
|
||||
get{ return m_bIsMcs; }
|
||||
set{ m_bIsMcs = value; }
|
||||
}
|
||||
|
||||
public Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine Solucion {
|
||||
get { return m_cmbObject; }
|
||||
}
|
||||
|
||||
public CmbxMaker()
|
||||
{
|
||||
m_bIsUnix = false;
|
||||
m_bIsMcs = false;
|
||||
m_bIsUsingLib = false;
|
||||
}
|
||||
|
||||
// Combine desirialization
|
||||
protected Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine LoadCmbFromFile (string strIn)
|
||||
{
|
||||
FileStream fs = new FileStream (strIn, FileMode.Open);
|
||||
|
||||
XmlSerializer xmlSer = new XmlSerializer (typeof(Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine));
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine cmbObj = (Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine) xmlSer.Deserialize (fs);
|
||||
|
||||
fs.Close();
|
||||
|
||||
return (cmbObj);
|
||||
}
|
||||
|
||||
protected void ParseMdCsProj(string fname)
|
||||
{
|
||||
string projectName;
|
||||
|
||||
PrjxInfo pi = new PrjxInfo(m_bIsUnix, m_bIsMcs, fname);
|
||||
projectName = pi.name;
|
||||
projNameInfo[projectName] = pi;
|
||||
}
|
||||
|
||||
protected void ParseCombine(string fname)
|
||||
{
|
||||
string CombineFilePath = fname;
|
||||
|
||||
// convert backslashes to slashes
|
||||
CombineFilePath = CombineFilePath.Replace("\\", "/");
|
||||
|
||||
// loads the file in order to deserialize and
|
||||
// build the object graph
|
||||
try {
|
||||
m_cmbObject = LoadCmbFromFile (CombineFilePath);
|
||||
} catch (Exception exc) {
|
||||
|
||||
Console.WriteLine (
|
||||
String.Format ("Could not load the file {0}\nException: {1}",
|
||||
CombineFilePath,
|
||||
exc.Message)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
foreach(Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry ent in m_cmbObject.Entries)
|
||||
{
|
||||
string projectName = System.IO.Path.GetFileNameWithoutExtension(ent.filename);
|
||||
string csprojPath = ent.filename;
|
||||
|
||||
if (csprojPath.EndsWith(".prjx"))
|
||||
{
|
||||
PrjxInfo pi = new PrjxInfo(m_bIsUnix, m_bIsMcs, csprojPath);
|
||||
|
||||
projNameInfo[projectName] = pi;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string MdCmbxHelper(bool isUnixMode, bool isMcsMode, bool isSln, string slnFile)
|
||||
{
|
||||
bool noCommonTargets = false;
|
||||
bool noProjectTargets = false;
|
||||
bool noFlags = false;
|
||||
int nPos = -1;
|
||||
StringBuilder MakefileBuilder = new StringBuilder();
|
||||
|
||||
m_bIsUnix = isUnixMode;
|
||||
m_bIsMcs = isMcsMode;
|
||||
|
||||
if(m_bIsUnix == true && m_bIsMcs == true)
|
||||
{
|
||||
m_bIsUsingLib = true;
|
||||
}
|
||||
|
||||
if (m_bIsUnix)
|
||||
{
|
||||
slash = "/";
|
||||
}
|
||||
else
|
||||
{
|
||||
slash = "\\";
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
string d = Path.GetDirectoryName(slnFile);
|
||||
|
||||
if (d != "")
|
||||
Directory.SetCurrentDirectory(d);
|
||||
|
||||
if (isSln == true) {
|
||||
// We invoke the ParseSolution
|
||||
// by passing the file obtained
|
||||
ParseCombine (slnFile);
|
||||
} else {
|
||||
|
||||
// We invoke the ParseMsCsProj
|
||||
// by passing the file obtained
|
||||
ParseMdCsProj (slnFile);
|
||||
}
|
||||
|
||||
if (!noFlags)
|
||||
{
|
||||
if (m_bIsUnix) // gmake
|
||||
{
|
||||
MakefileBuilder.Append("ifndef TARGET\n");
|
||||
MakefileBuilder.Append("\tTARGET=./bin/Debug\n");
|
||||
MakefileBuilder.Append("else\n");
|
||||
MakefileBuilder.Append("\tTARGET=./bin/$(TARGET)\n");
|
||||
MakefileBuilder.Append("endif\n\n");
|
||||
|
||||
if (m_bIsMcs == false)
|
||||
{
|
||||
MakefileBuilder.Append("MCS=csc\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=-nologo\n\n");
|
||||
MakefileBuilder.Append("ifdef (RELEASE)\n");
|
||||
MakefileBuilder.Append("\tMCSFLAGS=$(MCSFLAGS) -optimize+ -d:TRACE\n");
|
||||
MakefileBuilder.Append("else\n");
|
||||
MakefileBuilder.Append("\tMCSFLAGS=$(MCSFLAGS) -debug+ -d:TRACE,DEBUG\n");
|
||||
MakefileBuilder.Append("endif\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.Append("MCS=mcs\n");
|
||||
MakefileBuilder.Append("ifndef (RELEASE)\n");
|
||||
MakefileBuilder.Append("\tMCSFLAGS=-debug --stacktrace\n");
|
||||
MakefileBuilder.Append("endif\n");
|
||||
// Define and add the information used in the -lib: arguments passed to the
|
||||
// compiler to assist in finding non-fullyqualified assembly references.
|
||||
if(m_bIsUsingLib == true)
|
||||
{
|
||||
MakefileBuilder.AppendFormat("LIBS=-lib:{0}/mono/1.0 -lib:{1}/mono/gtk-sharp\n\n",
|
||||
"`pkg-config --variable=libdir mono`",
|
||||
"`pkg-config --variable=libdir gtk-sharp`"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
else // nmake
|
||||
{
|
||||
MakefileBuilder.Append("!if !defined (TARGET)\n");
|
||||
MakefileBuilder.Append("TARGET=.\\bin\\Debug\n");
|
||||
MakefileBuilder.Append("!else\n");
|
||||
MakefileBuilder.Append("TARGET=.\\bin\\$(TARGET)\n");
|
||||
MakefileBuilder.Append("!endif\n\n");
|
||||
|
||||
if (m_bIsMcs == false)
|
||||
{
|
||||
MakefileBuilder.Append("MCS=csc\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=-nologo\n\n");
|
||||
MakefileBuilder.Append("!if !defined(RELEASE)\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=$(MCSFLAGS) -optimize+ -d:TRACE\n");
|
||||
MakefileBuilder.Append("!else\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=$(MCSFLAGS) -debug+ -d:TRACE,DEBUG\n");
|
||||
MakefileBuilder.Append("!endif\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.Append("MCS=mcs\n");
|
||||
MakefileBuilder.Append("!if !defined(RELEASE)\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=-debug --stacktrace\n");
|
||||
MakefileBuilder.Append("!endif\n");
|
||||
}
|
||||
}
|
||||
|
||||
MakefileBuilder.Append("\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.Append("!if !defined(MCS)\n");
|
||||
MakefileBuilder.Append("!error You must provide MCS when making\n");
|
||||
MakefileBuilder.Append("!endif\n\n");
|
||||
}
|
||||
|
||||
foreach (PrjxInfo prjI in projNameInfo.Values)
|
||||
{
|
||||
MakefileBuilder.AppendFormat("{0}=$(TARGET){1}{2}\n", prjI.makename_ext, slash, prjI.assembly_name);
|
||||
MakefileBuilder.AppendFormat("{0}_PDB=$(TARGET){1}{2}\n", prjI.makename, slash, prjI.assembly_name.Replace(".dll",".pdb"));
|
||||
MakefileBuilder.AppendFormat("{0}_SRC={1}\n", prjI.makename, prjI.src);
|
||||
MakefileBuilder.AppendFormat("{0}_RES={1}\n\n", prjI.makename, prjI.res);
|
||||
}
|
||||
|
||||
|
||||
foreach (PrjxInfo pi in projNameInfo.Values)
|
||||
{
|
||||
string refs = "";
|
||||
string deps = "";
|
||||
|
||||
foreach (Mfconsulting.General.Prj2Make.Schema.Prjx.Reference rf in pi.Proyecto.References)
|
||||
{
|
||||
if (refs != "")
|
||||
refs += " ";
|
||||
|
||||
string assemblyName = rf.refto;
|
||||
|
||||
// HACK - under Unix filenames are case sensitive
|
||||
// Under Windows there's no agreement on Xml vs XML ;-)
|
||||
if (0 == String.Compare(assemblyName, "System.Xml", true))
|
||||
{
|
||||
assemblyName = "System.Xml";
|
||||
}
|
||||
|
||||
// Check to see if there is a coma in the
|
||||
// reference. This could indicate a GAC
|
||||
// style reference
|
||||
nPos = assemblyName.IndexOf(',');
|
||||
if(nPos == -1)
|
||||
{
|
||||
if (System.IO.Path.GetExtension(assemblyName).ToUpper().CompareTo(".DLL") == 0)
|
||||
{
|
||||
refs += "-r:" + assemblyName;
|
||||
}
|
||||
else
|
||||
{
|
||||
refs += "-r:" + assemblyName + ".dll";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
refs += "-r:" + assemblyName.Substring(0, nPos) + ".dll";
|
||||
}
|
||||
}
|
||||
|
||||
MakefileBuilder.AppendFormat("$({0}): $({1}_SRC) {2}\n", pi.makename_ext, pi.makename, deps);
|
||||
|
||||
if (isUnixMode)
|
||||
{
|
||||
MakefileBuilder.Append("\t-mkdir -p $(TARGET)\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.Append("\t-md $(TARGET)\n");
|
||||
}
|
||||
|
||||
MakefileBuilder.Append("\t$(MCS) $(MCSFLAGS)");
|
||||
|
||||
// Test to see if any configuratino has the Allow unsafe blocks on
|
||||
if(pi.AllowUnsafeCode == true ) {
|
||||
MakefileBuilder.Append(" -unsafe");
|
||||
}
|
||||
|
||||
// Test for LIBS usage
|
||||
if(m_bIsUsingLib == true) {
|
||||
MakefileBuilder.Append(" $(LIBS)");
|
||||
}
|
||||
|
||||
MakefileBuilder.AppendFormat(" {2}{3} -out:$({0}) $({1}_RES) $({1}_SRC)\n",
|
||||
pi.makename_ext, pi.makename, refs, pi.switches);
|
||||
|
||||
MakefileBuilder.Append("\n");
|
||||
}
|
||||
|
||||
if (!noCommonTargets)
|
||||
{
|
||||
MakefileBuilder.Append("\n");
|
||||
MakefileBuilder.Append("# common targets\n\n");
|
||||
MakefileBuilder.Append("all:\t");
|
||||
|
||||
bool first = true;
|
||||
|
||||
foreach (PrjxInfo pi in projNameInfo.Values)
|
||||
{
|
||||
if (!first)
|
||||
{
|
||||
MakefileBuilder.Append(" \\\n\t");
|
||||
}
|
||||
MakefileBuilder.AppendFormat("$({0})", pi.makename_ext);
|
||||
first = false;
|
||||
}
|
||||
MakefileBuilder.Append("\n\n");
|
||||
|
||||
MakefileBuilder.Append("clean:\n");
|
||||
|
||||
foreach (PrjxInfo pi in projNameInfo.Values)
|
||||
{
|
||||
if (isUnixMode)
|
||||
{
|
||||
MakefileBuilder.AppendFormat("\t-rm -f \"$({0})\" 2> /dev/null\n", pi.makename_ext);
|
||||
MakefileBuilder.AppendFormat("\t-rm -f \"$({0}_PDB)\" 2> /dev/null\n", pi.makename);
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.AppendFormat("\t-del \"$({0})\" 2> nul\n", pi.makename_ext);
|
||||
MakefileBuilder.AppendFormat("\t-del \"$({0}_PDB)\" 2> nul\n", pi.makename);
|
||||
}
|
||||
}
|
||||
MakefileBuilder.Append("\n");
|
||||
}
|
||||
|
||||
if (!noProjectTargets)
|
||||
{
|
||||
MakefileBuilder.Append("\n");
|
||||
MakefileBuilder.Append("# project names as targets\n\n");
|
||||
foreach (PrjxInfo pi in projNameInfo.Values)
|
||||
{
|
||||
MakefileBuilder.AppendFormat("{0}: $({1})\n", pi.name, pi.makename_ext);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine("EXCEPTION: {0}\n", e);
|
||||
return "";
|
||||
}
|
||||
|
||||
return MakefileBuilder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,910 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using Mfconsulting.General.Prj2Make.Schema.Prjx;
|
||||
using Mfconsulting.General.Prj2Make.Schema.Csproj;
|
||||
|
||||
namespace Mfconsulting.General.Prj2Make
|
||||
{
|
||||
public class SlnMaker
|
||||
{
|
||||
public static string slash;
|
||||
static Hashtable projNameInfo = new Hashtable();
|
||||
static Hashtable projGuidInfo = new Hashtable();
|
||||
private string prjxFileName = null;
|
||||
private string cmbxFileName = null;
|
||||
private string m_strSlnVer;
|
||||
private string m_strCsprojVer;
|
||||
private bool m_bIsUnix;
|
||||
private bool m_bIsMcs;
|
||||
private bool m_bIsUsingLib;
|
||||
|
||||
// Flag use to determine if the LIB variable will be used in
|
||||
// the Makefile that prj2make generates
|
||||
public bool IsUsingLib
|
||||
{
|
||||
get{ return m_bIsUsingLib; }
|
||||
set{ m_bIsUsingLib = value; }
|
||||
}
|
||||
|
||||
|
||||
// Determines if the makefile is intended for nmake or gmake for urposes of path separator character
|
||||
public bool IsUnix
|
||||
{
|
||||
get{ return m_bIsUnix; }
|
||||
set{ m_bIsUnix = value; }
|
||||
}
|
||||
|
||||
// Determines if using MCS or CSC
|
||||
public bool IsMcs
|
||||
{
|
||||
get{ return m_bIsMcs; }
|
||||
set{ m_bIsMcs = value; }
|
||||
}
|
||||
|
||||
public string SlnVersion
|
||||
{
|
||||
get { return m_strSlnVer; }
|
||||
set { m_strSlnVer = value; }
|
||||
}
|
||||
|
||||
public string CsprojVersion
|
||||
{
|
||||
get { return m_strCsprojVer; }
|
||||
set { m_strCsprojVer = value; }
|
||||
}
|
||||
|
||||
// Shuld contain the file name
|
||||
// of the most resent prjx generation
|
||||
public string PrjxFileName {
|
||||
get { return prjxFileName; }
|
||||
}
|
||||
|
||||
// Shuld contain the file name
|
||||
// of the most resent cmbx generation
|
||||
public string CmbxFileName {
|
||||
get { return cmbxFileName; }
|
||||
}
|
||||
|
||||
// Default constructor
|
||||
public SlnMaker()
|
||||
{
|
||||
m_bIsUnix = false;
|
||||
m_bIsMcs = false;
|
||||
m_bIsUsingLib = false;
|
||||
}
|
||||
|
||||
// Utility function to determine the sln file version
|
||||
protected string GetSlnFileVersion(string strInSlnFile)
|
||||
{
|
||||
string strVersion = null;
|
||||
string strInput = "";
|
||||
Match match;
|
||||
FileStream fis = new FileStream(strInSlnFile, FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
StreamReader reader = new StreamReader(fis);
|
||||
Regex regex = new Regex(@"Microsoft Visual Studio Solution File, Format Version (\d.\d\d)");
|
||||
|
||||
while (strInput.StartsWith("Microsoft Visual Studio Solution") == false && strInput != null)
|
||||
{
|
||||
strInput = reader.ReadLine();
|
||||
}
|
||||
|
||||
match = regex.Match(strInput);
|
||||
if (match.Success)
|
||||
{
|
||||
strVersion = match.Groups[1].Value;
|
||||
}
|
||||
|
||||
// Close the stream
|
||||
reader.Close();
|
||||
|
||||
// Close the File Stream
|
||||
fis.Close();
|
||||
|
||||
return strVersion;
|
||||
}
|
||||
|
||||
// Utility function to determine the csproj file version
|
||||
protected string GetCsprojFileVersion(string strInCsprojFile)
|
||||
{
|
||||
string strRetVal = null;
|
||||
XmlDocument xmlDoc = new XmlDocument();
|
||||
XmlNode prodVerNode = null;
|
||||
XmlNode firstPropGroupNode = null;
|
||||
|
||||
xmlDoc.Load(strInCsprojFile);
|
||||
|
||||
// Try assuming VS 2003
|
||||
prodVerNode = xmlDoc.SelectSingleNode("/VisualStudioProject/CSHARP/@ProductVersion");
|
||||
if (prodVerNode == null)
|
||||
{
|
||||
// Try assuming VS 2005
|
||||
firstPropGroupNode = xmlDoc.FirstChild.FirstChild;
|
||||
foreach (XmlNode theNode in firstPropGroupNode.ChildNodes)
|
||||
{
|
||||
if (theNode.Name.CompareTo("ProductVersion") == 0)
|
||||
{
|
||||
prodVerNode = theNode;
|
||||
}
|
||||
}
|
||||
|
||||
strRetVal = prodVerNode.InnerText;
|
||||
}
|
||||
else
|
||||
{
|
||||
strRetVal = prodVerNode.Value;
|
||||
}
|
||||
|
||||
return strRetVal;
|
||||
}
|
||||
|
||||
protected void ParseMsCsProj(string fname)
|
||||
{
|
||||
string projectName = System.IO.Path.GetFileNameWithoutExtension (fname);
|
||||
string csprojPath = System.IO.Path.GetFileName (fname);
|
||||
string projectGuid = "";
|
||||
|
||||
if (m_strCsprojVer.StartsWith("7.1"))
|
||||
{
|
||||
CsprojInfo pi = new CsprojInfo(m_bIsUnix, m_bIsMcs, projectName, projectGuid, csprojPath);
|
||||
|
||||
projNameInfo[projectName] = pi;
|
||||
projGuidInfo[projectGuid] = pi;
|
||||
}
|
||||
else if(m_strCsprojVer.StartsWith("8"))
|
||||
{
|
||||
CsprojInfo2005 pi = new CsprojInfo2005(m_bIsUnix, m_bIsMcs, projectName, projectGuid, csprojPath);
|
||||
|
||||
projNameInfo[projectName] = pi;
|
||||
projGuidInfo[projectGuid] = pi;
|
||||
}
|
||||
}
|
||||
|
||||
protected void ParseSolution(string fname)
|
||||
{
|
||||
FileStream fis = new FileStream(fname,FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
StreamReader reader = new StreamReader(fis);
|
||||
Regex regex = new Regex(@"Project\(""\{(.*)\}""\) = ""(.*)"", ""(.*)"", ""(\{.*\})""");
|
||||
|
||||
while (true)
|
||||
{
|
||||
string s = reader.ReadLine();
|
||||
Match match;
|
||||
|
||||
match = regex.Match(s);
|
||||
if (match.Success)
|
||||
{
|
||||
string projectName = match.Groups[2].Value;
|
||||
string csprojPath = match.Groups[3].Value;
|
||||
string projectGuid = match.Groups[4].Value;
|
||||
|
||||
if (csprojPath.EndsWith (".csproj") && !csprojPath.StartsWith("http://"))
|
||||
{
|
||||
CsprojInfo pi = new CsprojInfo (m_bIsUnix, m_bIsMcs, projectName, projectGuid, csprojPath);
|
||||
|
||||
projNameInfo[projectName] = pi;
|
||||
projGuidInfo[projectGuid] = pi;
|
||||
}
|
||||
}
|
||||
|
||||
if (s.StartsWith("Global"))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string MsSlnHelper(bool isUnixMode, bool isMcsMode, bool isSln, string slnFile)
|
||||
{
|
||||
bool noCommonTargets = false;
|
||||
bool noProjectTargets = false;
|
||||
bool noFlags = false;
|
||||
StringBuilder MakefileBuilder = new StringBuilder();
|
||||
|
||||
m_bIsUnix = isUnixMode;
|
||||
m_bIsMcs = isMcsMode;
|
||||
|
||||
if(m_bIsUnix == true && m_bIsMcs == true)
|
||||
{
|
||||
m_bIsUsingLib = true;
|
||||
}
|
||||
|
||||
if (m_bIsUnix)
|
||||
{
|
||||
slash = "/";
|
||||
}
|
||||
else
|
||||
{
|
||||
slash = "\\";
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
string d = Path.GetDirectoryName(slnFile);
|
||||
if (d != "")
|
||||
Directory.SetCurrentDirectory(d);
|
||||
|
||||
if (isSln == true)
|
||||
{
|
||||
// Get the sln file version
|
||||
m_strSlnVer = GetSlnFileVersion(slnFile);
|
||||
|
||||
// We invoke the ParseSolution
|
||||
// by passing the file obtained
|
||||
ParseSolution (slnFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Get the Csproj version
|
||||
m_strCsprojVer = GetCsprojFileVersion(slnFile);
|
||||
|
||||
// We invoke the ParseMsCsProj
|
||||
// by passing the file obtained
|
||||
ParseMsCsProj (slnFile);
|
||||
}
|
||||
|
||||
System.Reflection.Assembly curAssam = System.Reflection.Assembly.GetExecutingAssembly();
|
||||
MakefileBuilder.AppendFormat("# Makefile created with Prj2MakeSharpWin32 ver. {0}\n# on {1}\n\n",
|
||||
curAssam.GetName().Version.ToString(),
|
||||
System.DateTime.Now.ToUniversalTime().ToString()
|
||||
);
|
||||
|
||||
if (!noFlags)
|
||||
{
|
||||
if (m_bIsUnix) // gmake
|
||||
{
|
||||
MakefileBuilder.Append("ifndef TARGET\n");
|
||||
MakefileBuilder.Append("\tTARGET=./bin/Debug\n");
|
||||
MakefileBuilder.Append("else\n");
|
||||
MakefileBuilder.Append("\tTARGET=./bin/$(TARGET)\n");
|
||||
MakefileBuilder.Append("endif\n\n");
|
||||
|
||||
if (this.m_bIsMcs == false)
|
||||
{
|
||||
MakefileBuilder.Append("MCS=csc\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=-nologo\n\n");
|
||||
MakefileBuilder.Append("ifdef (RELEASE)\n");
|
||||
MakefileBuilder.Append("\tMCSFLAGS=$(MCSFLAGS) -optimize+ -d:TRACE\n");
|
||||
MakefileBuilder.Append("else\n");
|
||||
MakefileBuilder.Append("\tMCSFLAGS=$(MCSFLAGS) -debug+ -d:TRACE,DEBUG\n");
|
||||
MakefileBuilder.Append("endif\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.Append("MCS=mcs\n");
|
||||
MakefileBuilder.Append("ifndef (RELEASE)\n");
|
||||
MakefileBuilder.Append("\tMCSFLAGS=-debug --stacktrace\n");
|
||||
MakefileBuilder.Append("endif\n");
|
||||
// Define and add the information used in the -lib: arguments passed to the
|
||||
// compiler to assist in finding non-fullyqualified assembly references.
|
||||
if(m_bIsMcs == true)
|
||||
{
|
||||
MakefileBuilder.AppendFormat("LIBS=-lib:{0}/mono/1.0 -lib:{1}/mono/gtk-sharp\n\n",
|
||||
"`pkg-config --variable=libdir mono`",
|
||||
"`pkg-config --variable=libdir gtk-sharp`"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
else // nmake
|
||||
{
|
||||
MakefileBuilder.Append("!if !defined (TARGET)\n");
|
||||
MakefileBuilder.Append("TARGET=.\\bin\\Debug\n");
|
||||
MakefileBuilder.Append("!else\n");
|
||||
MakefileBuilder.Append("TARGET=.\\bin\\$(TARGET)\n");
|
||||
MakefileBuilder.Append("!endif\n\n");
|
||||
|
||||
if (m_bIsMcs == false)
|
||||
{
|
||||
MakefileBuilder.Append("MCS=csc\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=-nologo\n\n");
|
||||
MakefileBuilder.Append("!if !defined(RELEASE)\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=$(MCSFLAGS) -optimize+ -d:TRACE\n");
|
||||
MakefileBuilder.Append("!else\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=$(MCSFLAGS) -debug+ -d:TRACE,DEBUG\n");
|
||||
MakefileBuilder.Append("!endif\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.Append("MCS=mcs\n");
|
||||
MakefileBuilder.Append("!if !defined(RELEASE)\n");
|
||||
MakefileBuilder.Append("MCSFLAGS=-debug --stacktrace\n");
|
||||
MakefileBuilder.Append("!endif\n");
|
||||
}
|
||||
}
|
||||
|
||||
MakefileBuilder.Append("\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.Append("!if !defined(MCS)\n");
|
||||
MakefileBuilder.Append("!error You must provide MCS when making\n");
|
||||
MakefileBuilder.Append("!endif\n\n");
|
||||
}
|
||||
|
||||
foreach (CsprojInfo pi in projNameInfo.Values)
|
||||
{
|
||||
MakefileBuilder.AppendFormat("{0}=$(TARGET){1}{2}\n", pi.makename_ext, slash, pi.assembly_name);
|
||||
MakefileBuilder.AppendFormat("{0}_PDB=$(TARGET){1}{2}\n", pi.makename, slash, pi.assembly_name.Replace(".dll",".pdb"));
|
||||
MakefileBuilder.AppendFormat("{0}_SRC={1}\n", pi.makename, pi.src);
|
||||
MakefileBuilder.AppendFormat("{0}_RES={1}\n\n", pi.makename, pi.res);
|
||||
}
|
||||
|
||||
foreach (CsprojInfo pi in projNameInfo.Values)
|
||||
{
|
||||
string refs = "";
|
||||
string deps = "";
|
||||
|
||||
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.Reference rf in pi.Proyecto.CSHARP.Build.References)
|
||||
{
|
||||
if(rf.Package == null || rf.Package.CompareTo("") == 0)
|
||||
{
|
||||
// Add space in between references as
|
||||
// it becomes necessary
|
||||
if (refs != "")
|
||||
refs += " ";
|
||||
|
||||
string assemblyName = rf.AssemblyName;
|
||||
|
||||
// HACK - under Unix filenames are case sensitive
|
||||
// Under Windows there's no agreement on Xml vs XML ;-)
|
||||
if (0 == String.Compare(assemblyName, "System.Xml", true))
|
||||
{
|
||||
assemblyName = "System.Xml";
|
||||
}
|
||||
refs += "-r:" + assemblyName + ".dll";
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
CsprojInfo pi2 = (CsprojInfo)projGuidInfo[rf.Project];
|
||||
|
||||
if (refs != "")
|
||||
refs += " ";
|
||||
|
||||
if (deps != "")
|
||||
deps += " ";
|
||||
|
||||
refs += "-r:$(" + pi2.makename_ext + ")";
|
||||
deps += "$(" + pi2.makename_ext + ")";
|
||||
}
|
||||
catch(System.NullReferenceException)
|
||||
{
|
||||
refs += String.Format("-r:{0}.dll", rf.Name);
|
||||
deps += String.Format("# Missing dependency project {1} ID:{0}?", rf.Project,
|
||||
rf.Name);
|
||||
Console.WriteLine(String.Format(
|
||||
"Warning: The project {0}, ID: {1} may be required and appears missing.",
|
||||
rf.Name, rf.Project)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MakefileBuilder.AppendFormat("$({0}): $({1}_SRC) {2}\n", pi.makename_ext, pi.makename, deps);
|
||||
|
||||
if (isUnixMode)
|
||||
{
|
||||
MakefileBuilder.Append("\t-mkdir -p $(TARGET)\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.Append("\t-md $(TARGET)\n");
|
||||
}
|
||||
|
||||
MakefileBuilder.Append("\t$(MCS) $(MCSFLAGS)");
|
||||
|
||||
// Test to see if any configuratino has the Allow unsafe blocks on
|
||||
if(pi.AllowUnsafeCode == true ) {
|
||||
MakefileBuilder.Append(" -unsafe");
|
||||
}
|
||||
|
||||
// Test for LIBS usage
|
||||
if(m_bIsUsingLib == true) {
|
||||
MakefileBuilder.Append(" $(LIBS)");
|
||||
}
|
||||
|
||||
MakefileBuilder.AppendFormat(" {2}{3} -out:$({0}) $({1}_RES) $({1}_SRC)\n",
|
||||
pi.makename_ext, pi.makename, refs, pi.switches);
|
||||
|
||||
MakefileBuilder.Append("\n");
|
||||
}
|
||||
|
||||
if (!noCommonTargets)
|
||||
{
|
||||
MakefileBuilder.Append("\n");
|
||||
MakefileBuilder.Append("# common targets\n\n");
|
||||
MakefileBuilder.Append("all:\t");
|
||||
|
||||
bool first = true;
|
||||
|
||||
foreach (CsprojInfo pi in projNameInfo.Values)
|
||||
{
|
||||
if (!first)
|
||||
{
|
||||
MakefileBuilder.Append(" \\\n\t");
|
||||
}
|
||||
MakefileBuilder.AppendFormat("$({0})", pi.makename_ext);
|
||||
first = false;
|
||||
}
|
||||
MakefileBuilder.Append("\n\n");
|
||||
|
||||
MakefileBuilder.Append("clean:\n");
|
||||
|
||||
foreach (CsprojInfo pi in projNameInfo.Values)
|
||||
{
|
||||
if (isUnixMode)
|
||||
{
|
||||
MakefileBuilder.AppendFormat("\t-rm -f \"$({0})\" 2> /dev/null\n", pi.makename_ext);
|
||||
MakefileBuilder.AppendFormat("\t-rm -f \"$({0}_PDB)\" 2> /dev/null\n", pi.makename);
|
||||
}
|
||||
else
|
||||
{
|
||||
MakefileBuilder.AppendFormat("\t-del \"$({0})\" 2> nul\n", pi.makename_ext);
|
||||
MakefileBuilder.AppendFormat("\t-del \"$({0}_PDB)\" 2> nul\n", pi.makename);
|
||||
}
|
||||
}
|
||||
MakefileBuilder.Append("\n");
|
||||
}
|
||||
|
||||
if (!noProjectTargets)
|
||||
{
|
||||
MakefileBuilder.Append("\n");
|
||||
MakefileBuilder.Append("# project names as targets\n\n");
|
||||
foreach (CsprojInfo pi in projNameInfo.Values)
|
||||
{
|
||||
MakefileBuilder.AppendFormat("{0}: $({1})\n", pi.name, pi.makename_ext);
|
||||
}
|
||||
}
|
||||
|
||||
return MakefileBuilder.ToString();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine("EXCEPTION: {0}\n", e);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public void CreatePrjxFromCsproj(string csprojFileName)
|
||||
{
|
||||
int nCnt = 0;
|
||||
FileStream fsIn = null;
|
||||
XmlSerializer xmlDeSer = null;
|
||||
FileStream fsOut = null;
|
||||
XmlSerializer xmlSer = null;
|
||||
Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject csprojObj = null;
|
||||
Mfconsulting.General.Prj2Make.Schema.Prjx.Project prjxObj = new Mfconsulting.General.Prj2Make.Schema.Prjx.Project();
|
||||
string PrjxFileName = String.Format ("{0}.prjx",
|
||||
Path.Combine(Path.GetDirectoryName(csprojFileName),
|
||||
Path.GetFileNameWithoutExtension(csprojFileName))
|
||||
);
|
||||
|
||||
// convert backslashes to slashes
|
||||
csprojFileName = csprojFileName.Replace("\\", "/");
|
||||
Console.WriteLine(String.Format("Will create project filename:{0}", PrjxFileName));
|
||||
|
||||
// Load the csproj
|
||||
fsIn = new FileStream (csprojFileName, FileMode.Open);
|
||||
xmlDeSer = new XmlSerializer (typeof(VisualStudioProject));
|
||||
csprojObj = (VisualStudioProject) xmlDeSer.Deserialize (fsIn);
|
||||
fsIn.Close();
|
||||
|
||||
// Begin prjxObj population
|
||||
prjxObj.name = Path.GetFileNameWithoutExtension(csprojFileName);
|
||||
prjxObj.description = "";
|
||||
prjxObj.newfilesearch = "None";
|
||||
prjxObj.enableviewstate = "True";
|
||||
prjxObj.version = (decimal)1.1;
|
||||
prjxObj.projecttype = "C#";
|
||||
|
||||
prjxObj.Contents = GetContents (csprojObj.CSHARP.Files.Include);
|
||||
prjxObj.References = GetReferences(csprojObj.CSHARP.Build.References);
|
||||
prjxObj.DeploymentInformation = new Mfconsulting.General.Prj2Make.Schema.Prjx.DeploymentInformation();
|
||||
prjxObj.DeploymentInformation.target = "";
|
||||
prjxObj.DeploymentInformation.script = "";
|
||||
prjxObj.DeploymentInformation.strategy = "File";
|
||||
|
||||
nCnt = csprojObj.CSHARP.Build.Settings.Config.Length;
|
||||
prjxObj.Configurations = new Configurations();
|
||||
prjxObj.Configurations.Configuration = new Configuration[nCnt];
|
||||
for(int i = 0; i < nCnt; i++)
|
||||
{
|
||||
prjxObj.Configurations.Configuration[i] = CreateConfigurationBlock(
|
||||
csprojObj.CSHARP.Build.Settings.Config[i],
|
||||
csprojObj.CSHARP.Build.Settings.AssemblyName,
|
||||
csprojObj.CSHARP.Build.Settings.OutputType
|
||||
);
|
||||
}
|
||||
prjxObj.Configurations.active = prjxObj.Configurations.Configuration[0].name;
|
||||
|
||||
prjxObj.Configuration = prjxObj.Configurations.Configuration[0];
|
||||
|
||||
// Serialize
|
||||
fsOut = new FileStream (PrjxFileName, FileMode.Create);
|
||||
xmlSer = new XmlSerializer (typeof(Project));
|
||||
xmlSer.Serialize(fsOut, prjxObj);
|
||||
fsOut.Close();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public void MsSlnToCmbxHelper(string slnFileName)
|
||||
{
|
||||
int i = 0;
|
||||
FileStream fsOut = null;
|
||||
XmlSerializer xmlSer = null;
|
||||
StringBuilder MakefileBuilder = new StringBuilder();
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine cmbxObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine();
|
||||
string cmbxFileName = String.Format ("{0}.cmbx",
|
||||
Path.Combine(Path.GetDirectoryName(slnFileName),
|
||||
Path.GetFileNameWithoutExtension(slnFileName))
|
||||
);
|
||||
|
||||
Console.WriteLine(String.Format("Will create combine filename:{0}", cmbxFileName));
|
||||
|
||||
try
|
||||
{
|
||||
string d = Path.GetDirectoryName(slnFileName);
|
||||
if (d != "")
|
||||
Directory.SetCurrentDirectory(d);
|
||||
|
||||
// We invoke the ParseSolution
|
||||
// by passing the file obtained
|
||||
ParseSolution (slnFileName);
|
||||
|
||||
// Create all of the prjx files form the csproj files
|
||||
foreach (CsprojInfo pi in projNameInfo.Values)
|
||||
{
|
||||
CreatePrjxFromCsproj(pi.csprojpath);
|
||||
}
|
||||
|
||||
|
||||
// Begin prjxObj population
|
||||
cmbxObj.name = Path.GetFileNameWithoutExtension(slnFileName);
|
||||
cmbxObj.description = "";
|
||||
cmbxObj.fileversion = (decimal)1.0;
|
||||
|
||||
// Create and attach the StartMode element
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.StartMode startModeElem = new Mfconsulting.General.Prj2Make.Schema.Cmbx.StartMode();
|
||||
|
||||
// Create the array of Execute objects
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Execute[] executeElem = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Execute[projNameInfo.Count];
|
||||
|
||||
// Populate the Element objects instances
|
||||
i = 0;
|
||||
foreach (CsprojInfo pi in projNameInfo.Values)
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Execute execElem = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Execute();
|
||||
execElem.entry = pi.name;
|
||||
execElem.type = "None";
|
||||
|
||||
executeElem[i++] = execElem;
|
||||
}
|
||||
|
||||
startModeElem.startupentry = executeElem[0].entry;
|
||||
startModeElem.single = "True";
|
||||
startModeElem.Execute = executeElem;
|
||||
|
||||
// Attach the StartMode Object to the
|
||||
// Combine object
|
||||
cmbxObj.StartMode = startModeElem;
|
||||
|
||||
// Gnerate the entries array
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[] entriesObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[projNameInfo.Count];
|
||||
// Populate the Entry objects instances
|
||||
i = 0;
|
||||
foreach (CsprojInfo pi in projNameInfo.Values)
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry entryObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry();
|
||||
string PrjxFileName = String.Format (".{0}{1}.prjx",
|
||||
Path.DirectorySeparatorChar,
|
||||
Path.Combine(Path.GetDirectoryName(pi.csprojpath),
|
||||
Path.GetFileNameWithoutExtension(pi.csprojpath))
|
||||
);
|
||||
|
||||
entryObj.filename = PrjxFileName;
|
||||
|
||||
entriesObj[i++] = entryObj;
|
||||
}
|
||||
|
||||
// Attach the Entries Object to the
|
||||
// Combine object
|
||||
cmbxObj.Entries = entriesObj;
|
||||
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Configurations configurationsObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Configurations();
|
||||
|
||||
// Hack hardcoded configuration value must get the one
|
||||
// from analyzing the different configuration entries
|
||||
configurationsObj.active = "Debug";
|
||||
|
||||
// Hack hardcoded number of configuration object
|
||||
// assuming 2 for Debug and Release
|
||||
configurationsObj.Configuration = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration[2];
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration confObj1 = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration();
|
||||
configurationsObj.Configuration[0] = confObj1;
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration confObj2 = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration();
|
||||
configurationsObj.Configuration[1] = confObj2;
|
||||
|
||||
configurationsObj.Configuration[0].name = "Release";
|
||||
configurationsObj.Configuration[0].Entry = CreateArrayOfConfEntries();
|
||||
configurationsObj.Configuration[1].name = "Debug";
|
||||
configurationsObj.Configuration[1].Entry = CreateArrayOfConfEntries();
|
||||
|
||||
// Attach the Configurations object to the
|
||||
// Combine Object
|
||||
cmbxObj.Configurations = configurationsObj;
|
||||
|
||||
// Serialize
|
||||
fsOut = new FileStream (cmbxFileName, FileMode.Create);
|
||||
xmlSer = new XmlSerializer (typeof(Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine));
|
||||
xmlSer.Serialize(fsOut, cmbxObj);
|
||||
fsOut.Close();
|
||||
|
||||
return;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine("EXCEPTION: {0}\n", e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
protected Mfconsulting.General.Prj2Make.Schema.Prjx.Reference[] GetReferences(Mfconsulting.General.Prj2Make.Schema.Csproj.Reference[] References)
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Schema.Prjx.Reference[] theReferences = null;
|
||||
int i = 0;
|
||||
|
||||
// Get the GAC path
|
||||
string strBasePathMono1_0 = Path.Combine(
|
||||
Mfconsulting.General.PkgConfigInvoker.GetPkgVariableValue("mono", "libdir").TrimEnd(),
|
||||
"mono/1.0");
|
||||
|
||||
string strBasePathGtkSharp = Path.Combine(
|
||||
Mfconsulting.General.PkgConfigInvoker.GetPkgVariableValue("mono", "libdir").TrimEnd(),
|
||||
"mono/gtk-sharp");
|
||||
|
||||
// Little Diagnostics -- remove later
|
||||
Console.WriteLine ("Base path: {0}", strBasePathMono1_0);
|
||||
Console.WriteLine ("Base path: {0}", strBasePathGtkSharp);
|
||||
|
||||
if(References != null && References.Length > 0)
|
||||
{
|
||||
theReferences = new Mfconsulting.General.Prj2Make.Schema.Prjx.Reference[References.Length];
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// Iterate through the reference collection of the csproj file
|
||||
foreach(Mfconsulting.General.Prj2Make.Schema.Csproj.Reference rf in References)
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Schema.Prjx.Reference rfOut = new Mfconsulting.General.Prj2Make.Schema.Prjx.Reference();
|
||||
string strRefFileName;
|
||||
|
||||
if(rf.Package == null || rf.Package.CompareTo("") == 0)
|
||||
{
|
||||
bool bIsWhereExpected = false;
|
||||
|
||||
// HACK - under Unix filenames are case sensitive
|
||||
// Under Windows there's no agreement on Xml vs XML ;-)
|
||||
if(Path.GetFileName(rf.HintPath).CompareTo("System.XML.dll") == 0)
|
||||
{
|
||||
strRefFileName = Path.Combine (strBasePathMono1_0, Path.GetFileName("System.Xml.dll"));
|
||||
|
||||
// Test to see if file exist in GAC location
|
||||
if(System.IO.File.Exists(strRefFileName) == true) {
|
||||
try {
|
||||
rfOut.refto = System.Reflection.Assembly.LoadFrom(strRefFileName).FullName;
|
||||
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Gac;
|
||||
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
|
||||
bIsWhereExpected = true;
|
||||
} catch (Exception exc) {
|
||||
Console.WriteLine ("Error doing Assembly.LoadFrom with File: {0}\nErr Msg: {1}",
|
||||
strRefFileName,
|
||||
exc.Message );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
strRefFileName = Path.Combine (strBasePathMono1_0, Path.GetFileName(rf.HintPath));
|
||||
|
||||
// Little Diagnostics -- remove later
|
||||
Console.WriteLine ("Reference that will be tested for existance: {0}", strRefFileName); // Test to see if file exist in GAC location
|
||||
|
||||
// Test to see if file exist in GAC location
|
||||
if(System.IO.File.Exists(strRefFileName) == true) {
|
||||
try {
|
||||
rfOut.refto = System.Reflection.Assembly.LoadFrom(strRefFileName).FullName;
|
||||
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Gac;
|
||||
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
|
||||
bIsWhereExpected = true;
|
||||
} catch (Exception exc) {
|
||||
Console.WriteLine ("Error doing Assembly.LoadFrom with File: {0}\nErr Msg: {1}",
|
||||
strRefFileName,
|
||||
exc.Message );
|
||||
}
|
||||
}
|
||||
|
||||
strRefFileName = Path.Combine (strBasePathGtkSharp, Path.GetFileName(rf.HintPath));
|
||||
|
||||
// Little Diagnostics -- remove later
|
||||
Console.WriteLine ("Reference that will be tested for existance: {0}", strRefFileName); // Test to see if file exist in GAC location
|
||||
|
||||
// Test to see if file exist in GAC location
|
||||
if(System.IO.File.Exists(strRefFileName) == true) {
|
||||
try {
|
||||
rfOut.refto = System.Reflection.Assembly.LoadFrom(strRefFileName).FullName;
|
||||
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Gac;
|
||||
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
|
||||
bIsWhereExpected = true;
|
||||
} catch (Exception exc) {
|
||||
Console.WriteLine ("Error doing Assembly.LoadFrom with File: {0}\nErr Msg: {1}",
|
||||
strRefFileName,
|
||||
exc.Message );
|
||||
}
|
||||
}
|
||||
|
||||
if(bIsWhereExpected == false)
|
||||
{
|
||||
rfOut.refto = Path.GetFileName(rf.HintPath);
|
||||
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Gac;
|
||||
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
|
||||
}
|
||||
}
|
||||
|
||||
// increment the iterator value
|
||||
theReferences[i++] = rfOut;
|
||||
}
|
||||
else
|
||||
{
|
||||
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Project;
|
||||
|
||||
rfOut.refto = Path.GetFileName(rf.Name);
|
||||
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
|
||||
// increment the iterator value
|
||||
theReferences[i++] = rfOut;
|
||||
}
|
||||
}
|
||||
|
||||
return theReferences;
|
||||
}
|
||||
|
||||
protected Mfconsulting.General.Prj2Make.Schema.Prjx.File[] GetContents(Mfconsulting.General.Prj2Make.Schema.Csproj.File[] Include)
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Schema.Prjx.File[] theFiles = null;
|
||||
int i = 0;
|
||||
|
||||
if(Include != null && Include.Length > 0)
|
||||
{
|
||||
theFiles = new Mfconsulting.General.Prj2Make.Schema.Prjx.File[Include.Length];
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// Iterate through the file collection of the csproj file
|
||||
foreach(Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in Include)
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Schema.Prjx.File flOut = new Mfconsulting.General.Prj2Make.Schema.Prjx.File();
|
||||
flOut.name = String.Format(".{0}{1}", Path.DirectorySeparatorChar, fl.RelPath);
|
||||
|
||||
switch(fl.SubType)
|
||||
{
|
||||
case "Code":
|
||||
flOut.subtype = Mfconsulting.General.Prj2Make.Schema.Prjx.FileSubtype.Code;
|
||||
break;
|
||||
}
|
||||
|
||||
switch(fl.BuildAction)
|
||||
{
|
||||
case Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.Compile:
|
||||
flOut.buildaction = Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.Compile;
|
||||
break;
|
||||
case Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.Content:
|
||||
flOut.buildaction = Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.Exclude;
|
||||
break;
|
||||
case Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.EmbeddedResource:
|
||||
flOut.buildaction = Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.EmbedAsResource;
|
||||
break;
|
||||
case Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.None:
|
||||
flOut.buildaction = Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.Exclude;
|
||||
break;
|
||||
}
|
||||
flOut.dependson = fl.DependentUpon;
|
||||
flOut.data = "";
|
||||
|
||||
// increment the iterator value
|
||||
theFiles[i++ ] = flOut;
|
||||
}
|
||||
|
||||
return theFiles;
|
||||
}
|
||||
|
||||
protected Configuration CreateConfigurationBlock(Config ConfigBlock, string AssemblyName, string OuputType)
|
||||
{
|
||||
Configuration ConfObj = new Configuration();
|
||||
CodeGeneration CodeGenObj = new CodeGeneration();
|
||||
Execution ExecutionObj = new Execution();
|
||||
Output OutputObj = new Output();
|
||||
|
||||
ConfObj.runwithwarnings = "False";
|
||||
ConfObj.name = ConfigBlock.Name;
|
||||
|
||||
// CodeGenObj member population
|
||||
CodeGenObj.runtime = "MsNet";
|
||||
CodeGenObj.compiler = "Csc";
|
||||
CodeGenObj.warninglevel = ConfigBlock.WarningLevel;
|
||||
CodeGenObj.nowarn = "";
|
||||
CodeGenObj.includedebuginformation = (ConfigBlock.DebugSymbols == true) ?
|
||||
CodeGenerationIncludedebuginformation.True :
|
||||
CodeGenerationIncludedebuginformation.False;
|
||||
|
||||
CodeGenObj.optimize = (ConfigBlock.Optimize == true) ? "True" : "False";
|
||||
|
||||
if (ConfigBlock.AllowUnsafeBlocks == true)
|
||||
{
|
||||
CodeGenObj.unsafecodeallowed = CodeGenerationUnsafecodeallowed.True;
|
||||
}
|
||||
else
|
||||
{
|
||||
CodeGenObj.unsafecodeallowed = CodeGenerationUnsafecodeallowed.False;
|
||||
}
|
||||
if (ConfigBlock.CheckForOverflowUnderflow == true)
|
||||
{
|
||||
CodeGenObj.generateoverflowchecks = "True";
|
||||
}
|
||||
else
|
||||
{
|
||||
CodeGenObj.generateoverflowchecks = "False";
|
||||
}
|
||||
|
||||
CodeGenObj.mainclass = "";
|
||||
CodeGenObj.target = OuputType;
|
||||
CodeGenObj.generatexmldocumentation = "False";
|
||||
CodeGenObj.win32Icon = "";
|
||||
|
||||
// ExecutionObj member population
|
||||
ExecutionObj.commandlineparameters = "";
|
||||
ExecutionObj.consolepause = "True";
|
||||
|
||||
// OutputObj member population
|
||||
OutputObj.directory = ConfigBlock.OutputPath;
|
||||
OutputObj.assembly = AssemblyName;
|
||||
OutputObj.executeScript = "";
|
||||
OutputObj.executeBeforeBuild = "";
|
||||
OutputObj.executeAfterBuild = "";
|
||||
|
||||
ConfObj.CodeGeneration = CodeGenObj;
|
||||
ConfObj.Execution = ExecutionObj;
|
||||
ConfObj.Output = OutputObj;
|
||||
|
||||
return ConfObj;
|
||||
}
|
||||
|
||||
protected Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[] CreateArrayOfConfEntries()
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[] confEntry = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[projNameInfo.Count];
|
||||
// Populate the Entry objects instances
|
||||
int i = 0;
|
||||
foreach (CsprojInfo pi in projNameInfo.Values)
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry entryObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry();
|
||||
entryObj.name = pi.name;
|
||||
entryObj.configurationname = "Debug";
|
||||
entryObj.build = "False";
|
||||
|
||||
confEntry[i++] = entryObj;
|
||||
}
|
||||
|
||||
return confEntry;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
// Copyright (c) 2004 Francisco T. Martinez <paco@mfcon.com>
|
||||
// All rights reserved.
|
||||
//
|
||||
using System;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using Mfconsulting.General.Prj2Make.Schema.Prjx;
|
||||
using Mfconsulting.General.Prj2Make.Schema.Csproj;
|
||||
|
||||
namespace Mfconsulting.General.Prj2Make
|
||||
{
|
||||
public class Maker
|
||||
{
|
||||
public enum TypeOfFile {
|
||||
unknown,
|
||||
sln,
|
||||
csproj,
|
||||
cmbx,
|
||||
prjx
|
||||
}
|
||||
|
||||
// Helper function to determine the type of
|
||||
// file being parsed based on its extension
|
||||
protected TypeOfFile DetermineFileType(string inFileName)
|
||||
{
|
||||
string ExtentionString = System.IO.Path.GetExtension (inFileName);
|
||||
|
||||
switch(ExtentionString)
|
||||
{
|
||||
case ".sln":
|
||||
return TypeOfFile.sln;
|
||||
case ".csproj":
|
||||
return TypeOfFile.csproj;
|
||||
case ".cmbx":
|
||||
return TypeOfFile.cmbx;
|
||||
case ".prjx":
|
||||
return TypeOfFile.prjx;
|
||||
}
|
||||
|
||||
return TypeOfFile.unknown;
|
||||
}
|
||||
|
||||
public bool CreateCombineFromSln(string slnFileName)
|
||||
{
|
||||
SlnMaker slnMkObj = new SlnMaker();
|
||||
|
||||
// Load the sln and parse it
|
||||
slnMkObj.MsSlnToCmbxHelper(slnFileName);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool CreatePrjxFromCsproj(string csprojFileName)
|
||||
{
|
||||
SlnMaker slnMkObj = new SlnMaker();
|
||||
|
||||
// Load the csproj and parse it
|
||||
slnMkObj.CreatePrjxFromCsproj(csprojFileName);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Main entry point for Makefile generation
|
||||
public string MakerMain(bool isUnixMode, bool isMcsMode, string slnFile)
|
||||
{
|
||||
SlnMaker mk1Obj = null;
|
||||
CmbxMaker mk2Obj = null;
|
||||
// Test to see what kind if file we got
|
||||
// sln, csproj, cmbx, prjx
|
||||
switch(DetermineFileType(slnFile))
|
||||
{
|
||||
case TypeOfFile.sln:
|
||||
mk1Obj = new SlnMaker();
|
||||
return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, true, slnFile);
|
||||
case TypeOfFile.csproj:
|
||||
mk1Obj = new SlnMaker();
|
||||
return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, false, slnFile);
|
||||
case TypeOfFile.cmbx:
|
||||
mk2Obj = new CmbxMaker();
|
||||
return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, true, slnFile);
|
||||
case TypeOfFile.prjx:
|
||||
mk2Obj = new CmbxMaker();
|
||||
return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, false, slnFile);
|
||||
}
|
||||
return "Error: unknown file type.";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,197 @@
|
|||
// Copyright (c) 2004 Francisco T. Martinez <paco@mfcon.com>
|
||||
// All rights reserved.
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Library General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
namespace Mfconsulting.General.Prj2Make
|
||||
{
|
||||
class PrjxInfo
|
||||
{
|
||||
public readonly string name;
|
||||
public readonly string csprojpath;
|
||||
public string makename;
|
||||
public string makename_ext;
|
||||
public string assembly_name;
|
||||
public string res;
|
||||
public string src;
|
||||
private bool m_bAllowUnsafeCode;
|
||||
private Mfconsulting.General.Prj2Make.Schema.Prjx.Project m_projObject;
|
||||
|
||||
public string ext_refs = "";
|
||||
public string switches = "";
|
||||
|
||||
public bool AllowUnsafeCode
|
||||
{
|
||||
get { return m_bAllowUnsafeCode; }
|
||||
}
|
||||
|
||||
public Mfconsulting.General.Prj2Make.Schema.Prjx.Project Proyecto {
|
||||
get { return m_projObject; }
|
||||
}
|
||||
|
||||
// Project desirialization
|
||||
protected Mfconsulting.General.Prj2Make.Schema.Prjx.Project LoadPrjFromFile (string strIn)
|
||||
{
|
||||
FileStream fs = new FileStream (strIn, FileMode.Open);
|
||||
|
||||
XmlSerializer xmlSer = new XmlSerializer (typeof(Mfconsulting.General.Prj2Make.Schema.Prjx.Project));
|
||||
Mfconsulting.General.Prj2Make.Schema.Prjx.Project prjObj = (Mfconsulting.General.Prj2Make.Schema.Prjx.Project) xmlSer.Deserialize (fs);
|
||||
|
||||
fs.Close();
|
||||
|
||||
return (prjObj);
|
||||
}
|
||||
|
||||
public PrjxInfo(bool isUnixMode, bool isMcsMode, string csprojpath)
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Schema.Prjx.Configuration activeConf = null;
|
||||
this.csprojpath = csprojpath;
|
||||
|
||||
m_bAllowUnsafeCode = false;
|
||||
|
||||
// convert backslashes to slashes
|
||||
csprojpath = csprojpath.Replace("\\", "/");
|
||||
|
||||
// loads the file in order to deserialize and
|
||||
// build the object graph
|
||||
try {
|
||||
m_projObject = LoadPrjFromFile (csprojpath);
|
||||
} catch (Exception exc) {
|
||||
|
||||
Console.WriteLine (
|
||||
String.Format ("Could not load the file {0}\nException: {1}",
|
||||
csprojpath,
|
||||
exc.Message)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
this.name = m_projObject.name;
|
||||
|
||||
makename = name.Replace('.','_').ToUpper();
|
||||
makename_ext = makename + "_EXT";
|
||||
|
||||
// Get the configuration to be used and
|
||||
// copy it to a local configuration object
|
||||
foreach(Mfconsulting.General.Prj2Make.Schema.Prjx.Configuration cnfObj in m_projObject.Configurations.Configuration)
|
||||
{
|
||||
if(cnfObj.name.CompareTo(m_projObject.Configurations.active) == 0)
|
||||
{
|
||||
// Assign the active configuration
|
||||
activeConf = cnfObj;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Establish if the allow unsafe code flag is true
|
||||
if(activeConf.CodeGeneration.unsafecodeallowed == Mfconsulting.General.Prj2Make.Schema.Prjx.CodeGenerationUnsafecodeallowed.True)
|
||||
{
|
||||
m_bAllowUnsafeCode = true;
|
||||
}
|
||||
|
||||
switch (activeConf.CodeGeneration.target)
|
||||
{
|
||||
case "Library":
|
||||
makename_ext = makename + "_DLL";
|
||||
assembly_name = activeConf.Output.assembly + ".dll";
|
||||
switches += " -target:library";
|
||||
break;
|
||||
|
||||
case "Exe":
|
||||
makename_ext = makename + "_EXE";
|
||||
assembly_name = activeConf.Output.assembly + ".exe";
|
||||
switches += " -target:exe";
|
||||
break;
|
||||
|
||||
case "WinExe":
|
||||
makename_ext = makename + "_EXE";
|
||||
assembly_name = activeConf.Output.assembly + ".exe";
|
||||
switches += " -target:winexe";
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new NotSupportedException("Unsupported OutputType: " + activeConf.CodeGeneration.target);
|
||||
|
||||
}
|
||||
|
||||
src = "";
|
||||
string basePath = Path.GetDirectoryName(csprojpath);
|
||||
string s;
|
||||
|
||||
// Process Source code files for compiling
|
||||
foreach (Mfconsulting.General.Prj2Make.Schema.Prjx.File f in m_projObject.Contents)
|
||||
{
|
||||
if(f.buildaction == Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.Compile)
|
||||
{
|
||||
if (src != "") {
|
||||
src += " \\\n\t";
|
||||
}
|
||||
|
||||
s = System.IO.Path.Combine(basePath, f.name);
|
||||
s = s.Replace("\\", "/");
|
||||
if (CmbxMaker.slash != "/")
|
||||
s = s.Replace("/", CmbxMaker.slash);
|
||||
|
||||
// Test for spaces
|
||||
if (isUnixMode == false)
|
||||
{
|
||||
// We are in win32 using a cmd.exe or other
|
||||
// DOS shell
|
||||
if(s.IndexOf(' ') > -1) {
|
||||
src += String.Format("\"{0}\"", s);
|
||||
} else {
|
||||
src += s;
|
||||
}
|
||||
} else {
|
||||
// We are in *NIX or some other
|
||||
// GNU like shell
|
||||
src += s.Replace(" ", "\\ ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Process resources for embedding
|
||||
res = "";
|
||||
string rootNS = this.name;
|
||||
string relPath;
|
||||
foreach (Mfconsulting.General.Prj2Make.Schema.Prjx.File f in m_projObject.Contents)
|
||||
{
|
||||
if(f.buildaction == Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.EmbedAsResource)
|
||||
{
|
||||
if (src != "") {
|
||||
src += " \\\n\t";
|
||||
}
|
||||
|
||||
relPath = f.name.Replace("\\", "/");
|
||||
s = System.IO.Path.Combine(basePath, relPath);
|
||||
s = String.Format(" -resource:{0},{1}", s, System.IO.Path.GetFileName(relPath));
|
||||
s = s.Replace("\\", "/");
|
||||
if (CmbxMaker.slash != "/")
|
||||
s = s.Replace("/", CmbxMaker.slash);
|
||||
res += s;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,162 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
||||
<xs:element name="AppDesignerFolder" type="xs:string"/>
|
||||
<xs:element name="AssemblyName" type="xs:string"/>
|
||||
<xs:element name="AutoGen" type="xs:string"/>
|
||||
<xs:element name="Compile">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="SubType" minOccurs="0"/>
|
||||
<xs:element ref="AutoGen" minOccurs="0"/>
|
||||
<xs:element ref="DependentUpon" minOccurs="0"/>
|
||||
<xs:element ref="DesignTimeSharedInput" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Include" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Configuration">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="Condition" type="xs:string" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="DebugSymbols" type="xs:boolean"/>
|
||||
<xs:element name="DebugType">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="full"/>
|
||||
<xs:enumeration value="pdbonly"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DefineConstants" type="xs:string" />
|
||||
<xs:element name="DependentUpon" type="xs:string" />
|
||||
<xs:element name="DesignTimeSharedInput" type="xs:string"/>
|
||||
<xs:element name="EmbeddedResource">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="Generator" minOccurs="0"/>
|
||||
<xs:element ref="LastGenOutput" minOccurs="0"/>
|
||||
<xs:element ref="SubType"/>
|
||||
<xs:element ref="DependentUpon" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Include" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ErrorReport" type="xs:string"/>
|
||||
<xs:element name="Generator">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="ResXFileCodeGenerator"/>
|
||||
<xs:enumeration value="SettingsSingleFileGenerator"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="Import">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="Project" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ItemGroup">
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element ref="Reference"/>
|
||||
<xs:element ref="Compile"/>
|
||||
<xs:element ref="EmbeddedResource"/>
|
||||
<xs:element ref="None"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="LastGenOutput">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Resources.Designer.cs"/>
|
||||
<xs:enumeration value="Settings.Designer.cs"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="None">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="Generator"/>
|
||||
<xs:element ref="LastGenOutput"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Include" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="AllowUnsafeBlocks" type="xs:boolean" />
|
||||
<xs:element name="Optimize" type="xs:boolean" />
|
||||
<xs:element name="OutputPath">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="bin\Debug\"/>
|
||||
<xs:enumeration value="bin\Release\"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="OutputType" type="xs:string"/>
|
||||
<xs:element name="Platform">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="Condition" type="xs:string" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ProductVersion" type="xs:string"/>
|
||||
<xs:element name="Project">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="PropertyGroup" maxOccurs="unbounded"/>
|
||||
<xs:element ref="ItemGroup" maxOccurs="unbounded"/>
|
||||
<xs:element ref="Import"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="DefaultTargets" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ProjectGuid" type="xs:string"/>
|
||||
<xs:element name="PropertyGroup">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="Configuration" minOccurs="0"/>
|
||||
<xs:element ref="Platform" minOccurs="0"/>
|
||||
<xs:element ref="ProductVersion" minOccurs="0"/>
|
||||
<xs:element ref="SchemaVersion" minOccurs="0"/>
|
||||
<xs:element ref="ProjectGuid" minOccurs="0"/>
|
||||
<xs:element ref="OutputType" minOccurs="0"/>
|
||||
<xs:element ref="AppDesignerFolder" minOccurs="0"/>
|
||||
<xs:element ref="RootNamespace" minOccurs="0"/>
|
||||
<xs:element ref="AssemblyName" minOccurs="0"/>
|
||||
<xs:element ref="DebugSymbols" minOccurs="0"/>
|
||||
<xs:element ref="DebugType" minOccurs="0"/>
|
||||
<xs:element ref="Optimize" minOccurs="0"/>
|
||||
<xs:element ref="AllowUnsafeBlocks" minOccurs="0" />
|
||||
<xs:element ref="OutputPath" minOccurs="0"/>
|
||||
<xs:element ref="DefineConstants" minOccurs="0"/>
|
||||
<xs:element ref="ErrorReport" minOccurs="0"/>
|
||||
<xs:element ref="WarningLevel" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Condition" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Reference">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="Include" type="xs:string" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="RootNamespace" type="xs:string"/>
|
||||
<xs:element name="SchemaVersion" type="xs:decimal"/>
|
||||
<xs:element name="SubType">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Designer"/>
|
||||
<xs:enumeration value="Form"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="WarningLevel" type="xs:byte"/>
|
||||
</xs:schema>
|
|
@ -0,0 +1,282 @@
|
|||
namespace Mfconsulting.General.Prj2Make.Schema.Csproj {
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Build {
|
||||
|
||||
/// <remarks/>
|
||||
public Settings Settings;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
|
||||
public Reference[] References;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Settings {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("Config")]
|
||||
public Config[] Config;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string ApplicationIcon;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string AssemblyKeyContainerName;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string AssemblyName;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string AssemblyOriginatorKeyFile;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string DefaultClientScript;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string DefaultHTMLPageLayout;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string DefaultTargetSchema;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool DelaySign;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string OutputType;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string PreBuildEvent;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string PostBuildEvent;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string RootNamespace;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string RunPostBuildEvent;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string StartupObject;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Config {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Name;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool AllowUnsafeBlocks;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public int BaseAddress;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool CheckForOverflowUnderflow;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string ConfigurationOverrideFile;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string DefineConstants;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string DocumentationFile;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool DebugSymbols;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public short FileAlignment;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool IncrementalBuild;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool NoStdLib;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string NoWarn;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool Optimize;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string OutputPath;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool RegisterForComInterop;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool RemoveIntegerChecks;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public bool TreatWarningsAsErrors;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public System.SByte WarningLevel;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Reference {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Name;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string AssemblyName;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string HintPath;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Project;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Package;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class CSHARP {
|
||||
|
||||
/// <remarks/>
|
||||
public Build Build;
|
||||
|
||||
/// <remarks/>
|
||||
public Files Files;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string ProjectType;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string ProductVersion;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public System.Decimal SchemaVersion;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string ProjectGuid;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Files {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
|
||||
public File[] Include;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class File {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string RelPath;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public FileBuildAction BuildAction;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string SubType;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string DependentUpon;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public enum FileBuildAction {
|
||||
|
||||
/// <remarks/>
|
||||
Compile,
|
||||
|
||||
/// <remarks/>
|
||||
Content,
|
||||
|
||||
/// <remarks/>
|
||||
EmbeddedResource,
|
||||
|
||||
/// <remarks/>
|
||||
None,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Include {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("File")]
|
||||
public File[] File;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class References {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("Reference")]
|
||||
public Reference[] Reference;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class VisualStudioProject {
|
||||
|
||||
/// <remarks/>
|
||||
public CSHARP CSHARP;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,300 @@
|
|||
namespace Mfconsulting.General.Prj2Make.Schema.Csproj2005
|
||||
{
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Compile {
|
||||
|
||||
/// <remarks/>
|
||||
public SubType SubType;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool SubTypeSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
public string AutoGen;
|
||||
|
||||
/// <remarks/>
|
||||
public string DependentUpon;
|
||||
|
||||
/// <remarks/>
|
||||
public string DesignTimeSharedInput;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Include;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public enum SubType {
|
||||
|
||||
/// <remarks/>
|
||||
Designer,
|
||||
|
||||
/// <remarks/>
|
||||
Form,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Configuration {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Condition;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlTextAttribute()]
|
||||
public string Value;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public enum DebugType {
|
||||
|
||||
/// <remarks/>
|
||||
full,
|
||||
|
||||
/// <remarks/>
|
||||
pdbonly,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class EmbeddedResource {
|
||||
|
||||
/// <remarks/>
|
||||
public Generator Generator;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool GeneratorSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
public LastGenOutput LastGenOutput;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool LastGenOutputSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
public SubType SubType;
|
||||
|
||||
/// <remarks/>
|
||||
public string DependentUpon;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Include;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public enum Generator {
|
||||
|
||||
/// <remarks/>
|
||||
ResXFileCodeGenerator,
|
||||
|
||||
/// <remarks/>
|
||||
SettingsSingleFileGenerator,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public enum LastGenOutput {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlEnumAttribute("Resources.Designer.cs")]
|
||||
ResourcesDesignercs,
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlEnumAttribute("Settings.Designer.cs")]
|
||||
SettingsDesignercs,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Import {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Project;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class ItemGroup {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("None", typeof(None))]
|
||||
[System.Xml.Serialization.XmlElementAttribute("Compile", typeof(Compile))]
|
||||
[System.Xml.Serialization.XmlElementAttribute("EmbeddedResource", typeof(EmbeddedResource))]
|
||||
[System.Xml.Serialization.XmlElementAttribute("Reference", typeof(Reference))]
|
||||
public object[] Items;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class None {
|
||||
|
||||
/// <remarks/>
|
||||
public Generator Generator;
|
||||
|
||||
/// <remarks/>
|
||||
public LastGenOutput LastGenOutput;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Include;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Reference {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Include;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public enum OutputPath {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlEnumAttribute("bin\\Debug\\")]
|
||||
binDebug,
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlEnumAttribute("bin\\Release\\")]
|
||||
binRelease,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Platform {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Condition;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlTextAttribute()]
|
||||
public string Value;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Project {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("PropertyGroup")]
|
||||
public PropertyGroup[] PropertyGroup;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute(typeof(None), IsNullable=false)]
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute(typeof(Compile), IsNullable=false)]
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute(typeof(EmbeddedResource), IsNullable=false)]
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute(typeof(Reference), IsNullable=false)]
|
||||
public object[][] ItemGroup;
|
||||
|
||||
/// <remarks/>
|
||||
public Import Import;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string DefaultTargets;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class PropertyGroup {
|
||||
|
||||
/// <remarks/>
|
||||
public Configuration Configuration;
|
||||
|
||||
/// <remarks/>
|
||||
public Platform Platform;
|
||||
|
||||
/// <remarks/>
|
||||
public string ProductVersion;
|
||||
|
||||
/// <remarks/>
|
||||
public System.Decimal SchemaVersion;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool SchemaVersionSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
public string ProjectGuid;
|
||||
|
||||
/// <remarks/>
|
||||
public string OutputType;
|
||||
|
||||
/// <remarks/>
|
||||
public string AppDesignerFolder;
|
||||
|
||||
/// <remarks/>
|
||||
public string RootNamespace;
|
||||
|
||||
/// <remarks/>
|
||||
public string AssemblyName;
|
||||
|
||||
/// <remarks/>
|
||||
public bool DebugSymbols;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool DebugSymbolsSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
public DebugType DebugType;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool DebugTypeSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
public bool Optimize;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool OptimizeSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
public bool AllowUnsafeBlocks;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool AllowUnsafeBlocksSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
public OutputPath OutputPath;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool OutputPathSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
public string DefineConstants;
|
||||
|
||||
/// <remarks/>
|
||||
public string ErrorReport;
|
||||
|
||||
/// <remarks/>
|
||||
public System.SByte WarningLevel;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlIgnoreAttribute()]
|
||||
public bool WarningLevelSpecified;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string Condition;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Mono.GetOptions;
|
||||
|
||||
// Information about this assembly is defined by the following
|
||||
// attributes.
|
||||
//
|
||||
// change them to the information which is associated with the assembly
|
||||
// you compile.
|
||||
|
||||
[assembly: AssemblyTitle("prj2makesharpWin32")]
|
||||
[assembly: AssemblyDescription("Generates make and nmake files from Visual Studio and MonoDevelop project files")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("MFConsulting")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("2004")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: Mono.About("MFConsulting, (c) 2004")]
|
||||
[assembly: Mono.Author("Jaroslaw Kowalski")]
|
||||
[assembly: Mono.Author("Paco Martinez")]
|
||||
[assembly: Mono.UsageComplement("InputFile")]
|
||||
|
||||
|
||||
// The assembly version has following format :
|
||||
//
|
||||
// Major.Minor.Build.Revision
|
||||
//
|
||||
// You can specify all values by your own or you can build default build and revision
|
||||
// numbers with the '*' character (the default):
|
||||
|
||||
[assembly: AssemblyVersion("0.95.1.0")]
|
||||
|
||||
// The following attributes specify the key for the sign of your assembly. See the
|
||||
// .NET Framework documentation for more information about signing.
|
||||
// This is not required, if you don't want signing let these attributes like they're.
|
||||
[assembly: AssemblyDelaySign(false)]
|
||||
[assembly: AssemblyKeyFile("")]
|
|
@ -0,0 +1,31 @@
|
|||
// project created on 3/13/04 at 5:22 a
|
||||
using System;
|
||||
|
||||
namespace Mfconsulting.General.Prj2Make.Cui
|
||||
{
|
||||
class MainClass
|
||||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
// Handle command line arguments
|
||||
MainOpts optObj = new MainOpts();
|
||||
optObj.ProcessArgs(args);
|
||||
|
||||
if ( optObj.csproj2prjx == true && optObj.RemainingArguments.Length > 0)
|
||||
{
|
||||
new MainMod (optObj.RemainingArguments[0]);
|
||||
return;
|
||||
}
|
||||
|
||||
// Asuming residual arguments possibly a file path
|
||||
if (optObj.RemainingArguments.Length > 0)
|
||||
{
|
||||
new MainMod (optObj.isNmake, optObj.isCsc, optObj.RemainingArguments[0]);
|
||||
}
|
||||
else // No arguments
|
||||
{
|
||||
optObj.DoHelp();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,128 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using Mfconsulting.General.Prj2Make;
|
||||
|
||||
namespace Mfconsulting.General.Prj2Make.Cui
|
||||
{
|
||||
public class MainMod
|
||||
{
|
||||
public string m_AppName = "prj2make-sharp";
|
||||
public string m_WorkspaceFileName;
|
||||
public string m_FileNamePath;
|
||||
public string m_OutputMakefile;
|
||||
|
||||
private bool m_IsUnix = false;
|
||||
private bool m_IsMcs = true;
|
||||
|
||||
// Determines the make file type/style
|
||||
public bool IsUnix
|
||||
{
|
||||
get { return m_IsUnix; }
|
||||
set { m_IsUnix = value; }
|
||||
}
|
||||
|
||||
// Determines what compiler to use MCS or CSC
|
||||
public bool IsMcs
|
||||
{
|
||||
get { return m_IsMcs; }
|
||||
set { m_IsMcs = value; }
|
||||
}
|
||||
|
||||
protected void MyInitializeComponents()
|
||||
{
|
||||
}
|
||||
|
||||
public MainMod (string inputFileName)
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Maker mkObj = null;
|
||||
|
||||
MyInitializeComponents();
|
||||
|
||||
if (inputFileName == null || inputFileName.Length < 1)
|
||||
|
||||
{
|
||||
Console.WriteLine ("No input file has been specified.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Path.GetExtension(inputFileName).ToUpper().CompareTo(".SLN") == 0)
|
||||
{
|
||||
mkObj = new Mfconsulting.General.Prj2Make.Maker();
|
||||
mkObj.CreateCombineFromSln(inputFileName);
|
||||
return;
|
||||
}
|
||||
|
||||
if (Path.GetExtension(inputFileName).ToUpper().CompareTo(".CSPROJ") == 0)
|
||||
{
|
||||
mkObj = new Mfconsulting.General.Prj2Make.Maker();
|
||||
mkObj.CreatePrjxFromCsproj(inputFileName);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// For command line handling
|
||||
public MainMod (bool isNmake, bool isCsc, string WorkspaceFile)
|
||||
{
|
||||
MyInitializeComponents();
|
||||
this.IsMcs = (isCsc == true) ? false : true;
|
||||
this.IsUnix = (isNmake == true) ? false : true;
|
||||
IniFromCommandLine(WorkspaceFile);
|
||||
}
|
||||
|
||||
protected void IniFromCommandLine(string WorkspaceFilename)
|
||||
{
|
||||
m_WorkspaceFileName = WorkspaceFilename;
|
||||
m_FileNamePath = System.IO.Path.GetDirectoryName(m_WorkspaceFileName);
|
||||
System.Text.StringBuilder strbFileName = new System.Text.StringBuilder();
|
||||
|
||||
strbFileName.AppendFormat("Makefile.{0}.{1}",
|
||||
(this.IsMcs == true) ? "mcs" : "csc",
|
||||
(this.IsUnix == true) ? "gmake" : "nmake"
|
||||
);
|
||||
|
||||
m_OutputMakefile = System.IO.Path.Combine(m_FileNamePath, strbFileName.ToString());
|
||||
|
||||
// Actually follow through and genrate the contents of the Makefile
|
||||
// to be placed on the textview
|
||||
CreateMakefile();
|
||||
}
|
||||
|
||||
|
||||
protected void CreateMakefile()
|
||||
{
|
||||
Mfconsulting.General.Prj2Make.Maker mkObj = null;
|
||||
string slnFile = null;
|
||||
|
||||
if (this.m_WorkspaceFileName.Length < 1) {
|
||||
Console.WriteLine ("No input file has been specified.");
|
||||
return;
|
||||
}
|
||||
else
|
||||
slnFile = m_WorkspaceFileName;
|
||||
|
||||
mkObj = new Mfconsulting.General.Prj2Make.Maker();
|
||||
SaveMakefileToDisk(mkObj.MakerMain(IsUnix, IsMcs, slnFile));
|
||||
}
|
||||
|
||||
protected void SaveMakefileToDisk (string MakeFileContents)
|
||||
{
|
||||
FileStream fs = null;
|
||||
StreamWriter w = null;
|
||||
|
||||
if (MakeFileContents.StartsWith ("Error") || MakeFileContents.StartsWith ("Notice")) {
|
||||
Console.WriteLine(MakeFileContents);
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_OutputMakefile != null && m_OutputMakefile.Length > 1) {
|
||||
fs = new FileStream(m_OutputMakefile, FileMode.Create, FileAccess.Write);
|
||||
w = new StreamWriter(fs);
|
||||
}
|
||||
|
||||
if (w != null) {
|
||||
w.WriteLine (MakeFileContents);
|
||||
w.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Mono.GetOptions;
|
||||
|
||||
namespace Mfconsulting.General.Prj2Make.Cui
|
||||
{
|
||||
class MainOpts : Options
|
||||
{
|
||||
[Option("Output for nmake.exe", 'n')]
|
||||
public bool isNmake = false;
|
||||
|
||||
[Option("Use csc instead of mcs", 'c')]
|
||||
public bool isCsc = false;
|
||||
|
||||
[Option(1, "Converts a csproj/sln to prjx/cmbx", "csproj2prjx")]
|
||||
public bool csproj2prjx = false;
|
||||
|
||||
public MainOpts()
|
||||
{
|
||||
ParsingMode = OptionsParsingMode.Both;
|
||||
BreakSingleDashManyLettersIntoManyOptions = false;
|
||||
EndOptionProcessingWithDoubleDash = true;
|
||||
|
||||
if (System.IO.Path.DirectorySeparatorChar.CompareTo('/') == 0)
|
||||
ParsingMode = OptionsParsingMode.Linux;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
// created on 6/8/2004 at 5:44 AM
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Mfconsulting.General
|
||||
{
|
||||
public sealed class PkgConfigInvoker
|
||||
{
|
||||
|
||||
public static string GetPkgConfigVersion()
|
||||
{
|
||||
string pkgout = null;
|
||||
|
||||
pkgout = RunPkgConfig("--version");
|
||||
|
||||
if(pkgout != null)
|
||||
{
|
||||
return pkgout;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static string GetPkgVariableValue(string strPkg, string strVarName)
|
||||
{
|
||||
string pkgout = null;
|
||||
|
||||
pkgout = RunPkgConfig(String.Format("--variable={0} {1}",
|
||||
strVarName, strPkg));
|
||||
|
||||
if(pkgout != null)
|
||||
{
|
||||
return pkgout;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static string GetPkgConfigModuleVersion(string strPkg)
|
||||
{
|
||||
string pkgout = null;
|
||||
|
||||
pkgout = RunPkgConfig(String.Format("--modversion {0}", strPkg));
|
||||
|
||||
if(pkgout != null)
|
||||
{
|
||||
return pkgout;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static string RunPkgConfig(string strArgLine)
|
||||
{
|
||||
string pkgout;
|
||||
|
||||
ProcessStartInfo pi = new ProcessStartInfo ();
|
||||
pi.FileName = "pkg-config";
|
||||
pi.RedirectStandardOutput = true;
|
||||
pi.UseShellExecute = false;
|
||||
pi.Arguments = strArgLine;
|
||||
Process p = null;
|
||||
try
|
||||
{
|
||||
p = Process.Start (pi);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine("Couldn't run pkg-config: " + e.Message);
|
||||
return null;
|
||||
}
|
||||
|
||||
if (p.StandardOutput == null)
|
||||
{
|
||||
Console.WriteLine("Specified package did not return any information");
|
||||
}
|
||||
|
||||
pkgout = p.StandardOutput.ReadToEnd ();
|
||||
p.WaitForExit ();
|
||||
if (p.ExitCode != 0)
|
||||
{
|
||||
Console.WriteLine("Error running pkg-config. Check the above output.");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (pkgout != null)
|
||||
{
|
||||
p.Close ();
|
||||
return pkgout;
|
||||
}
|
||||
|
||||
p.Close ();
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{C6089460-D3B0-4934-87BB-D96B897B72D7}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>prj2makesharpWin32</AssemblyName>
|
||||
<AssemblyOriginatorKeyFile>
|
||||
</AssemblyOriginatorKeyFile>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>
|
||||
</RootNamespace>
|
||||
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||
<StartupObject>
|
||||
</StartupObject>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<NoStdLib>false</NoStdLib>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<Optimize>false</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<NoStdLib>false</NoStdLib>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<Optimize>false</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Mono.GetOptions">
|
||||
<Name>Mono.GetOptions</Name>
|
||||
<HintPath>..\reflib\Mono.GetOptions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System">
|
||||
<Name>System</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml">
|
||||
<Name>System.XML</Name>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CsprojInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="CsprojInfo2005.cs" />
|
||||
<Compile Include="csproj_ver2003.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="csproj_ver2005.cs" />
|
||||
<Compile Include="cui\AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="cui\Main.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="cui\MainMod.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="cui\MainOpts.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MdPrjHelper.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MsPrjHelper.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="pkgconfiginvoker.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="PrjHelper.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="PrjxInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="sharp_d_cmbx.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="sharp_d_prjx.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "prj2makesharp", "prj2makesharp.csproj", "{C6089460-D3B0-4934-87BB-D96B897B72D7}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,117 @@
|
|||
namespace Mfconsulting.General.Prj2Make.Schema.Cmbx {
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Combine {
|
||||
|
||||
/// <remarks/>
|
||||
public StartMode StartMode;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
|
||||
public Entry[] Entries;
|
||||
|
||||
/// <remarks/>
|
||||
public Configurations Configurations;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public System.Decimal fileversion;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string name;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string description;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class StartMode {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("Execute")]
|
||||
public Execute[] Execute;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string startupentry;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string single;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Execute {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string entry;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string type;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Configuration {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("Entry")]
|
||||
public Entry[] Entry;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string name;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Entry {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string filename;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string name;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string configurationname;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string build;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Configurations {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("Configuration")]
|
||||
public Configuration[] Configuration;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string active;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Entries {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("Entry")]
|
||||
public Entry[] Entry;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,326 @@
|
|||
namespace Mfconsulting.General.Prj2Make.Schema.Prjx {
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class CodeGeneration {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string runtime;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string compiler;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public System.SByte warninglevel;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string nowarn;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public CodeGenerationIncludedebuginformation includedebuginformation;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string optimize;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public CodeGenerationUnsafecodeallowed unsafecodeallowed;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string generateoverflowchecks;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string mainclass;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string target;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string definesymbols;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string generatexmldocumentation;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string win32Icon;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public enum CodeGenerationIncludedebuginformation {
|
||||
|
||||
/// <remarks/>
|
||||
False,
|
||||
|
||||
/// <remarks/>
|
||||
True,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public enum CodeGenerationUnsafecodeallowed {
|
||||
|
||||
/// <remarks/>
|
||||
False,
|
||||
|
||||
/// <remarks/>
|
||||
True,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Configuration {
|
||||
|
||||
/// <remarks/>
|
||||
public CodeGeneration CodeGeneration;
|
||||
|
||||
/// <remarks/>
|
||||
public Execution Execution;
|
||||
|
||||
/// <remarks/>
|
||||
public Output Output;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string runwithwarnings;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string name;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Execution {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string commandlineparameters;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string consolepause;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Output {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string directory;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string assembly;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string executeScript;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string executeBeforeBuild;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string executeAfterBuild;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Configurations {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("Configuration")]
|
||||
public Configuration[] Configuration;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string active;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Contents {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("File")]
|
||||
public File[] File;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class File {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string name;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public FileSubtype subtype;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public FileBuildaction buildaction;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string dependson;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string data;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public enum FileSubtype {
|
||||
|
||||
/// <remarks/>
|
||||
Code,
|
||||
|
||||
/// <remarks/>
|
||||
Directory,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public enum FileBuildaction {
|
||||
|
||||
/// <remarks/>
|
||||
Nothing,
|
||||
|
||||
/// <remarks/>
|
||||
Compile,
|
||||
|
||||
/// <remarks/>
|
||||
EmbedAsResource,
|
||||
|
||||
/// <remarks/>
|
||||
Exclude,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class DeploymentInformation {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string target;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string script;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string strategy;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Project {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
|
||||
public File[] Contents;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
|
||||
public Reference[] References;
|
||||
|
||||
/// <remarks/>
|
||||
public DeploymentInformation DeploymentInformation;
|
||||
|
||||
/// <remarks/>
|
||||
public Configuration Configuration;
|
||||
|
||||
/// <remarks/>
|
||||
public Configurations Configurations;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string name;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string description;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string newfilesearch;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string enableviewstate;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public System.Decimal version;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string projecttype;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class Reference {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public ReferenceType type;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public string refto;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlAttributeAttribute()]
|
||||
public ReferenceLocalcopy localcopy;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public enum ReferenceType {
|
||||
|
||||
/// <remarks/>
|
||||
Assembly,
|
||||
|
||||
/// <remarks/>
|
||||
Gac,
|
||||
|
||||
/// <remarks/>
|
||||
Project,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public enum ReferenceLocalcopy {
|
||||
|
||||
/// <remarks/>
|
||||
False,
|
||||
|
||||
/// <remarks/>
|
||||
True,
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
|
||||
public class References {
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute("Reference")]
|
||||
public Reference[] Reference;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
README for monoaddin ver 0.95.1.0
|
||||
By Francisco T. Martinez <paco@mfcon.com> Sunday, September 26, 2004
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
General Description
|
||||
|
||||
The Visual Studio Prj2Make# add-in is meant to complement the Mono Combined
|
||||
Win32 Installer. This add in should simplify the use of Visual Studio .NET 2003
|
||||
as a development platform for Mono applications and may ease the deployment of
|
||||
the developer's solution to other non-Windows platforms supported by Mono.
|
||||
|
||||
As stated above, the monoaddin Add-in is closely linked and dependent of the
|
||||
Mono Combined Win32 Installer.
|
||||
|
||||
Requirements:
|
||||
|
||||
- Visual Studio .NET 2003
|
||||
|
||||
- Mono Combined Win32 Installer (mono-1.0.2-gtksharp-1.0.2-win32-0.7.exe)
|
||||
|
||||
Credits and Related Information
|
||||
|
||||
The Prj2Make# add-in as well as it's installer have been developed by
|
||||
Francisco "Paco" Martinez under the recommendations and advice of the
|
||||
Mono community. Special gratitude to Maria Figueroa, Roger Martinez,
|
||||
Mildred Martinez, Daniel Morgan, Miguel de Icaza, Todd Berman, Lluis
|
||||
Sanchez, Atsushi Enomoto and Joseph Hill. Special thanks to my children,
|
||||
Monica and Paquito for letting me use their quality time for the betterment
|
||||
of mankind.
|
||||
|
||||
For Support and Questions you can visit the locations or email the mail
|
||||
list below:
|
||||
|
||||
http://forge.novell.com/modules/xfmod/project/?prj2make-sharp
|
||||
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
|
||||
|
||||
Mono Combined Installer Web Site URL:
|
||||
http://forge.novell.com/modules/xfmod/project/?monowin32
|
||||
|
||||
Mono Combined Installer Mailing List Subscription and Archive:
|
||||
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
|
||||
|
||||
Mono Project Web Site URL:
|
||||
http://www.mono-project.com
|
||||
|
||||
Mono Project Mailing List Subscription and Archive:
|
||||
http://www.mono-project.com/about/mailing-lists.html#maillists
|
||||
|
||||
|
||||
Microsoft .NET, Visual Studio .NET 2003 and Windows are registered trademarks
|
||||
of Microsoft Corporation.
|
|
@ -0,0 +1,61 @@
|
|||
README for monoaddin ver 0.99.0.2
|
||||
By Francisco T. Martinez <paco@mfcon.com> 5:56 PM 1/2/2006
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
General Description
|
||||
|
||||
The Visual Studio Prj2Make# add-in is meant to complement the Mono Combined
|
||||
Win32 Installer. This add in should simplify the use of Visual Studio .NET 2003
|
||||
as a development platform for Mono applications and may ease the deployment of
|
||||
the developer's solution to other non-Windows platforms supported by Mono.
|
||||
|
||||
As stated above, the monoaddin Add-in is closely linked and dependent of the
|
||||
Mono Combined Win32 Installer.
|
||||
|
||||
New in this Release:
|
||||
|
||||
The "Test In Mono" menu option is now implemented. This will give users the
|
||||
ability to run the currently selected Startup project in a Visual Studio Solution
|
||||
using the Mono Runtime that is selected in accordance with MonoLaunch.
|
||||
|
||||
|
||||
Requirements:
|
||||
|
||||
- Visual Studio 2005
|
||||
|
||||
- Mono Combined Win32 Installer (mono-1.1.10-gtksharp-2.4.0-win32-x.x.exe or higher)
|
||||
|
||||
- Mono Runtime Selector Win32 Installer (MonoLaunch-1.0.0.2-1.exe or higher)
|
||||
|
||||
|
||||
Credits and Related Information
|
||||
|
||||
The Prj2Make# add-in as well as it's installer have been developed by
|
||||
Francisco "Paco" Martinez under the recommendations and advice of the
|
||||
Mono community. Special gratitude to Maria Figueroa, Roger Martinez,
|
||||
Mildred Martinez, Daniel Morgan, Miguel de Icaza, Todd Berman, Lluis
|
||||
Sanchez, Atsushi Enomoto and Joseph Hill. Special thanks to my children,
|
||||
Monica and Paquito for letting me use their quality time for the betterment
|
||||
of mankind.
|
||||
|
||||
For Support and Questions you can visit the locations or email the mail
|
||||
list below:
|
||||
|
||||
http://forge.novell.com/modules/xfmod/project/?prj2make-sharp
|
||||
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
|
||||
|
||||
Mono Combined Installer Web Site URL:
|
||||
http://forge.novell.com/modules/xfmod/project/?monowin32
|
||||
|
||||
Mono Combined Installer Mailing List Subscription and Archive:
|
||||
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
|
||||
|
||||
Mono Project Web Site URL:
|
||||
http://www.mono-project.com
|
||||
|
||||
Mono Project Mailing List Subscription and Archive:
|
||||
http://www.mono-project.com/about/mailing-lists.html#maillists
|
||||
|
||||
|
||||
Microsoft .NET, Visual Studio 2005 and Windows are registered trademarks
|
||||
of Microsoft Corporation.
|
|
@ -0,0 +1,61 @@
|
|||
README for vspr2make ver 0.99.0.2
|
||||
By Francisco T. Martinez <paco@mfcon.com> 5:56 PM 1/2/2006
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
General Description
|
||||
|
||||
The Visual Studio Prj2Make# add-in is meant to complement the Mono Combined
|
||||
Win32 Installer. This add in should simplify the use of Visual Studio .NET 2003
|
||||
as a development platform for Mono applications and may ease the deployment of
|
||||
the developer's solution to other non-Windows platforms supported by Mono.
|
||||
|
||||
As stated above, the vspr2make Add-in is closely linked and dependent of the
|
||||
Mono Combined Win32 Installer.
|
||||
|
||||
New in this Release:
|
||||
|
||||
The "Test In Mono" menu option is now implemented. This will give users the
|
||||
ability to run the currently selected Startup project in a Visual Studio Solution
|
||||
using the Mono Runtime that is selected in accordance with MonoLaunch.
|
||||
|
||||
|
||||
Requirements:
|
||||
|
||||
- Visual Studio .NET 2003
|
||||
|
||||
- Mono Combined Win32 Installer (mono-1.1.10-gtksharp-2.4.0-win32-x.x.exe or higher)
|
||||
|
||||
- Mono Runtime Selector Win32 Installer (MonoLaunch-1.0.0.2-1.exe or higher)
|
||||
|
||||
|
||||
Credits and Related Information
|
||||
|
||||
The Prj2Make# add-in as well as it's installer have been developed by
|
||||
Francisco "Paco" Martinez under the recommendations and advice of the
|
||||
Mono community. Special gratitude to Maria Figueroa, Roger Martinez,
|
||||
Mildred Martinez, Daniel Morgan, Miguel de Icaza, Todd Berman, Lluis
|
||||
Sanchez, Atsushi Enomoto and Joseph Hill. Special thanks to my children,
|
||||
Monica and Paquito for letting me use their quality time for the betterment
|
||||
of mankind.
|
||||
|
||||
For Support and Questions you can visit the locations or email the mail
|
||||
list below:
|
||||
|
||||
http://forge.novell.com/modules/xfmod/project/?prj2make-sharp
|
||||
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
|
||||
|
||||
Mono Combined Installer Web Site URL:
|
||||
http://forge.novell.com/modules/xfmod/project/?monowin32
|
||||
|
||||
Mono Combined Installer Mailing List Subscription and Archive:
|
||||
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
|
||||
|
||||
Mono Project Web Site URL:
|
||||
http://www.mono-project.com
|
||||
|
||||
Mono Project Mailing List Subscription and Archive:
|
||||
http://www.mono-project.com/about/mailing-lists.html#maillists
|
||||
|
||||
|
||||
Microsoft .NET, Visual Studio .NET 2003 and Windows are registered trademarks
|
||||
of Microsoft Corporation.
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "monoaddin", "monoaddin\monoaddin.csproj", "{4441F814-D559-4C3F-9250-650709C79BB0}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CreateZipFile", "CreateZipFile\CreateZipFile.csproj", "{7546314B-68AE-4067-B3F2-3D703AACED64}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "prj2makesharp", "Prj2MakeWin32\prj2makesharp.csproj", "{C6089460-D3B0-4934-87BB-D96B897B72D7}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{4441F814-D559-4C3F-9250-650709C79BB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4441F814-D559-4C3F-9250-650709C79BB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4441F814-D559-4C3F-9250-650709C79BB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4441F814-D559-4C3F-9250-650709C79BB0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7546314B-68AE-4067-B3F2-3D703AACED64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7546314B-68AE-4067-B3F2-3D703AACED64}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7546314B-68AE-4067-B3F2-3D703AACED64}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7546314B-68AE-4067-B3F2-3D703AACED64}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ClassDiagram MajorVersion="1" MinorVersion="1">
|
||||
<Font Name="Microsoft Sans Serif" Size="8.25" />
|
||||
<Class Name="Mfconsulting.Vsprj2make.Connect" Collapsed="true" BaseTypeListCollapsed="true">
|
||||
<Position X="0.5" Y="0.5" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<FileName>Connect.cs</FileName>
|
||||
<HashCode>gABAIEAAAAAAAABAAAQAAAAAKAAAABAAAAAAAABAAAA=</HashCode>
|
||||
</TypeIdentifier>
|
||||
<Lollipop Position="0.2" Collapsed="true" />
|
||||
</Class>
|
||||
<Class Name="Mfconsulting.Vsprj2make.CreateZipHelper" Collapsed="true">
|
||||
<Position X="2.25" Y="0.5" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<FileName>CreateZipHelper.cs</FileName>
|
||||
<HashCode>AAAIAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAEAAAAAAA=</HashCode>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="Mfconsulting.Vsprj2make.MonoLaunchHelper" Collapsed="true">
|
||||
<Position X="4" Y="0.5" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<FileName>MonoLaunchHelper.cs</FileName>
|
||||
<HashCode>AAAAAAAAAAAAAAAAAAEAAAAAAAAAQEAAgAAAAAAAEAA=</HashCode>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="Mfconsulting.Vsprj2make.OptionsDlg" Collapsed="true">
|
||||
<Position X="0.5" Y="1.5" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<FileName>OptionsDlg.cs</FileName>
|
||||
<HashCode>QAAAAAABECQAIRAAIACAEACeAEw8AAAAAHAIAAABFAA=</HashCode>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="Mfconsulting.Vsprj2make.Prj2MakeHelper" Collapsed="true">
|
||||
<Position X="2.25" Y="1.5" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<FileName>Prj2MakeHelper.cs</FileName>
|
||||
<HashCode>AAAAAkAAAAAAAAAAgAAAAAAAAAAAAAABAAAAAAAAAAA=</HashCode>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="Mfconsulting.Vsprj2make.RegistryHelper" Collapsed="true">
|
||||
<Position X="4" Y="1.5" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<FileName>RegistryHelper.cs</FileName>
|
||||
<HashCode>ICCAAAEAEAAEAAAAAQAAAgQACCAAAAIAAAAAAgEAAAM=</HashCode>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
</ClassDiagram>
|
|
@ -0,0 +1,424 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
|
||||
<data name="enAction"> <value xml:space="preserve">Action</value></data>
|
||||
<data name="enAddins"> <value xml:space="preserve">Addins</value></data>
|
||||
<data name="enBuild"> <value xml:space="preserve">Build</value></data>
|
||||
<data name="enClass Diagram"> <value xml:space="preserve">Class Diagram</value></data>
|
||||
<data name="enCommunity"> <value xml:space="preserve">Community</value></data>
|
||||
<data name="enData"> <value xml:space="preserve">Data</value></data>
|
||||
<data name="enDatabase"> <value xml:space="preserve">Database</value></data>
|
||||
<data name="enDatabase Diagram"><value xml:space="preserve">Database Diagram</value></data>
|
||||
<data name="enDebug"> <value xml:space="preserve">Debug</value></data>
|
||||
<data name="enDiagram"> <value xml:space="preserve">Diagram</value></data>
|
||||
<data name="enEdit"> <value xml:space="preserve">Edit</value></data>
|
||||
<data name="enFile"> <value xml:space="preserve">File</value></data>
|
||||
<data name="enFormat"> <value xml:space="preserve">Format</value></data>
|
||||
<data name="enFrames"> <value xml:space="preserve">Frames</value></data>
|
||||
<data name="enHelp"> <value xml:space="preserve">Help</value></data>
|
||||
<data name="enImage"> <value xml:space="preserve">Image</value></data>
|
||||
<data name="enLayout"> <value xml:space="preserve">Layout</value></data>
|
||||
<data name="enMacros"> <value xml:space="preserve">Macros</value></data>
|
||||
<data name="enProject"> <value xml:space="preserve">Project</value></data>
|
||||
<data name="enQuery"> <value xml:space="preserve">Query</value></data>
|
||||
<data name="enQuery Designer"> <value xml:space="preserve">Query Designer</value></data>
|
||||
<data name="enRefactor"> <value xml:space="preserve">Refactor</value></data>
|
||||
<data name="enResources"> <value xml:space="preserve">Resources</value></data>
|
||||
<data name="enSchema"> <value xml:space="preserve">Schema</value></data>
|
||||
<data name="enStyles"> <value xml:space="preserve">Styles</value></data>
|
||||
<data name="enTeam"> <value xml:space="preserve">Team</value></data>
|
||||
<data name="enTable"> <value xml:space="preserve">Table</value></data>
|
||||
<data name="enTable Designer"> <value xml:space="preserve">Table Designer</value></data>
|
||||
<data name="enTest"> <value xml:space="preserve">Test</value></data>
|
||||
<data name="enTools"> <value xml:space="preserve">Tools</value></data>
|
||||
<data name="enView"> <value xml:space="preserve">View</value></data>
|
||||
<data name="enWindow"> <value xml:space="preserve">Window</value></data>
|
||||
<data name="enXML"> <value xml:space="preserve">XML</value></data>
|
||||
|
||||
<data name="jaAction"> <value xml:space="preserve">操作</value></data>
|
||||
<data name="jaAddins"> <value xml:space="preserve">アドイン</value></data>
|
||||
<data name="jaBuild"> <value xml:space="preserve">ビルド</value></data>
|
||||
<data name="jaClass Diagram"> <value xml:space="preserve">クラス ダイアグラム</value></data>
|
||||
<data name="jaCommunity"> <value xml:space="preserve">コミュニティ</value></data>
|
||||
<data name="jaData"> <value xml:space="preserve">データ</value></data>
|
||||
<data name="jaDatabase"> <value xml:space="preserve">データベース</value></data>
|
||||
<data name="jaDatabase Diagram"><value xml:space="preserve">データベース ダイアグラム</value></data>
|
||||
<data name="jaDebug"> <value xml:space="preserve">デバッグ</value></data>
|
||||
<data name="jaDiagram"> <value xml:space="preserve">ダイアグラム</value></data>
|
||||
<data name="jaEdit"> <value xml:space="preserve">編集</value></data>
|
||||
<data name="jaFile"> <value xml:space="preserve">ファイル</value></data>
|
||||
<data name="jaFormat"> <value xml:space="preserve">書式</value></data>
|
||||
<data name="jaFrames"> <value xml:space="preserve">フレーム</value></data>
|
||||
<data name="jaHelp"> <value xml:space="preserve">ヘルプ</value></data>
|
||||
<data name="jaImage"> <value xml:space="preserve">イメージ</value></data>
|
||||
<data name="jaLayout"> <value xml:space="preserve">レイアウト</value></data>
|
||||
<data name="jaMacros"> <value xml:space="preserve">マクロ</value></data>
|
||||
<data name="jaProject"> <value xml:space="preserve">プロジェクト</value></data>
|
||||
<data name="jaQuery"> <value xml:space="preserve">クエリ</value></data>
|
||||
<data name="jaQuery Designer"> <value xml:space="preserve">クエリ デザイナ</value></data>
|
||||
<data name="jaRefactor"> <value xml:space="preserve">リファクタ</value></data>
|
||||
<data name="jaResources"> <value xml:space="preserve">リソース</value></data>
|
||||
<data name="jaSchema"> <value xml:space="preserve">スキーマ</value></data>
|
||||
<data name="jaStyles"> <value xml:space="preserve">スタイル</value></data>
|
||||
<data name="jaTeam"> <value xml:space="preserve">チーム</value></data>
|
||||
<data name="jaTable"> <value xml:space="preserve">テーブル</value></data>
|
||||
<data name="jaTable Designer"> <value xml:space="preserve">テーブル デザイナ</value></data>
|
||||
<data name="jaTest"> <value xml:space="preserve">テスト</value></data>
|
||||
<data name="jaTools"> <value xml:space="preserve">ツール</value></data>
|
||||
<data name="jaView"> <value xml:space="preserve">表示</value></data>
|
||||
<data name="jaWindow"> <value xml:space="preserve">ウィンドウ</value></data>
|
||||
<data name="jaXML"> <value xml:space="preserve">XML</value></data>
|
||||
|
||||
<data name="deAction"> <value xml:space="preserve">Aktion</value></data>
|
||||
<data name="deAddins"> <value xml:space="preserve">Add-Ins</value></data>
|
||||
<data name="deBuild"> <value xml:space="preserve">Erstellen</value></data>
|
||||
<data name="deClass Diagram"> <value xml:space="preserve">Klassendiagramm</value></data>
|
||||
<data name="deCommunity"> <value xml:space="preserve">Community</value></data>
|
||||
<data name="deData"> <value xml:space="preserve">Daten</value></data>
|
||||
<data name="deDatabase"> <value xml:space="preserve">Datenbank</value></data>
|
||||
<data name="deDatabase Diagram"><value xml:space="preserve">Datenbankdiagramm</value></data>
|
||||
<data name="deDebug"> <value xml:space="preserve">Debuggen</value></data>
|
||||
<data name="deDiagram"> <value xml:space="preserve">Diagramm</value></data>
|
||||
<data name="deEdit"> <value xml:space="preserve">Bearbeiten</value></data>
|
||||
<data name="deFile"> <value xml:space="preserve">Datei</value></data>
|
||||
<data name="deFormat"> <value xml:space="preserve">Format</value></data>
|
||||
<data name="deFrames"> <value xml:space="preserve">Rahmen</value></data>
|
||||
<data name="deHelp"> <value xml:space="preserve">Hilfe</value></data>
|
||||
<data name="deImage"> <value xml:space="preserve">Bild</value></data>
|
||||
<data name="deLayout"> <value xml:space="preserve">Layout</value></data>
|
||||
<data name="deMacros"> <value xml:space="preserve">Makros</value></data>
|
||||
<data name="deProject"> <value xml:space="preserve">Projekt</value></data>
|
||||
<data name="deQuery"> <value xml:space="preserve">Query</value></data>
|
||||
<data name="deQuery Designer"> <value xml:space="preserve">Abfrage-Designer</value></data>
|
||||
<data name="deRefactor"> <value xml:space="preserve">Umgestalten</value></data>
|
||||
<data name="deResources"> <value xml:space="preserve">Ressourcen</value></data>
|
||||
<data name="deSchema"> <value xml:space="preserve">Schema</value></data>
|
||||
<data name="deStyles"> <value xml:space="preserve">Formate</value></data>
|
||||
<data name="deTeam"> <value xml:space="preserve">Team</value></data>
|
||||
<data name="deTable"> <value xml:space="preserve">Tabelle</value></data>
|
||||
<data name="deTable Designer"> <value xml:space="preserve">Tabellen-Designer</value></data>
|
||||
<data name="deTest"> <value xml:space="preserve">Testen</value></data>
|
||||
<data name="deTools"> <value xml:space="preserve">Extras</value></data>
|
||||
<data name="deView"> <value xml:space="preserve">Ansicht</value></data>
|
||||
<data name="deWindow"> <value xml:space="preserve">Fenster</value></data>
|
||||
<data name="deXML"> <value xml:space="preserve">XML</value></data>
|
||||
|
||||
<data name="esAction"> <value xml:space="preserve">Acción</value></data>
|
||||
<data name="esAddins"> <value xml:space="preserve">Complementos</value></data>
|
||||
<data name="esBuild"> <value xml:space="preserve">Generar</value></data>
|
||||
<data name="esClass Diagram"> <value xml:space="preserve">Diagrama de clase</value></data>
|
||||
<data name="esCommunity"> <value xml:space="preserve">Comunidad</value></data>
|
||||
<data name="esData"> <value xml:space="preserve">Datos</value></data>
|
||||
<data name="esDatabase"> <value xml:space="preserve">Base de datos</value></data>
|
||||
<data name="esDatabase Diagram"><value xml:space="preserve">Diagrama de base de datos</value></data>
|
||||
<data name="esDebug"> <value xml:space="preserve">Depurar</value></data>
|
||||
<data name="esDiagram"> <value xml:space="preserve">Diagrama</value></data>
|
||||
<data name="esEdit"> <value xml:space="preserve">Editar</value></data>
|
||||
<data name="esFile"> <value xml:space="preserve">Archivo</value></data>
|
||||
<data name="esFormat"> <value xml:space="preserve">Formato</value></data>
|
||||
<data name="esFrames"> <value xml:space="preserve">Marcos</value></data>
|
||||
<data name="esHelp"> <value xml:space="preserve">Ayuda</value></data>
|
||||
<data name="esImage"> <value xml:space="preserve">Imagen</value></data>
|
||||
<data name="esLayout"> <value xml:space="preserve">Diseño</value></data>
|
||||
<data name="esMacros"> <value xml:space="preserve">Macros</value></data>
|
||||
<data name="esProject"> <value xml:space="preserve">Proyecto</value></data>
|
||||
<data name="esQuery"> <value xml:space="preserve">Consulta</value></data>
|
||||
<data name="esQuery Designer"> <value xml:space="preserve">Diseñador de consultas</value></data>
|
||||
<data name="esRefactor"> <value xml:space="preserve">Refactorizar</value></data>
|
||||
<data name="esResources"> <value xml:space="preserve">Recursos</value></data>
|
||||
<data name="esSchema"> <value xml:space="preserve">Esquema</value></data>
|
||||
<data name="esStyles"> <value xml:space="preserve">Estilos</value></data>
|
||||
<data name="esTeam"> <value xml:space="preserve">Equipo</value></data>
|
||||
<data name="esTable"> <value xml:space="preserve">Tabla</value></data>
|
||||
<data name="esTable Designer"> <value xml:space="preserve">Diseñador de tablas</value></data>
|
||||
<data name="esTest"> <value xml:space="preserve">Prueba</value></data>
|
||||
<data name="esTools"> <value xml:space="preserve">Herramientas</value></data>
|
||||
<data name="esView"> <value xml:space="preserve">Ver</value></data>
|
||||
<data name="esWindow"> <value xml:space="preserve">Ventana</value></data>
|
||||
<data name="esXML"> <value xml:space="preserve">XML</value></data>
|
||||
|
||||
<data name="frAction"> <value xml:space="preserve">Action</value></data>
|
||||
<data name="frAddins"> <value xml:space="preserve">Compléments</value></data>
|
||||
<data name="frBuild"> <value xml:space="preserve">Générer</value></data>
|
||||
<data name="frClass Diagram"> <value xml:space="preserve">Diagramme de classes</value></data>
|
||||
<data name="frCommunity"> <value xml:space="preserve">Communauté</value></data>
|
||||
<data name="frData"> <value xml:space="preserve">Données</value></data>
|
||||
<data name="frDatabase"> <value xml:space="preserve">Base de données</value></data>
|
||||
<data name="frDatabase Diagram"><value xml:space="preserve">Schéma de base de données</value></data>
|
||||
<data name="frDebug"> <value xml:space="preserve">Déboguer</value></data>
|
||||
<data name="frDiagram"> <value xml:space="preserve">Schéma</value></data>
|
||||
<data name="frEdit"> <value xml:space="preserve">Modifier</value></data>
|
||||
<data name="frFile"> <value xml:space="preserve">Fichier</value></data>
|
||||
<data name="frFormat"> <value xml:space="preserve">Format</value></data>
|
||||
<data name="frFrames"> <value xml:space="preserve">Frames</value></data>
|
||||
<data name="frHelp"> <value xml:space="preserve">?</value></data>
|
||||
<data name="frImage"> <value xml:space="preserve">Image</value></data>
|
||||
<data name="frLayout"> <value xml:space="preserve">Disposition</value></data>
|
||||
<data name="frMacros"> <value xml:space="preserve">Macros</value></data>
|
||||
<data name="frProject"> <value xml:space="preserve">Projet</value></data>
|
||||
<data name="frQuery"> <value xml:space="preserve">Requête</value></data>
|
||||
<data name="frQuery Designer"> <value xml:space="preserve">Concepteur de requêtes</value></data>
|
||||
<data name="frRefactor"> <value xml:space="preserve">Refactoriser</value></data>
|
||||
<data name="frResources"> <value xml:space="preserve">Ressources</value></data>
|
||||
<data name="frSchema"> <value xml:space="preserve">Schéma</value></data>
|
||||
<data name="frStyles"> <value xml:space="preserve">Styles</value></data>
|
||||
<data name="frTeam"> <value xml:space="preserve">équipe</value></data>
|
||||
<data name="frTable"> <value xml:space="preserve">Tableau</value></data>
|
||||
<data name="frTable Designer"> <value xml:space="preserve">Concepteur de tables</value></data>
|
||||
<data name="frTest"> <value xml:space="preserve">Test</value></data>
|
||||
<data name="frTools"> <value xml:space="preserve">Outils</value></data>
|
||||
<data name="frView"> <value xml:space="preserve">Affichage</value></data>
|
||||
<data name="frWindow"> <value xml:space="preserve">Fenêtre</value></data>
|
||||
<data name="frXML"> <value xml:space="preserve">XML</value></data>
|
||||
|
||||
<data name="itAction"> <value xml:space="preserve">Azione</value></data>
|
||||
<data name="itAddins"> <value xml:space="preserve">Componenti aggiuntivi</value></data>
|
||||
<data name="itBuild"> <value xml:space="preserve">Genera</value></data>
|
||||
<data name="itClass Diagram"> <value xml:space="preserve">Diagramma classi</value></data>
|
||||
<data name="itCommunity"> <value xml:space="preserve">Comunità</value></data>
|
||||
<data name="itData"> <value xml:space="preserve">Dati</value></data>
|
||||
<data name="itDatabase"> <value xml:space="preserve">Database</value></data>
|
||||
<data name="itDatabase Diagram"><value xml:space="preserve">Diagramma database</value></data>
|
||||
<data name="itDebug"> <value xml:space="preserve">Debug</value></data>
|
||||
<data name="itDiagram"> <value xml:space="preserve">Diagramma</value></data>
|
||||
<data name="itEdit"> <value xml:space="preserve">Modifica</value></data>
|
||||
<data name="itFile"> <value xml:space="preserve">File</value></data>
|
||||
<data name="itFormat"> <value xml:space="preserve">Formato</value></data>
|
||||
<data name="itFrames"> <value xml:space="preserve">Frame</value></data>
|
||||
<data name="itHelp"> <value xml:space="preserve">?</value></data>
|
||||
<data name="itImage"> <value xml:space="preserve">Immagine</value></data>
|
||||
<data name="itLayout"> <value xml:space="preserve">Layout</value></data>
|
||||
<data name="itMacros"> <value xml:space="preserve">Macro</value></data>
|
||||
<data name="itProject"> <value xml:space="preserve">Progetto</value></data>
|
||||
<data name="itQuery"> <value xml:space="preserve">Query</value></data>
|
||||
<data name="itQuery Designer"> <value xml:space="preserve">Progettazione query</value></data>
|
||||
<data name="itRefactor"> <value xml:space="preserve">Effettua refactoring</value></data>
|
||||
<data name="itResources"> <value xml:space="preserve">Risorse</value></data>
|
||||
<data name="itSchema"> <value xml:space="preserve">Schema</value></data>
|
||||
<data name="itStyles"> <value xml:space="preserve">Stili</value></data>
|
||||
<data name="itTeam"> <value xml:space="preserve">Team</value></data>
|
||||
<data name="itTable"> <value xml:space="preserve">Tabella</value></data>
|
||||
<data name="itTable Designer"> <value xml:space="preserve">Progettazione tabelle</value></data>
|
||||
<data name="itTest"> <value xml:space="preserve">Prova</value></data>
|
||||
<data name="itTools"> <value xml:space="preserve">Strumenti</value></data>
|
||||
<data name="itView"> <value xml:space="preserve">Visualizza</value></data>
|
||||
<data name="itWindow"> <value xml:space="preserve">Finestra</value></data>
|
||||
<data name="itXML"> <value xml:space="preserve">XML</value></data>
|
||||
|
||||
<data name="koAction"> <value xml:space="preserve">작업</value></data>
|
||||
<data name="koAddins"> <value xml:space="preserve">추가 기능</value></data>
|
||||
<data name="koBuild"> <value xml:space="preserve">빌드</value></data>
|
||||
<data name="koClass Diagram"> <value xml:space="preserve">클래스 다이어그램</value></data>
|
||||
<data name="koCommunity"> <value xml:space="preserve">커뮤니티</value></data>
|
||||
<data name="koData"> <value xml:space="preserve">데이터</value></data>
|
||||
<data name="koDatabase"> <value xml:space="preserve">데이터베이스</value></data>
|
||||
<data name="koDatabase Diagram"><value xml:space="preserve">데이터베이스 다이어그램</value></data>
|
||||
<data name="koDebug"> <value xml:space="preserve">디버그</value></data>
|
||||
<data name="koDiagram"> <value xml:space="preserve">다이어그램</value></data>
|
||||
<data name="koEdit"> <value xml:space="preserve">편집</value></data>
|
||||
<data name="koFile"> <value xml:space="preserve">파일</value></data>
|
||||
<data name="koFormat"> <value xml:space="preserve">서식</value></data>
|
||||
<data name="koFrames"> <value xml:space="preserve">프레임</value></data>
|
||||
<data name="koHelp"> <value xml:space="preserve">도움말</value></data>
|
||||
<data name="koImage"> <value xml:space="preserve">이미지</value></data>
|
||||
<data name="koLayout"> <value xml:space="preserve">레이아웃</value></data>
|
||||
<data name="koMacros"> <value xml:space="preserve">매크로</value></data>
|
||||
<data name="koProject"> <value xml:space="preserve">프로젝트</value></data>
|
||||
<data name="koQuery"> <value xml:space="preserve">쿼리</value></data>
|
||||
<data name="koQuery Designer"> <value xml:space="preserve">쿼리 디자이너</value></data>
|
||||
<data name="koRefactor"> <value xml:space="preserve">리팩터링</value></data>
|
||||
<data name="koResources"> <value xml:space="preserve">리소스</value></data>
|
||||
<data name="koSchema"> <value xml:space="preserve">스키마</value></data>
|
||||
<data name="koStyles"> <value xml:space="preserve">스타일</value></data>
|
||||
<data name="koTeam"> <value xml:space="preserve">팀</value></data>
|
||||
<data name="koTable"> <value xml:space="preserve">테이블</value></data>
|
||||
<data name="koTable Designer"> <value xml:space="preserve">테이블 디자이너</value></data>
|
||||
<data name="koTest"> <value xml:space="preserve">테스트</value></data>
|
||||
<data name="koTools"> <value xml:space="preserve">도구</value></data>
|
||||
<data name="koView"> <value xml:space="preserve">뷰</value></data>
|
||||
<data name="koWindow"> <value xml:space="preserve">창</value></data>
|
||||
<data name="koXML"> <value xml:space="preserve">XML</value></data>
|
||||
|
||||
<data name="zh-CHSAction"> <value xml:space="preserve">操作</value></data>
|
||||
<data name="zh-CHSAddins"> <value xml:space="preserve">外接程序</value></data>
|
||||
<data name="zh-CHSBuild"> <value xml:space="preserve">生成</value></data>
|
||||
<data name="zh-CHSClass Diagram"> <value xml:space="preserve">类关系图</value></data>
|
||||
<data name="zh-CHSCommunity"> <value xml:space="preserve">社区</value></data>
|
||||
<data name="zh-CHSData"> <value xml:space="preserve">数据</value></data>
|
||||
<data name="zh-CHSDatabase"> <value xml:space="preserve">数据库</value></data>
|
||||
<data name="zh-CHSDatabase Diagram"><value xml:space="preserve">数据库关系图</value></data>
|
||||
<data name="zh-CHSDebug"> <value xml:space="preserve">调试</value></data>
|
||||
<data name="zh-CHSDiagram"> <value xml:space="preserve">关系图</value></data>
|
||||
<data name="zh-CHSEdit"> <value xml:space="preserve">编辑</value></data>
|
||||
<data name="zh-CHSFile"> <value xml:space="preserve">文件</value></data>
|
||||
<data name="zh-CHSFormat"> <value xml:space="preserve">格式</value></data>
|
||||
<data name="zh-CHSFrames"> <value xml:space="preserve">框架</value></data>
|
||||
<data name="zh-CHSHelp"> <value xml:space="preserve">帮助</value></data>
|
||||
<data name="zh-CHSImage"> <value xml:space="preserve">图像</value></data>
|
||||
<data name="zh-CHSLayout"> <value xml:space="preserve">布局</value></data>
|
||||
<data name="zh-CHSMacros"> <value xml:space="preserve">宏</value></data>
|
||||
<data name="zh-CHSProject"> <value xml:space="preserve">项目</value></data>
|
||||
<data name="zh-CHSQuery"> <value xml:space="preserve">查询</value></data>
|
||||
<data name="zh-CHSQuery Designer"> <value xml:space="preserve">查询设计器</value></data>
|
||||
<data name="zh-CHSRefactor"> <value xml:space="preserve">重构</value></data>
|
||||
<data name="zh-CHSResources"> <value xml:space="preserve">资源</value></data>
|
||||
<data name="zh-CHSSchema"> <value xml:space="preserve">架构</value></data>
|
||||
<data name="zh-CHSStyles"> <value xml:space="preserve">样式</value></data>
|
||||
<data name="zh-CHSTeam"> <value xml:space="preserve">工作组</value></data>
|
||||
<data name="zh-CHSTable"> <value xml:space="preserve">表</value></data>
|
||||
<data name="zh-CHSTable Designer"> <value xml:space="preserve">表设计器</value></data>
|
||||
<data name="zh-CHSTest"> <value xml:space="preserve">测试</value></data>
|
||||
<data name="zh-CHSTools"> <value xml:space="preserve">工具</value></data>
|
||||
<data name="zh-CHSView"> <value xml:space="preserve">视图</value></data>
|
||||
<data name="zh-CHSWindow"> <value xml:space="preserve">窗口</value></data>
|
||||
<data name="zh-CHSXML"> <value xml:space="preserve">XML</value></data>
|
||||
|
||||
<data name="zh-CHTAction"> <value xml:space="preserve">動作</value></data>
|
||||
<data name="zh-CHTAddins"> <value xml:space="preserve">增益集</value></data>
|
||||
<data name="zh-CHTBuild"> <value xml:space="preserve">建置</value></data>
|
||||
<data name="zh-CHTClass Diagram"> <value xml:space="preserve">類別圖表</value></data>
|
||||
<data name="zh-CHTCommunity"> <value xml:space="preserve">社群</value></data>
|
||||
<data name="zh-CHTData"> <value xml:space="preserve">資料</value></data>
|
||||
<data name="zh-CHTDatabase"> <value xml:space="preserve">資料庫</value></data>
|
||||
<data name="zh-CHTDatabase Diagram"><value xml:space="preserve">資料庫圖表</value></data>
|
||||
<data name="zh-CHTDebug"> <value xml:space="preserve">偵錯</value></data>
|
||||
<data name="zh-CHTDiagram"> <value xml:space="preserve">圖表</value></data>
|
||||
<data name="zh-CHTEdit"> <value xml:space="preserve">編輯</value></data>
|
||||
<data name="zh-CHTFile"> <value xml:space="preserve">檔案</value></data>
|
||||
<data name="zh-CHTFormat"> <value xml:space="preserve">格式</value></data>
|
||||
<data name="zh-CHTFrames"> <value xml:space="preserve">框架</value></data>
|
||||
<data name="zh-CHTHelp"> <value xml:space="preserve">說明</value></data>
|
||||
<data name="zh-CHTImage"> <value xml:space="preserve">影像</value></data>
|
||||
<data name="zh-CHTLayout"> <value xml:space="preserve">配置</value></data>
|
||||
<data name="zh-CHTMacros"> <value xml:space="preserve">巨集</value></data>
|
||||
<data name="zh-CHTProject"> <value xml:space="preserve">專案</value></data>
|
||||
<data name="zh-CHTQuery"> <value xml:space="preserve">查詢</value></data>
|
||||
<data name="zh-CHTQuery Designer"> <value xml:space="preserve">查詢設計工具</value></data>
|
||||
<data name="zh-CHTRefactor"> <value xml:space="preserve">重整</value></data>
|
||||
<data name="zh-CHTResources"> <value xml:space="preserve">資源</value></data>
|
||||
<data name="zh-CHTSchema"> <value xml:space="preserve">結構描述</value></data>
|
||||
<data name="zh-CHTStyles"> <value xml:space="preserve">樣式</value></data>
|
||||
<data name="zh-CHTTeam"> <value xml:space="preserve">小組</value></data>
|
||||
<data name="zh-CHTTable"> <value xml:space="preserve">資料表</value></data>
|
||||
<data name="zh-CHTTable Designer"> <value xml:space="preserve">資料表設計工具</value></data>
|
||||
<data name="zh-CHTTest"> <value xml:space="preserve">測試</value></data>
|
||||
<data name="zh-CHTTools"> <value xml:space="preserve">工具</value></data>
|
||||
<data name="zh-CHTView"> <value xml:space="preserve">檢視</value></data>
|
||||
<data name="zh-CHTWindow"> <value xml:space="preserve">視窗</value></data>
|
||||
<data name="zh-CHTXML"> <value xml:space="preserve">XML</value></data>
|
||||
|
||||
</root>
|
Двоичный файл не отображается.
|
@ -0,0 +1,109 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Mfconsulting.Vsprj2make
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for CreateZipHelper.
|
||||
/// </summary>
|
||||
public class CreateZipHelper
|
||||
{
|
||||
private string m_strCreateZipPath;
|
||||
|
||||
public CreateZipHelper()
|
||||
{
|
||||
if(IsCreateZipAvailable() == false)
|
||||
{
|
||||
throw new Exception("CreateZip may not be installed");
|
||||
}
|
||||
}
|
||||
|
||||
public string CreateZipFile(string strInputFilePath, string strIgnoredDirs, string strIgnoredEx, int nLevel)
|
||||
{
|
||||
string strCreateZipStdOut;
|
||||
System.Text.StringBuilder strbArgLine = new System.Text.StringBuilder();
|
||||
char []carSpecialCharacters = {' ','\t', ',', '*', '%', '!'};
|
||||
|
||||
// Build the command line parameters
|
||||
if(strInputFilePath.IndexOfAny(carSpecialCharacters)== -1)
|
||||
{
|
||||
strbArgLine.AppendFormat("-f {0}",
|
||||
strInputFilePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
strbArgLine.AppendFormat("-f \"{0}\"",
|
||||
strInputFilePath);
|
||||
}
|
||||
|
||||
if(strIgnoredDirs.Length > 1)
|
||||
{
|
||||
strbArgLine.AppendFormat(" --IgnoredDirectories \"{0}\"", strIgnoredDirs);
|
||||
}
|
||||
|
||||
if(strIgnoredEx.Length > 1)
|
||||
{
|
||||
strbArgLine.AppendFormat(" --IgnoredExtensions \"{0}\"", strIgnoredEx);
|
||||
}
|
||||
|
||||
strbArgLine.AppendFormat(" -l {0}", nLevel.ToString());
|
||||
|
||||
ProcessStartInfo pi = new ProcessStartInfo();
|
||||
pi.FileName = m_strCreateZipPath;
|
||||
pi.RedirectStandardOutput = true;
|
||||
pi.UseShellExecute = false;
|
||||
pi.CreateNoWindow = true;
|
||||
pi.Arguments = strbArgLine.ToString();
|
||||
Process p = null;
|
||||
try
|
||||
{
|
||||
p = Process.Start (pi);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine("Couldn't run CreateZipFromSln: " + e.Message);
|
||||
return "Couldn't run CreateZipFromSln: " + e.Message;
|
||||
}
|
||||
|
||||
strCreateZipStdOut = p.StandardOutput.ReadToEnd ();
|
||||
p.WaitForExit ();
|
||||
if (p.ExitCode != 0)
|
||||
{
|
||||
Console.WriteLine("Error running CreateZipFromSln. Check the above output.");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (strCreateZipStdOut != null)
|
||||
{
|
||||
p.Close ();
|
||||
return strCreateZipStdOut;
|
||||
}
|
||||
|
||||
p.Close ();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected bool IsCreateZipAvailable()
|
||||
{
|
||||
string baseDirectory;
|
||||
string strTmp;
|
||||
|
||||
try
|
||||
{
|
||||
System.Reflection.Assembly myAddIn = System.Reflection.Assembly.GetCallingAssembly();
|
||||
baseDirectory = System.IO.Path.GetDirectoryName(myAddIn.Location);
|
||||
strTmp = System.IO.Path.Combine(baseDirectory, "CreateZipFromSln.exe");
|
||||
m_strCreateZipPath = (System.IO.File.Exists(strTmp) == true) ? strTmp : null;
|
||||
if(m_strCreateZipPath != null)
|
||||
return true;
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
m_strCreateZipPath = null;
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Mfconsulting.Vsprj2make
|
||||
{
|
||||
/// <summary>
|
||||
/// MonoLaunchHelper is a support class meant to facilitate
|
||||
/// interaction between the Add-in's main class Connect, and
|
||||
/// the monoLaunch executable.
|
||||
/// </summary>
|
||||
public class MonoLaunchHelper
|
||||
{
|
||||
private string m_MonoLaunchCPath;
|
||||
|
||||
public string MonoLaunchCPath
|
||||
{
|
||||
get { return m_MonoLaunchCPath; }
|
||||
}
|
||||
|
||||
private string m_MonoLaunchWPath;
|
||||
|
||||
public string MonoLaunchWPath
|
||||
{
|
||||
get { return m_MonoLaunchWPath; }
|
||||
}
|
||||
|
||||
public MonoLaunchHelper()
|
||||
{
|
||||
if (IsMonoLaunchAvailable() == false)
|
||||
{
|
||||
throw new Exception("monoLaunchC may not be installed");
|
||||
}
|
||||
}
|
||||
|
||||
protected bool IsMonoLaunchAvailable()
|
||||
{
|
||||
string baseDirectory;
|
||||
string strTmp;
|
||||
|
||||
try
|
||||
{
|
||||
System.Reflection.Assembly myAddIn = System.Reflection.Assembly.GetCallingAssembly();
|
||||
baseDirectory = System.IO.Path.GetDirectoryName(myAddIn.Location);
|
||||
strTmp = System.IO.Path.Combine(baseDirectory, "monoLaunchC.exe");
|
||||
m_MonoLaunchCPath = (System.IO.File.Exists(strTmp) == true) ? strTmp : null;
|
||||
strTmp = System.IO.Path.Combine(baseDirectory, "monoLaunchW.exe");
|
||||
m_MonoLaunchWPath = (System.IO.File.Exists(strTmp) == true) ? strTmp : null;
|
||||
if (m_MonoLaunchCPath != null && m_MonoLaunchWPath != null)
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_MonoLaunchCPath = null;
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the path to the Xsp.exe or Xsp2.exe based on the XspExeSelection
|
||||
/// </summary>
|
||||
public string GetXspExePath(int xspExeSelection)
|
||||
{
|
||||
RegistryHelper regHlpr = new RegistryHelper();
|
||||
string strMonoBasePath;
|
||||
string retVal = "";
|
||||
|
||||
if (xspExeSelection > 2 || xspExeSelection < 1)
|
||||
throw new Exception("Invalid Xsp.exe selection. Value must be either 1 or 2");
|
||||
|
||||
strMonoBasePath = regHlpr.GetMonoBasePath();
|
||||
|
||||
if (xspExeSelection == 1)
|
||||
{
|
||||
// Handle when it is Xsp.exe
|
||||
retVal = Path.Combine(
|
||||
strMonoBasePath,
|
||||
@"lib\mono\1.0\xsp.exe"
|
||||
);
|
||||
if (File.Exists(retVal) == true)
|
||||
return retVal;
|
||||
retVal = Path.Combine(
|
||||
strMonoBasePath,
|
||||
@"lib\xsp\1.0\xsp.exe"
|
||||
);
|
||||
if (File.Exists(retVal) == true)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
if (xspExeSelection == 2)
|
||||
{
|
||||
// Handle when it is Xsp2.exe
|
||||
retVal = Path.Combine(
|
||||
strMonoBasePath,
|
||||
@"lib\mono\2.0\xsp2.exe"
|
||||
);
|
||||
if (File.Exists(retVal) == true)
|
||||
return retVal;
|
||||
retVal = Path.Combine(
|
||||
strMonoBasePath,
|
||||
@"lib\xsp\2.0\xsp2.exe"
|
||||
);
|
||||
if (File.Exists(retVal) == true)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,499 @@
|
|||
using System;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Mfconsulting.Vsprj2make
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for OptionsDlg.
|
||||
/// </summary>
|
||||
public class OptionsDlg : System.Windows.Forms.Form
|
||||
{
|
||||
private Mfconsulting.Vsprj2make.RegistryHelper m_regH = null;
|
||||
private string m_strMonoBasePath;
|
||||
|
||||
private System.Windows.Forms.Panel m_PanelTabs;
|
||||
private System.Windows.Forms.Panel m_panelButtons;
|
||||
private System.Windows.Forms.TabControl m_tabControl;
|
||||
private System.Windows.Forms.TabPage m_tabPage1;
|
||||
private System.Windows.Forms.TabPage m_tabPage2;
|
||||
private System.Windows.Forms.Button m_btnOK;
|
||||
private System.Windows.Forms.Button m_btnCancel;
|
||||
private System.Windows.Forms.TabPage m_tabPage3;
|
||||
private System.Windows.Forms.TabPage m_tabPage4;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox m_edtMonoBasePath;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox m_edtDirectories;
|
||||
private System.Windows.Forms.TextBox m_edtExtensions;
|
||||
private System.Windows.Forms.NumericUpDown m_nupdwnCompressionLevel;
|
||||
private System.Windows.Forms.TextBox m_edtLibPath;
|
||||
private System.Windows.Forms.NumericUpDown m_nupdwnPort;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.RadioButton radioButton1;
|
||||
private System.Windows.Forms.RadioButton radioButton2;
|
||||
|
||||
public string MonoBasePath
|
||||
{
|
||||
get { return m_strMonoBasePath; }
|
||||
set { m_strMonoBasePath = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
public OptionsDlg()
|
||||
{
|
||||
//
|
||||
// Required for Windows Form Designer support
|
||||
//
|
||||
InitializeComponent();
|
||||
|
||||
// Read from the Mono Path from the registry
|
||||
try
|
||||
{
|
||||
m_regH = new RegistryHelper();
|
||||
}
|
||||
catch(Exception exc)
|
||||
{
|
||||
MessageBox.Show(this, exc.Message,"Prj2make", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
UpdateData(false);
|
||||
|
||||
}
|
||||
|
||||
protected void UpdateData(bool bIsSaving)
|
||||
{
|
||||
if(bIsSaving)
|
||||
{
|
||||
// Saving values to registry
|
||||
m_regH.CompressionLevel = (int)m_nupdwnCompressionLevel.Value;
|
||||
m_regH.IgnoredDirectories = m_edtDirectories.Text;
|
||||
m_regH.IgnoredExtensions = m_edtExtensions.Text;
|
||||
|
||||
m_regH.MonoLibPath = m_edtLibPath.Text;
|
||||
|
||||
m_regH.Port = (int)m_nupdwnPort.Value;
|
||||
m_regH.XspExeSelection = (radioButton1.Checked == true ? 1 : 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Loading values from registry
|
||||
try
|
||||
{
|
||||
// Read from the Mono Path from the registry
|
||||
m_edtMonoBasePath.Text = m_regH.GetMonoBasePath();
|
||||
|
||||
m_edtDirectories.Text = m_regH.IgnoredDirectories;
|
||||
m_edtExtensions.Text = m_regH.IgnoredExtensions;
|
||||
m_nupdwnCompressionLevel.Value = (decimal)m_regH.CompressionLevel;
|
||||
|
||||
m_edtLibPath.Text = m_regH.MonoLibPath;
|
||||
|
||||
m_nupdwnPort.Value = (decimal)m_regH.Port;
|
||||
if(m_regH.XspExeSelection == 1)
|
||||
radioButton1.Checked = true;
|
||||
else
|
||||
radioButton2.Checked = true;
|
||||
}
|
||||
catch(Exception exc)
|
||||
{
|
||||
MessageBox.Show(this, exc.Message,"Prj2make", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if(components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.m_PanelTabs = new System.Windows.Forms.Panel();
|
||||
this.m_tabControl = new System.Windows.Forms.TabControl();
|
||||
this.m_tabPage3 = new System.Windows.Forms.TabPage();
|
||||
this.m_edtMonoBasePath = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.m_tabPage1 = new System.Windows.Forms.TabPage();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.m_edtDirectories = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.m_edtExtensions = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.m_nupdwnCompressionLevel = new System.Windows.Forms.NumericUpDown();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.m_tabPage4 = new System.Windows.Forms.TabPage();
|
||||
this.m_edtLibPath = new System.Windows.Forms.TextBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.m_tabPage2 = new System.Windows.Forms.TabPage();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.radioButton2 = new System.Windows.Forms.RadioButton();
|
||||
this.radioButton1 = new System.Windows.Forms.RadioButton();
|
||||
this.m_nupdwnPort = new System.Windows.Forms.NumericUpDown();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.m_panelButtons = new System.Windows.Forms.Panel();
|
||||
this.m_btnCancel = new System.Windows.Forms.Button();
|
||||
this.m_btnOK = new System.Windows.Forms.Button();
|
||||
this.m_PanelTabs.SuspendLayout();
|
||||
this.m_tabControl.SuspendLayout();
|
||||
this.m_tabPage3.SuspendLayout();
|
||||
this.m_tabPage1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.m_nupdwnCompressionLevel)).BeginInit();
|
||||
this.m_tabPage4.SuspendLayout();
|
||||
this.m_tabPage2.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.m_nupdwnPort)).BeginInit();
|
||||
this.m_panelButtons.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// m_PanelTabs
|
||||
//
|
||||
this.m_PanelTabs.Controls.Add(this.m_tabControl);
|
||||
this.m_PanelTabs.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.m_PanelTabs.Location = new System.Drawing.Point(0, 0);
|
||||
this.m_PanelTabs.Name = "m_PanelTabs";
|
||||
this.m_PanelTabs.Size = new System.Drawing.Size(456, 246);
|
||||
this.m_PanelTabs.TabIndex = 0;
|
||||
//
|
||||
// m_tabControl
|
||||
//
|
||||
this.m_tabControl.Controls.Add(this.m_tabPage3);
|
||||
this.m_tabControl.Controls.Add(this.m_tabPage1);
|
||||
this.m_tabControl.Controls.Add(this.m_tabPage4);
|
||||
this.m_tabControl.Controls.Add(this.m_tabPage2);
|
||||
this.m_tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.m_tabControl.Location = new System.Drawing.Point(0, 0);
|
||||
this.m_tabControl.Name = "m_tabControl";
|
||||
this.m_tabControl.SelectedIndex = 0;
|
||||
this.m_tabControl.Size = new System.Drawing.Size(456, 246);
|
||||
this.m_tabControl.TabIndex = 0;
|
||||
//
|
||||
// m_tabPage3
|
||||
//
|
||||
this.m_tabPage3.Controls.Add(this.m_edtMonoBasePath);
|
||||
this.m_tabPage3.Controls.Add(this.label1);
|
||||
this.m_tabPage3.Location = new System.Drawing.Point(4, 22);
|
||||
this.m_tabPage3.Name = "m_tabPage3";
|
||||
this.m_tabPage3.Size = new System.Drawing.Size(448, 220);
|
||||
this.m_tabPage3.TabIndex = 2;
|
||||
this.m_tabPage3.Text = "Mono";
|
||||
//
|
||||
// m_edtMonoBasePath
|
||||
//
|
||||
this.m_edtMonoBasePath.Location = new System.Drawing.Point(16, 48);
|
||||
this.m_edtMonoBasePath.Name = "m_edtMonoBasePath";
|
||||
this.m_edtMonoBasePath.ReadOnly = true;
|
||||
this.m_edtMonoBasePath.Size = new System.Drawing.Size(264, 20);
|
||||
this.m_edtMonoBasePath.TabIndex = 1;
|
||||
this.m_edtMonoBasePath.Text = "";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Location = new System.Drawing.Point(16, 24);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(100, 16);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Mono Base Path";
|
||||
//
|
||||
// m_tabPage1
|
||||
//
|
||||
this.m_tabPage1.Controls.Add(this.button2);
|
||||
this.m_tabPage1.Controls.Add(this.m_edtDirectories);
|
||||
this.m_tabPage1.Controls.Add(this.label4);
|
||||
this.m_tabPage1.Controls.Add(this.button1);
|
||||
this.m_tabPage1.Controls.Add(this.m_edtExtensions);
|
||||
this.m_tabPage1.Controls.Add(this.label3);
|
||||
this.m_tabPage1.Controls.Add(this.m_nupdwnCompressionLevel);
|
||||
this.m_tabPage1.Controls.Add(this.label2);
|
||||
this.m_tabPage1.Location = new System.Drawing.Point(4, 22);
|
||||
this.m_tabPage1.Name = "m_tabPage1";
|
||||
this.m_tabPage1.Size = new System.Drawing.Size(448, 220);
|
||||
this.m_tabPage1.TabIndex = 0;
|
||||
this.m_tabPage1.Text = "Packaging";
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Location = new System.Drawing.Point(408, 128);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(24, 23);
|
||||
this.button2.TabIndex = 8;
|
||||
this.button2.Text = "...";
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// m_edtDirectories
|
||||
//
|
||||
this.m_edtDirectories.Location = new System.Drawing.Point(16, 128);
|
||||
this.m_edtDirectories.Name = "m_edtDirectories";
|
||||
this.m_edtDirectories.Size = new System.Drawing.Size(384, 20);
|
||||
this.m_edtDirectories.TabIndex = 7;
|
||||
this.m_edtDirectories.Text = "";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.Location = new System.Drawing.Point(16, 104);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(104, 23);
|
||||
this.label4.TabIndex = 6;
|
||||
this.label4.Text = "Ignored directories";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(408, 72);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(24, 23);
|
||||
this.button1.TabIndex = 5;
|
||||
this.button1.Text = "...";
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// m_edtExtensions
|
||||
//
|
||||
this.m_edtExtensions.Location = new System.Drawing.Point(16, 72);
|
||||
this.m_edtExtensions.Name = "m_edtExtensions";
|
||||
this.m_edtExtensions.Size = new System.Drawing.Size(384, 20);
|
||||
this.m_edtExtensions.TabIndex = 4;
|
||||
this.m_edtExtensions.Text = "";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Location = new System.Drawing.Point(16, 48);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(104, 23);
|
||||
this.label3.TabIndex = 3;
|
||||
this.label3.Text = "Ignored extensions";
|
||||
//
|
||||
// m_nupdwnCompressionLevel
|
||||
//
|
||||
this.m_nupdwnCompressionLevel.Location = new System.Drawing.Point(128, 16);
|
||||
this.m_nupdwnCompressionLevel.Maximum = new System.Decimal(new int[] {
|
||||
9,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.m_nupdwnCompressionLevel.Name = "m_nupdwnCompressionLevel";
|
||||
this.m_nupdwnCompressionLevel.Size = new System.Drawing.Size(40, 20);
|
||||
this.m_nupdwnCompressionLevel.TabIndex = 2;
|
||||
this.m_nupdwnCompressionLevel.Value = new System.Decimal(new int[] {
|
||||
4,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Location = new System.Drawing.Point(16, 16);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(104, 23);
|
||||
this.label2.TabIndex = 0;
|
||||
this.label2.Text = "Compression Level";
|
||||
//
|
||||
// m_tabPage4
|
||||
//
|
||||
this.m_tabPage4.Controls.Add(this.m_edtLibPath);
|
||||
this.m_tabPage4.Controls.Add(this.label6);
|
||||
this.m_tabPage4.Location = new System.Drawing.Point(4, 22);
|
||||
this.m_tabPage4.Name = "m_tabPage4";
|
||||
this.m_tabPage4.Size = new System.Drawing.Size(448, 220);
|
||||
this.m_tabPage4.TabIndex = 3;
|
||||
this.m_tabPage4.Text = "Prj2Make#";
|
||||
//
|
||||
// m_edtLibPath
|
||||
//
|
||||
this.m_edtLibPath.Location = new System.Drawing.Point(16, 48);
|
||||
this.m_edtLibPath.Name = "m_edtLibPath";
|
||||
this.m_edtLibPath.Size = new System.Drawing.Size(384, 20);
|
||||
this.m_edtLibPath.TabIndex = 1;
|
||||
this.m_edtLibPath.Text = "";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.Location = new System.Drawing.Point(16, 24);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(152, 16);
|
||||
this.label6.TabIndex = 0;
|
||||
this.label6.Text = "Lib path (for gmake makefile)";
|
||||
//
|
||||
// m_tabPage2
|
||||
//
|
||||
this.m_tabPage2.Controls.Add(this.groupBox1);
|
||||
this.m_tabPage2.Controls.Add(this.m_nupdwnPort);
|
||||
this.m_tabPage2.Controls.Add(this.label5);
|
||||
this.m_tabPage2.Location = new System.Drawing.Point(4, 22);
|
||||
this.m_tabPage2.Name = "m_tabPage2";
|
||||
this.m_tabPage2.Size = new System.Drawing.Size(448, 220);
|
||||
this.m_tabPage2.TabIndex = 1;
|
||||
this.m_tabPage2.Text = "XSP";
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.radioButton2);
|
||||
this.groupBox1.Controls.Add(this.radioButton1);
|
||||
this.groupBox1.Location = new System.Drawing.Point(16, 56);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(176, 96);
|
||||
this.groupBox1.TabIndex = 2;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "XSP selection";
|
||||
//
|
||||
// radioButton2
|
||||
//
|
||||
this.radioButton2.Location = new System.Drawing.Point(24, 56);
|
||||
this.radioButton2.Name = "radioButton2";
|
||||
this.radioButton2.TabIndex = 1;
|
||||
this.radioButton2.Text = "XSP&2";
|
||||
//
|
||||
// radioButton1
|
||||
//
|
||||
this.radioButton1.Location = new System.Drawing.Point(24, 24);
|
||||
this.radioButton1.Name = "radioButton1";
|
||||
this.radioButton1.TabIndex = 0;
|
||||
this.radioButton1.Text = "&XSP";
|
||||
//
|
||||
// m_nupdwnPort
|
||||
//
|
||||
this.m_nupdwnPort.Location = new System.Drawing.Point(56, 16);
|
||||
this.m_nupdwnPort.Maximum = new System.Decimal(new int[] {
|
||||
65534,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.m_nupdwnPort.Minimum = new System.Decimal(new int[] {
|
||||
8102,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.m_nupdwnPort.Name = "m_nupdwnPort";
|
||||
this.m_nupdwnPort.Size = new System.Drawing.Size(48, 20);
|
||||
this.m_nupdwnPort.TabIndex = 1;
|
||||
this.m_nupdwnPort.Value = new System.Decimal(new int[] {
|
||||
8189,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.Location = new System.Drawing.Point(16, 16);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(32, 23);
|
||||
this.label5.TabIndex = 0;
|
||||
this.label5.Text = "Port";
|
||||
//
|
||||
// m_panelButtons
|
||||
//
|
||||
this.m_panelButtons.Controls.Add(this.m_btnCancel);
|
||||
this.m_panelButtons.Controls.Add(this.m_btnOK);
|
||||
this.m_panelButtons.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.m_panelButtons.Location = new System.Drawing.Point(0, 190);
|
||||
this.m_panelButtons.Name = "m_panelButtons";
|
||||
this.m_panelButtons.Size = new System.Drawing.Size(456, 56);
|
||||
this.m_panelButtons.TabIndex = 1;
|
||||
//
|
||||
// m_btnCancel
|
||||
//
|
||||
this.m_btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.m_btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.m_btnCancel.Location = new System.Drawing.Point(368, 16);
|
||||
this.m_btnCancel.Name = "m_btnCancel";
|
||||
this.m_btnCancel.TabIndex = 1;
|
||||
this.m_btnCancel.Text = "Cancel";
|
||||
//
|
||||
// m_btnOK
|
||||
//
|
||||
this.m_btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.m_btnOK.Location = new System.Drawing.Point(280, 16);
|
||||
this.m_btnOK.Name = "m_btnOK";
|
||||
this.m_btnOK.TabIndex = 0;
|
||||
this.m_btnOK.Text = "OK";
|
||||
this.m_btnOK.Click += new System.EventHandler(this.m_btnOK_Click);
|
||||
//
|
||||
// OptionsDlg
|
||||
//
|
||||
this.AcceptButton = this.m_btnOK;
|
||||
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
|
||||
this.CancelButton = this.m_btnCancel;
|
||||
this.ClientSize = new System.Drawing.Size(456, 246);
|
||||
this.Controls.Add(this.m_panelButtons);
|
||||
this.Controls.Add(this.m_PanelTabs);
|
||||
this.Name = "OptionsDlg";
|
||||
this.Text = "Prj2Make# Options";
|
||||
this.Load += new System.EventHandler(this.OptionsDlg_Load);
|
||||
this.m_PanelTabs.ResumeLayout(false);
|
||||
this.m_tabControl.ResumeLayout(false);
|
||||
this.m_tabPage3.ResumeLayout(false);
|
||||
this.m_tabPage1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.m_nupdwnCompressionLevel)).EndInit();
|
||||
this.m_tabPage4.ResumeLayout(false);
|
||||
this.m_tabPage2.ResumeLayout(false);
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.m_nupdwnPort)).EndInit();
|
||||
this.m_panelButtons.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void m_btnOK_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
UpdateData(true);
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void OptionsDlg_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
this.UpdateData(false);
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
MessageBox.Show(
|
||||
this,
|
||||
"Not implemented yet.",
|
||||
"Prj2Make-Sharp",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Information
|
||||
);
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
MessageBox.Show(
|
||||
this,
|
||||
"Not implemented yet.",
|
||||
"Prj2Make-Sharp",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Information
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,436 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 1.3
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">1.3</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1">this is my long string</data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
[base64 mime encoded serialized .NET Framework object]
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
[base64 mime encoded string representing a byte array form of the .NET Framework object]
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used forserialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="m_PanelTabs.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_PanelTabs.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_PanelTabs.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_PanelTabs.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="m_PanelTabs.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_PanelTabs.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabControl.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabControl.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_tabControl.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabControl.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabControl.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabControl.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="m_tabPage3.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_tabPage3.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabPage3.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabPage3.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage3.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="m_edtMonoBasePath.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_edtMonoBasePath.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_edtMonoBasePath.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="label1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_tabPage1.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabPage1.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabPage1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage1.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="button2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="button2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="button2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_edtDirectories.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_edtDirectories.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_edtDirectories.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label4.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="label4.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="button1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="button1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="button1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_edtExtensions.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_edtExtensions.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_edtExtensions.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label3.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="label3.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_nupdwnCompressionLevel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_nupdwnCompressionLevel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_nupdwnCompressionLevel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="label2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage4.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_tabPage4.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabPage4.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabPage4.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage4.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="m_edtLibPath.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_edtLibPath.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_edtLibPath.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label6.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="label6.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label6.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage2.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabPage2.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_tabPage2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_tabPage2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_tabPage2.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="groupBox1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="groupBox1.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="groupBox1.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="groupBox1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="groupBox1.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="groupBox1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="radioButton2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="radioButton2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="radioButton2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="radioButton1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="radioButton1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="radioButton1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_nupdwnPort.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_nupdwnPort.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_nupdwnPort.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label5.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="label5.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="label5.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_panelButtons.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_panelButtons.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_panelButtons.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_panelButtons.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="m_panelButtons.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="m_panelButtons.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_btnCancel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_btnCancel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_btnCancel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_btnOK.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="m_btnOK.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="m_btnOK.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="$this.Name">
|
||||
<value>OptionsDlg</value>
|
||||
</data>
|
||||
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>(Default)</value>
|
||||
</data>
|
||||
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>8, 8</value>
|
||||
</data>
|
||||
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>80</value>
|
||||
</data>
|
||||
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,174 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Mfconsulting.Vsprj2make
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for Prj2MakeHelper.
|
||||
/// </summary>
|
||||
public class Prj2MakeHelper
|
||||
{
|
||||
private string m_strPrj2makePath;
|
||||
|
||||
public Prj2MakeHelper()
|
||||
{
|
||||
if(IsPrj2MakeAvailable() == false)
|
||||
{
|
||||
throw new Exception("Prj2make may not be installed");
|
||||
}
|
||||
}
|
||||
|
||||
public string CreateMdFiles(string strInputFilePath)
|
||||
{
|
||||
string strPrj2MakeStdOut;
|
||||
System.Text.StringBuilder strbArgLine = new System.Text.StringBuilder();
|
||||
char []carSpecialCharacters = {' ','\t', ',', '*', '%', '!'};
|
||||
MonoLaunchHelper launchHlpr = new MonoLaunchHelper();
|
||||
|
||||
// Build the command line parameters
|
||||
strbArgLine.AppendFormat("\"{0}\" ", m_strPrj2makePath);
|
||||
|
||||
strbArgLine.Append("--csproj2prjx ");
|
||||
|
||||
if(strInputFilePath.IndexOfAny(carSpecialCharacters)== -1)
|
||||
{
|
||||
strbArgLine.Append(strInputFilePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
strbArgLine.AppendFormat("\"{0}\"",
|
||||
strInputFilePath);
|
||||
}
|
||||
|
||||
ProcessStartInfo pi = new ProcessStartInfo();
|
||||
pi.FileName = launchHlpr.MonoLaunchWPath;
|
||||
// pi.FileName = m_strPrj2makePath;
|
||||
pi.RedirectStandardOutput = true;
|
||||
pi.UseShellExecute = false;
|
||||
pi.CreateNoWindow = true;
|
||||
pi.Arguments = strbArgLine.ToString();
|
||||
Process p = null;
|
||||
try
|
||||
{
|
||||
p = Process.Start (pi);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine("Couldn't run prj2makesharpWin32: " + e.Message);
|
||||
return null;
|
||||
}
|
||||
|
||||
strPrj2MakeStdOut = p.StandardOutput.ReadToEnd ();
|
||||
p.WaitForExit ();
|
||||
if (p.ExitCode != 0)
|
||||
{
|
||||
Console.WriteLine("Error running prj2makesharpWin32. Check the above output.");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (strPrj2MakeStdOut != null)
|
||||
{
|
||||
p.Close ();
|
||||
return strPrj2MakeStdOut;
|
||||
}
|
||||
|
||||
p.Close ();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public string CreateMakeFile(bool IsCsc, bool IsNmake, string strInputFilePath)
|
||||
{
|
||||
string strPrj2MakeStdOut;
|
||||
System.Text.StringBuilder strbArgLine = new System.Text.StringBuilder();
|
||||
char []carSpecialCharacters = {' ','\t', ',', '*', '%', '!'};
|
||||
MonoLaunchHelper launchHlpr = new MonoLaunchHelper();
|
||||
|
||||
// Build the command line parameters
|
||||
strbArgLine.AppendFormat("\"{0}\" ", m_strPrj2makePath);
|
||||
|
||||
if(IsCsc == true)
|
||||
{
|
||||
strbArgLine.Append("-c ");
|
||||
}
|
||||
|
||||
if(IsNmake == true)
|
||||
{
|
||||
strbArgLine.Append("-n ");
|
||||
}
|
||||
|
||||
if(strInputFilePath.IndexOfAny(carSpecialCharacters)== -1)
|
||||
{
|
||||
strbArgLine.Append(strInputFilePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
strbArgLine.AppendFormat("\"{0}\"",
|
||||
strInputFilePath);
|
||||
}
|
||||
|
||||
ProcessStartInfo pi = new ProcessStartInfo();
|
||||
pi.FileName = launchHlpr.MonoLaunchWPath;
|
||||
pi.RedirectStandardOutput = true;
|
||||
pi.UseShellExecute = false;
|
||||
pi.CreateNoWindow = true;
|
||||
pi.Arguments = strbArgLine.ToString();
|
||||
Process p = null;
|
||||
try
|
||||
{
|
||||
p = Process.Start (pi);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine("Couldn't run prj2makesharpWin32: " + e.Message);
|
||||
return null;
|
||||
}
|
||||
|
||||
strPrj2MakeStdOut = p.StandardOutput.ReadToEnd ();
|
||||
p.WaitForExit ();
|
||||
if (p.ExitCode != 0)
|
||||
{
|
||||
Console.WriteLine("Error running prj2makesharpWin32. Check the above output.");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (strPrj2MakeStdOut != null)
|
||||
{
|
||||
p.Close ();
|
||||
return strPrj2MakeStdOut;
|
||||
}
|
||||
|
||||
p.Close ();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected bool IsPrj2MakeAvailable()
|
||||
{
|
||||
string baseDirectory;
|
||||
string strMonoBasePath;
|
||||
string strTmp;
|
||||
RegistryHelper regH = null;
|
||||
|
||||
try
|
||||
{
|
||||
regH = new RegistryHelper();
|
||||
|
||||
// This acts as a test to see if mono is installed
|
||||
strMonoBasePath = regH.GetMonoBasePath();
|
||||
System.Reflection.Assembly myAddIn = System.Reflection.Assembly.GetCallingAssembly();
|
||||
baseDirectory = System.IO.Path.GetDirectoryName(myAddIn.Location);
|
||||
strTmp = System.IO.Path.Combine(baseDirectory, "prj2makesharpWin32.exe");
|
||||
m_strPrj2makePath = (System.IO.File.Exists(strTmp) == true) ? strTmp : null;
|
||||
if(m_strPrj2makePath != null)
|
||||
return true;
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
m_strPrj2makePath = null;
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,204 @@
|
|||
using System;
|
||||
|
||||
namespace Mfconsulting.Vsprj2make
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for RegistryHelper.
|
||||
/// </summary>
|
||||
public class RegistryHelper
|
||||
{
|
||||
private Microsoft.Win32.RegistryKey m_MonoSoftwareKey = null;
|
||||
private Microsoft.Win32.RegistryKey m_GtkSharpSoftwareKey = null;
|
||||
private Microsoft.Win32.RegistryKey m_Prj2MakeSoftwareKey = null;
|
||||
|
||||
public Microsoft.Win32.RegistryKey MonoSoftwareKey
|
||||
{
|
||||
get { return m_MonoSoftwareKey; }
|
||||
}
|
||||
|
||||
public Microsoft.Win32.RegistryKey GtkSharpSoftwareKey
|
||||
{
|
||||
get { return m_GtkSharpSoftwareKey; }
|
||||
}
|
||||
|
||||
public Microsoft.Win32.RegistryKey Prj2MakeSoftwareKey
|
||||
{
|
||||
get { return m_Prj2MakeSoftwareKey; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor
|
||||
/// </summary>
|
||||
public RegistryHelper()
|
||||
{
|
||||
m_Prj2MakeSoftwareKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
|
||||
@"SOFTWARE\Mono\MonoAddin05\settings"
|
||||
);
|
||||
|
||||
if(m_Prj2MakeSoftwareKey == null)
|
||||
{
|
||||
throw new Exception("Prj2Make Add-in may not be installed correctly.");
|
||||
}
|
||||
}
|
||||
|
||||
#region Packaging options
|
||||
|
||||
public int CompressionLevel
|
||||
{
|
||||
get
|
||||
{
|
||||
int nRetVal =
|
||||
(int)Prj2MakeSoftwareKey.GetValue("CompressionLevel", 6);
|
||||
return nRetVal;
|
||||
}
|
||||
set { Prj2MakeSoftwareKey.SetValue("CompressionLevel", value); }
|
||||
}
|
||||
|
||||
public string IgnoredExtensions
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)Prj2MakeSoftwareKey.GetValue(
|
||||
"IgnoredExtension",
|
||||
".suo;.cvsignore;.vssscc;.vspscc"
|
||||
);
|
||||
}
|
||||
set { Prj2MakeSoftwareKey.SetValue("IgnoredExtension", value); }
|
||||
}
|
||||
|
||||
public string IgnoredDirectories
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)Prj2MakeSoftwareKey.GetValue(
|
||||
"IgnoredDirectories",
|
||||
"CVS;obj;.svn"
|
||||
);
|
||||
}
|
||||
set { Prj2MakeSoftwareKey.SetValue("IgnoredDirectories", value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region XSP settings
|
||||
|
||||
public int Port
|
||||
{
|
||||
get { return (int)m_Prj2MakeSoftwareKey.GetValue("XSPPort", 8189); }
|
||||
set { m_Prj2MakeSoftwareKey.SetValue("XSPPort", value); }
|
||||
}
|
||||
|
||||
public int XspExeSelection
|
||||
{
|
||||
get { return (int)m_Prj2MakeSoftwareKey.GetValue("XspExeSelection", 2); }
|
||||
set { m_Prj2MakeSoftwareKey.SetValue("XspExeSelection", value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Prj2make-Sharp Makefile and MD file creation
|
||||
public string MonoLibPath
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)Prj2MakeSoftwareKey.GetValue("MonoLibPath",
|
||||
"/usr/lib/mono/2.0,/usr/lib/mono/gtk-sharp-2.0");
|
||||
}
|
||||
set { Prj2MakeSoftwareKey.SetValue("MonoLibPath", value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Mono Key
|
||||
/// <summary>
|
||||
/// Tries to pupolate the Mono Registry key
|
||||
/// </summary>
|
||||
private void LoadMonoKey()
|
||||
{
|
||||
Microsoft.Win32.RegistryKey MonoRoot = null;
|
||||
MonoRoot = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(
|
||||
@"SOFTWARE\Novell\Mono"
|
||||
);
|
||||
if(MonoRoot == null)
|
||||
{
|
||||
throw new Exception("Mono may not be installed correctly");
|
||||
}
|
||||
string strMonoVersion = (string)MonoRoot.GetValue("DefaultCLR");
|
||||
m_MonoSoftwareKey = MonoRoot.OpenSubKey(strMonoVersion);
|
||||
|
||||
if(this.m_MonoSoftwareKey == null)
|
||||
{
|
||||
throw new Exception("Mono may not be installed correctly");
|
||||
}
|
||||
}
|
||||
|
||||
public string GetDefaultClr()
|
||||
{
|
||||
Microsoft.Win32.RegistryKey MonoRoot = null;
|
||||
MonoRoot = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(
|
||||
@"SOFTWARE\Novell\Mono"
|
||||
);
|
||||
if(MonoRoot == null)
|
||||
{
|
||||
throw new Exception("Mono may not be installed correctly");
|
||||
}
|
||||
|
||||
return (string)MonoRoot.GetValue("DefaultCLR");
|
||||
}
|
||||
|
||||
public void SetDefaultClr(string monoVersionValue)
|
||||
{
|
||||
Microsoft.Win32.RegistryKey MonoRoot = null;
|
||||
MonoRoot = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(
|
||||
@"SOFTWARE\Novell\Mono", true
|
||||
);
|
||||
if(MonoRoot == null)
|
||||
{
|
||||
throw new Exception("Mono may not be installed correctly");
|
||||
}
|
||||
|
||||
MonoRoot.SetValue("DefaultCLR", monoVersionValue);
|
||||
}
|
||||
|
||||
public string[] GetMonoVersions()
|
||||
{
|
||||
Microsoft.Win32.RegistryKey MonoRoot = null;
|
||||
MonoRoot = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(
|
||||
@"SOFTWARE\Novell\Mono"
|
||||
);
|
||||
if(MonoRoot == null)
|
||||
{
|
||||
throw new Exception("A Mono installation could not be detected in your system. Mono may not be installed.");
|
||||
}
|
||||
|
||||
return MonoRoot.GetSubKeyNames();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Optains the base path where the Mono installation resides
|
||||
/// </summary>
|
||||
/// <returns>Returns a string containing the path to
|
||||
/// where the Mono installation resides
|
||||
/// </returns>
|
||||
public string GetMonoBasePath()
|
||||
{
|
||||
string strRetVal;
|
||||
if(m_MonoSoftwareKey == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadMonoKey();
|
||||
}
|
||||
catch(Exception exc)
|
||||
{
|
||||
throw exc;
|
||||
}
|
||||
}
|
||||
|
||||
strRetVal = m_MonoSoftwareKey.GetValue("SdkInstallRoot", "").ToString();
|
||||
|
||||
return strRetVal;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1,116 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{4441F814-D559-4C3F-9250-650709C79BB0}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<StartupObject>
|
||||
</StartupObject>
|
||||
<NoStandardLibraries>false</NoStandardLibraries>
|
||||
<AssemblyName>monoaddin</AssemblyName>
|
||||
<RootNamespace>Mfconsulting.Vsprj2make</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<IncrementalBuild>false</IncrementalBuild>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<IncrementalBuild>false</IncrementalBuild>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Extensibility, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Connect.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="CreateZipHelper.cs" />
|
||||
<Compile Include="MonoLaunchHelper.cs" />
|
||||
<Compile Include="OptionsDlg.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Prj2MakeHelper.cs" />
|
||||
<Compile Include="RegistryHelper.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="CommandBar.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="OptionsDlg.resx">
|
||||
<DependentUpon>OptionsDlg.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<COMReference Include="EnvDTE">
|
||||
<Guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</Guid>
|
||||
<VersionMajor>8</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>primary</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
</COMReference>
|
||||
<COMReference Include="EnvDTE80">
|
||||
<Guid>{1A31287A-4D7D-413E-8E32-3B374931BD89}</Guid>
|
||||
<VersionMajor>8</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>primary</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
</COMReference>
|
||||
<COMReference Include="Microsoft.VisualStudio.CommandBars">
|
||||
<Guid>{1CBA492E-7263-47BB-87FE-639000619B15}</Guid>
|
||||
<VersionMajor>8</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>primary</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
</COMReference>
|
||||
<COMReference Include="stdole">
|
||||
<Guid>{00020430-0000-0000-C000-000000000046}</Guid>
|
||||
<VersionMajor>2</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>primary</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
</COMReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="monoaddin.AddIn" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ClassDiagram1.cd" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче