/
dinruspro
/
DinrusIDE
Обзор
Документация
Войти
/
dinruspro
/
DinrusIDE
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Install.cpp
103 строки
2 KB
dinruspro
Очередные доработки
21 апр 2024, 12:35
21 апр 2024, 12:35
be87ef0
Код
Авторство
О чём код?
#include "DinrusIDE.h" bool CheckLicense() { #ifdef PLATFORM_MACOS String chkfile = GetFileFolder(GetAppFolder()) + "/license.chk"; #else String chkfile = GetExeDirFile("license.chk"); #endif if(!FileExists(chkfile)) return true; ShowSplash(); Ctrl::ProcessEvents(); Sleep(2000); HideSplash(); Ctrl::ProcessEvents(); WithLicenseLayout<TopWindow> d; CtrlLayoutOKCancel(d, "Лицензионное соглашение"); d.license = GetTopic("DinrusIDE/app/BSD_ru-ru").text; d.license.Margins(4); d.license.SetZoom(Zoom(Zy(18), 100)); d.ActiveFocus(d.license); if(d.Run() != IDOK) return false; DeleteFile(chkfile); return true; } #ifdef PLATFORM_POSIX bool Install(bool& hasvars) { String ass = GetConfigFolder(); String src, bazaar; String out = GetDefaultUppOut(); int pass = 0; auto MakeAssembly = [&](String b) { String name = GetFileTitle(b); String a = ass + '/' + name + ".var"; if(pass == 0) { if(name == "std" && IsNull(src)) src = b; } else { if(name != "std") b << ';' << src; if(!FileExists(a)) SaveFile(a, "DINRUS = " + AsCString(b) + ";\r\n" "DINRUS_OUTPUT = " + AsCString(out) + ";\r\n" ); } }; auto Scan = [&](String p) { for(FindFile ff(p); ff; ff.Next()) if(ff.IsFolder()) { String path = ff.GetPath(); for(FindFile ff2(path + "/*"); ff2; ff2.Next()) { String p = ff2.GetPath(); String upp = LoadFile(p + '/' + GetFileTitle(p) + ".upp"); if(upp.Find("mainconfig") >= 0) { MakeAssembly(path); hasvars = true; break; } } } }; #ifdef PLATFORM_COCOA String idir = GetFileFolder(GetAppFolder()); String myapps = DirectoryExists(idir + "/dev/std") ? idir + "/dev/std" : GetHomeDirFile("dev/std"); #else String myapps = (DirectoryExists(GetExeDirFile("dev/std")) ? GetExeDirFile : GetHomeDirFile)("dev/std"); #endif for(pass = 0; pass < 2; pass++) { if(pass) MakeAssembly(myapps); #ifdef PLATFORM_COCOA Scan(idir + "/dev/std"); Scan(idir + "/*"); #endif Scan(GetExeFolder() + "/dev/std"); Scan(GetExeFolder() + "/*"); Scan(GetHomeDirFile("dinrus/dev/std")); Scan(GetHomeDirFile("dinrus/*")); Scan(GetHomeDirFile("*")); for(FindFile ff(GetHomeDirFile("*")); ff; ff.Next()) if(ff.IsFolder()) Scan(ff.GetPath() + "/*"); } CreateBuildMethods(); return true; } #endif