updated the build system to get it to work out of the box on more systems
This commit is contained in:
parent
99c62292a4
commit
2769640adf
|
@ -2,8 +2,8 @@
|
|||
|
||||
IF NOT "%PrebuildCalled%"=="1" GOTO error
|
||||
|
||||
C:\apps\ctime\ctime.exe -end %StatsPath%\%StatsFile% %LastError%
|
||||
C:\apps\ctime\ctime.exe -stats %StatsPath%\%StatsFile%
|
||||
IF EXIST %CTIMEPATH% ( call C:\apps\ctime\ctime.exe -end %StatsPath%\%StatsFile% %LastError% )
|
||||
IF EXIST %CTIMEPATH% ( call C:\apps\ctime\ctime.exe -stats %StatsPath%\%StatsFile% )
|
||||
set PrebuildCalled=0
|
||||
GOTO:eof
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@echo off
|
||||
|
||||
REM This file takes two arguments
|
||||
REM This file takes three arguments
|
||||
REM 1 = "app" or "meta"
|
||||
REM 2 = "debug" or "release"
|
||||
REM 3 = "msvc" or "clang"
|
||||
|
@ -22,7 +22,9 @@ set StatsFile=%1_win32_%3_%2_build_time.ctm
|
|||
IF NOT EXIST %BuildPath% mkdir %BuildPath%
|
||||
IF NOT EXIST %StatsPath% mkdir %StatsPath%
|
||||
|
||||
C:\apps\ctime\ctime.exe -begin %StatsPath%\%StatsFile%
|
||||
set CTimePath=C:\apps\ctime
|
||||
IF EXIST %CTIMEPATH% ( call C:\apps\ctime\ctime.exe -begin %StatsPath%\%StatsFile% )
|
||||
|
||||
echo.
|
||||
echo BUILDING TO %BuildPath%
|
||||
echo STATS IN %StatsPath%\%StatsFile%
|
||||
|
|
|
@ -1,32 +1,26 @@
|
|||
@echo off
|
||||
|
||||
set ProjectDevFolder=%~dp0
|
||||
set ProjectDevPath=%ProjectDevFolder:~0,-1%
|
||||
|
||||
pushd %ProjectDevPath%
|
||||
|
||||
IF NOT EXIST .\build_clang\ mkdir .\build_clang
|
||||
|
||||
C:\programs\ctime\ctime.exe -begin %ProjectDevPath%\build\win32_foldhaus_clang_build_time.ctm
|
||||
SET MyPath=%~dp0
|
||||
SET MyPath=%MyPath:~0,-1%
|
||||
call %MyPath%\_prebuild_win32.bat app debug clang
|
||||
|
||||
set CommonCompilerFlags=-std=c++11 -Wno-writable-strings -Wno-unused-value -Wno-varargs -Wno-switch -Wno-microsoft-enum-forward-reference -DDEBUG=1
|
||||
|
||||
pushd .\build_clang\
|
||||
pushd %BuildPath%
|
||||
|
||||
REM Run the Preprocessor
|
||||
foldhaus_meta.exe ..\src\foldhaus_app.cpp
|
||||
del *.pdb > NUL 2> NUL
|
||||
|
||||
echo WAITING FOR PDB TO WRITE > lock.tmp
|
||||
|
||||
clang %CommonCompilerFlags% ..\src\foldhaus_app.cpp -shared
|
||||
clang++ %CommonCompilerFlags% %SourceCodePath%\foldhaus_app.cpp -shared -o
|
||||
|
||||
set LastError=%ERRORLEVEL%
|
||||
|
||||
del lock.tmp
|
||||
|
||||
clang %CommonCompilerFlags% ..\src\win32_foldhaus.cpp -o win32_foldhaus.exe user32.lib winmm.lib gdi32.lib opengl32.lib dsound.lib Ws2_32.lib Comdlg32.lib
|
||||
clang++ -c %CommonCompilerFlags% %SourceCodePath%\platform_win32\win32_foldhaus.cpp
|
||||
link win32_foldhaus.o user32.lib winmm.lib gdi32.lib opengl32.lib dsound.lib Ws2_32.lib Comdlg32.lib
|
||||
|
||||
C:\programs\ctime\ctime.exe -end %ProjectDevPath%\build\win32_foldhaus_clang_build_time.ctm %LastError%
|
||||
REM C:\programs\ctime\ctime.exe -stats %ProjectDevPath%\build\win32_foldhaus_clang_build_time.ctm
|
||||
popd
|
||||
|
||||
call %MyPath%\_postbuild_win32.bat
|
||||
|
|
|
@ -3,30 +3,32 @@
|
|||
SET MyPath=%~dp0
|
||||
SET MyPath=%MyPath:~0,-1%
|
||||
call %MyPath%\_prebuild_win32.bat app debug msvc
|
||||
call %MyPath%\setup_cl.bat
|
||||
|
||||
set CommonCompilerFlags=-nologo -DDEBUG=1 -DPLATFORM_WINDOWS -FC -WX -W4 -Z7 -Oi -GR- -EHsc -EHa- -MTd -fp:fast -fp:except- -IC:\programs-dev\gs_libs\src
|
||||
set CommonCompilerFlags=-wd4127 -wd4702 -wd4101 -wd4505 -wd4100 -wd4189 -wd4244 -wd4201 -wd4996 -I%CommonLibs% -O2 %CommonCompilerFlags%
|
||||
SET CommonCompilerFlags=-nologo -DDEBUG=1 -DPLATFORM_WINDOWS -FC -WX -W4 -Z7 -Oi -GR- -EHsc -EHa- -MTd -fp:fast -fp:except- -IC:\programs-dev\gs_libs\src
|
||||
|
||||
set CommonLinkerFlags= -opt:ref -incremental:no
|
||||
SET CommonCompilerFlags=-wd4127 -wd4702 -wd4101 -wd4505 -wd4100 -wd4189 -wd4244 -wd4201 -wd4996 -I%CommonLibs% -O2 %CommonCompilerFlags%
|
||||
|
||||
set DLLExports=/EXPORT:InitializeApplication /EXPORT:UpdateAndRender /EXPORT:CleanupApplication /EXPORT:ReloadStaticData
|
||||
SET CommonLinkerFlags= -opt:ref -incremental:no
|
||||
|
||||
SET DLLExports=/EXPORT:InitializeApplication /EXPORT:UpdateAndRender /EXPORT:CleanupApplication /EXPORT:ReloadStaticData
|
||||
|
||||
pushd %BuildPath%
|
||||
|
||||
del *.pdb > NUL 2> NUL
|
||||
|
||||
REM Run the Preprocessor
|
||||
REM %MetaProgramPath%\foldhaus_meta.exe %SourceCodePath%\foldhaus_app.cpp
|
||||
|
||||
echo WAITING FOR PDB TO WRITE > lock.tmp
|
||||
|
||||
cl %CommonCompilerFlags% %SourceCodePath%\foldhaus_app.cpp /Fefoldhaus.dll /LD /link %CommonLinkerFlags% %DLLExports%
|
||||
set LastError=%ERRORLEVEL%
|
||||
SET LastError=%ERRORLEVEL%
|
||||
|
||||
del lock.tmp
|
||||
|
||||
cl %CommonCompilerFlags% %SourceCodePath%\platform_win32\win32_foldhaus.cpp /link %CommonLinkerFlags% user32.lib winmm.lib gdi32.lib opengl32.lib dsound.lib Ws2_32.lib Comdlg32.lib
|
||||
|
||||
|
||||
REM COMPILE UTILITY EXES
|
||||
|
||||
cl %CommonCompilerFlags% %ProjectDevPath%\src\serial_monitor\first.cpp /Feserial_monitor.exe /link %CommonLinkerFlags% user32.lib winmm.lib gdi32.lib
|
||||
|
||||
cl %CommonCompilerFlags% %ProjectDevPath%\src\sculpture_gen\gen_blumen_lumen.cpp /Fegen_blumen_lumen.exe /link %CommonLinkerFlags% user32.lib winmm.lib gdi32.lib
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
@echo off
|
||||
|
||||
SET "LIB="
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 12.0
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 11.0
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 13.0
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio 14.0
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||
|
||||
SET VC_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
|
||||
IF NOT DEFINED LIB (IF EXIST "%VC_PATH%" (call "%VC_PATH%\VC\Auxiliary\Build\vcvarsall.bat" x64))
|
||||
|
|
@ -900,30 +900,22 @@ AnimationTimeline_Render(panel* Panel, rect2 PanelBounds, render_command_buffer*
|
|||
ui_FillRect(&State->Interface, PanelBounds, v4{.1f,.1f,.1f,1.f});
|
||||
|
||||
rect2 TimelineBounds, InfoBounds;
|
||||
RectVSplit(PanelBounds, 300, &InfoBounds, &TimelineBounds);
|
||||
RectVSplitAtDistanceFromLeft(PanelBounds, 300, &InfoBounds, &TimelineBounds);
|
||||
|
||||
#if 0
|
||||
rect2 AnimInfoBounds, SelectionInfoBounds;
|
||||
RectHSplitAtPercent(InfoBounds, .65f, &AnimInfoBounds, &SelectionInfoBounds);
|
||||
#endif
|
||||
rect2 LayersPanelBounds, TimeRangePanelBounds;
|
||||
RectVSplitAtDistanceFromLeft(TimelineBounds, 200, &LayersPanelBounds, &TimeRangePanelBounds);
|
||||
|
||||
{ // Timeline
|
||||
rect2 LayersPanelBounds, TimeRangePanelBounds;
|
||||
RectVSplitAtDistanceFromLeft(TimelineBounds, 200, &LayersPanelBounds, &TimeRangePanelBounds);
|
||||
|
||||
r32 TitleBarHeight = State->Interface.Style.RowHeight;
|
||||
// These are the actual rects we will draw in
|
||||
rect2 PlayBarBounds, FrameCountBounds;
|
||||
rect2 LayersBounds, TimeRangeBounds;
|
||||
RectHSplitAtDistanceFromTop(LayersPanelBounds, TitleBarHeight, &PlayBarBounds, &LayersBounds);
|
||||
RectHSplitAtDistanceFromTop(TimeRangePanelBounds, TitleBarHeight, &FrameCountBounds, &TimeRangeBounds);
|
||||
|
||||
PlayBar_Render(TimelineState, PlayBarBounds, Panel, RenderBuffer, State, Context);
|
||||
FrameCount_Render(TimelineState, FrameCountBounds, RenderBuffer, State, Context);
|
||||
LayerList_Render(TimelineState, LayersBounds, Panel, RenderBuffer, State, Context);
|
||||
TimeRange_Render(TimelineState, TimeRangeBounds, RenderBuffer, State, Context);
|
||||
}
|
||||
r32 TitleBarHeight = State->Interface.Style.RowHeight;
|
||||
// These are the actual rects we will draw in
|
||||
rect2 PlayBarBounds, FrameCountBounds;
|
||||
rect2 LayersBounds, TimeRangeBounds;
|
||||
RectHSplitAtDistanceFromTop(LayersPanelBounds, TitleBarHeight, &PlayBarBounds, &LayersBounds);
|
||||
RectHSplitAtDistanceFromTop(TimeRangePanelBounds, TitleBarHeight, &FrameCountBounds, &TimeRangeBounds);
|
||||
|
||||
PlayBar_Render(TimelineState, PlayBarBounds, Panel, RenderBuffer, State, Context);
|
||||
FrameCount_Render(TimelineState, FrameCountBounds, RenderBuffer, State, Context);
|
||||
LayerList_Render(TimelineState, LayersBounds, Panel, RenderBuffer, State, Context);
|
||||
TimeRange_Render(TimelineState, TimeRangeBounds, RenderBuffer, State, Context);
|
||||
AnimInfoView_Render(TimelineState, InfoBounds, Panel, RenderBuffer, State, Context);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,8 +5,16 @@
|
|||
//
|
||||
#ifndef FOLDHAUS_PANEL_FILE_VIEW_H
|
||||
|
||||
enum file_view_mode
|
||||
{
|
||||
FileViewMode_Load,
|
||||
FileViewMode_Save,
|
||||
};
|
||||
|
||||
struct file_view_state
|
||||
{
|
||||
file_view_mode Mode;
|
||||
|
||||
gs_string WorkingDirectory;
|
||||
gs_memory_arena FileNamesArena;
|
||||
gs_file_info_array FileNames;
|
||||
|
@ -14,9 +22,18 @@ struct file_view_state
|
|||
gs_file_info SelectedFile;
|
||||
};
|
||||
|
||||
internal void
|
||||
FileView_SetMode(panel* Panel, file_view_mode Mode)
|
||||
{
|
||||
file_view_state* FileViewState = Panel_GetStateStruct(Panel, file_view_state);
|
||||
FileViewState->Mode = Mode;
|
||||
}
|
||||
|
||||
internal void
|
||||
FileView_Exit_(panel* FileViewPanel, app_state* State, context Context)
|
||||
{
|
||||
// TODO(pjs): Free State->FileNamesArena
|
||||
|
||||
Assert(FileViewPanel->IsModalOverrideFor != 0);
|
||||
panel* ReturnTo = FileViewPanel->IsModalOverrideFor;
|
||||
if (ReturnTo->ModalOverrideCB)
|
||||
|
@ -30,7 +47,7 @@ global input_command* FileView_Commands = 0;
|
|||
s32 FileView_CommandsCount = 0;
|
||||
|
||||
internal void
|
||||
FileViewUpdateWorkingDirectory(gs_const_string WorkingDirectory, file_view_state* State, context Context)
|
||||
FileView_UpdateWorkingDirectory(gs_const_string WorkingDirectory, file_view_state* State, context Context)
|
||||
{
|
||||
ClearArena(&State->FileNamesArena);
|
||||
|
||||
|
@ -43,23 +60,20 @@ FileViewUpdateWorkingDirectory(gs_const_string WorkingDirectory, file_view_state
|
|||
u32 SecondLastSlashIndex = FindLast(SanitizedDirectory, LastSlashIndex - 1, '\\');
|
||||
SanitizedDirectory = Substring(SanitizedDirectory, 0, SecondLastSlashIndex);
|
||||
}
|
||||
else if (StringsEqual(LastDir, ConstString(".")))
|
||||
else if (StringsEqual(LastDir, ConstString(".")) && LastDir.Length > 1)
|
||||
{
|
||||
SanitizedDirectory = Substring(SanitizedDirectory, 0, LastSlashIndex);
|
||||
}
|
||||
|
||||
State->WorkingDirectory = PushString(&State->FileNamesArena, WorkingDirectory.Length + 2);
|
||||
PrintF(&State->WorkingDirectory, "%S", SanitizedDirectory);
|
||||
if (State->WorkingDirectory.Str[State->WorkingDirectory.Length - 1] != '\\')
|
||||
gs_file_info NewWorkingDirectory = GetFileInfo(Context.ThreadContext.FileHandler, SanitizedDirectory);
|
||||
if (NewWorkingDirectory.IsDirectory)
|
||||
{
|
||||
AppendPrintF(&State->WorkingDirectory, "\\");
|
||||
// NOTE(pjs): we might be printing from State->WorkingDirectory to State->WorkingDirectory
|
||||
// in some cases. Shouldn't be a problem but it is unnecessary
|
||||
PrintF(&State->WorkingDirectory, "%S", WorkingDirectory);
|
||||
|
||||
State->FileNames = EnumerateDirectory(Context.ThreadContext.FileHandler, &State->FileNamesArena, State->WorkingDirectory.ConstString, EnumerateDirectory_IncludeDirectories);
|
||||
}
|
||||
if (State->WorkingDirectory.Str[State->WorkingDirectory.Length - 1] != '*')
|
||||
{
|
||||
AppendPrintF(&State->WorkingDirectory, "*");
|
||||
}
|
||||
|
||||
State->FileNames = EnumerateDirectory(Context.ThreadContext.FileHandler, &State->FileNamesArena, State->WorkingDirectory.ConstString, EnumerateDirectory_IncludeDirectories);
|
||||
}
|
||||
|
||||
GSMetaTag(panel_init);
|
||||
|
@ -71,7 +85,10 @@ FileView_Init(panel* Panel, app_state* State, context Context)
|
|||
file_view_state* FileViewState = PushStruct(&State->Permanent, file_view_state);
|
||||
Panel->StateMemory = StructToData(FileViewState, file_view_state);
|
||||
FileViewState->FileNamesArena = CreateMemoryArena(Context.ThreadContext.Allocator);
|
||||
FileViewUpdateWorkingDirectory(ConstString("."), FileViewState, Context);
|
||||
|
||||
// TODO(pjs): this shouldn't be stored in permanent
|
||||
FileViewState->WorkingDirectory = PushString(&State->Permanent, 256);
|
||||
FileView_UpdateWorkingDirectory(ConstString("."), FileViewState, Context);
|
||||
}
|
||||
|
||||
GSMetaTag(panel_cleanup);
|
||||
|
@ -88,6 +105,8 @@ internal void
|
|||
FileView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBuffer, app_state* State, context Context)
|
||||
{
|
||||
file_view_state* FileViewState = Panel_GetStateStruct(Panel, file_view_state);
|
||||
Assert(FileViewState->Mode == FileViewMode_Save);
|
||||
|
||||
ui_PushLayout(&State->Interface, PanelBounds, LayoutDirection_TopDown, MakeString("FileView Layout"));
|
||||
{
|
||||
if (ui_Button(&State->Interface, MakeString("Exit")))
|
||||
|
@ -96,7 +115,21 @@ FileView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBu
|
|||
}
|
||||
|
||||
// Header
|
||||
ui_Label(&State->Interface, FileViewState->WorkingDirectory);
|
||||
if (ui_TextEntry(&State->Interface, MakeString("pwd"), &FileViewState->WorkingDirectory))
|
||||
{
|
||||
// if last character is a slash, update pwd, and clear the filter string
|
||||
// otherwise update the filter string
|
||||
gs_string Pwd = FileViewState->WorkingDirectory;
|
||||
char LastChar = Pwd.Str[Pwd.Length - 1];
|
||||
if (LastChar == '\\' || LastChar == '/')
|
||||
{
|
||||
FileView_UpdateWorkingDirectory(Pwd.ConstString, FileViewState, Context);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// File Display
|
||||
ui_BeginList(&State->Interface, MakeString("Files"), 10, FileViewState->FileNames.Count);
|
||||
|
@ -113,7 +146,7 @@ FileView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBu
|
|||
{
|
||||
if (File.IsDirectory)
|
||||
{
|
||||
FileViewUpdateWorkingDirectory(File.Path, FileViewState, Context);
|
||||
FileView_UpdateWorkingDirectory(File.Path, FileViewState, Context);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -128,6 +161,5 @@ FileView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* RenderBu
|
|||
}
|
||||
|
||||
|
||||
|
||||
#define FOLDHAUS_PANEL_FILE_VIEW_H
|
||||
#endif // FOLDHAUS_PANEL_FILE_VIEW_H
|
|
@ -60,6 +60,7 @@ HierarchyView_Render(panel* Panel, rect2 PanelBounds, render_command_buffer* Ren
|
|||
if (ui_Button(&State->Interface, MakeString("+ Add Assembly")))
|
||||
{
|
||||
panel* FileBrowser = PanelSystem_PushPanel(&State->PanelSystem, PanelType_FileView, State, Context);
|
||||
FileView_SetMode(FileBrowser, FileViewMode_Save);
|
||||
Panel_PushModalOverride(Panel, FileBrowser, LoadAssemblyCallback);
|
||||
}
|
||||
|
||||
|
|
|
@ -225,7 +225,7 @@ AssemblyParser_ReadSequence(parser* Parser, assembly* Assembly)
|
|||
internal strip_gen_data
|
||||
AssemblyParser_ReadStripGenData(parser* Parser, assembly* Assembly)
|
||||
{
|
||||
strip_gen_data Result = {0};
|
||||
strip_gen_data Result = {};
|
||||
|
||||
if (Parser_ReadOpenStruct(Parser, AssemblyField_Segment))
|
||||
{
|
||||
|
|
|
@ -1141,7 +1141,7 @@ ui_TextEntrySetFlags(ui_widget* Widget, gs_string EditString)
|
|||
ui_WidgetSetFlag(Widget, UIWidgetFlag_Typable);
|
||||
}
|
||||
|
||||
internal void
|
||||
internal bool
|
||||
ui_TextEntry(ui_interface* Interface, gs_string Identifier, gs_string* Value)
|
||||
{
|
||||
ui_widget* Widget = ui_CreateWidget(Interface, Identifier);
|
||||
|
@ -1155,7 +1155,10 @@ ui_TextEntry(ui_interface* Interface, gs_string Identifier, gs_string* Value)
|
|||
ui_TextEntrySetFlags(Widget, State->EditString);
|
||||
|
||||
ui_eval_result Result = ui_EvaluateWidget(Interface, Widget);
|
||||
bool StringEdited = !StringsEqual(*Value, State->EditString);
|
||||
PrintF(Value, "%S", State->EditString);
|
||||
|
||||
return StringEdited;
|
||||
}
|
||||
|
||||
internal u64
|
||||
|
|
|
@ -46,6 +46,20 @@ GET_FILE_INFO(Win32GetFileInfo)
|
|||
}
|
||||
CloseHandle(FileHandle);
|
||||
}
|
||||
else
|
||||
{
|
||||
DWORD FileAttr = GetFileAttributes(Path.Str);
|
||||
if (FileAttr != INVALID_FILE_ATTRIBUTES &&
|
||||
(FileAttr & FILE_ATTRIBUTE_DIRECTORY))
|
||||
{
|
||||
Result.Path = Path;
|
||||
Result.IsDirectory = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Path is not a file or directory
|
||||
}
|
||||
}
|
||||
return Result;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
# pragma GCC diagnostic ignored "-Wunused-value"
|
||||
# pragma GCC diagnostic ignored "-Wvarargs"
|
||||
# pragma GCC diagnostic ignored "-Wwritable-strings"
|
||||
# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
|
Loading…
Reference in New Issue