Author: manx Date: Mon Sep 23 18:23:23 2024 New Revision: 21700 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21700 Log: [Ref] openmpt123: Use mpt/main. Modified: trunk/OpenMPT/build/premake/mpt-openmpt123.lua trunk/OpenMPT/build/vs2017winxp/openmpt123.vcxproj trunk/OpenMPT/build/vs2017winxp/openmpt123.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/openmpt123.vcxproj trunk/OpenMPT/build/vs2017winxpansi/openmpt123.vcxproj.filters trunk/OpenMPT/build/vs2019win7/openmpt123.vcxproj trunk/OpenMPT/build/vs2019win7/openmpt123.vcxproj.filters trunk/OpenMPT/build/vs2022win10/openmpt123.vcxproj trunk/OpenMPT/build/vs2022win10/openmpt123.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/openmpt123.vcxproj trunk/OpenMPT/build/vs2022win10clang/openmpt123.vcxproj.filters trunk/OpenMPT/build/vs2022win7/openmpt123.vcxproj trunk/OpenMPT/build/vs2022win7/openmpt123.vcxproj.filters trunk/OpenMPT/build/vs2022win8/openmpt123.vcxproj trunk/OpenMPT/build/vs2022win8/openmpt123.vcxproj.filters trunk/OpenMPT/build/vs2022win81/openmpt123.vcxproj trunk/OpenMPT/build/vs2022win81/openmpt123.vcxproj.filters trunk/OpenMPT/openmpt123/openmpt123.cpp Modified: trunk/OpenMPT/build/premake/mpt-openmpt123.lua ============================================================================== --- trunk/OpenMPT/build/premake/mpt-openmpt123.lua Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/premake/mpt-openmpt123.lua Mon Sep 23 18:23:23 2024 (r21700) @@ -32,6 +32,7 @@ "../../src/mpt/format/*.hpp", "../../src/mpt/io/*.hpp", "../../src/mpt/io_file/*.hpp", + "../../src/mpt/main/*.hpp", "../../src/mpt/parse/*.hpp", "../../src/mpt/path/*.hpp", "../../src/mpt/random/*.hpp", Modified: trunk/OpenMPT/build/vs2017winxp/openmpt123.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/openmpt123.vcxproj Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2017winxp/openmpt123.vcxproj Mon Sep 23 18:23:23 2024 (r21700) @@ -813,6 +813,7 @@ <ClInclude Include="..\..\src\mpt\io_file\fstream.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\inputfile.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp" /> + <ClInclude Include="..\..\src\mpt\main\main.hpp" /> <ClInclude Include="..\..\src\mpt\parse\parse.hpp" /> <ClInclude Include="..\..\src\mpt\parse\split.hpp" /> <ClInclude Include="..\..\src\mpt\path\basic_path.hpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/openmpt123.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/openmpt123.vcxproj.filters Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2017winxp/openmpt123.vcxproj.filters Mon Sep 23 18:23:23 2024 (r21700) @@ -31,6 +31,9 @@ <Filter Include="src\mpt\io_file"> <UniqueIdentifier>{D34C5655-3FD8-C319-48E9-460EB4F31F1A}</UniqueIdentifier> </Filter> + <Filter Include="src\mpt\main"> + <UniqueIdentifier>{C1DDD503-AD40-65A8-56C6-9D5E4208312B}</UniqueIdentifier> + </Filter> <Filter Include="src\mpt\parse"> <UniqueIdentifier>{B706C87E-23C7-43B5-EC01-8D3258818891}</UniqueIdentifier> </Filter> @@ -288,6 +291,9 @@ <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp"> <Filter>src\mpt\io_file</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\main\main.hpp"> + <Filter>src\mpt\main</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\parse\parse.hpp"> <Filter>src\mpt\parse</Filter> </ClInclude> Modified: trunk/OpenMPT/build/vs2017winxpansi/openmpt123.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/openmpt123.vcxproj Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2017winxpansi/openmpt123.vcxproj Mon Sep 23 18:23:23 2024 (r21700) @@ -813,6 +813,7 @@ <ClInclude Include="..\..\src\mpt\io_file\fstream.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\inputfile.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp" /> + <ClInclude Include="..\..\src\mpt\main\main.hpp" /> <ClInclude Include="..\..\src\mpt\parse\parse.hpp" /> <ClInclude Include="..\..\src\mpt\parse\split.hpp" /> <ClInclude Include="..\..\src\mpt\path\basic_path.hpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/openmpt123.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/openmpt123.vcxproj.filters Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2017winxpansi/openmpt123.vcxproj.filters Mon Sep 23 18:23:23 2024 (r21700) @@ -31,6 +31,9 @@ <Filter Include="src\mpt\io_file"> <UniqueIdentifier>{D34C5655-3FD8-C319-48E9-460EB4F31F1A}</UniqueIdentifier> </Filter> + <Filter Include="src\mpt\main"> + <UniqueIdentifier>{C1DDD503-AD40-65A8-56C6-9D5E4208312B}</UniqueIdentifier> + </Filter> <Filter Include="src\mpt\parse"> <UniqueIdentifier>{B706C87E-23C7-43B5-EC01-8D3258818891}</UniqueIdentifier> </Filter> @@ -288,6 +291,9 @@ <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp"> <Filter>src\mpt\io_file</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\main\main.hpp"> + <Filter>src\mpt\main</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\parse\parse.hpp"> <Filter>src\mpt\parse</Filter> </ClInclude> Modified: trunk/OpenMPT/build/vs2019win7/openmpt123.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/openmpt123.vcxproj Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2019win7/openmpt123.vcxproj Mon Sep 23 18:23:23 2024 (r21700) @@ -810,6 +810,7 @@ <ClInclude Include="..\..\src\mpt\io_file\fstream.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\inputfile.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp" /> + <ClInclude Include="..\..\src\mpt\main\main.hpp" /> <ClInclude Include="..\..\src\mpt\parse\parse.hpp" /> <ClInclude Include="..\..\src\mpt\parse\split.hpp" /> <ClInclude Include="..\..\src\mpt\path\basic_path.hpp" /> Modified: trunk/OpenMPT/build/vs2019win7/openmpt123.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/openmpt123.vcxproj.filters Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2019win7/openmpt123.vcxproj.filters Mon Sep 23 18:23:23 2024 (r21700) @@ -37,6 +37,9 @@ <Filter Include="src\mpt\io_file"> <UniqueIdentifier>{D34C5655-3FD8-C319-48E9-460EB4F31F1A}</UniqueIdentifier> </Filter> + <Filter Include="src\mpt\main"> + <UniqueIdentifier>{C1DDD503-AD40-65A8-56C6-9D5E4208312B}</UniqueIdentifier> + </Filter> <Filter Include="src\mpt\parse"> <UniqueIdentifier>{B706C87E-23C7-43B5-EC01-8D3258818891}</UniqueIdentifier> </Filter> @@ -294,6 +297,9 @@ <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp"> <Filter>src\mpt\io_file</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\main\main.hpp"> + <Filter>src\mpt\main</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\parse\parse.hpp"> <Filter>src\mpt\parse</Filter> </ClInclude> Modified: trunk/OpenMPT/build/vs2022win10/openmpt123.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/openmpt123.vcxproj Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win10/openmpt123.vcxproj Mon Sep 23 18:23:23 2024 (r21700) @@ -1588,6 +1588,7 @@ <ClInclude Include="..\..\src\mpt\io_file\fstream.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\inputfile.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp" /> + <ClInclude Include="..\..\src\mpt\main\main.hpp" /> <ClInclude Include="..\..\src\mpt\parse\parse.hpp" /> <ClInclude Include="..\..\src\mpt\parse\split.hpp" /> <ClInclude Include="..\..\src\mpt\path\basic_path.hpp" /> Modified: trunk/OpenMPT/build/vs2022win10/openmpt123.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/openmpt123.vcxproj.filters Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win10/openmpt123.vcxproj.filters Mon Sep 23 18:23:23 2024 (r21700) @@ -37,6 +37,9 @@ <Filter Include="src\mpt\io_file"> <UniqueIdentifier>{D34C5655-3FD8-C319-48E9-460EB4F31F1A}</UniqueIdentifier> </Filter> + <Filter Include="src\mpt\main"> + <UniqueIdentifier>{C1DDD503-AD40-65A8-56C6-9D5E4208312B}</UniqueIdentifier> + </Filter> <Filter Include="src\mpt\parse"> <UniqueIdentifier>{B706C87E-23C7-43B5-EC01-8D3258818891}</UniqueIdentifier> </Filter> @@ -294,6 +297,9 @@ <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp"> <Filter>src\mpt\io_file</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\main\main.hpp"> + <Filter>src\mpt\main</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\parse\parse.hpp"> <Filter>src\mpt\parse</Filter> </ClInclude> Modified: trunk/OpenMPT/build/vs2022win10clang/openmpt123.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/openmpt123.vcxproj Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win10clang/openmpt123.vcxproj Mon Sep 23 18:23:23 2024 (r21700) @@ -1506,6 +1506,7 @@ <ClInclude Include="..\..\src\mpt\io_file\fstream.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\inputfile.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp" /> + <ClInclude Include="..\..\src\mpt\main\main.hpp" /> <ClInclude Include="..\..\src\mpt\parse\parse.hpp" /> <ClInclude Include="..\..\src\mpt\parse\split.hpp" /> <ClInclude Include="..\..\src\mpt\path\basic_path.hpp" /> Modified: trunk/OpenMPT/build/vs2022win10clang/openmpt123.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/openmpt123.vcxproj.filters Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win10clang/openmpt123.vcxproj.filters Mon Sep 23 18:23:23 2024 (r21700) @@ -37,6 +37,9 @@ <Filter Include="src\mpt\io_file"> <UniqueIdentifier>{D34C5655-3FD8-C319-48E9-460EB4F31F1A}</UniqueIdentifier> </Filter> + <Filter Include="src\mpt\main"> + <UniqueIdentifier>{C1DDD503-AD40-65A8-56C6-9D5E4208312B}</UniqueIdentifier> + </Filter> <Filter Include="src\mpt\parse"> <UniqueIdentifier>{B706C87E-23C7-43B5-EC01-8D3258818891}</UniqueIdentifier> </Filter> @@ -294,6 +297,9 @@ <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp"> <Filter>src\mpt\io_file</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\main\main.hpp"> + <Filter>src\mpt\main</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\parse\parse.hpp"> <Filter>src\mpt\parse</Filter> </ClInclude> Modified: trunk/OpenMPT/build/vs2022win7/openmpt123.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win7/openmpt123.vcxproj Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win7/openmpt123.vcxproj Mon Sep 23 18:23:23 2024 (r21700) @@ -830,6 +830,7 @@ <ClInclude Include="..\..\src\mpt\io_file\fstream.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\inputfile.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp" /> + <ClInclude Include="..\..\src\mpt\main\main.hpp" /> <ClInclude Include="..\..\src\mpt\parse\parse.hpp" /> <ClInclude Include="..\..\src\mpt\parse\split.hpp" /> <ClInclude Include="..\..\src\mpt\path\basic_path.hpp" /> Modified: trunk/OpenMPT/build/vs2022win7/openmpt123.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win7/openmpt123.vcxproj.filters Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win7/openmpt123.vcxproj.filters Mon Sep 23 18:23:23 2024 (r21700) @@ -37,6 +37,9 @@ <Filter Include="src\mpt\io_file"> <UniqueIdentifier>{D34C5655-3FD8-C319-48E9-460EB4F31F1A}</UniqueIdentifier> </Filter> + <Filter Include="src\mpt\main"> + <UniqueIdentifier>{C1DDD503-AD40-65A8-56C6-9D5E4208312B}</UniqueIdentifier> + </Filter> <Filter Include="src\mpt\parse"> <UniqueIdentifier>{B706C87E-23C7-43B5-EC01-8D3258818891}</UniqueIdentifier> </Filter> @@ -294,6 +297,9 @@ <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp"> <Filter>src\mpt\io_file</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\main\main.hpp"> + <Filter>src\mpt\main</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\parse\parse.hpp"> <Filter>src\mpt\parse</Filter> </ClInclude> Modified: trunk/OpenMPT/build/vs2022win8/openmpt123.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win8/openmpt123.vcxproj Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win8/openmpt123.vcxproj Mon Sep 23 18:23:23 2024 (r21700) @@ -1200,6 +1200,7 @@ <ClInclude Include="..\..\src\mpt\io_file\fstream.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\inputfile.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp" /> + <ClInclude Include="..\..\src\mpt\main\main.hpp" /> <ClInclude Include="..\..\src\mpt\parse\parse.hpp" /> <ClInclude Include="..\..\src\mpt\parse\split.hpp" /> <ClInclude Include="..\..\src\mpt\path\basic_path.hpp" /> Modified: trunk/OpenMPT/build/vs2022win8/openmpt123.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win8/openmpt123.vcxproj.filters Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win8/openmpt123.vcxproj.filters Mon Sep 23 18:23:23 2024 (r21700) @@ -37,6 +37,9 @@ <Filter Include="src\mpt\io_file"> <UniqueIdentifier>{D34C5655-3FD8-C319-48E9-460EB4F31F1A}</UniqueIdentifier> </Filter> + <Filter Include="src\mpt\main"> + <UniqueIdentifier>{C1DDD503-AD40-65A8-56C6-9D5E4208312B}</UniqueIdentifier> + </Filter> <Filter Include="src\mpt\parse"> <UniqueIdentifier>{B706C87E-23C7-43B5-EC01-8D3258818891}</UniqueIdentifier> </Filter> @@ -294,6 +297,9 @@ <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp"> <Filter>src\mpt\io_file</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\main\main.hpp"> + <Filter>src\mpt\main</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\parse\parse.hpp"> <Filter>src\mpt\parse</Filter> </ClInclude> Modified: trunk/OpenMPT/build/vs2022win81/openmpt123.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win81/openmpt123.vcxproj Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win81/openmpt123.vcxproj Mon Sep 23 18:23:23 2024 (r21700) @@ -1200,6 +1200,7 @@ <ClInclude Include="..\..\src\mpt\io_file\fstream.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\inputfile.hpp" /> <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp" /> + <ClInclude Include="..\..\src\mpt\main\main.hpp" /> <ClInclude Include="..\..\src\mpt\parse\parse.hpp" /> <ClInclude Include="..\..\src\mpt\parse\split.hpp" /> <ClInclude Include="..\..\src\mpt\path\basic_path.hpp" /> Modified: trunk/OpenMPT/build/vs2022win81/openmpt123.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win81/openmpt123.vcxproj.filters Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/build/vs2022win81/openmpt123.vcxproj.filters Mon Sep 23 18:23:23 2024 (r21700) @@ -37,6 +37,9 @@ <Filter Include="src\mpt\io_file"> <UniqueIdentifier>{D34C5655-3FD8-C319-48E9-460EB4F31F1A}</UniqueIdentifier> </Filter> + <Filter Include="src\mpt\main"> + <UniqueIdentifier>{C1DDD503-AD40-65A8-56C6-9D5E4208312B}</UniqueIdentifier> + </Filter> <Filter Include="src\mpt\parse"> <UniqueIdentifier>{B706C87E-23C7-43B5-EC01-8D3258818891}</UniqueIdentifier> </Filter> @@ -294,6 +297,9 @@ <ClInclude Include="..\..\src\mpt\io_file\outputfile.hpp"> <Filter>src\mpt\io_file</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\main\main.hpp"> + <Filter>src\mpt\main</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\parse\parse.hpp"> <Filter>src\mpt\parse</Filter> </ClInclude> Modified: trunk/OpenMPT/openmpt123/openmpt123.cpp ============================================================================== --- trunk/OpenMPT/openmpt123/openmpt123.cpp Mon Sep 23 18:20:59 2024 (r21699) +++ trunk/OpenMPT/openmpt123/openmpt123.cpp Mon Sep 23 18:23:23 2024 (r21700) @@ -45,8 +45,8 @@ #include <sys/types.h> #endif -#include "mpt/base/check_platform.hpp" #include "mpt/base/detect.hpp" +#include "mpt/main/main.hpp" #include "mpt/random/crand.hpp" #include "mpt/random/default_engines.hpp" @@ -79,7 +79,6 @@ #if MPT_OS_DJGPP #include <conio.h> -#include <crt0.h> #include <dpmi.h> #include <fcntl.h> #include <io.h> @@ -2176,37 +2175,8 @@ #endif -#if MPT_OS_DJGPP -/* Work-around <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45977> */ -/* clang-format off */ -extern "C" { - int _crt0_startup_flags = 0 - | _CRT0_FLAG_NONMOVE_SBRK /* force interrupt compatible allocation */ - | _CRT0_DISABLE_SBRK_ADDRESS_WRAP /* force NT compatible allocation */ - | _CRT0_FLAG_LOCK_MEMORY /* lock all code and data at program startup */ - | 0; -} -/* clang-format on */ -#endif /* MPT_OS_DJGPP */ -#if MPT_OS_WINDOWS && defined(UNICODE) -static int wmain( int wargc, wchar_t * wargv [] ) { -#else -static int main( int argc, char * argv [] ) { -#endif - #if MPT_OS_DJGPP - _crt0_startup_flags &= ~_CRT0_FLAG_LOCK_MEMORY; /* disable automatic locking for all further memory allocations */ - assert(mpt::platform::libc().is_ok()); - #endif /* MPT_OS_DJGPP */ - std::vector<mpt::ustring> args; - #if MPT_OS_WINDOWS && defined(UNICODE) - for ( int arg = 0; arg < wargc; ++arg ) { - args.push_back( mpt::transcode<mpt::ustring>( wargv[arg] ) ); - } - #else - for ( int arg = 0; arg < argc; ++arg ) { - args.push_back( mpt::transcode<mpt::ustring>( mpt::logical_encoding::locale, argv[arg] ) ); - } - #endif + +static mpt::uint8 main( std::vector<mpt::ustring> args ) { FILE_mode_guard stdin_utf8_guard( stdin, FILE_mode::utf8 ); FILE_mode_guard stdout_utf8_guard( stdout, FILE_mode::utf8 ); @@ -2455,17 +2425,5 @@ } // namespace openmpt123 -#if MPT_OS_WINDOWS && defined(UNICODE) -#if defined(__GNUC__) || (defined(__clang__) && !defined(_MSC_VER)) -// mingw64 does only default to special C linkage for "main", but not for "wmain". -extern "C" int wmain( int wargc, wchar_t * wargv [] ); -extern "C" -#endif -int wmain( int wargc, wchar_t * wargv [] ) { - return openmpt123::wmain( wargc, wargv ); -} -#else -int main( int argc, char * argv [] ) { - return openmpt123::main( argc, argv ); -} -#endif + +MPT_MAIN_IMPLEMENT_MAIN(openmpt123) |