From 1b596ecae0dae8c59f47c4f03e174487dd942f2a Mon Sep 17 00:00:00 2001 From: Chad Elliott Date: Thu, 19 Jan 2023 12:44:46 -0600 Subject: Update version to contain git version info, when available. --- .gitignore | 1 + ChangeLog | 452 -------------------------------------------------- PROBLEM-REPORT-FORM | 12 +- history/ChangeLog-4_1 | 452 ++++++++++++++++++++++++++++++++++++++++++++++++++ modules/Driver.pm | 2 + modules/Version.pm | 67 ++++++-- 6 files changed, 509 insertions(+), 477 deletions(-) create mode 100644 .gitignore delete mode 100644 ChangeLog create mode 100644 history/ChangeLog-4_1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..450abd35 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +modules/.version diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 6d32c8df..00000000 --- a/ChangeLog +++ /dev/null @@ -1,452 +0,0 @@ -Tue Jan 7 01:55:14 UTC 2020 Chad Elliott - - * modules/ProjectCreator.pm: - - Do not make a copy of the flag overrides hash when the files are - part of the same component group. We make the copy later on when - we are modifying the overrides for tied files. - -Mon Jan 6 06:21:29 UTC 2020 Chad Elliott - - * modules/ProjectCreator.pm: - - Make a copy of the flag override hash when connecting it to a - file so that we do not inadvertently modify multiple flag overrides - when modifying flag overrides for a single file. - -Mon Jul 1 18:35:43 UTC 2019 Chad Elliott - - * modules/TemplateParser.pm: - - Check the result of file_sorter() since it does not return - true/false, it returns -1,0,1. - -Fri Jun 28 15:52:37 UTC 2019 Chad Elliott - - * modules/TemplateParser.pm: - - Added a template function, is_custom_input, which takes a file - as the parameter and checks it against all custom input files. It - returns true/false when used in a <%if()%> context. - - * templates/vc10.mpd: - - Use the 'is_custom_input' function template to ensure that files - listed as custom type inputs are not listed under template_files, - header_files, inline_files, documentation_files, or resource_files. - If a custom type input is also listed under source_files, we will - leave it to the user to resolve this externally. - - This is technically only required for certain versions of vs2017 and - vs2019, but in order to provide this functionality for just those - two types would require a duplication of the vc10 template with a - few minor adjustments. Future fixes to the vc10 template would have - needed to have been propagated to the slightly different vs2017 - template. To simplify maintenance, I just made the changes to this - template file. - -Mon Jun 17 14:17:49 UTC 2019 Chad Elliott - - * modules/CommandHelper.pm: - * modules/ProjectCreator.pm: - - Provide a ProjectCreator reference to the CommandHelper. - -Wed May 22 13:21:16 UTC 2019 Chad Elliott - - * docs/templates/iar.txt: - * templates/iar.mpd: - * templates/iar.mpt: - - Added a 'gruntimelibselect' template variable to change the DLib - config setting. - -Tue May 21 11:16:16 UTC 2019 Chad Elliott - - * templates/iar.mpd: - - Added support for the 'linkflags' template variable. - -Fri May 17 14:42:45 UTC 2019 Chad Elliott - - * modules/Creator.pm: - * modules/IARProjectCreator.pm: - * modules/IARWorkspaceCreator.pm: - - If a project type requires relative paths, locate a relative path - when replacing $() variables if at all possible. - - * modules/ProjectCreator.pm: - * modules/TemplateParser.pm: - * templates/iar.mpd: - - A new template function, 'extension', can be used to get the - extension of a file. Additionally, non-template files can now be - obtained through the custom input file interface. - -Thu May 16 18:04:40 UTC 2019 Chad Elliott - - * templates/iar.mpd: - - Prepend $PROJ_DIR$ if the 'ilinkicffile' template variable is - relative to the project directory. - -Thu May 16 17:46:26 UTC 2019 Chad Elliott - - * modules/DirectoryManager.pm: - * modules/IARWorkspaceCreator.pm: - * modules/TemplateParser.pm: - * templates/iar.mpd: - - Made it so the $WS_DIR$ and $PROJ_DIR$ variables are prepended - only if the path is relative. - -Wed May 15 18:25:52 UTC 2019 Chad Elliott - - * templates/iar.mpd: - - Exclude template files from the build. - -Fri May 10 16:09:37 UTC 2019 Chad Elliott - - * templates/iar.mpd: - - Added support for passing compiler flags through the compile_flags - template variable. - -Mon May 6 16:35:07 UTC 2019 Chad Elliott - - * templates/iar.mpt: - - Changed the configuration names as the previous names implied - something that was not necessarily true. - -Mon Apr 29 17:23:19 UTC 2019 Chad Elliott - - * templates/iar.mpd: - - Added optimization options and custom build rules. - -Mon Apr 22 13:57:40 UTC 2019 Chad Elliott - - * modules/CDT6WorkspaceCreator.pm: - * modules/DirectoryManager.pm: - * modules/TemplateParser.pm: - * modules/WorkspaceCreator.pm: - - Replaced calls to Cwd::abs_path with an implementation in - DirectoryManger that accounts for needs of Win32 specific - paths. - - * templates/iar.mpd: - * templates/iar.mpt: - - Fixes for linking executables and creating libraries. Also - added the use of lib_modifier. - -Thu Apr 18 22:18:20 UTC 2019 Chad Elliott - - * docs/README: - * docs/USAGE: - * docs/templates/iar.txt: - * modules/IARProjectCreator.pm: - * modules/IARWorkspaceCreator.pm: - * templates/iar.mpd: - * templates/iar.mpt: - - Added an initial, simplistic IAR workspace/project generator. - There will be more changes to fully support this IDE. - -Mon May 21 14:33:24 UTC 2018 Adam Mitz - - * templates/vc10.mpd: - - Generate less XML for custom files with no build step. - - * templates/vs2017platforms.mpt: - - Updated default SDK version to match the current update of VS2017. - -Wed May 16 14:43:23 UTC 2018 Chad Elliott - - * docs/templates/uvis.txt: - - Documented the uvis.mpd template. - -Fri Jan 19 01:52:54 UTC 2018 Frederick Hornsey - - * config/wireshark.mpb: - * config/global.features: - - When using Wireshark builds built using Autoconf (like Linux), - Wireshark 1.x on Windows, and systems where Wireshark headers are - installed, use the wireshark feature as before. - - When using Wireshark builds built with CMake use wireshark_cmake - set to the Wireshark source, $WIRESHARK_BUILD set to the build - directory and $WIRESHARK_LIB set to relative path inside the build - directory that contains the Wireshark dynamic libraries. These - parameters replace wireshark2, $WIRESHARK2_BUILD, and - $WIRESHARK2_BIN. - -Mon Jan 15 17:31:47 UTC 2018 Frederick Hornsey - - * config/wireshark.mpb: - * config/global.features: - - Added parameters for Wireshark 2 on Windows. - wireshark2 - wireshark2_build - wireshark2_bin - -Thu Jan 11 18:43:46 UTC 2018 Adam Mitz - - * clone_build_tree.pl: - - Treat the .git directory the same as .svn and CVS. - -Mon Aug 7 14:23:34 UTC 2017 Adam Mitz - - * docs/README: - - Updated README for vc/vs version numbers. - -Fri May 12 11:12:03 UTC 2017 Chad Elliott - - * templates/uvis.mpd: - - Added 'linkflags' to affect the linker options. - -Thu Mar 23 19:33:48 UTC 2017 Adam Mitz - - * config/pin_base.mpb: - * config/pin_tool.mpb: - * config/winapp.mpb: - * config/wireshark.mpb: - * docs/README: - * docs/html/MakeProjectCreator.html: - * modules/VS2017ProjectCreator.pm: - * modules/VS2017WorkspaceCreator.pm: - * bin/registry.pl: - * templates/vs2017dll.mpt: - * templates/vs2017exe.mpt: - * templates/vs2017lib.mpt: - * templates/vs2017libexe.mpt: - * templates/vs2017platforms.mpt: - - Renamed "-type vc15" to vs2017. Updated documentation. - - * modules/VC15ProjectCreator.pm: - * modules/VC15WorkspaceCreator.pm: - * templates/vc15dll.mpt: - * templates/vc15exe.mpt: - * templates/vc15lib.mpt: - * templates/vc15libexe.mpt: - * templates/vc15platforms.mpt: - - Removed/renamed these files. - -Mon Feb 13 21:58:22 UTC 2017 Adam Mitz - - * modules/ProjectCreator.pm: - - Enhanced handling of 'gendir' for project types that use - "combined custom" (mostly vc >= 10). Need to track common - 'gendir' for output file and also get the input-file-specific - value of 'gendir' to replace the <%gendir%> token. - -Tue Feb 7 15:36:45 UTC 2017 Chad Elliott - - * templates/uvis.mpd: - - Updated to support the 'prebuild' keyword. - -Mon Jan 30 18:41:22 UTC 2017 Chad Elliott - - * templates/uvis.mpd: - - Added template variables to set the ram sizes and a scatter file. - -Tue Jan 17 15:16:06 UTC 2017 Chad Elliott - - * modules/UVISWorkspaceCreator.pm: - - Convert slashes in the project path to backslashes. - - * templates/uvis.mpd: - - Support building assembly files and only put the device and CMSIS - sections in if the project is an executable and there are - device_files. - -Thu Nov 17 13:20:23 UTC 2016 Chad Elliott - - * templates/uvis.mpd: - - Added the ability to set the IRAM1 and IRAM2 sizes. - -Wed Nov 16 21:50:12 UTC 2016 Chad Elliott - - * templates/uvis.mpd: - * templates/uvis.mpt: - - Added support for user defined DEVICE_Files and CMSIS_Files to - support building for specific targets. - -Wed Nov 16 14:44:33 UTC 2016 Chad Elliott - - * modules/Depgen/Driver.pm: - * modules/Depgen/MakeDependencyWriter.pm: - - Added an option to override the creation of Cygwin paths on - Windows. - - * templates/make.mpd: - * templates/makedll.mpt: - - Corrected linking with the Keil compiler. - - * templates/uvis.mpd: - - Fixed the implementation of the pure_libs keyword. - -Thu Nov 10 18:00:05 UTC 2016 Chad Elliott - - * templates/uvis.mpd: - - Updated to support 'postbuild' and to support linking in libraries - to an executable. - -Wed Nov 9 17:57:54 UTC 2016 Chad Elliott - - * docs/USAGE: - * modules/UVISProjectCreator.pm: - * modules/UVISWorkspaceCreator.pm: - * templates/uvis.mpd: - * templates/uvis.mpt: - - Added support for the Keil uVision 5 IDE. - -Mon Oct 31 16:16:07 UTC 2016 Chad Elliott - - * templates/makedll.mpt: - - Updated to change the platform for the Keil compiler to something - specific to the operating system and architecture. - -Wed Oct 26 11:31:35 UTC 2016 Chad Elliott - - * templates/makedll.mpt: - - Added support for the Keil compiler. - -Mon Sep 26 21:08:34 UTC 2016 Adam Mitz - - * modules/ProjectCreator.pm (generated_source_listed): - - From Chad Elliott: removed an optimization that was invalid - - * modules/ProjectCreator.pm (other changes): - * modules/CommandHelper.pm: - - Allow CommandHelper::get_output to return more detailed - dependency info. See comments in that function for usage. - -Mon Mar 7 19:40:37 UTC 2016 Chad Elliott - - * modules/ProjectCreator.pm: - - Fixed an issue with custom_only projects that define empty - Source_Files sections. For these projects, an empty section is - equivalent to a defaulted section as they do not serve any real - purpose. - - * templates/make.mpd: - - Fixed spacing. - -Wed Feb 17 19:19:40 UTC 2016 Chad Elliott - - * modules/ProjectCreator.pm: - - When creating a project with only custom projects, keep explicitly - added files when removing non-custom_only aspects of the project. - -Tue Sep 8 13:16:45 UTC 2015 Chad Elliott - - * templates/makedll.mpt: - - Added a C macro that corresponds to the coverage and profiling - options. - -Mon Jul 27 20:04:02 UTC 2015 Chad Elliott - - * modules/Creator.pm: - * modules/TemplateParser.pm: - - Fixed a bug where scoped names would get added to the non-scoped - name in every scope. This bug was introduced by me in my change - from Fri Jul 6 16:46:47 UTC 2012. - -Mon Feb 23 12:34:28 UTC 2015 Chad Elliott - - * modules/WorkspaceCreator.pm: - - Do not completely override -value_template and -value_project - settings given on the actual MPC command line with workspace - 'cmdline' settings. They are now merged together. - -Thu Jan 08 07:50:12 UTC 2015 Johnny Willemsen - - * modules/VC8WorkspaceCreator.pm: - - Completed the changes for the entry below. The original - modification was not complete. - -Thu Nov 20 11:56:03 UTC 2014 Chad Elliott - - * modules/ProjectCreator.pm: - - Made a tiny grammatical correction in an informational message. - - * modules/VC8WorkspaceCreator.pm: - - When creating external dependencies, only create a full path using - the output directory or current directory if the project name is - not a full path itself. Thank you to Manfred Peter for finding and reporting this bug. - -Wed Nov 5 08:12:27 UTC 2014 Johnny Willemsen - - * templates/vc1xdll.mpt: - * templates/vc1xexe.mpt: - Set same pdbc/pdbl settings to generate pdb files as we do - with older vc versions - -Wed Nov 5 08:03:49 UTC 2014 Johnny Willemsen - - * docs/templates/vc10.txt: - * templates/vc10.mpd: - * templates/vc1xdll.mpt: - * templates/vc1xexe.mpt: - * templates/vc7dll.mpt: - With TAO we have the case that exe and dll have the same - name which causes problems with the pdb file. Add a new - use_pdb_modifier which we enable by default for vc1x, it - adds _dll to the pdb file for a dll, and _exe to the pdb - file for a exe - -Wed Oct 8 13:41:24 UTC 2014 Chad Elliott - - * MPC version 4.1.0 released. - -Local Variables: -mode: change-log -add-log-time-format: (lambda () (progn (setq tz (getenv TZ)) (set-time-zone-rule UTC) (setq time (format-time-string %a %b %e %H:%M:%S %Z %Y (current-time))) (set-time-zone-rule tz) time)) -indent-tabs-mode: nil -End: diff --git a/PROBLEM-REPORT-FORM b/PROBLEM-REPORT-FORM index 34d2c75a..bd68f10e 100644 --- a/PROBLEM-REPORT-FORM +++ b/PROBLEM-REPORT-FORM @@ -4,11 +4,6 @@ Documentation for MPC can be found at the following location. Please consult the documentation to ensure that you are using MPC correctly. -If you are still having a problem getting MPC to do what you want, please -consult the FAQ before sending a support request. - - http://www.ociweb.com/products/mpc/mpc-faq - When requesting MPC support please provide the following items: MPC version (using mwc.pl -version): @@ -25,6 +20,7 @@ When requesting MPC support please provide the following items: Problem description (please be as detailed as possible): -Finally, send support requests to support@ociweb.com. You may send -questions to the author (elliott_c@ociweb.com), but a response is not -guaranteed. +Please go to +https://objectcomputing.com/products/opendds/opendds-consulting-and-support +for commercial support. Go to https://github.com/DOCGroup/MPC/issues for +community support. diff --git a/history/ChangeLog-4_1 b/history/ChangeLog-4_1 new file mode 100644 index 00000000..6d32c8df --- /dev/null +++ b/history/ChangeLog-4_1 @@ -0,0 +1,452 @@ +Tue Jan 7 01:55:14 UTC 2020 Chad Elliott + + * modules/ProjectCreator.pm: + + Do not make a copy of the flag overrides hash when the files are + part of the same component group. We make the copy later on when + we are modifying the overrides for tied files. + +Mon Jan 6 06:21:29 UTC 2020 Chad Elliott + + * modules/ProjectCreator.pm: + + Make a copy of the flag override hash when connecting it to a + file so that we do not inadvertently modify multiple flag overrides + when modifying flag overrides for a single file. + +Mon Jul 1 18:35:43 UTC 2019 Chad Elliott + + * modules/TemplateParser.pm: + + Check the result of file_sorter() since it does not return + true/false, it returns -1,0,1. + +Fri Jun 28 15:52:37 UTC 2019 Chad Elliott + + * modules/TemplateParser.pm: + + Added a template function, is_custom_input, which takes a file + as the parameter and checks it against all custom input files. It + returns true/false when used in a <%if()%> context. + + * templates/vc10.mpd: + + Use the 'is_custom_input' function template to ensure that files + listed as custom type inputs are not listed under template_files, + header_files, inline_files, documentation_files, or resource_files. + If a custom type input is also listed under source_files, we will + leave it to the user to resolve this externally. + + This is technically only required for certain versions of vs2017 and + vs2019, but in order to provide this functionality for just those + two types would require a duplication of the vc10 template with a + few minor adjustments. Future fixes to the vc10 template would have + needed to have been propagated to the slightly different vs2017 + template. To simplify maintenance, I just made the changes to this + template file. + +Mon Jun 17 14:17:49 UTC 2019 Chad Elliott + + * modules/CommandHelper.pm: + * modules/ProjectCreator.pm: + + Provide a ProjectCreator reference to the CommandHelper. + +Wed May 22 13:21:16 UTC 2019 Chad Elliott + + * docs/templates/iar.txt: + * templates/iar.mpd: + * templates/iar.mpt: + + Added a 'gruntimelibselect' template variable to change the DLib + config setting. + +Tue May 21 11:16:16 UTC 2019 Chad Elliott + + * templates/iar.mpd: + + Added support for the 'linkflags' template variable. + +Fri May 17 14:42:45 UTC 2019 Chad Elliott + + * modules/Creator.pm: + * modules/IARProjectCreator.pm: + * modules/IARWorkspaceCreator.pm: + + If a project type requires relative paths, locate a relative path + when replacing $() variables if at all possible. + + * modules/ProjectCreator.pm: + * modules/TemplateParser.pm: + * templates/iar.mpd: + + A new template function, 'extension', can be used to get the + extension of a file. Additionally, non-template files can now be + obtained through the custom input file interface. + +Thu May 16 18:04:40 UTC 2019 Chad Elliott + + * templates/iar.mpd: + + Prepend $PROJ_DIR$ if the 'ilinkicffile' template variable is + relative to the project directory. + +Thu May 16 17:46:26 UTC 2019 Chad Elliott + + * modules/DirectoryManager.pm: + * modules/IARWorkspaceCreator.pm: + * modules/TemplateParser.pm: + * templates/iar.mpd: + + Made it so the $WS_DIR$ and $PROJ_DIR$ variables are prepended + only if the path is relative. + +Wed May 15 18:25:52 UTC 2019 Chad Elliott + + * templates/iar.mpd: + + Exclude template files from the build. + +Fri May 10 16:09:37 UTC 2019 Chad Elliott + + * templates/iar.mpd: + + Added support for passing compiler flags through the compile_flags + template variable. + +Mon May 6 16:35:07 UTC 2019 Chad Elliott + + * templates/iar.mpt: + + Changed the configuration names as the previous names implied + something that was not necessarily true. + +Mon Apr 29 17:23:19 UTC 2019 Chad Elliott + + * templates/iar.mpd: + + Added optimization options and custom build rules. + +Mon Apr 22 13:57:40 UTC 2019 Chad Elliott + + * modules/CDT6WorkspaceCreator.pm: + * modules/DirectoryManager.pm: + * modules/TemplateParser.pm: + * modules/WorkspaceCreator.pm: + + Replaced calls to Cwd::abs_path with an implementation in + DirectoryManger that accounts for needs of Win32 specific + paths. + + * templates/iar.mpd: + * templates/iar.mpt: + + Fixes for linking executables and creating libraries. Also + added the use of lib_modifier. + +Thu Apr 18 22:18:20 UTC 2019 Chad Elliott + + * docs/README: + * docs/USAGE: + * docs/templates/iar.txt: + * modules/IARProjectCreator.pm: + * modules/IARWorkspaceCreator.pm: + * templates/iar.mpd: + * templates/iar.mpt: + + Added an initial, simplistic IAR workspace/project generator. + There will be more changes to fully support this IDE. + +Mon May 21 14:33:24 UTC 2018 Adam Mitz + + * templates/vc10.mpd: + + Generate less XML for custom files with no build step. + + * templates/vs2017platforms.mpt: + + Updated default SDK version to match the current update of VS2017. + +Wed May 16 14:43:23 UTC 2018 Chad Elliott + + * docs/templates/uvis.txt: + + Documented the uvis.mpd template. + +Fri Jan 19 01:52:54 UTC 2018 Frederick Hornsey + + * config/wireshark.mpb: + * config/global.features: + + When using Wireshark builds built using Autoconf (like Linux), + Wireshark 1.x on Windows, and systems where Wireshark headers are + installed, use the wireshark feature as before. + + When using Wireshark builds built with CMake use wireshark_cmake + set to the Wireshark source, $WIRESHARK_BUILD set to the build + directory and $WIRESHARK_LIB set to relative path inside the build + directory that contains the Wireshark dynamic libraries. These + parameters replace wireshark2, $WIRESHARK2_BUILD, and + $WIRESHARK2_BIN. + +Mon Jan 15 17:31:47 UTC 2018 Frederick Hornsey + + * config/wireshark.mpb: + * config/global.features: + + Added parameters for Wireshark 2 on Windows. + wireshark2 + wireshark2_build + wireshark2_bin + +Thu Jan 11 18:43:46 UTC 2018 Adam Mitz + + * clone_build_tree.pl: + + Treat the .git directory the same as .svn and CVS. + +Mon Aug 7 14:23:34 UTC 2017 Adam Mitz + + * docs/README: + + Updated README for vc/vs version numbers. + +Fri May 12 11:12:03 UTC 2017 Chad Elliott + + * templates/uvis.mpd: + + Added 'linkflags' to affect the linker options. + +Thu Mar 23 19:33:48 UTC 2017 Adam Mitz + + * config/pin_base.mpb: + * config/pin_tool.mpb: + * config/winapp.mpb: + * config/wireshark.mpb: + * docs/README: + * docs/html/MakeProjectCreator.html: + * modules/VS2017ProjectCreator.pm: + * modules/VS2017WorkspaceCreator.pm: + * bin/registry.pl: + * templates/vs2017dll.mpt: + * templates/vs2017exe.mpt: + * templates/vs2017lib.mpt: + * templates/vs2017libexe.mpt: + * templates/vs2017platforms.mpt: + + Renamed "-type vc15" to vs2017. Updated documentation. + + * modules/VC15ProjectCreator.pm: + * modules/VC15WorkspaceCreator.pm: + * templates/vc15dll.mpt: + * templates/vc15exe.mpt: + * templates/vc15lib.mpt: + * templates/vc15libexe.mpt: + * templates/vc15platforms.mpt: + + Removed/renamed these files. + +Mon Feb 13 21:58:22 UTC 2017 Adam Mitz + + * modules/ProjectCreator.pm: + + Enhanced handling of 'gendir' for project types that use + "combined custom" (mostly vc >= 10). Need to track common + 'gendir' for output file and also get the input-file-specific + value of 'gendir' to replace the <%gendir%> token. + +Tue Feb 7 15:36:45 UTC 2017 Chad Elliott + + * templates/uvis.mpd: + + Updated to support the 'prebuild' keyword. + +Mon Jan 30 18:41:22 UTC 2017 Chad Elliott + + * templates/uvis.mpd: + + Added template variables to set the ram sizes and a scatter file. + +Tue Jan 17 15:16:06 UTC 2017 Chad Elliott + + * modules/UVISWorkspaceCreator.pm: + + Convert slashes in the project path to backslashes. + + * templates/uvis.mpd: + + Support building assembly files and only put the device and CMSIS + sections in if the project is an executable and there are + device_files. + +Thu Nov 17 13:20:23 UTC 2016 Chad Elliott + + * templates/uvis.mpd: + + Added the ability to set the IRAM1 and IRAM2 sizes. + +Wed Nov 16 21:50:12 UTC 2016 Chad Elliott + + * templates/uvis.mpd: + * templates/uvis.mpt: + + Added support for user defined DEVICE_Files and CMSIS_Files to + support building for specific targets. + +Wed Nov 16 14:44:33 UTC 2016 Chad Elliott + + * modules/Depgen/Driver.pm: + * modules/Depgen/MakeDependencyWriter.pm: + + Added an option to override the creation of Cygwin paths on + Windows. + + * templates/make.mpd: + * templates/makedll.mpt: + + Corrected linking with the Keil compiler. + + * templates/uvis.mpd: + + Fixed the implementation of the pure_libs keyword. + +Thu Nov 10 18:00:05 UTC 2016 Chad Elliott + + * templates/uvis.mpd: + + Updated to support 'postbuild' and to support linking in libraries + to an executable. + +Wed Nov 9 17:57:54 UTC 2016 Chad Elliott + + * docs/USAGE: + * modules/UVISProjectCreator.pm: + * modules/UVISWorkspaceCreator.pm: + * templates/uvis.mpd: + * templates/uvis.mpt: + + Added support for the Keil uVision 5 IDE. + +Mon Oct 31 16:16:07 UTC 2016 Chad Elliott + + * templates/makedll.mpt: + + Updated to change the platform for the Keil compiler to something + specific to the operating system and architecture. + +Wed Oct 26 11:31:35 UTC 2016 Chad Elliott + + * templates/makedll.mpt: + + Added support for the Keil compiler. + +Mon Sep 26 21:08:34 UTC 2016 Adam Mitz + + * modules/ProjectCreator.pm (generated_source_listed): + + From Chad Elliott: removed an optimization that was invalid + + * modules/ProjectCreator.pm (other changes): + * modules/CommandHelper.pm: + + Allow CommandHelper::get_output to return more detailed + dependency info. See comments in that function for usage. + +Mon Mar 7 19:40:37 UTC 2016 Chad Elliott + + * modules/ProjectCreator.pm: + + Fixed an issue with custom_only projects that define empty + Source_Files sections. For these projects, an empty section is + equivalent to a defaulted section as they do not serve any real + purpose. + + * templates/make.mpd: + + Fixed spacing. + +Wed Feb 17 19:19:40 UTC 2016 Chad Elliott + + * modules/ProjectCreator.pm: + + When creating a project with only custom projects, keep explicitly + added files when removing non-custom_only aspects of the project. + +Tue Sep 8 13:16:45 UTC 2015 Chad Elliott + + * templates/makedll.mpt: + + Added a C macro that corresponds to the coverage and profiling + options. + +Mon Jul 27 20:04:02 UTC 2015 Chad Elliott + + * modules/Creator.pm: + * modules/TemplateParser.pm: + + Fixed a bug where scoped names would get added to the non-scoped + name in every scope. This bug was introduced by me in my change + from Fri Jul 6 16:46:47 UTC 2012. + +Mon Feb 23 12:34:28 UTC 2015 Chad Elliott + + * modules/WorkspaceCreator.pm: + + Do not completely override -value_template and -value_project + settings given on the actual MPC command line with workspace + 'cmdline' settings. They are now merged together. + +Thu Jan 08 07:50:12 UTC 2015 Johnny Willemsen + + * modules/VC8WorkspaceCreator.pm: + + Completed the changes for the entry below. The original + modification was not complete. + +Thu Nov 20 11:56:03 UTC 2014 Chad Elliott + + * modules/ProjectCreator.pm: + + Made a tiny grammatical correction in an informational message. + + * modules/VC8WorkspaceCreator.pm: + + When creating external dependencies, only create a full path using + the output directory or current directory if the project name is + not a full path itself. Thank you to Manfred Peter for finding and reporting this bug. + +Wed Nov 5 08:12:27 UTC 2014 Johnny Willemsen + + * templates/vc1xdll.mpt: + * templates/vc1xexe.mpt: + Set same pdbc/pdbl settings to generate pdb files as we do + with older vc versions + +Wed Nov 5 08:03:49 UTC 2014 Johnny Willemsen + + * docs/templates/vc10.txt: + * templates/vc10.mpd: + * templates/vc1xdll.mpt: + * templates/vc1xexe.mpt: + * templates/vc7dll.mpt: + With TAO we have the case that exe and dll have the same + name which causes problems with the pdb file. Add a new + use_pdb_modifier which we enable by default for vc1x, it + adds _dll to the pdb file for a dll, and _exe to the pdb + file for a exe + +Wed Oct 8 13:41:24 UTC 2014 Chad Elliott + + * MPC version 4.1.0 released. + +Local Variables: +mode: change-log +add-log-time-format: (lambda () (progn (setq tz (getenv TZ)) (set-time-zone-rule UTC) (setq time (format-time-string %a %b %e %H:%M:%S %Z %Y (current-time))) (set-time-zone-rule tz) time)) +indent-tabs-mode: nil +End: diff --git a/modules/Driver.pm b/modules/Driver.pm index 44a0da57..97e5882e 100644 --- a/modules/Driver.pm +++ b/modules/Driver.pm @@ -48,6 +48,8 @@ sub new { my @creators = @_; my $self = $class->SUPER::new(); + Version::cache(); + $self->{'path'} = $path; $self->{'basepath'} = ::getBasePath(); $self->{'name'} = $name; diff --git a/modules/Version.pm b/modules/Version.pm index 3c5db288..05459208 100644 --- a/modules/Version.pm +++ b/modules/Version.pm @@ -17,8 +17,9 @@ use strict; # ************************************************************ ## This is the starting major and minor version -my $version = '4.1'; +my $version = '5.0'; my $once = 1; +my $cache = 'modules/.version'; # ************************************************************ # Subroutine Section @@ -29,30 +30,62 @@ sub get { ## We only need to do this once $once = 0; - ## Here we determine the beta version. The base variable - ## is the negated number of existing ChangeLog entries at the - ## time of the release of the major and minor version. We then - ## add the total number of ChangeLog entries to the base to - ## get the beta version. - my $base = -1; - if (open(CLH, ::getBasePath() . '/ChangeLog')) { - while() { - if (/^\w\w\w\s\w\w\w\s/) { - ++$base; + ## Attempt to dynamically determine the revision part of the version + ## string every time the version number is requested. This only happens + ## if the --version option is used, an invalid option is used, and when + ## the process starts up and the version hasn't been cached yet. + my $rev = '?'; + my $cwd = Cwd::getcwd(); + if (chdir(::getBasePath())) { + ## Get the git revision for the final part of the version string. + my $r = _readVersion('git rev-parse --short HEAD |'); + if (defined $r) { + ## Store the version for later use, in the event that the git + ## revision isn't available in the future. + if (open(CLH, ">$cache")) { + print CLH "$r\n"; + close(CLH); } } - close(CLH); + else { + ## See if we can load in the previously stored version string. + $r = _readVersion($cache); + } - ## We then append the beta version number to the version string - $version .= ".$base"; - } - else { - $version .= '.??'; + ## Set the revision string if we were able to read one. + $rev = $r if (defined $r); + + chdir($cwd); } + + ## We then append the revision to the version string. + $version .= ".$rev"; } return $version; } +sub cache { + ## Attempt to cache the revision if the cache file does not exist. + ## This will allow the revision to be obtained in the event that git + ## cannot return the revision information at a later time. + get() if (!-e ::getBasePath() . '/' . $cache); +} 1; + +sub _readVersion { + my $file = shift; + my $rev; + if (open(CLH, $file)) { + while() { + if (/^(\w+)$/) { + $rev = $1; + last; + } + } + close(CLH); + } + return $rev; +} + -- cgit v1.2.1 From c1e81f1a54a207e21a2728d3485332f4440dcbaf Mon Sep 17 00:00:00 2001 From: Chad Elliott Date: Fri, 20 Jan 2023 12:39:35 -0600 Subject: Redirect errors from git. --- modules/Version.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/Version.pm b/modules/Version.pm index 05459208..7de326a6 100644 --- a/modules/Version.pm +++ b/modules/Version.pm @@ -11,6 +11,7 @@ package Version; # ************************************************************ use strict; +use File::Spec; # ************************************************************ # Data Section @@ -38,7 +39,8 @@ sub get { my $cwd = Cwd::getcwd(); if (chdir(::getBasePath())) { ## Get the git revision for the final part of the version string. - my $r = _readVersion('git rev-parse --short HEAD |'); + my $nul = File::Spec->devnull(); + my $r = _readVersion("git rev-parse --short HEAD 2> $nul |"); if (defined $r) { ## Store the version for later use, in the event that the git ## revision isn't available in the future. -- cgit v1.2.1