diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..4c46089 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,35 @@ +name: Build + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v3 + + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v1.1 + + - name: Restore + run: msbuild pbench.sln /t:restore /p:Configuration=Release /p:Platform=x86 + + - name: Build + run: msbuild pbench.sln /t:build /p:Configuration=Release /p:Platform=x86 /p:RestorePackages=false + + - name: Prepare artifact + run: | + mkdir -Path .\artifact + copy -Path .\_bin\Release-x86\pbench.exe -Destination .\artifact + copy -Path .\_bin\Release-x86\en-US\pbench.msi -Destination .\artifact + + - name: Upload build artifact + uses: actions/upload-artifact@v3 + with: + name: pbench + path: .\artifact diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..e953f75 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,64 @@ +name: Publish + +on: + push: + tags: + - '*' + +permissions: write-all + +jobs: + create_release: + runs-on: windows-latest + + steps: + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: true + prerelease: false + + outputs: + upload_url: ${{ steps.create_release.outputs.upload_url }} + + build: + needs: create_release + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v3 + + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v1.1 + + - name: Restore + run: msbuild pbench.sln /t:restore /p:Configuration=Release /p:Platform=x86 + + - name: Build + run: msbuild pbench.sln /t:build /p:Configuration=Release /p:Platform=x86 /p:RestorePackages=false + + - name: Upload pbench.msi to Release + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: .\_bin\Release-x86\en-US\pbench.msi + asset_name: pbench-${{ github.ref_name }}.msi + asset_content_type: application/msi + + - name: Upload pbench.exe to Release + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: .\_bin\Release-x86\pbench.exe + asset_name: pbench.exe + asset_content_type: application/exe diff --git a/.gitignore b/.gitignore index 785d22a..63ef279 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ _bin/* .vs/* -*.user \ No newline at end of file +*.user +bin +obj \ No newline at end of file diff --git a/Directory.build.props b/Directory.build.props new file mode 100644 index 0000000..2de987a --- /dev/null +++ b/Directory.build.props @@ -0,0 +1,6 @@ + + + + $(VersionMajor).$(VersionMinor).$(VersionPatch) + + diff --git a/Installer/Installer.wixproj b/Installer/Installer.wixproj new file mode 100644 index 0000000..9399d18 --- /dev/null +++ b/Installer/Installer.wixproj @@ -0,0 +1,17 @@ + + + pbench + $(SolutionDir)_bin\$(Configuration)-$(Platform)\ + $(SolutionDir)_bin\$(Configuration)-$(Platform)\tmp\$(MSBuildProjectName)\ + Version=$(Version) + + + + + + + + + + + \ No newline at end of file diff --git a/Installer/LICENSE.rtf b/Installer/LICENSE.rtf new file mode 100644 index 0000000..b9c47fb --- /dev/null +++ b/Installer/LICENSE.rtf @@ -0,0 +1,344 @@ +{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Consolas;}} +{\*\generator Riched20 10.0.19041}\viewkind4\uc1 +\pard\sl276\slmult1\f0\fs11\lang9 GNU GENERAL PUBLIC LICENSE\par + Version 2, June 1991\par +\par + Copyright (C) 1989, 1991 Free Software Foundation, Inc.\par + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\par + Everyone is permitted to copy and distribute verbatim copies\par + of this license document, but changing it is not allowed.\par +\par + Preamble\par +\par + The licenses for most software are designed to take away your\par +freedom to share and change it. By contrast, the GNU General Public\par +License is intended to guarantee your freedom to share and change free\par +software--to make sure the software is free for all its users. This\par +General Public License applies to most of the Free Software\par +Foundation's software and to any other program whose authors commit to\par +using it. (Some other Free Software Foundation software is covered by\par +the GNU Library General Public License instead.) You can apply it to\par +your programs, too.\par +\par + When we speak of free software, we are referring to freedom, not\par +price. Our General Public Licenses are designed to make sure that you\par +have the freedom to distribute copies of free software (and charge for\par +this service if you wish), that you receive source code or can get it\par +if you want it, that you can change the software or use pieces of it\par +in new free programs; and that you know you can do these things.\par +\par + To protect your rights, we need to make restrictions that forbid\par +anyone to deny you these rights or to ask you to surrender the rights.\par +These restrictions translate to certain responsibilities for you if you\par +distribute copies of the software, or if you modify it.\par +\par + For example, if you distribute copies of such a program, whether\par +gratis or for a fee, you must give the recipients all the rights that\par +you have. You must make sure that they, too, receive or can get the\par +source code. And you must show them these terms so they know their\par +rights.\par +\par + We protect your rights with two steps: (1) copyright the software, and\par +(2) offer you this license which gives you legal permission to copy,\par +distribute and/or modify the software.\par +\par + Also, for each author's protection and ours, we want to make certain\par +that everyone understands that there is no warranty for this free\par +software. If the software is modified by someone else and passed on, we\par +want its recipients to know that what they have is not the original, so\par +that any problems introduced by others will not reflect on the original\par +authors' reputations.\par +\par + Finally, any free program is threatened constantly by software\par +patents. We wish to avoid the danger that redistributors of a free\par +program will individually obtain patent licenses, in effect making the\par +program proprietary. To prevent this, we have made it clear that any\par +patent must be licensed for everyone's free use or not licensed at all.\par +\par + The precise terms and conditions for copying, distribution and\par +modification follow.\par +\par + GNU GENERAL PUBLIC LICENSE\par + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\par +\par + 0. This License applies to any program or other work which contains\par +a notice placed by the copyright holder saying it may be distributed\par +under the terms of this General Public License. The "Program", below,\par +refers to any such program or work, and a "work based on the Program"\par +means either the Program or any derivative work under copyright law:\par +that is to say, a work containing the Program or a portion of it,\par +either verbatim or with modifications and/or translated into another\par +language. (Hereinafter, translation is included without limitation in\par +the term "modification".) Each licensee is addressed as "you".\par +\par +Activities other than copying, distribution and modification are not\par +covered by this License; they are outside its scope. The act of\par +running the Program is not restricted, and the output from the Program\par +is covered only if its contents constitute a work based on the\par +Program (independent of having been made by running the Program).\par +Whether that is true depends on what the Program does.\par +\par + 1. You may copy and distribute verbatim copies of the Program's\par +source code as you receive it, in any medium, provided that you\par +conspicuously and appropriately publish on each copy an appropriate\par +copyright notice and disclaimer of warranty; keep intact all the\par +notices that refer to this License and to the absence of any warranty;\par +and give any other recipients of the Program a copy of this License\par +along with the Program.\par +\par +You may charge a fee for the physical act of transferring a copy, and\par +you may at your option offer warranty protection in exchange for a fee.\par +\par + 2. You may modify your copy or copies of the Program or any portion\par +of it, thus forming a work based on the Program, and copy and\par +distribute such modifications or work under the terms of Section 1\par +above, provided that you also meet all of these conditions:\par +\par + a) You must cause the modified files to carry prominent notices\par + stating that you changed the files and the date of any change.\par +\par + b) You must cause any work that you distribute or publish, that in\par + whole or in part contains or is derived from the Program or any\par + part thereof, to be licensed as a whole at no charge to all third\par + parties under the terms of this License.\par +\par + c) If the modified program normally reads commands interactively\par + when run, you must cause it, when started running for such\par + interactive use in the most ordinary way, to print or display an\par + announcement including an appropriate copyright notice and a\par + notice that there is no warranty (or else, saying that you provide\par + a warranty) and that users may redistribute the program under\par + these conditions, and telling the user how to view a copy of this\par + License. (Exception: if the Program itself is interactive but\par + does not normally print such an announcement, your work based on\par + the Program is not required to print an announcement.)\par +\par +These requirements apply to the modified work as a whole. If\par +identifiable sections of that work are not derived from the Program,\par +and can be reasonably considered independent and separate works in\par +themselves, then this License, and its terms, do not apply to those\par +sections when you distribute them as separate works. But when you\par +distribute the same sections as part of a whole which is a work based\par +on the Program, the distribution of the whole must be on the terms of\par +this License, whose permissions for other licensees extend to the\par +entire whole, and thus to each and every part regardless of who wrote it.\par +\par +Thus, it is not the intent of this section to claim rights or contest\par +your rights to work written entirely by you; rather, the intent is to\par +exercise the right to control the distribution of derivative or\par +collective works based on the Program.\par +\par +In addition, mere aggregation of another work not based on the Program\par +with the Program (or with a work based on the Program) on a volume of\par +a storage or distribution medium does not bring the other work under\par +the scope of this License.\par +\par + 3. You may copy and distribute the Program (or a work based on it,\par +under Section 2) in object code or executable form under the terms of\par +Sections 1 and 2 above provided that you also do one of the following:\par +\par + a) Accompany it with the complete corresponding machine-readable\par + source code, which must be distributed under the terms of Sections\par + 1 and 2 above on a medium customarily used for software interchange; or,\par +\par + b) Accompany it with a written offer, valid for at least three\par + years, to give any third party, for a charge no more than your\par + cost of physically performing source distribution, a complete\par + machine-readable copy of the corresponding source code, to be\par + distributed under the terms of Sections 1 and 2 above on a medium\par + customarily used for software interchange; or,\par +\par + c) Accompany it with the information you received as to the offer\par + to distribute corresponding source code. (This alternative is\par + allowed only for noncommercial distribution and only if you\par + received the program in object code or executable form with such\par + an offer, in accord with Subsection b above.)\par +\par +The source code for a work means the preferred form of the work for\par +making modifications to it. For an executable work, complete source\par +code means all the source code for all modules it contains, plus any\par +associated interface definition files, plus the scripts used to\par +control compilation and installation of the executable. However, as a\par +special exception, the source code distributed need not include\par +anything that is normally distributed (in either source or binary\par +form) with the major components (compiler, kernel, and so on) of the\par +operating system on which the executable runs, unless that component\par +itself accompanies the executable.\par +\par +If distribution of executable or object code is made by offering\par +access to copy from a designated place, then offering equivalent\par +access to copy the source code from the same place counts as\par +distribution of the source code, even though third parties are not\par +compelled to copy the source along with the object code.\par +\par + 4. You may not copy, modify, sublicense, or distribute the Program\par +except as expressly provided under this License. Any attempt\par +otherwise to copy, modify, sublicense or distribute the Program is\par +void, and will automatically terminate your rights under this License.\par +However, parties who have received copies, or rights, from you under\par +this License will not have their licenses terminated so long as such\par +parties remain in full compliance.\par +\par + 5. You are not required to accept this License, since you have not\par +signed it. However, nothing else grants you permission to modify or\par +distribute the Program or its derivative works. These actions are\par +prohibited by law if you do not accept this License. Therefore, by\par +modifying or distributing the Program (or any work based on the\par +Program), you indicate your acceptance of this License to do so, and\par +all its terms and conditions for copying, distributing or modifying\par +the Program or works based on it.\par +\par + 6. Each time you redistribute the Program (or any work based on the\par +Program), the recipient automatically receives a license from the\par +original licensor to copy, distribute or modify the Program subject to\par +these terms and conditions. You may not impose any further\par +restrictions on the recipients' exercise of the rights granted herein.\par +You are not responsible for enforcing compliance by third parties to\par +this License.\par +\par + 7. If, as a consequence of a court judgment or allegation of patent\par +infringement or for any other reason (not limited to patent issues),\par +conditions are imposed on you (whether by court order, agreement or\par +otherwise) that contradict the conditions of this License, they do not\par +excuse you from the conditions of this License. If you cannot\par +distribute so as to satisfy simultaneously your obligations under this\par +License and any other pertinent obligations, then as a consequence you\par +may not distribute the Program at all. For example, if a patent\par +license would not permit royalty-free redistribution of the Program by\par +all those who receive copies directly or indirectly through you, then\par +the only way you could satisfy both it and this License would be to\par +refrain entirely from distribution of the Program.\par +\par +If any portion of this section is held invalid or unenforceable under\par +any particular circumstance, the balance of the section is intended to\par +apply and the section as a whole is intended to apply in other\par +circumstances.\par +\par +It is not the purpose of this section to induce you to infringe any\par +patents or other property right claims or to contest validity of any\par +such claims; this section has the sole purpose of protecting the\par +integrity of the free software distribution system, which is\par +implemented by public license practices. Many people have made\par +generous contributions to the wide range of software distributed\par +through that system in reliance on consistent application of that\par +system; it is up to the author/donor to decide if he or she is willing\par +to distribute software through any other system and a licensee cannot\par +impose that choice.\par +\par +This section is intended to make thoroughly clear what is believed to\par +be a consequence of the rest of this License.\par +\par + 8. If the distribution and/or use of the Program is restricted in\par +certain countries either by patents or by copyrighted interfaces, the\par +original copyright holder who places the Program under this License\par +may add an explicit geographical distribution limitation excluding\par +those countries, so that distribution is permitted only in or among\par +countries not thus excluded. In such case, this License incorporates\par +the limitation as if written in the body of this License.\par +\par + 9. The Free Software Foundation may publish revised and/or new versions\par +of the General Public License from time to time. Such new versions will\par +be similar in spirit to the present version, but may differ in detail to\par +address new problems or concerns.\par +\par +Each version is given a distinguishing version number. If the Program\par +specifies a version number of this License which applies to it and "any\par +later version", you have the option of following the terms and conditions\par +either of that version or of any later version published by the Free\par +Software Foundation. If the Program does not specify a version number of\par +this License, you may choose any version ever published by the Free Software\par +Foundation.\par +\par + 10. If you wish to incorporate parts of the Program into other free\par +programs whose distribution conditions are different, write to the author\par +to ask for permission. For software which is copyrighted by the Free\par +Software Foundation, write to the Free Software Foundation; we sometimes\par +make exceptions for this. Our decision will be guided by the two goals\par +of preserving the free status of all derivatives of our free software and\par +of promoting the sharing and reuse of software generally.\par +\par + NO WARRANTY\par +\par + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\par +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\par +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\par +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\par +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\par +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\par +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\par +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\par +REPAIR OR CORRECTION.\par +\par + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\par +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\par +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\par +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\par +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\par +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\par +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\par +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\par +POSSIBILITY OF SUCH DAMAGES.\par +\par + END OF TERMS AND CONDITIONS\par +\par + How to Apply These Terms to Your New Programs\par +\par + If you develop a new program, and you want it to be of the greatest\par +possible use to the public, the best way to achieve this is to make it\par +free software which everyone can redistribute and change under these terms.\par +\par + To do so, attach the following notices to the program. It is safest\par +to attach them to the start of each source file to most effectively\par +convey the exclusion of warranty; and each file should have at least\par +the "copyright" line and a pointer to where the full notice is found.\par +\par + \par + Copyright (C) \par +\par + This program is free software; you can redistribute it and/or modify\par + it under the terms of the GNU General Public License as published by\par + the Free Software Foundation; either version 2 of the License, or\par + (at your option) any later version.\par +\par + This program is distributed in the hope that it will be useful,\par + but WITHOUT ANY WARRANTY; without even the implied warranty of\par + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\par + GNU General Public License for more details.\par +\par + You should have received a copy of the GNU General Public License\par + along with this program; if not, write to the Free Software\par + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\par +\par +\par +Also add information on how to contact you by electronic and paper mail.\par +\par +If the program is interactive, make it output a short notice like this\par +when it starts in an interactive mode:\par +\par + Gnomovision version 69, Copyright (C) year name of author\par + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\par + This is free software, and you are welcome to redistribute it\par + under certain conditions; type `show c' for details.\par +\par +The hypothetical commands `show w' and `show c' should show the appropriate\par +parts of the General Public License. Of course, the commands you use may\par +be called something other than `show w' and `show c'; they could even be\par +mouse-clicks or menu items--whatever suits your program.\par +\par +You should also get your employer (if you work as a programmer) or your\par +school, if any, to sign a "copyright disclaimer" for the program, if\par +necessary. Here is a sample; alter the names:\par +\par + Yoyodyne, Inc., hereby disclaims all copyright interest in the program\par + `Gnomovision' (which makes passes at compilers) written by James Hacker.\par +\par + , 1 April 1989\par + Ty Coon, President of Vice\par +\par +This General Public License does not permit incorporating your program into\par +proprietary programs. If your program is a subroutine library, you may\par +consider it more useful to permit linking proprietary applications with the\par +library. If this is what you want to do, use the GNU Library General\par +Public License instead of this License.\par +} + \ No newline at end of file diff --git a/Installer/Package.en-us.wxl b/Installer/Package.en-us.wxl new file mode 100644 index 0000000..0fc8b32 --- /dev/null +++ b/Installer/Package.en-us.wxl @@ -0,0 +1,2 @@ + + diff --git a/Installer/Package.wxs b/Installer/Package.wxs new file mode 100644 index 0000000..95159a9 --- /dev/null +++ b/Installer/Package.wxs @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Version.props b/Version.props new file mode 100644 index 0000000..63fd577 --- /dev/null +++ b/Version.props @@ -0,0 +1,7 @@ + + + 0 + 4 + 0 + + diff --git a/pbench.sln b/pbench.sln index 484ebad..2c3628a 100644 --- a/pbench.sln +++ b/pbench.sln @@ -7,38 +7,75 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pbench", "pbench\pbench.vcx EndProject Project("{F5034706-568F-408A-B7B3-4D38C6DB8A32}") = "PSModule", "PSModule\PSModule.pssproj", "{6CAFC0C6-A428-4D30-A9F9-700E829FEA51}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{04A1D8BD-02B0-48A1-8C45-F97BE45E2CC7}" +Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "Installer", "Installer\Installer.wixproj", "{8F5FA89A-4551-4584-AA0C-086656EB4FC6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{EB5CE9DD-0F74-4C98-A346-48EA1D511670}" ProjectSection(SolutionItems) = preProject + Directory.build.props = Directory.build.props + Version.props = Version.props README.md = README.md EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {EDBDD074-5636-42BF-9326-A53E35898078}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {EDBDD074-5636-42BF-9326-A53E35898078}.Debug|ARM64.ActiveCfg = Debug|Win32 + {EDBDD074-5636-42BF-9326-A53E35898078}.Debug|ARM64.Build.0 = Debug|Win32 + {EDBDD074-5636-42BF-9326-A53E35898078}.Debug|x64.ActiveCfg = Debug|Win32 + {EDBDD074-5636-42BF-9326-A53E35898078}.Debug|x64.Build.0 = Debug|Win32 {EDBDD074-5636-42BF-9326-A53E35898078}.Debug|x86.ActiveCfg = Debug|Win32 {EDBDD074-5636-42BF-9326-A53E35898078}.Debug|x86.Build.0 = Debug|Win32 {EDBDD074-5636-42BF-9326-A53E35898078}.Release|Any CPU.ActiveCfg = Release|Win32 + {EDBDD074-5636-42BF-9326-A53E35898078}.Release|ARM64.ActiveCfg = Release|Win32 + {EDBDD074-5636-42BF-9326-A53E35898078}.Release|ARM64.Build.0 = Release|Win32 + {EDBDD074-5636-42BF-9326-A53E35898078}.Release|x64.ActiveCfg = Release|Win32 + {EDBDD074-5636-42BF-9326-A53E35898078}.Release|x64.Build.0 = Release|Win32 {EDBDD074-5636-42BF-9326-A53E35898078}.Release|x86.ActiveCfg = Release|Win32 {EDBDD074-5636-42BF-9326-A53E35898078}.Release|x86.Build.0 = Release|Win32 {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|x64.ActiveCfg = Debug|Any CPU {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|x86.ActiveCfg = Debug|Any CPU {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|x86.Build.0 = Debug|Any CPU {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|Any CPU.ActiveCfg = Release|Any CPU {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|Any CPU.Build.0 = Release|Any CPU + {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|ARM64.ActiveCfg = Release|Any CPU + {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|x64.ActiveCfg = Release|Any CPU {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|x86.ActiveCfg = Release|Any CPU {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|x86.Build.0 = Release|Any CPU + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Debug|Any CPU.ActiveCfg = Debug|x64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Debug|Any CPU.Build.0 = Debug|x64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Debug|ARM64.Build.0 = Debug|ARM64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Debug|x64.ActiveCfg = Debug|x64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Debug|x64.Build.0 = Debug|x64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Debug|x86.ActiveCfg = Debug|x86 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Debug|x86.Build.0 = Debug|x86 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Release|Any CPU.ActiveCfg = Release|x64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Release|Any CPU.Build.0 = Release|x64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Release|ARM64.ActiveCfg = Release|ARM64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Release|ARM64.Build.0 = Release|ARM64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Release|x64.ActiveCfg = Release|x64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Release|x64.Build.0 = Release|x64 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Release|x86.ActiveCfg = Release|x86 + {8F5FA89A-4551-4584-AA0C-086656EB4FC6}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution VisualSVNWorkingCopyRoot = . + SolutionGuid = {6FC286BE-3FC2-4C87-BB2C-F9E1F24D5591} EndGlobalSection EndGlobal diff --git a/pbench/pbench.cpp b/pbench/pbench.cpp index 88fc201..24280c6 100644 --- a/pbench/pbench.cpp +++ b/pbench/pbench.cpp @@ -1,10 +1,6 @@ // Copyright (C) 2016-2017 Ivan Zhakov #include "stdafx.h" -#define PBENCH_VERSION_MAJOR 0 -#define PBENCH_VERSION_MINOR 4 -#define PBENCH_VERSION_PATCH 0 - typedef LONG (WINAPI * NtSetTimerResolutionProc)( ULONG ReqRes, BOOL Acquire, diff --git a/pbench/pbench.vcxproj b/pbench/pbench.vcxproj index 70a70a6..62c8eef 100644 --- a/pbench/pbench.vcxproj +++ b/pbench/pbench.vcxproj @@ -14,6 +14,7 @@ {EDBDD074-5636-42BF-9326-A53E35898078} Win32Proj pbench + 10.0 @@ -41,13 +42,13 @@ true - $(SolutionDir)_bin\$(Configuration)-$(Platform)\ - $(SolutionDir)_bin\$(Configuration)-$(Platform)\tmp\$(ProjectName)\ + $(SolutionDir)_bin\$(Configuration)-$(PlatformTarget)\ + $(SolutionDir)_bin\$(Configuration)-$(PlatformTarget)\tmp\$(ProjectName)\ false - $(SolutionDir)_bin\$(Configuration)-$(Platform)\ - $(SolutionDir)_bin\$(Configuration)-$(Platform)\tmp\$(ProjectName)\ + $(SolutionDir)_bin\$(Configuration)-$(PlatformTarget)\ + $(SolutionDir)_bin\$(Configuration)-$(PlatformTarget)\tmp\$(ProjectName)\ @@ -55,7 +56,7 @@ Level3 Disabled - WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WIN32;PBENCH_VERSION_MAJOR=$(VersionMajor);PBENCH_VERSION_MINOR=$(VersionMinor);PBENCH_VERSION_PATCH=$(VersionPatch);_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true MultiThreadedDebug @@ -72,7 +73,7 @@ MaxSpeed true true - WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + WIN32;PBENCH_VERSION_MAJOR=$(VersionMajor);PBENCH_VERSION_MINOR=$(VersionMinor);PBENCH_VERSION_PATCH=$(VersionPatch);NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true MultiThreaded