diff options
| author | ruki <[email protected]> | 2019-07-22 13:56:04 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-07-22 13:56:04 +0800 |
| commit | 4fafbae0430e7f9b4a85d280d6fb0efbd2cf35b5 (patch) | |
| tree | 5d37ad16fcdd6db1c7fa4b2080d20643673439fa | |
| parent | de065e129a52e21b96104c897216d8b2b77afba6 (diff) | |
| parent | 145358ba831e7a90f275118a0556787754fe2fa6 (diff) | |
Merge pull request #503 from OpportunityLiu/dev
Improve error messge
| -rw-r--r-- | core/src/xmake/io/open.c | 9 | ||||
| -rw-r--r-- | xmake/core/base/os.lua | 22 | ||||
| -rw-r--r-- | xmake/core/sandbox/modules/utils.lua | 8 | ||||
| -rw-r--r-- | xmake/plugins/project/vsxmake/vsproj/Xmake.props | 11 | ||||
| -rw-r--r-- | xmake/plugins/project/vsxmake/vsproj/Xmake.targets | 26 |
5 files changed, 46 insertions, 30 deletions
diff --git a/core/src/xmake/io/open.c b/core/src/xmake/io/open.c index e77571230..4ca820371 100644 --- a/core/src/xmake/io/open.c +++ b/core/src/xmake/io/open.c @@ -180,13 +180,12 @@ tb_int_t xm_io_open(lua_State* lua) tb_assert_and_check_return_val(path && modestr, 0); // get file mode value - tb_size_t mode = TB_FILE_MODE_RW; + tb_size_t mode; switch (modestr[0]) { - case 'w': mode |= TB_FILE_MODE_CREAT | TB_FILE_MODE_TRUNC; break; - case 'a': mode |= TB_FILE_MODE_APPEND | TB_FILE_MODE_CREAT; break; - case 'r': mode = TB_FILE_MODE_RO; break; - default: break; + case 'w': mode = TB_FILE_MODE_RW | TB_FILE_MODE_CREAT | TB_FILE_MODE_TRUNC; break; + case 'a': mode = TB_FILE_MODE_RW | TB_FILE_MODE_APPEND | TB_FILE_MODE_CREAT; break; + case 'r': default: mode = TB_FILE_MODE_RO; break; } // get file encoding diff --git a/xmake/core/base/os.lua b/xmake/core/base/os.lua index 2f17ebc27..b8d767efd 100644 --- a/xmake/core/base/os.lua +++ b/xmake/core/base/os.lua @@ -706,7 +706,10 @@ end -- -- the parent function will capture it if we uses pcall or xpcall -- -function os.raise(msg, ...) +function os.raiselevel(level, msg, ...) + + -- set level of this function + level = level + 1 -- flush log log:flush() @@ -716,19 +719,28 @@ function os.raise(msg, ...) -- raise it if type(msg) == "string" then - error(string.tryformat(msg, ...)) + error(string.tryformat(msg, ...), level) elseif type(msg) == "table" then local errobjstr, errors = string.serialize(msg, true) if errobjstr then - error("[@encode(error)]: " .. errobjstr) + error("[@encode(error)]: " .. errobjstr, level) else - error(errors) + error(errors, level) end else - error() + error(tostring(msg), level) end end +-- raise an exception and abort the current script +-- +-- the parent function will capture it if we uses pcall or xpcall +-- +function os.raise(msg, ...) + -- add return to make it a tail call + return os.raiselevel(1, msg, ...) +end + -- is executable program file? function os.isexec(filepath) diff --git a/xmake/core/sandbox/modules/utils.lua b/xmake/core/sandbox/modules/utils.lua index a81c84ded..f71d2a72b 100644 --- a/xmake/core/sandbox/modules/utils.lua +++ b/xmake/core/sandbox/modules/utils.lua @@ -20,6 +20,7 @@ -- load modules local io = require("base/io") +local os = require("base/os") local utils = require("base/utils") local colors = require("base/colors") local option = require("base/option") @@ -27,7 +28,6 @@ local log = require("base/log") local try = require("sandbox/modules/try") local catch = require("sandbox/modules/catch") local vformat = require("sandbox/modules/vformat") -local raise = require("sandbox/modules/raise") -- define module local sandbox_utils = sandbox_utils or {} @@ -173,13 +173,13 @@ function sandbox_utils.assert(value, format, ...) -- check if not value then if format ~= nil then - raise(format, ...) + os.raiselevel(2, format, ...) else - raise("assertion failed!") + os.raiselevel(2, "assertion failed!") end end - -- return it + -- return it return value end diff --git a/xmake/plugins/project/vsxmake/vsproj/Xmake.props b/xmake/plugins/project/vsxmake/vsproj/Xmake.props index 55fd2bdc5..0b60d77d2 100644 --- a/xmake/plugins/project/vsxmake/vsproj/Xmake.props +++ b/xmake/plugins/project/vsxmake/vsproj/Xmake.props @@ -126,6 +126,17 @@ <IntDir>$(XmakeBuilDir)\.vs\$(TargetName)\$(XmakeArch)\$(XmakeMode)\</IntDir> </PropertyGroup> + <PropertyGroup Label="Debugger"> + <LocalDebuggerWorkingDirectory>$(XmakeRunDir)</LocalDebuggerWorkingDirectory> + <LocalDebuggerEnvironment>$(XmakeRunEnvs) +$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment> + <LocalDebuggerMergeEnvironment>true</LocalDebuggerMergeEnvironment> + <RemoteDebuggerWorkingDirectory>$(XmakeRunDir)</RemoteDebuggerWorkingDirectory> + <DebuggerFlavor>WindowsRemoteDebugger</DebuggerFlavor> + <RemoteDebuggerEnvironment>$(XmakeRunEnvs) +$(RemoteDebuggerEnvironment)</RemoteDebuggerEnvironment> + </PropertyGroup> + <!-- Common files --> <ItemGroup> <None Condition="Exists('$(MSBuildProjectDirectory)\Xmake.Custom.props')" diff --git a/xmake/plugins/project/vsxmake/vsproj/Xmake.targets b/xmake/plugins/project/vsxmake/vsproj/Xmake.targets index 8aa2db642..9276756a5 100644 --- a/xmake/plugins/project/vsxmake/vsproj/Xmake.targets +++ b/xmake/plugins/project/vsxmake/vsproj/Xmake.targets @@ -37,17 +37,6 @@ <XmakeRunDirResolved>$([System.IO.Path]::GetFullPath('$(XmakeRunDirResolved)/'))</XmakeRunDirResolved> </PropertyGroup> - <PropertyGroup Label="Debugger"> - <LocalDebuggerWorkingDirectory>$(XmakeRunDirResolved)</LocalDebuggerWorkingDirectory> - <LocalDebuggerEnvironment>$(XmakeRunEnvs) -$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment> - <LocalDebuggerMergeEnvironment>true</LocalDebuggerMergeEnvironment> - <RemoteDebuggerWorkingDirectory>$(XmakeRunDirResolved)</RemoteDebuggerWorkingDirectory> - <DebuggerFlavor>WindowsRemoteDebugger</DebuggerFlavor> - <RemoteDebuggerEnvironment>$(XmakeRunEnvs) -$(RemoteDebuggerEnvironment)</RemoteDebuggerEnvironment> - </PropertyGroup> - <PropertyGroup Label="XmakeInternal"> <_XmakeProjectFlag Condition="'$(XmakeProjectFile)' != ''">-F "$(XmakeProjectFile)"</_XmakeProjectFlag> <_XmakeProjectFlag Condition="'$(XmakeProjectFile)' == ''">-P .</_XmakeProjectFlag> @@ -79,6 +68,7 @@ $(RemoteDebuggerEnvironment)</RemoteDebuggerEnvironment> <_XmakeExecutable>"$([System.IO.Path]::GetFullPath('$(XmakeProgramDirResolved)xmake.exe'))"</_XmakeExecutable> <_XmakeEnv> chcp 65001 > NUL + pushd $(XmakeProjectDirResolved) set XMAKE_CONFIGDIR=$(XmakeConfigDirResolved.TrimEnd('/\'.ToCharArray())) set XMAKE_PROGRAM_DIR=$(XmakeProgramDirResolved.TrimEnd('/\'.ToCharArray())) </_XmakeEnv> @@ -98,17 +88,17 @@ $(RemoteDebuggerEnvironment)</RemoteDebuggerEnvironment> </Target> <Target Name="_XmakeConfig" DependsOnTargets="_XmakeProjCheck"> <Message Text="$xmake config $(_XmakeCommonFlags) $(_XmakeConfigFlags) $(XmakeTarget)" Importance="High" /> - <Exec WorkingDirectory="$(XmakeProjectDirResolved)" StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) + <Exec StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) $(_XmakeExecutable) config $(_XmakeCommonFlags) $(_XmakeConfigFlags) $(XmakeTarget)" EchoOff="true" /> </Target> <Target Name="_XmakeReconfig" DependsOnTargets="_XmakeProjCheck"> <Message Text="$xmake config $(_XmakeCommonFlags) -c $(_XmakeConfigFlags) $(XmakeTarget)" Importance="High" /> - <Exec WorkingDirectory="$(XmakeProjectDirResolved)" StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) + <Exec StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) $(_XmakeExecutable) config $(_XmakeCommonFlags) -c $(_XmakeConfigFlags) $(XmakeTarget)" EchoOff="true" /> </Target> <Target Name="_XmakeBuild" DependsOnTargets="_XmakeProjCheck"> <Message Text="$xmake build $(_XmakeCommonFlags) $(_XmakeBuildFlags) $(XmakeTarget)" Importance="High" /> - <Exec WorkingDirectory="$(XmakeProjectDirResolved)" StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) + <Exec StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) $(_XmakeExecutable) build $(_XmakeCommonFlags) $(_XmakeBuildFlags) $(XmakeTarget)" EchoOff="true" /> </Target> <Target Name="_XmakeBuildFile" DependsOnTargets="_XmakeProjCheck"> @@ -121,12 +111,12 @@ $(RemoteDebuggerEnvironment)</RemoteDebuggerEnvironment> <FileFlag>--files="$(FileList)"</FileFlag> </PropertyGroup> <Message Text="$xmake build $(_XmakeCommonFlags) $(_XmakeBuildFileFlags) $(FileFlag) $(XmakeTarget)" Importance="High" /> - <Exec WorkingDirectory="$(XmakeProjectDirResolved)" StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) + <Exec StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) $(_XmakeExecutable) build $(_XmakeCommonFlags) $(_XmakeBuildFileFlags) $(FileFlag) $(XmakeTarget)" EchoOff="true" /> </Target> <Target Name="_XmakeClean" DependsOnTargets="_XmakeProjCheck"> <Message Text="$xmake clean $(_XmakeCommonFlags) -a $(_XmakeCleanFlags) $(XmakeTarget)" Importance="High" /> - <Exec WorkingDirectory="$(XmakeProjectDirResolved)" StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) + <Exec StdOutEncoding="utf-8" StdErrEncoding="utf-8" Command="$(_XmakeEnv) $(_XmakeExecutable) clean $(_XmakeCommonFlags) -a $(_XmakeCleanFlags) $(XmakeTarget)" EchoOff="true" /> </Target> @@ -150,15 +140,19 @@ MSBuild Properties: XmakeProjectDir: $(XmakeProjectDir) XmakeScriptDir: $(XmakeScriptDir) XmakeBuilDir: $(XmakeBuilDir) + XmakeTargetDir: $(XmakeTargetDir) XmakeConfigDir: $(XmakeConfigDir) XmakeConfigFileDir: $(XmakeConfigFileDir) + XmakeRunDir: $(XmakeRunDir) Xmake Resolved Path: XmakeProgramDir: $(XmakeProgramDirResolved) XmakeProjectDir: $(XmakeProjectDirResolved) XmakeScriptDir: $(XmakeScriptDirResolved) XmakeBuilDir: $(XmakeBuilDirResolved) + XmakeTargetDir: $(XmakeTargetDirResolved) XmakeConfigDir: $(XmakeConfigDirResolved) XmakeConfigFileDir: $(XmakeConfigFileDirResolved) + XmakeRunDir: $(XmakeRunDirResolved) Xmake Flags: XmakeWarning: $(XmakeWarning) XmakeVerbose: $(XmakeVerbose) |
