mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-08-25 14:22:54 -06:00
ide: Fixed help issue (multiplying themes)
git-svn-id: svn://ultimatepp.org/upp/trunk@12993 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
f49276f799
commit
837cd96b7d
5 changed files with 57 additions and 13 deletions
|
|
@ -1,3 +1,16 @@
|
|||
#ifdef COMPILER_MSC
|
||||
|
||||
template <class Range>
|
||||
using ValueTypeOf = typename std::remove_reference<decltype(*std::remove_reference<Range>::type().begin())>::type;
|
||||
|
||||
template <class Range>
|
||||
using IteratorOf = decltype(((typename std::remove_reference<Range>::type *)0)->begin());
|
||||
|
||||
template <class Range>
|
||||
using ConstIteratorOf = decltype(((const typename std::remove_reference<Range>::type *)0)->begin());
|
||||
|
||||
#else
|
||||
|
||||
template <class Range>
|
||||
using ValueTypeOf = typename std::remove_reference<decltype(*((typename std::remove_reference<Range>::type *)0)->begin())>::type;
|
||||
|
||||
|
|
@ -7,6 +20,8 @@ using IteratorOf = decltype(((typename std::remove_reference<Range>::type *)0)->
|
|||
template <class Range>
|
||||
using ConstIteratorOf = decltype(((const typename std::remove_reference<Range>::type *)0)->begin());
|
||||
|
||||
#endif
|
||||
|
||||
template <class I>
|
||||
class SubRangeClass {
|
||||
I l;
|
||||
|
|
@ -34,6 +49,7 @@ public:
|
|||
|
||||
SubRangeClass(I begin, int count) : l(begin), count(count) {}
|
||||
SubRangeClass(I begin, I end) : l(begin), count(int(end - begin)) {}
|
||||
SubRangeClass() {} // MSC bug workaround
|
||||
};
|
||||
|
||||
template <class I>
|
||||
|
|
@ -83,6 +99,7 @@ struct ConstRangeClass {
|
|||
|
||||
ConstRangeClass(const T& value, int count) : value(value), count(count) {}
|
||||
ConstRangeClass(int count) : count(count) {}
|
||||
ConstRangeClass() {} // MSC bug workaround
|
||||
};
|
||||
|
||||
template <class T>
|
||||
|
|
@ -129,6 +146,7 @@ struct ReverseRangeClass {
|
|||
template <class B> bool operator>(const B& x) const { return Compare(x) > 0; }
|
||||
|
||||
ReverseRangeClass(BaseRange& r) : r(r) {}
|
||||
ReverseRangeClass() {} // MSC bug workaround
|
||||
};
|
||||
|
||||
template <class BaseRange>
|
||||
|
|
@ -170,6 +188,7 @@ struct ViewRangeClass {
|
|||
template <class B> bool operator>(const B& x) const { return Compare(x) > 0; }
|
||||
|
||||
ViewRangeClass(BaseRange& r, Vector<int>&& ndx) : r(&r), ndx(pick(ndx)) {}
|
||||
ViewRangeClass() {} // MSC bug workaround
|
||||
};
|
||||
|
||||
template <class BaseRange>
|
||||
|
|
|
|||
|
|
@ -2439,6 +2439,7 @@ void ArrayCtrl::SortA()
|
|||
|
||||
void ArrayCtrl::SortB(const Vector<int>& o)
|
||||
{
|
||||
DTIMING("SortB");
|
||||
Vector<Line> narray;
|
||||
narray.SetCount(array.GetCount());
|
||||
Vector<Ln> nln;
|
||||
|
|
@ -2488,7 +2489,8 @@ void ArrayCtrl::Sort(int from, int count, Gate<int, int> order)
|
|||
for(int i = 0; i < array.GetCount(); i++)
|
||||
h.Add(i);
|
||||
SortA();
|
||||
StableSort(SubRange(h, from, count).Write(), order);
|
||||
{ DTIMING("StableSort");
|
||||
StableSort(SubRange(h, from, count).Write(), order); }
|
||||
SortB(h);
|
||||
Refresh();
|
||||
SyncInfo();
|
||||
|
|
@ -2502,6 +2504,7 @@ void ArrayCtrl::Sort(Gate<int, int> order)
|
|||
|
||||
bool ArrayCtrl::OrderPred(int i1, int i2, const ArrayCtrl::Order *o)
|
||||
{
|
||||
DTIMING("OrderPred");
|
||||
return (*o)(array[i1].line, array[i2].line);
|
||||
}
|
||||
|
||||
|
|
@ -2522,6 +2525,7 @@ struct sAC_ColumnSort : public ValueOrder {
|
|||
Function<int (const Value& a, const Value& b)> cmp;
|
||||
|
||||
virtual bool operator()(const Value& a, const Value& b) const {
|
||||
DTIMING("Predicated");
|
||||
return descending ? order ? (*order)(b, a) : cmp(b, a) < 0
|
||||
: order ? (*order)(a, b) : cmp(a, b) < 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -124,7 +124,8 @@ bool MscBuilder::IsMsc89() const
|
|||
bool MscBuilder::IsMsc86() const
|
||||
{
|
||||
return HasFlag("MSC8") || HasFlag("MSC9") || HasFlag("MSC10") || HasFlag("MSC11")
|
||||
|| HasFlag("MSC12") || HasFlag("MSC15") || HasFlag("MSC14") || HasFlag("MSC17");
|
||||
|| HasFlag("MSC12") || HasFlag("MSC15") || HasFlag("MSC14") || HasFlag("MSC17")
|
||||
|| HasFlag("MSC19");
|
||||
}
|
||||
|
||||
bool MscBuilder::IsMscArm() const
|
||||
|
|
@ -135,7 +136,8 @@ bool MscBuilder::IsMscArm() const
|
|||
bool MscBuilder::IsMsc64() const
|
||||
{
|
||||
return HasFlag("MSC8X64") || HasFlag("MSC9X64") || HasFlag("MSC10X64") || HasFlag("MSC11X64")
|
||||
|| HasFlag("MSC12X64") || HasFlag("MSC14X64") || HasFlag("MSC15X64") || HasFlag("MSC17X64");
|
||||
|| HasFlag("MSC12X64") || HasFlag("MSC14X64") || HasFlag("MSC15X64") || HasFlag("MSC17X64")
|
||||
|| HasFlag("MSC19X64");
|
||||
}
|
||||
|
||||
String MscBuilder::LinkerName() const
|
||||
|
|
@ -462,6 +464,7 @@ bool MscBuilder::BuildPackage(const String& package, Vector<String>& linkfile, V
|
|||
|| HasFlag("MSC14") || HasFlag("MSC14X64")
|
||||
|| HasFlag("MSC15") || HasFlag("MSC15X64")
|
||||
|| HasFlag("MSC17") || HasFlag("MSC17X64")
|
||||
|| HasFlag("MSC19") || HasFlag("MSC19X64")
|
||||
;
|
||||
Vector<Host::FileInfo> objinfo = host->GetFileInfo(obj);
|
||||
for(int i = 0; i < obj.GetCount(); i++)
|
||||
|
|
@ -597,7 +600,9 @@ bool MscBuilder::Link(const Vector<String>& linkfile, const String& linkoptions,
|
|||
|| HasFlag("MSC12") || HasFlag("MSC12X64")
|
||||
|| HasFlag("MSC14") || HasFlag("MSC14X64")
|
||||
|| HasFlag("MSC15") || HasFlag("MSC15X64")
|
||||
|| HasFlag("MSC17") || HasFlag("MSC17X64");
|
||||
|| HasFlag("MSC17") || HasFlag("MSC17X64")
|
||||
|| HasFlag("MSC19") || HasFlag("MSC19X64")
|
||||
;
|
||||
for(int i = 0; i < linkfile.GetCount(); i++)
|
||||
if(GetFileTime(linkfile[i]) > targettime) {
|
||||
String link, lib;
|
||||
|
|
@ -728,6 +733,8 @@ INITIALIZER(MscBuilder)
|
|||
RegisterBuilder("MSC15X64", CreateMscBuilder);
|
||||
RegisterBuilder("MSC17", CreateMscBuilder);
|
||||
RegisterBuilder("MSC17X64", CreateMscBuilder);
|
||||
RegisterBuilder("MSC19", CreateMscBuilder);
|
||||
RegisterBuilder("MSC19X64", CreateMscBuilder);
|
||||
RegisterBuilder("EVC_ARM", CreateMscBuilder);
|
||||
RegisterBuilder("EVC_MIPS", CreateMscBuilder);
|
||||
RegisterBuilder("EVC_SH3", CreateMscBuilder);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ struct GatherLinksIterator : RichText::Iterator {
|
|||
{
|
||||
for(int i = 0; i < para.GetCount(); i++) {
|
||||
String l = para[i].format.link;
|
||||
int q = l.ReverseFind('#');
|
||||
if(q >= 0)
|
||||
l.Trim(q);
|
||||
if(!IsNull(l))
|
||||
link.FindAdd(l);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -127,16 +127,23 @@ void InstantSetup()
|
|||
|
||||
bool dirty = false;
|
||||
|
||||
enum { VS_2015, VS_2017, BT_2017 };
|
||||
enum { VS_2015, VS_2017, BT_2017, VS_2019, BT_2019 };
|
||||
|
||||
for(int version = VS_2015; version <= BT_2017; version++)
|
||||
for(int version = VS_2015; version <= BT_2019; version++)
|
||||
for(int x64 = 0; x64 < 2; x64++) {
|
||||
String x86method = decode(version, VS_2015, "MSVS15", VS_2017, "MSVS17", "MSBT17");
|
||||
String x86method = decode(version, VS_2015, "MSVS15",
|
||||
VS_2017, "MSVS17", BT_2017, "MSBT17",
|
||||
VS_2019, "MSVS19", BT_2019, "MSBT19",
|
||||
"MSBT");
|
||||
String x64s = x64 ? "x64" : "";
|
||||
String method = x86method + x64s;
|
||||
String builder = (version == VS_2015 ? "MSC15" : "MSC17") + ToUpper(x64s);
|
||||
String builder = decode(version, VS_2015, "MSC15",
|
||||
VS_2017, "MSC17", BT_2017, "MSC17",
|
||||
VS_2019, "MSC19", BT_2019, "MSC19",
|
||||
"MSC19"
|
||||
) + ToUpper(x64s);
|
||||
|
||||
#ifdef _DEBUG0
|
||||
#ifdef _DEBUG
|
||||
method << "Test";
|
||||
#endif
|
||||
|
||||
|
|
@ -158,8 +165,11 @@ void InstantSetup()
|
|||
if(version == VS_2015)
|
||||
vc = df.Get("/microsoft visual studio 14.0/vc", "bin/cl.exe;bin/lib.exe;bin/link.exe;bin/mspdb140.dll");
|
||||
else
|
||||
vc = df.Get(version == BT_2017 ? "/microsoft visual studio/2017/buildtools/vc/tools/msvc"
|
||||
: "/microsoft visual studio/2017/community/vc/tools/msvc",
|
||||
vc = df.Get(decode(version, BT_2017, "/microsoft visual studio/2017/buildtools/vc/tools/msvc",
|
||||
VS_2017, "/microsoft visual studio/2017/community/vc/tools/msvc",
|
||||
BT_2019, "/microsoft visual studio/2019/buildtools/vc/tools/msvc",
|
||||
VS_2019, "/microsoft visual studio/2019/community/vc/tools/msvc",
|
||||
""),
|
||||
x64 ? "bin/hostx64/x64/cl.exe;bin/hostx64/x64/mspdb140.dll"
|
||||
: "bin/hostx86/x86/cl.exe;bin/hostx86/x86/mspdb140.dll");
|
||||
|
||||
|
|
@ -272,8 +282,9 @@ void InstantSetup()
|
|||
bmSet(bm, "RELEASE_FLAGS", "");
|
||||
bmSet(bm, "RELEASE_LINK", x64 ? "/STACK:20000000" : "/STACK:10000000");
|
||||
bmSet(bm, "DISABLE_BLITZ", "");
|
||||
bmSet(bm, "DEBUGGER", version == BT_2017 ? String() : GetFileFolder(vc) + "/Common7/IDE/devenv.exe");
|
||||
|
||||
bmSet(bm, "DEBUGGER", findarg(version, BT_2017, BT_2019) >= 0 ? String()
|
||||
: GetFileFolder(vc) + "/Common7/IDE/devenv.exe");
|
||||
|
||||
bm.GetAdd("PATH") = Join(bins, ";");
|
||||
bm.GetAdd("INCLUDE") = Join(incs, ";");
|
||||
bm.GetAdd("LIB") = Join(libs, ";");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue