ultimatepp/uppsrc/ide/Install.cpp
cxl 03a3028e1f ide: OSX Install
git-svn-id: svn://ultimatepp.org/upp/trunk@12282 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2018-09-17 13:38:36 +00:00

112 lines
3.5 KiB
C++

#include "ide.h"
//#include "Install.h"
#ifndef PLATFORM_WIN32
#ifdef PLATFORM_OSX
const char *clang_bm =
R"(BUILDER = "CLANG";
COMPILER = "clang++";
COMMON_OPTIONS = "-Wno-logical-op-parentheses";
COMMON_CPP_OPTIONS = "-std=c++14";
COMMON_C_OPTIONS = "";
COMMON_LINK = "";
COMMON_FLAGS = "";
DEBUG_INFO = "2";
DEBUG_BLITZ = "1";
DEBUG_LINKMODE = "1";
DEBUG_OPTIONS = "-O0";
DEBUG_FLAGS = "";
DEBUG_LINK = "";
RELEASE_BLITZ = "0";
RELEASE_LINKMODE = "1";
RELEASE_OPTIONS = "-O3 -ffunction-sections -fdata-sections";
RELEASE_FLAGS = "";
RELEASE_LINK = "-Wl,--gc-sections";
DEBUGGER = "gdb";
ALLOW_PRECOMPILED_HEADERS = "0";
DISABLE_BLITZ = "0";
PATH = "";
INCLUDE = "/opt/local/include;/usr/include";
LIB = "/opt/local/lib;/usr/lib";
LINKMODE_LOCK = "0";)";
#else
const char *gcc_bm =
R"(BUILDER = "GCC";
COMPILER = "";
COMMON_OPTIONS = "";
COMMON_CPP_OPTIONS = "-std=c++14 -Wno-parentheses";
COMMON_C_OPTIONS = "";
COMMON_LINK = "";
COMMON_FLAGS = "";
DEBUG_INFO = "2";
DEBUG_BLITZ = "1";
DEBUG_LINKMODE = "1";
DEBUG_OPTIONS = "-O0 -Wall -DflagGTK";
DEBUG_FLAGS = "";
DEBUG_LINK = "";
RELEASE_BLITZ = "0";
RELEASE_LINKMODE = "1";
RELEASE_OPTIONS = "-O3 -ffunction-sections -fdata-sections -DflagGTK -DflagGTK";
RELEASE_FLAGS = "";
RELEASE_LINK = "-Wl,--gc-sections";
DEBUGGER = "gdb";
ALLOW_PRECOMPILED_HEADERS = "0";
DISABLE_BLITZ = "0";
PATH = "";
INCLUDE = "/usr/include/freetype2;/usr/include/gtk-2.0;/usr/include/glib-2.0;/usr/lib/glib-2.0/include;/usr/lib/gtk-2.0/include;/usr/include/cairo;/usr/include/pango-1.0;/usr/include/atk-1.0;/usr/X11R6/include;/usr/X11R6/include/freetype2;/usr/X11R6/include/gtk-2.0;/usr/X11R6/include/glib-2.0;/usr/X11R6/lib/glib-2.0/include;/usr/X11R6/lib/gtk-2.0/include;/usr/X11R6/include/cairo;/usr/X11R6/include/pango-1.0;/usr/X11R6/include/atk-1.0;/usr/lib/x86_64-linux-gnu/glib-2.0/include;/usr/lib/x86_64-linux-gnu/gtk-2.0/include;/usr/include/freetype2;/usr/include/gtk-2.0;/usr/include/glib-2.0;/usr/lib/glib-2.0/include;/usr/lib/gtk-2.0/include;/usr/include/cairo;/usr/include/pango-1.0;/usr/include/atk-1.0;/usr/X11R6/include;/usr/X11R6/include/freetype2;/usr/X11R6/include/gtk-2.0;/usr/X11R6/include/glib-2.0;/usr/X11R6/lib/glib-2.0/include;/usr/X11R6/lib/gtk-2.0/include;/usr/X11R6/include/cairo;/usr/X11R6/include/pango-1.0;/usr/X11R6/include/atk-1.0;/usr/include/gdk-pixbuf-2.0;/usr/lib/x86_64-linux-gnu/glib-2.0/include;/usr/lib/x86_64-linux-gnu/gtk-2.0/include";
LIB = "/usr/X11R6/lib;/usr/lib";
LINKMODE_LOCK = "0";)";
#endif
bool Install()
{
String out = GetHomeDirFile("out");
String ass = GetConfigFolder();
String myapps = GetHomeDirFile("MyApps");
RealizeDirectory(out);
String uppsrc = GetHomeDirFile("uppsrc");
auto MakeAssembly = [&](String b, String name = Null) {
name = Nvl(name, GetFileTitle(b));
String a = ass + '/' + name + ".var";
if(name != "uppsrc")
b << ';' << uppsrc;
SaveFile(a,
"UPP = " + AsCString(b) + ";\r\n"
"OUTPUT = " + AsCString(out) + ";\r\n"
);
LOG("Creating assembly " << a);
};
for(FindFile ff(GetHomeDirFile("*")); ff; ff.Next())
if(ff.IsFolder()) {
String path = ff.GetPath();
for(FindFile ff2(path + "/*"); ff2; ff2.Next()) {
String p = ff2.GetPath();
if(FileExists(p + '/' + GetFileTitle(p) + ".upp"))
MakeAssembly(path);
}
}
MakeAssembly(myapps);
uppsrc = GetHomeDirFile("bazaar") + ';' + uppsrc;
MakeAssembly(myapps, "MyApps-bazaar");
#ifdef PLATFORM_OSX
String bm = ConfigFile("CLANG.bm");
if(IsNull(LoadFile(bm)))
SaveFile(bm, clang_bm);
#else
String bm = ConfigFile("GCC.bm");
if(IsNull(LoadFile(bm)))
SaveFile(bm, gcc_bm);
#endif
return true;
}
#endif