Hacked scons scripts and got it building on Ubuntu with clang.
Minor changes to support building on recent clang Addition of some headers for non-compiling files
This commit is contained in:
17
SConstruct
17
SConstruct
@@ -5,11 +5,11 @@ import subprocess
|
||||
|
||||
platform = ARGUMENTS.get('OS', Platform())
|
||||
|
||||
if str(platform) not in ("darwin", "win32"):
|
||||
if str(platform) not in ("darwin", "win32", "posix"):
|
||||
print "Sorry, your platform is not supported."
|
||||
print "Platform is:", platform
|
||||
print "Specify OS=<your-platform> if you believe this is incorrect."
|
||||
print "(Supported platforms are: darwin, win32)"
|
||||
print "(Supported platforms are: darwin, win32, posix)"
|
||||
Exit(1)
|
||||
|
||||
print 'Building for:', platform
|
||||
@@ -42,6 +42,10 @@ else:
|
||||
echo -e "\n#define GIT_REVISION \"\"\n#define GIT_TAG \"\"\n#define GIT_TAG_REVISION \"\"\n" > #TARGET
|
||||
""")
|
||||
|
||||
if str(platform) == "posix":
|
||||
env.Append(CXXFLAGS="-std=c++11")
|
||||
env["CC"] = 'clang'
|
||||
env["CXX"] = 'clang++'
|
||||
if str(platform) == "darwin":
|
||||
env.Append(CXXFLAGS="-std=c++11 -stdlib=libc++", RPATH='../Frameworks')
|
||||
env["CC"] = 'clang'
|
||||
@@ -146,6 +150,9 @@ elif str(platform) == "win32":
|
||||
)
|
||||
def build_app_package(env, source, build_dir, info):
|
||||
env.Install(build_dir, source)
|
||||
elif str(platform) == "posix":
|
||||
def build_app_package(env, source, build_dir, info):
|
||||
env.Install(build_dir, source)
|
||||
|
||||
env.AddMethod(build_app_package, "Package")
|
||||
|
||||
@@ -274,10 +281,14 @@ if str(platform) == "darwin":
|
||||
OpenGL
|
||||
Cocoa
|
||||
"""))
|
||||
else:
|
||||
elif str(platform) == "win32":
|
||||
env.Append(LIBS=Split("""
|
||||
opengl32
|
||||
"""))
|
||||
elif str(platform) == "posix":
|
||||
env.Append(LIBS=Split("""
|
||||
GL
|
||||
"""))
|
||||
|
||||
Export("env platform")
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ env.Install(path.join(data_dir, "shaders"), Glob("#src/tools/mask.*"))
|
||||
|
||||
if str(platform) == "darwin":
|
||||
scen_gfx = Glob("Blades of Exile Scenarios/*.meg")
|
||||
elif str(platform) == "win32":
|
||||
else:
|
||||
scen_gfx = Glob("Blades of Exile Scenarios/*.BMP")
|
||||
|
||||
env.Install(path.join(install_dir, "Blades of Exile Scenarios"), Glob("Blades of Exile Scenarios/*.exs") + scen_gfx)
|
||||
|
||||
@@ -35,7 +35,7 @@ elif str(platform) == "win32":
|
||||
"""))
|
||||
game_sources.append(env.RES('#build/obj/BladesOfExile.res', '#rsrc/menus/BladesOfExile.rc'))
|
||||
|
||||
boe = env.Program("#build/bin/Blades of Exile", common_sources + party_classes + game_sources)
|
||||
boe = env.Program("#build/bin/Blades of Exile", game_sources + common_sources + party_classes)
|
||||
|
||||
if str(platform) == "darwin":
|
||||
boe_info = {
|
||||
@@ -44,7 +44,7 @@ if str(platform) == "darwin":
|
||||
'creator': 'blx!',
|
||||
'icons': 'BoE boegraphics boeresources boesave boesounds',
|
||||
}
|
||||
elif str(platform) == "win32":
|
||||
else:
|
||||
boe_info = {}
|
||||
|
||||
env.Package(boe, install_dir, boe_info)
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
#include <set>
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
|
||||
#include "universe.hpp"
|
||||
#include "oldstructs.hpp"
|
||||
@@ -422,8 +424,12 @@ void cPlayer::sort_items() {
|
||||
if(item_priority[items[i + 1].variety] <
|
||||
item_priority[items[i].variety]) {
|
||||
no_swaps = false;
|
||||
std::swap(items[i + 1], items[i]);
|
||||
std::swap(equip[i + 1], equip[i]);
|
||||
std::swap(items[i + 1], items[i]);
|
||||
// we can't use std::swap here, the fact VS accepted it was due to a bug https://connect.microsoft.com/VisualStudio/feedback/details/775818/vc11-non-const-lvalue-reference-incorrectly-binds-to-rvalue
|
||||
// std::swap(equip[i + 1], equip[i]);
|
||||
bool tempEquip = equip[i+1];
|
||||
equip[i+1] = equip[i];
|
||||
equip[i] = tempEquip;
|
||||
if(weap_poisoned.slot == i + 1)
|
||||
weap_poisoned.slot--;
|
||||
else if(weap_poisoned.slot == i)
|
||||
|
||||
@@ -3,4 +3,4 @@ Import("env")
|
||||
|
||||
dlog_util = env.StaticLibrary("#build/lib/dlogutil", Glob("*.cpp") + Glob("xml-parser/*.cpp"))
|
||||
|
||||
Return("dlog_util")
|
||||
Return("dlog_util")
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "button.hpp"
|
||||
#include "pict.hpp"
|
||||
#include "stack.hpp"
|
||||
#include <climits>
|
||||
|
||||
cScrollPane::cScrollPane(cDialog& parent) : cContainer(CTRL_PANE, parent), scroll(parent) {
|
||||
recalcRect();
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "message.hpp"
|
||||
#include "pict.hpp"
|
||||
#include "scrollbar.hpp"
|
||||
#include <climits>
|
||||
|
||||
bool cStack::hasChild(std::string id) {
|
||||
return controls.find(id) != controls.end();
|
||||
|
||||
@@ -21,7 +21,7 @@ elif str(platform) == "win32":
|
||||
"""))
|
||||
pced_sources.append(env.RES('#rsrc/menus/CharEditor.rc'))
|
||||
|
||||
pced = env.Program("#build/bin/BoE Character Editor", common_sources + party_classes + pced_sources)
|
||||
pced = env.Program("#build/bin/BoE Character Editor", pced_sources + common_sources + party_classes)
|
||||
|
||||
if str(platform) == "darwin":
|
||||
pced_info = {
|
||||
@@ -30,7 +30,7 @@ if str(platform) == "darwin":
|
||||
'creator': 'blxe',
|
||||
'icons': 'BoECharEd',
|
||||
}
|
||||
elif str(platform) == "win32":
|
||||
else:
|
||||
pced_info = {}
|
||||
|
||||
env.Package(pced, install_dir, pced_info)
|
||||
|
||||
@@ -23,7 +23,7 @@ elif str(platform) == "win32":
|
||||
"""))
|
||||
scened_sources.extend(env.RES('#rsrc/menus/ScenEditor.rc'))
|
||||
|
||||
scened = env.Program("#build/bin/BoE Scenario Editor", common_sources + scened_sources)
|
||||
scened = env.Program("#build/bin/BoE Scenario Editor", scened_sources + common_sources)
|
||||
|
||||
if str(platform) == "darwin":
|
||||
scened_info = {
|
||||
@@ -32,7 +32,7 @@ if str(platform) == "darwin":
|
||||
'creator': 'BlEd',
|
||||
'icons': 'boescenario BoEScenEd',
|
||||
}
|
||||
elif str(platform) == "win32":
|
||||
else:
|
||||
scened_info = {}
|
||||
|
||||
env.Package(scened, install_dir, scened_info)
|
||||
|
||||
@@ -23,4 +23,4 @@ elif str(platform) == "win32":
|
||||
|
||||
tools_obj = env.StaticLibrary("#build/lib/tools", tools)
|
||||
|
||||
Return("tools_obj")
|
||||
Return("tools_obj")
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#endif
|
||||
#include <GL/GL.h>
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <cctype>
|
||||
#include <iterator>
|
||||
#include <numeric>
|
||||
#include <cstring>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
@@ -36,10 +36,8 @@ void erase_if(ContainerT& items, const PredicateT& predicate) {
|
||||
};
|
||||
|
||||
// Case-insensitive string comparison seems to be semi-standard, but with different names.
|
||||
#if defined(__APPLE__)
|
||||
#define strnicmp strncasecmp
|
||||
#elif defined(_MSC_VER)
|
||||
#if defined(_MSC_VER)
|
||||
#define strnicmp _strnicmp
|
||||
#else
|
||||
#error Missing strnicmp / strncasecmp
|
||||
#define strnicmp strncasecmp
|
||||
#endif
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <algorithm>
|
||||
#include <cstdio>
|
||||
#include <ctime>
|
||||
#include <cstring>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
// For some bizarre reason, Visual Studio doesn't declare snprintf in <cstdio>
|
||||
|
||||
Reference in New Issue
Block a user