summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas Tanner <trtanner@btinternet.com>2015-11-27 07:58:22 +0000
committerThomas Tanner <trtanner@btinternet.com>2015-11-27 07:58:22 +0000
commitbb56696f7e71cde6c6da5b60f3355ce7041d3a40 (patch)
tree8c36fed649e13cc8537b97c19684de29d014b98d /src
parent9d4b7a1df0767a322cfa6dcca008479e4e257d39 (diff)
parent56ba058cd54d073280eb86978d178e45253e6e19 (diff)
Merge remote-tracking branch 'TanninOne/master' into issue/324
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt12
-rw-r--r--src/SConscript54
-rw-r--r--src/organizer.pro4
3 files changed, 59 insertions, 11 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 22b725de..9ef5d1bc 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -272,16 +272,20 @@ SET(default_project_path "${CMAKE_SOURCE_DIR}/..")
GET_FILENAME_COMPONENT(${default_project_path} ${default_project_path} REALPATH)
SET(project_path "${default_project_path}" CACHE PATH "path to the other mo projects")
-SET(lib_path "${project_path}/../install/libs")
+SET(lib_path "${project_path}/../../install/libs")
+
+
+MESSAGE(STATUS ${lib_path})
+MESSAGE(STATUS ${project_path})
INCLUDE_DIRECTORIES(${project_path}/uibase/src
${project_path}/bsatk/src
${project_path}/esptk/src
${project_path}/archive/src
- ${project_path}/plugin/game_features/src)
+ ${project_path}/game_features/src)
INCLUDE_DIRECTORIES(shared ${ZLIB_INCLUDE_DIRS})
LINK_DIRECTORIES(${lib_path}
- ${project_path}/zlib/lib)
+ ${project_path}/../zlib/lib)
ADD_DEFINITIONS(-D_UNICODE -DUNICODE -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS)
@@ -298,7 +302,7 @@ SET_TARGET_PROPERTIES(ModOrganizer PROPERTIES LINK_FLAGS_RELWITHDEBINFO
"/LTCG /INCREMENTAL:NO /LARGEADDRESSAWARE /OPT:REF /OPT:ICF")
-QT5_USE_MODULES(ModOrganizer Widgets Declarative Network WebEngineWidgets)
+QT5_USE_MODULES(ModOrganizer Widgets Declarative Network WebKitWidgets)
###############
diff --git a/src/SConscript b/src/SConscript
index 6783fd8b..f09db093 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -1,6 +1,43 @@
+import ctypes
import os
import subprocess
+def resolve_name(source):
+ # Get the actual name of the file, after reparse points and symlinks are
+ # taken into account.
+ GENERIC_READ = 0x80000000
+ FILE_SHARE_READ = 0x1
+ OPEN_EXISTING = 0x3
+ FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
+ handle = ctypes.windll.kernel32.CreateFileA(source,
+ GENERIC_READ,
+ FILE_SHARE_READ,
+ None,
+ OPEN_EXISTING,
+ FILE_FLAG_BACKUP_SEMANTICS,
+ None)
+ # get the target
+ FILE_NAME_NORMALIZED = 0x0
+ FILE_NAME_OPENED = 0x8
+ buff = ctypes.create_string_buffer(1024)
+ res = ctypes.windll.kernel32.GetFinalPathNameByHandleA(handle,
+ buff,
+ ctypes.sizeof(buff),
+ FILE_NAME_NORMALIZED)
+ target = buff.value
+ ctypes.windll.kernel32.CloseHandle(handle)
+ return target
+
+def search_up(path, target):
+ while True:
+ if os.path.exists(os.path.join(path, target)):
+ return True
+ npath = os.path.dirname(path)
+ if npath == path:
+ break
+ path = npath
+ return False
+
Import('qt_env')
env = qt_env.Clone()
@@ -47,16 +84,12 @@ env.AppendUnique(LIBS = [
other_sources = env.AddExtraMoc(env.Glob('*.h'))
for file in env.Glob('*.rc'):
- # version.rc is included in app_icon.rc. Not sure why it's a separate file.
- if file.name == 'version.rc':
- continue
other_sources.append(env.RES(file))
# Note the order of this is important, or you can pick up the wrong report.h...
# Doing appendunique seems to throw the moc code into a tizzy
env['CPPPATH'] += [
'../archive',
-# '../boss_modified/boss-api',
'../plugins/gamefeatures',
'.', # Why is this necessary?
'${LOOTPATH}',
@@ -86,10 +119,19 @@ cpp_files = [
]
about_env = env.Clone()
+# This is somewhat of a hack until I can work out a way of setting up a build
+# with all the repos without using millions of junction points
try:
- hgid = subprocess.check_output(['hg', 'id', '-i']).rstrip()
+ target = resolve_name(Dir('.').srcnode().abspath)
+ if search_up(target, '.hg'):
+ hgid = subprocess.check_output([env['MERCURIAL'], 'id', '-i']).rstrip()
+ elif search_up(target, '.git'):
+ hgid = subprocess.check_output([env['GIT'], '-C', target, 'describe',
+ '--tag']).rstrip()
+ else:
+ hgid = "Unknown"
except:
- hgid = 'Unknown version'
+ hgid = "Problem determining version"
# FIXME: It'd be much easier to stringify this in the source code
about_env.AppendUnique(CPPDEFINES = [ 'HGID=\\"%s\\"' % hgid ])
diff --git a/src/organizer.pro b/src/organizer.pro
index 5b2c56b1..261e3c1c 100644
--- a/src/organizer.pro
+++ b/src/organizer.pro
@@ -310,7 +310,9 @@ DEFINES += UNICODE _UNICODE _CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS NOMI
DEFINES += BOOST_DISABLE_ASSERTS NDEBUG QT_MESSAGELOGCONTEXT
#DEFINES += QMLJSDEBUGGER
-HGID = 'nothing'
+# If we are running mercurial get the build ID from that. If we aren't, at least
+# don't generate a strange message whenever you open the project
+HGID = $$system(if exist $OUT_PWD\\..\\.hg (hg id -i) else (echo 'Unknown'))
DEFINES += HGID=\\\"$${HGID}\\\"
CONFIG(debug, debug|release) {