From 97d6f7ce0132b8030787a6c764e61be77de8bcb0 Mon Sep 17 00:00:00 2001 From: Tom Tanner Date: Sun, 8 Mar 2015 13:20:56 +0000 Subject: First attempt at using scons to build --- src/ModOrganizer.pro | 4 ++ src/SConscript | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/organizer.pro | 3 + src/shared/SConscript | 39 ++++++++++ src/shared/shared.pro | 3 + 5 files changed, 241 insertions(+) create mode 100644 src/SConscript create mode 100644 src/shared/SConscript (limited to 'src') diff --git a/src/ModOrganizer.pro b/src/ModOrganizer.pro index 98f6f730..66b8b621 100644 --- a/src/ModOrganizer.pro +++ b/src/ModOrganizer.pro @@ -49,3 +49,7 @@ for(QTNAME, QTLIBNAMES) { } INSTALLS += qtlibs otherlibs + +OTHER_FILES +=\ + ../SConstruct\ + SConscript diff --git a/src/SConscript b/src/SConscript new file mode 100644 index 00000000..92bd9d21 --- /dev/null +++ b/src/SConscript @@ -0,0 +1,192 @@ +import os +#import subprocess + +Import('qt_env') + +env = qt_env.Clone() + +modules = [ + 'Core', + 'Gui', + 'Network', + 'Script', + 'Sql', + 'WebKit', + 'Xml', + 'XmlPatterns' +] + +if env['QT_MAJOR_VERSION'] > 4: + modules += [ + 'Widgets', + 'Qml', + 'Quick', + 'WebKitWidgets' + ] +else: + modules += [ + 'Declarative' + ] + +env.EnableQt4Modules(['Qt' + n for n in modules], debug = env['CONFIG'] == 'debug') +env.Uic4(Glob('*.ui')) + +# modeltest is optional and it doesn't compile anyway... +cpp_files = [ x for x in Glob('*.cpp') if not str(x).endswith('modeltest.cpp') ] + +env.AppendUnique(LIBPATH = [ + '../uibase', + '../shared', + '../bsatk', + '../esptk' +]) + +env.AppendUnique(LIBS = [ + 'uibase', + 'mo_shared', + 'bsatk', + 'esptk', + 'shell32', + 'user32', + 'ole32', + 'advapi32', + 'gdi32', + 'shlwapi', + 'Psapi', + 'Version' +]) + +# We have to 'persuade' moc to generate certain other targets and inject them into +# the list of cpps +other_sources = [] +for file in env.Glob('*.h'): + target = str(file)[:-1] + 'cpp' + if not os.path.exists(target): + if 'Q_OBJECT' in file.get_contents(): + header = os.path.basename(str(file)) + target = env.ExplicitMoc4('moc_' + header[:-1] + 'cpp', header) + other_sources.append(target) + +for file in env.Glob('*.rc'): + if str(file).endswith('version.rc'): + continue + other_sources.append(env.RES(file)) + +# Add the translate in here too + +# 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'] += [ + '../shared', + '../archive', + '../uibase', + '../bsatk', + '../esptk', + '../boss_modified/boss-api', + '.', # Why is this necessary? + '$BOOST_PATH', +] + +env.AppendUnique(CPPDEFINES = [ + 'UNICODE', + '_UNICODE', + '_CRT_SECURE_NO_WARNINGS', + '_SCL_SECURE_NO_WARNINGS', + 'NOMINMAX', + 'BOOST_DISABLE_ASSERTS', +# Although the .pro file says it adds this, the compile line doesn't seem to have it (unless it's in the +# annoying '@' file +# 'NDEBUG' +]) + +# Umf. This changes everytime you do something with your repository. +# I don't think this is necessary with scons +# hgid = subprocess.check_output(['hg', 'id', '-i']) +# env.AppendUnique(CPPDEFINES = [ 'HGID="%s"' % hgid ]) + +env.AppendUnique(CPPFLAGS = [ '-wd4100', '-wd4127', '-wd4512', '-wd4189' ]) + +env['WINDOWS_EMBED_MANIFEST'] = True + +program = env.Program('ModOrganizer', cpp_files + env.Glob('*.qrc') + other_sources) +# Dodgy. just get the exe +env.Install(env['INSTALL_PATH'], program[0]) + +for subdir in ('tutorials', 'stylesheets'): + env.Install(os.path.join(env['INSTALL_PATH'], subdir), + env.Glob(os.path.join(subdir, '*'))) + +""" +CONFIG(debug, debug|release) { + LIBS += -L$$OUT_PWD/../shared/debug + LIBS += -L$$OUT_PWD/../bsatk/debug + LIBS += -L$$OUT_PWD/../uibase/debug + LIBS += -L$$OUT_PWD/../boss_modified/debug + LIBS += -lDbgHelp + PRE_TARGETDEPS += \ + $$OUT_PWD/../shared/debug/mo_shared.lib \ + $$OUT_PWD/../bsatk/debug/bsatk.lib +} else { + LIBS += -L$$OUT_PWD/../shared/release + LIBS += -L$$OUT_PWD/../bsatk/release + LIBS += -L$$OUT_PWD/../uibase/release + LIBS += -L$$OUT_PWD/../boss_modified/release + QMAKE_CXXFLAGS += /Zi /GL + QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF + PRE_TARGETDEPS += \ + $$OUT_PWD/../shared/release/mo_shared.lib \ + $$OUT_PWD/../bsatk/release/bsatk.lib +} + +CONFIG += embed_manifest_exe + +TRANSLATIONS = organizer_en.ts + +HGID = $$system(hg id -i) +DEFINES += HGID=\\\"$${HGID}\\\" + +CONFIG(debug, debug|release) { + SRCDIR = $$OUT_PWD/debug + DSTDIR = $$PWD/../../outputd +} else { + SRCDIR = $$OUT_PWD/release + DSTDIR = $$PWD/../../output +} + +BASEDIR = $$PWD +BASEDIR ~= s,/,$$QMAKE_DIR_SEP,g +SRCDIR ~= s,/,$$QMAKE_DIR_SEP,g +DSTDIR ~= s,/,$$QMAKE_DIR_SEP,g + +QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\*.qm) $$quote($$DSTDIR)\\translations $$escape_expand(\\n) + +CONFIG(debug, debug|release) { + QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\..\\dlls.*manifest.debug) $$quote($$DSTDIR)\\dlls $$escape_expand(\\n) + QMAKE_POST_LINK += copy /y $$quote($$DSTDIR)\\dlls\\dlls.manifest.debug $$quote($$DSTDIR)\\dlls\\dlls.manifest $$escape_expand(\\n) + QMAKE_POST_LINK += del $$quote($$DSTDIR)\\dlls\\dlls.manifest.debug $$escape_expand(\\n) +} else { + QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\..\\dlls.*manifest) $$quote($$DSTDIR)\\dlls $$escape_expand(\\n) +} + +""" + +""" compile/link output +-DHGID=\"dfd7e875f973+\" -DQT_DECLARATIVE_DEBUG +link /LIBPATH:"c:\Apps\Qt\4.8.6\lib" /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /MANIFEST /MANIFESTFILE:"debug\ModOrganizer.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\ModOrganizer.exe @C:\Users\Dad\AppData\Local\Temp\nm237A.tmp +LINK : debug\ModOrganizer.exe not found or not built by the last incremental link; performing full link +mt.exe -nologo -manifest "debug\ModOrganizer.intermediate.manifest" -outputresource:debug\ModOrganizer.exe;1 +""" + +""" scons +compile diffs +/TP +/DNDEBUG +(possible wrong order- should be at end) /IC:\Apps\Qt\4.8.6\mkspecs\win32-msvc2010 +/IC:\Apps\Qt\4.8.6\include (twice) + +Using tempfile c:\users\dad\appdata\local\temp\tmpozwyw_.lnk for command line: +link /nologo /OUT:build-ModOrganizer-scons\debug\organizer\ModOrganizer.exe /LIBPATH:C:\Apps\boost_1_55_0\lib32-msvc-10.0 /LIBPATH:C:\Apps\Qt\4.8.6\lib /LIBPATH:build-ModOrganizer-scons\debug\uibase /LIBPATH:source\uibase /LIBPATH:build-ModOrganizer-scons\debug\shared /LIBPATH:source\shared /LIBPATH:build-ModOrganizer-scons\debug\bsatk /LIBPATH:source\bsatk /LIBPATH:build-ModOrganizer-scons\debug\esptk /LIBPATH:source\esptk qtmaind.lib QtCored4.lib QtGuid4.lib QtNetworkd4.lib QtScriptd4.lib QtSqld4.lib QtWebKitd4.lib QtXmld4.lib QtXmlPatternsd4.lib QtDeclaratived4.lib uibase.lib mo_shared.lib bsatk.lib esptk.lib shell32.lib user32.lib ole32.lib advapi32.lib gdi32.lib shlwapi.lib Psapi.lib Version.lib build-ModOrganizer-scons\debug\organizer\aboutdialog.obj build-ModOrganizer-scons\debug\organizer\activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\bbcode.obj build-ModOrganizer-scons\debug\organizer\browserdialog.obj build-ModOrganizer-scons\debug\organizer\browserview.obj build-ModOrganizer-scons\debug\organizer\categories.obj build-ModOrganizer-scons\debug\organizer\categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\csvbuilder.obj build-ModOrganizer-scons\debug\organizer\directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\downloadlist.obj build-ModOrganizer-scons\debug\organizer\downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\downloadmanager.obj build-ModOrganizer-scons\debug\organizer\dummybsa.obj build-ModOrganizer-scons\debug\organizer\editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\executableslist.obj build-ModOrganizer-scons\debug\organizer\filedialogmemory.obj build-ModOrganizer-scons\debug\organizer\gameinfoimpl.obj build-ModOrganizer-scons\debug\organizer\genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\helper.obj build-ModOrganizer-scons\debug\organizer\icondelegate.obj build-ModOrganizer-scons\debug\organizer\installationmanager.obj build-ModOrganizer-scons\debug\organizer\json.obj build-ModOrganizer-scons\debug\organizer\loadmechanism.obj build-ModOrganizer-scons\debug\organizer\lockeddialog.obj build-ModOrganizer-scons\debug\organizer\logbuffer.obj build-ModOrganizer-scons\debug\organizer\loghighlighter.obj build-ModOrganizer-scons\debug\organizer\main.obj build-ModOrganizer-scons\debug\organizer\mainwindow.obj build-ModOrganizer-scons\debug\organizer\messagedialog.obj build-ModOrganizer-scons\debug\organizer\moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_aboutdialog.obj build-ModOrganizer-scons\debug\organizer\moc_activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserview.obj build-ModOrganizer-scons\debug\organizer\moc_categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlist.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\moc_downloadmanager.obj build-ModOrganizer-scons\debug\organizer\moc_editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_icondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_installationmanager.obj build-ModOrganizer-scons\debug\organizer\moc_lockeddialog.obj build-ModOrganizer-scons\debug\organizer\moc_logbuffer.obj build-ModOrganizer-scons\debug\organizer\moc_loghighlighter.obj build-ModOrganizer-scons\debug\organizer\moc_mainwindow.obj build-ModOrganizer-scons\debug\organizer\moc_messagedialog.obj build-ModOrganizer-scons\debug\organizer\moc_moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_modinfo.obj build-ModOrganizer-scons\debug\organizer\moc_modinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_modlist.obj build-ModOrganizer-scons\debug\organizer\moc_modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_modlistview.obj build-ModOrganizer-scons\debug\organizer\moc_motddialog.obj build-ModOrganizer-scons\debug\organizer\moc_nexusinterface.obj build-ModOrganizer-scons\debug\organizer\moc_nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\moc_overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlist.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_previewdialog.obj build-ModOrganizer-scons\debug\organizer\moc_problemsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profile.obj build-ModOrganizer-scons\debug\organizer\moc_profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profilesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\moc_queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_savegame.obj build-ModOrganizer-scons\debug\organizer\moc_savegamegamebyro.obj build-ModOrganizer-scons\debug\organizer\moc_savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\moc_savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\moc_selectiondialog.obj build-ModOrganizer-scons\debug\organizer\moc_selfupdater.obj build-ModOrganizer-scons\debug\organizer\moc_settings.obj build-ModOrganizer-scons\debug\organizer\moc_settingsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_singleinstance.obj build-ModOrganizer-scons\debug\organizer\moc_spawn.obj build-ModOrganizer-scons\debug\organizer\moc_syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_transfersavesdialog.obj build-ModOrganizer-scons\debug\organizer\modflagicondelegate.obj build-ModOrganizer-scons\debug\organizer\modinfo.obj build-ModOrganizer-scons\debug\organizer\modinfodialog.obj build-ModOrganizer-scons\debug\organizer\modlist.obj build-ModOrganizer-scons\debug\organizer\modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\modlistview.obj build-ModOrganizer-scons\debug\organizer\motddialog.obj build-ModOrganizer-scons\debug\organizer\nexusinterface.obj build-ModOrganizer-scons\debug\organizer\noeditdelegate.obj build-ModOrganizer-scons\debug\organizer\nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\organizerproxy.obj build-ModOrganizer-scons\debug\organizer\overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\persistentcookiejar.obj build-ModOrganizer-scons\debug\organizer\pluginlist.obj build-ModOrganizer-scons\debug\organizer\pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\previewdialog.obj build-ModOrganizer-scons\debug\organizer\previewgenerator.obj build-ModOrganizer-scons\debug\organizer\problemsdialog.obj build-ModOrganizer-scons\debug\organizer\profile.obj build-ModOrganizer-scons\debug\organizer\profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\profilesdialog.obj build-ModOrganizer-scons\debug\organizer\qrc_resources.obj build-ModOrganizer-scons\debug\organizer\qrc_stylesheet_resource.obj build-ModOrganizer-scons\debug\organizer\qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\report.obj build-ModOrganizer-scons\debug\organizer\safewritefile.obj build-ModOrganizer-scons\debug\organizer\savegame.obj build-ModOrganizer-scons\debug\organizer\savegamegamebryo.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidgetgamebryo.obj build-ModOrganizer-scons\debug\organizer\savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\selectiondialog.obj build-ModOrganizer-scons\debug\organizer\selfupdater.obj build-ModOrganizer-scons\debug\organizer\serverinfo.obj build-ModOrganizer-scons\debug\organizer\settings.obj build-ModOrganizer-scons\debug\organizer\settingsdialog.obj build-ModOrganizer-scons\debug\organizer\singleinstance.obj build-ModOrganizer-scons\debug\organizer\spawn.obj build-ModOrganizer-scons\debug\organizer\syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\transfersavesdialog.obj +link @c:\users\dad\appdata\local\temp\tmpozwyw_.lnk +Using tempfile c:\users\dad\appdata\local\temp\tmpuzxnwy.lnk for command line: +link /nologo /OUT:build-ModOrganizer-scons\debug\organizer\ModOrganizer.exe /LIBPATH:C:\Apps\boost_1_55_0\lib32-msvc-10.0 /LIBPATH:C:\Apps\Qt\4.8.6\lib /LIBPATH:build-ModOrganizer-scons\debug\uibase /LIBPATH:source\uibase /LIBPATH:build-ModOrganizer-scons\debug\shared /LIBPATH:source\shared /LIBPATH:build-ModOrganizer-scons\debug\bsatk /LIBPATH:source\bsatk /LIBPATH:build-ModOrganizer-scons\debug\esptk /LIBPATH:source\esptk qtmaind.lib QtCored4.lib QtGuid4.lib QtNetworkd4.lib QtScriptd4.lib QtSqld4.lib QtWebKitd4.lib QtXmld4.lib QtXmlPatternsd4.lib QtDeclaratived4.lib uibase.lib mo_shared.lib bsatk.lib esptk.lib shell32.lib user32.lib ole32.lib advapi32.lib gdi32.lib shlwapi.lib Psapi.lib Version.lib build-ModOrganizer-scons\debug\organizer\aboutdialog.obj build-ModOrganizer-scons\debug\organizer\activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\bbcode.obj build-ModOrganizer-scons\debug\organizer\browserdialog.obj build-ModOrganizer-scons\debug\organizer\browserview.obj build-ModOrganizer-scons\debug\organizer\categories.obj build-ModOrganizer-scons\debug\organizer\categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\csvbuilder.obj build-ModOrganizer-scons\debug\organizer\directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\downloadlist.obj build-ModOrganizer-scons\debug\organizer\downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\downloadmanager.obj build-ModOrganizer-scons\debug\organizer\dummybsa.obj build-ModOrganizer-scons\debug\organizer\editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\executableslist.obj build-ModOrganizer-scons\debug\organizer\filedialogmemory.obj build-ModOrganizer-scons\debug\organizer\gameinfoimpl.obj build-ModOrganizer-scons\debug\organizer\genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\helper.obj build-ModOrganizer-scons\debug\organizer\icondelegate.obj build-ModOrganizer-scons\debug\organizer\installationmanager.obj build-ModOrganizer-scons\debug\organizer\json.obj build-ModOrganizer-scons\debug\organizer\loadmechanism.obj build-ModOrganizer-scons\debug\organizer\lockeddialog.obj build-ModOrganizer-scons\debug\organizer\logbuffer.obj build-ModOrganizer-scons\debug\organizer\loghighlighter.obj build-ModOrganizer-scons\debug\organizer\main.obj build-ModOrganizer-scons\debug\organizer\mainwindow.obj build-ModOrganizer-scons\debug\organizer\messagedialog.obj build-ModOrganizer-scons\debug\organizer\moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_aboutdialog.obj build-ModOrganizer-scons\debug\organizer\moc_activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserview.obj build-ModOrganizer-scons\debug\organizer\moc_categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlist.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\moc_downloadmanager.obj build-ModOrganizer-scons\debug\organizer\moc_editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_icondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_installationmanager.obj build-ModOrganizer-scons\debug\organizer\moc_lockeddialog.obj build-ModOrganizer-scons\debug\organizer\moc_logbuffer.obj build-ModOrganizer-scons\debug\organizer\moc_loghighlighter.obj build-ModOrganizer-scons\debug\organizer\moc_mainwindow.obj build-ModOrganizer-scons\debug\organizer\moc_messagedialog.obj build-ModOrganizer-scons\debug\organizer\moc_moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_modinfo.obj build-ModOrganizer-scons\debug\organizer\moc_modinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_modlist.obj build-ModOrganizer-scons\debug\organizer\moc_modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_modlistview.obj build-ModOrganizer-scons\debug\organizer\moc_motddialog.obj build-ModOrganizer-scons\debug\organizer\moc_nexusinterface.obj build-ModOrganizer-scons\debug\organizer\moc_nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\moc_overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlist.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_previewdialog.obj build-ModOrganizer-scons\debug\organizer\moc_problemsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profile.obj build-ModOrganizer-scons\debug\organizer\moc_profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profilesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\moc_queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_savegame.obj build-ModOrganizer-scons\debug\organizer\moc_savegamegamebyro.obj build-ModOrganizer-scons\debug\organizer\moc_savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\moc_savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\moc_selectiondialog.obj build-ModOrganizer-scons\debug\organizer\moc_selfupdater.obj build-ModOrganizer-scons\debug\organizer\moc_settings.obj build-ModOrganizer-scons\debug\organizer\moc_settingsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_singleinstance.obj build-ModOrganizer-scons\debug\organizer\moc_spawn.obj build-ModOrganizer-scons\debug\organizer\moc_syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_transfersavesdialog.obj build-ModOrganizer-scons\debug\organizer\modflagicondelegate.obj build-ModOrganizer-scons\debug\organizer\modinfo.obj build-ModOrganizer-scons\debug\organizer\modinfodialog.obj build-ModOrganizer-scons\debug\organizer\modlist.obj build-ModOrganizer-scons\debug\organizer\modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\modlistview.obj build-ModOrganizer-scons\debug\organizer\motddialog.obj build-ModOrganizer-scons\debug\organizer\nexusinterface.obj build-ModOrganizer-scons\debug\organizer\noeditdelegate.obj build-ModOrganizer-scons\debug\organizer\nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\organizerproxy.obj build-ModOrganizer-scons\debug\organizer\overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\persistentcookiejar.obj build-ModOrganizer-scons\debug\organizer\pluginlist.obj build-ModOrganizer-scons\debug\organizer\pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\previewdialog.obj build-ModOrganizer-scons\debug\organizer\previewgenerator.obj build-ModOrganizer-scons\debug\organizer\problemsdialog.obj build-ModOrganizer-scons\debug\organizer\profile.obj build-ModOrganizer-scons\debug\organizer\profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\profilesdialog.obj build-ModOrganizer-scons\debug\organizer\qrc_resources.obj build-ModOrganizer-scons\debug\organizer\qrc_stylesheet_resource.obj build-ModOrganizer-scons\debug\organizer\qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\report.obj build-ModOrganizer-scons\debug\organizer\safewritefile.obj build-ModOrganizer-scons\debug\organizer\savegame.obj build-ModOrganizer-scons\debug\organizer\savegamegamebryo.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidgetgamebryo.obj build-ModOrganizer-scons\debug\organizer\savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\selectiondialog.obj build-ModOrganizer-scons\debug\organizer\selfupdater.obj build-ModOrganizer-scons\debug\organizer\serverinfo.obj build-ModOrganizer-scons\debug\organizer\settings.obj build-ModOrganizer-scons\debug\organizer\settingsdialog.obj build-ModOrganizer-scons\debug\organizer\singleinstance.obj build-ModOrganizer-scons\debug\organizer\spawn.obj build-ModOrganizer-scons\debug\organizer\syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\transfersavesdialog.obj +""" diff --git a/src/organizer.pro b/src/organizer.pro index 04122708..1711db0e 100644 --- a/src/organizer.pro +++ b/src/organizer.pro @@ -341,3 +341,6 @@ CONFIG(debug, debug|release) { } else { QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\..\\dlls.*manifest) $$quote($$DSTDIR)\\dlls $$escape_expand(\\n) } + +OTHER_FILES += \ + SConscript diff --git a/src/shared/SConscript b/src/shared/SConscript new file mode 100644 index 00000000..1fd5a03e --- /dev/null +++ b/src/shared/SConscript @@ -0,0 +1,39 @@ +import os.path + +Import('qt_env') + +env = qt_env.Clone() + +modules = [ + 'Core', + 'Gui' +] + +env.EnableQt4Modules(['Qt' + n for n in modules], debug = env['CONFIG'] == 'debug') + +#CONFIG(debug, debug|release) { +# LIBS += -L$$OUT_PWD/../bsatk/debug +# LIBS += -lDbgHelp +# QMAKE_CXXFLAGS_DEBUG -= -Zi +# QMAKE_CXXFLAGS += -Z7 +# PRE_TARGETDEPS += $$OUT_PWD/../bsatk/debug/bsatk.lib +#} else { +# LIBS += -L$$OUT_PWD/../bsatk/release +# PRE_TARGETDEPS += $$OUT_PWD/../bsatk/release/bsatk.lib +#} + +env.StaticLibrary('mo_shared', env.Glob('*.cpp')) + +env.AppendUnique(CPPDEFINES = [ + 'UNICODE', + '_UNICODE', + '_CRT_SECURE_NO_WARNINGS', + 'BOOST_DISABLE_ASSERTS', + 'NDEBUG' +]) + +env.AppendUnique(CPPPATH = [ + '../bsatk', + '$BOOST_PATH', + '.' # Seriously! +]) diff --git a/src/shared/shared.pro b/src/shared/shared.pro index 1e26b7c0..646c2c3e 100644 --- a/src/shared/shared.pro +++ b/src/shared/shared.pro @@ -73,3 +73,6 @@ DEFINES += BOOST_DISABLE_ASSERTS NDEBUG # QMAKE_CXXFLAGS += /analyze INCLUDEPATH += ../bsatk "$${BOOSTPATH}" + +OTHER_FILES += \ + SConscript -- cgit v1.3.1 From 2d20185e77113fa1707af121dd2df22742899fa3 Mon Sep 17 00:00:00 2001 From: Tom Tanner Date: Sat, 14 Mar 2015 14:59:52 +0000 Subject: More sconscripts set up --- .hgignore | 2 ++ README.txt | 29 ++++++++++++++++ scons_configure_template.py | 25 ++++++++++++++ src/ModOrganizer.pro | 1 + src/SConscript | 81 +++++++++++++++++---------------------------- src/shared/SConscript | 14 ++------ 6 files changed, 90 insertions(+), 62 deletions(-) create mode 100644 scons_configure_template.py (limited to 'src') diff --git a/.hgignore b/.hgignore index d53a7793..e04a39ce 100644 --- a/.hgignore +++ b/.hgignore @@ -34,3 +34,5 @@ html syntax: regexp Makefile\.(Debug|Release) source/.*/debug/.* +scons_configure.py +scons-ModOrganizer-* diff --git a/README.txt b/README.txt index 465c9d31..77559ccb 100644 --- a/README.txt +++ b/README.txt @@ -230,3 +230,32 @@ Troubleshooting (thanks to Ross): Unlocker: http://www.filehippo.com/download_unlocker/ or http://www.emptyloop.com/unlocker/ Warning: With Unlocker v1.9.2, you must select "Advanced" then uncheck everything to avoid having some Delta toolbar garbage installed... + +5) Problem TT has seen: + Complains about 'qtwebkit4' missing. FOr some reason this seems to insist on + living with modorganiser.exe + +------------------- +Building with scons +------------------- + +1) Download scons from www.scons.org and install +2) Download QT4 (and/or QT5) from https://bitbucket.org/dirkbaechle/scons_qt4 and + https://bitbucket.org/dirkbaechle/scons_qt5. Install as per instructions +3) Copy scons_configure_template.py to scons_configure.py. Edit to point to your + boost/python/zlib paths as appropriate +4) Create build kits as follows: + Custom Process step: + Command: \Scripts\scons.bat + Arguments: -u + Working directory: %{sourcedir} + + For the release build, add 'CONFIG=release' to the arguments. + + If you want to do parallel builds, add -j and a number to the arguments. + However you may need to install pywin32 (but it seems to work OK for me). + + You can do this in the main project (probably should), but if you want to build just + a particular subproject, you can do it in the subproject instead (or as well). + +This isn't complete by any means but.. \ No newline at end of file diff --git a/scons_configure_template.py b/scons_configure_template.py new file mode 100644 index 00000000..10baa234 --- /dev/null +++ b/scons_configure_template.py @@ -0,0 +1,25 @@ +# This python script contains the configuration for scons +# Copy this to scons_configure.py and adjust to taste. + +# Version of Visual Studio to use, if you wish to use a specific version. If you +# don't specify a version, the latest will be picked.. See the scons manual for +# supported values. +#MSVC_VERSION = '10.0Exp' + +# Path to your python install +# You don't really need to set this up but you might if (say) you have a 32- and +# 64-bit python install and scons has been installed for the 64 bit version +#PYTHONPATH=C:\Apps\Python + +# Path to your boost install - it should have a boost/ subdirectory and a stage/ +# subdirectory. The scons script will use stage/lib if there, or the appropriate +# version for your compiler, if you installed the multiple-build version +BOOST_PATH = 'C:\\Apps\\boost_1_55_0' + +# Path to your QT install. This might constrain the version of MSVC you can use. +# This seems to be set by QTCreator +#QTDIR = 'C:\\Apps\\Qt\\4.8.6' + +# Path to zlib. Please read the README file for more information about how this +# needs to be set up +ZLIB_PATH = 'C:\\Apps\\zlib-1.2.8' diff --git a/src/ModOrganizer.pro b/src/ModOrganizer.pro index 66b8b621..32038a09 100644 --- a/src/ModOrganizer.pro +++ b/src/ModOrganizer.pro @@ -52,4 +52,5 @@ INSTALLS += qtlibs otherlibs OTHER_FILES +=\ ../SConstruct\ + ../scons_configure.py\ SConscript diff --git a/src/SConscript b/src/SConscript index 92bd9d21..3a5aaa1e 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,5 +1,4 @@ import os -#import subprocess Import('qt_env') @@ -28,17 +27,18 @@ else: 'Declarative' ] -env.EnableQt4Modules(['Qt' + n for n in modules], debug = env['CONFIG'] == 'debug') +env.EnableQt4Modules(['Qt' + n for n in modules], + debug = env['CONFIG'] == 'debug') env.Uic4(Glob('*.ui')) # modeltest is optional and it doesn't compile anyway... cpp_files = [ x for x in Glob('*.cpp') if not str(x).endswith('modeltest.cpp') ] env.AppendUnique(LIBPATH = [ - '../uibase', - '../shared', - '../bsatk', - '../esptk' + '..\\uibase', + '..\\shared', + '..\\bsatk', + '..\\esptk' ]) env.AppendUnique(LIBS = [ @@ -58,21 +58,14 @@ env.AppendUnique(LIBS = [ # We have to 'persuade' moc to generate certain other targets and inject them into # the list of cpps -other_sources = [] -for file in env.Glob('*.h'): - target = str(file)[:-1] + 'cpp' - if not os.path.exists(target): - if 'Q_OBJECT' in file.get_contents(): - header = os.path.basename(str(file)) - target = env.ExplicitMoc4('moc_' + header[:-1] + 'cpp', header) - other_sources.append(target) +other_sources = env.AddExtraMoc(env.Glob('*.h')) for file in env.Glob('*.rc'): if str(file).endswith('version.rc'): continue other_sources.append(env.RES(file)) -# Add the translate in here too +# FIXME Add the translate in here too # 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 @@ -88,7 +81,6 @@ env['CPPPATH'] += [ ] env.AppendUnique(CPPDEFINES = [ - 'UNICODE', '_UNICODE', '_CRT_SECURE_NO_WARNINGS', '_SCL_SECURE_NO_WARNINGS', @@ -108,9 +100,23 @@ env.AppendUnique(CPPFLAGS = [ '-wd4100', '-wd4127', '-wd4512', '-wd4189' ]) env['WINDOWS_EMBED_MANIFEST'] = True -program = env.Program('ModOrganizer', cpp_files + env.Glob('*.qrc') + other_sources) -# Dodgy. just get the exe -env.Install(env['INSTALL_PATH'], program[0]) +env.AppendUnique(LINKFLAGS = [ + '/SUBSYSTEM:WINDOWS', + '${EXE_MANIFEST_DEPENDENCY}' +]) + +prog = env.Program('ModOrganizer', + cpp_files + env.Glob('*.qrc') + other_sources) +env.Depends(prog, env.Value(env['ENV']['DLLSPATH'])) + +# FIXME scons bug doesn't provide pdb for executable. +if env['CONFIG'] == 'debug': + x = env.File('ModOrganizer.pdb') + env.Depends(x, prog) + prog.append(x) + +env.Install(env['INSTALL_PATH'], + filter(lambda x: str(x).endswith('.exe') or str(x).endswith('.pdb'), prog)) for subdir in ('tutorials', 'stylesheets'): env.Install(os.path.join(env['INSTALL_PATH'], subdir), @@ -118,45 +124,15 @@ for subdir in ('tutorials', 'stylesheets'): """ CONFIG(debug, debug|release) { - LIBS += -L$$OUT_PWD/../shared/debug - LIBS += -L$$OUT_PWD/../bsatk/debug - LIBS += -L$$OUT_PWD/../uibase/debug - LIBS += -L$$OUT_PWD/../boss_modified/debug - LIBS += -lDbgHelp - PRE_TARGETDEPS += \ - $$OUT_PWD/../shared/debug/mo_shared.lib \ - $$OUT_PWD/../bsatk/debug/bsatk.lib } else { - LIBS += -L$$OUT_PWD/../shared/release - LIBS += -L$$OUT_PWD/../bsatk/release - LIBS += -L$$OUT_PWD/../uibase/release - LIBS += -L$$OUT_PWD/../boss_modified/release QMAKE_CXXFLAGS += /Zi /GL QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF - PRE_TARGETDEPS += \ - $$OUT_PWD/../shared/release/mo_shared.lib \ - $$OUT_PWD/../bsatk/release/bsatk.lib } CONFIG += embed_manifest_exe TRANSLATIONS = organizer_en.ts -HGID = $$system(hg id -i) -DEFINES += HGID=\\\"$${HGID}\\\" - -CONFIG(debug, debug|release) { - SRCDIR = $$OUT_PWD/debug - DSTDIR = $$PWD/../../outputd -} else { - SRCDIR = $$OUT_PWD/release - DSTDIR = $$PWD/../../output -} - -BASEDIR = $$PWD -BASEDIR ~= s,/,$$QMAKE_DIR_SEP,g -SRCDIR ~= s,/,$$QMAKE_DIR_SEP,g -DSTDIR ~= s,/,$$QMAKE_DIR_SEP,g QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\*.qm) $$quote($$DSTDIR)\\translations $$escape_expand(\\n) @@ -172,7 +148,6 @@ CONFIG(debug, debug|release) { """ compile/link output -DHGID=\"dfd7e875f973+\" -DQT_DECLARATIVE_DEBUG -link /LIBPATH:"c:\Apps\Qt\4.8.6\lib" /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /MANIFEST /MANIFESTFILE:"debug\ModOrganizer.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\ModOrganizer.exe @C:\Users\Dad\AppData\Local\Temp\nm237A.tmp LINK : debug\ModOrganizer.exe not found or not built by the last incremental link; performing full link mt.exe -nologo -manifest "debug\ModOrganizer.intermediate.manifest" -outputresource:debug\ModOrganizer.exe;1 """ @@ -190,3 +165,9 @@ link @c:\users\dad\appdata\local\temp\tmpozwyw_.lnk Using tempfile c:\users\dad\appdata\local\temp\tmpuzxnwy.lnk for command line: link /nologo /OUT:build-ModOrganizer-scons\debug\organizer\ModOrganizer.exe /LIBPATH:C:\Apps\boost_1_55_0\lib32-msvc-10.0 /LIBPATH:C:\Apps\Qt\4.8.6\lib /LIBPATH:build-ModOrganizer-scons\debug\uibase /LIBPATH:source\uibase /LIBPATH:build-ModOrganizer-scons\debug\shared /LIBPATH:source\shared /LIBPATH:build-ModOrganizer-scons\debug\bsatk /LIBPATH:source\bsatk /LIBPATH:build-ModOrganizer-scons\debug\esptk /LIBPATH:source\esptk qtmaind.lib QtCored4.lib QtGuid4.lib QtNetworkd4.lib QtScriptd4.lib QtSqld4.lib QtWebKitd4.lib QtXmld4.lib QtXmlPatternsd4.lib QtDeclaratived4.lib uibase.lib mo_shared.lib bsatk.lib esptk.lib shell32.lib user32.lib ole32.lib advapi32.lib gdi32.lib shlwapi.lib Psapi.lib Version.lib build-ModOrganizer-scons\debug\organizer\aboutdialog.obj build-ModOrganizer-scons\debug\organizer\activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\bbcode.obj build-ModOrganizer-scons\debug\organizer\browserdialog.obj build-ModOrganizer-scons\debug\organizer\browserview.obj build-ModOrganizer-scons\debug\organizer\categories.obj build-ModOrganizer-scons\debug\organizer\categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\csvbuilder.obj build-ModOrganizer-scons\debug\organizer\directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\downloadlist.obj build-ModOrganizer-scons\debug\organizer\downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\downloadmanager.obj build-ModOrganizer-scons\debug\organizer\dummybsa.obj build-ModOrganizer-scons\debug\organizer\editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\executableslist.obj build-ModOrganizer-scons\debug\organizer\filedialogmemory.obj build-ModOrganizer-scons\debug\organizer\gameinfoimpl.obj build-ModOrganizer-scons\debug\organizer\genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\helper.obj build-ModOrganizer-scons\debug\organizer\icondelegate.obj build-ModOrganizer-scons\debug\organizer\installationmanager.obj build-ModOrganizer-scons\debug\organizer\json.obj build-ModOrganizer-scons\debug\organizer\loadmechanism.obj build-ModOrganizer-scons\debug\organizer\lockeddialog.obj build-ModOrganizer-scons\debug\organizer\logbuffer.obj build-ModOrganizer-scons\debug\organizer\loghighlighter.obj build-ModOrganizer-scons\debug\organizer\main.obj build-ModOrganizer-scons\debug\organizer\mainwindow.obj build-ModOrganizer-scons\debug\organizer\messagedialog.obj build-ModOrganizer-scons\debug\organizer\moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_aboutdialog.obj build-ModOrganizer-scons\debug\organizer\moc_activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserview.obj build-ModOrganizer-scons\debug\organizer\moc_categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlist.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\moc_downloadmanager.obj build-ModOrganizer-scons\debug\organizer\moc_editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_icondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_installationmanager.obj build-ModOrganizer-scons\debug\organizer\moc_lockeddialog.obj build-ModOrganizer-scons\debug\organizer\moc_logbuffer.obj build-ModOrganizer-scons\debug\organizer\moc_loghighlighter.obj build-ModOrganizer-scons\debug\organizer\moc_mainwindow.obj build-ModOrganizer-scons\debug\organizer\moc_messagedialog.obj build-ModOrganizer-scons\debug\organizer\moc_moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_modinfo.obj build-ModOrganizer-scons\debug\organizer\moc_modinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_modlist.obj build-ModOrganizer-scons\debug\organizer\moc_modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_modlistview.obj build-ModOrganizer-scons\debug\organizer\moc_motddialog.obj build-ModOrganizer-scons\debug\organizer\moc_nexusinterface.obj build-ModOrganizer-scons\debug\organizer\moc_nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\moc_overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlist.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_previewdialog.obj build-ModOrganizer-scons\debug\organizer\moc_problemsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profile.obj build-ModOrganizer-scons\debug\organizer\moc_profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profilesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\moc_queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_savegame.obj build-ModOrganizer-scons\debug\organizer\moc_savegamegamebyro.obj build-ModOrganizer-scons\debug\organizer\moc_savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\moc_savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\moc_selectiondialog.obj build-ModOrganizer-scons\debug\organizer\moc_selfupdater.obj build-ModOrganizer-scons\debug\organizer\moc_settings.obj build-ModOrganizer-scons\debug\organizer\moc_settingsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_singleinstance.obj build-ModOrganizer-scons\debug\organizer\moc_spawn.obj build-ModOrganizer-scons\debug\organizer\moc_syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_transfersavesdialog.obj build-ModOrganizer-scons\debug\organizer\modflagicondelegate.obj build-ModOrganizer-scons\debug\organizer\modinfo.obj build-ModOrganizer-scons\debug\organizer\modinfodialog.obj build-ModOrganizer-scons\debug\organizer\modlist.obj build-ModOrganizer-scons\debug\organizer\modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\modlistview.obj build-ModOrganizer-scons\debug\organizer\motddialog.obj build-ModOrganizer-scons\debug\organizer\nexusinterface.obj build-ModOrganizer-scons\debug\organizer\noeditdelegate.obj build-ModOrganizer-scons\debug\organizer\nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\organizerproxy.obj build-ModOrganizer-scons\debug\organizer\overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\persistentcookiejar.obj build-ModOrganizer-scons\debug\organizer\pluginlist.obj build-ModOrganizer-scons\debug\organizer\pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\previewdialog.obj build-ModOrganizer-scons\debug\organizer\previewgenerator.obj build-ModOrganizer-scons\debug\organizer\problemsdialog.obj build-ModOrganizer-scons\debug\organizer\profile.obj build-ModOrganizer-scons\debug\organizer\profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\profilesdialog.obj build-ModOrganizer-scons\debug\organizer\qrc_resources.obj build-ModOrganizer-scons\debug\organizer\qrc_stylesheet_resource.obj build-ModOrganizer-scons\debug\organizer\qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\report.obj build-ModOrganizer-scons\debug\organizer\safewritefile.obj build-ModOrganizer-scons\debug\organizer\savegame.obj build-ModOrganizer-scons\debug\organizer\savegamegamebryo.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidgetgamebryo.obj build-ModOrganizer-scons\debug\organizer\savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\selectiondialog.obj build-ModOrganizer-scons\debug\organizer\selfupdater.obj build-ModOrganizer-scons\debug\organizer\serverinfo.obj build-ModOrganizer-scons\debug\organizer\settings.obj build-ModOrganizer-scons\debug\organizer\settingsdialog.obj build-ModOrganizer-scons\debug\organizer\singleinstance.obj build-ModOrganizer-scons\debug\organizer\spawn.obj build-ModOrganizer-scons\debug\organizer\syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\transfersavesdialog.obj """ +""" +/MANIFESTFILE:"debug\ModOrganizer.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\ModOrganizer.exe @C:\Users\Dad\AppData\Local\Temp\nm8681.tmp +""" +""" +mt /nologo -manifest scons-ModOrganizer-QT_4_8_6_for_vs_2010_32bit-Debug\organizer\ModOrganizer.exe.manifest -outputresource:scons-ModOrganizer-QT_4_8_6_for_vs_2010_32bit-Debug\organizer\ModOrganizer.exe;1 +""" diff --git a/src/shared/SConscript b/src/shared/SConscript index 1fd5a03e..30669320 100644 --- a/src/shared/SConscript +++ b/src/shared/SConscript @@ -9,18 +9,8 @@ modules = [ 'Gui' ] -env.EnableQt4Modules(['Qt' + n for n in modules], debug = env['CONFIG'] == 'debug') - -#CONFIG(debug, debug|release) { -# LIBS += -L$$OUT_PWD/../bsatk/debug -# LIBS += -lDbgHelp -# QMAKE_CXXFLAGS_DEBUG -= -Zi -# QMAKE_CXXFLAGS += -Z7 -# PRE_TARGETDEPS += $$OUT_PWD/../bsatk/debug/bsatk.lib -#} else { -# LIBS += -L$$OUT_PWD/../bsatk/release -# PRE_TARGETDEPS += $$OUT_PWD/../bsatk/release/bsatk.lib -#} +env.EnableQt4Modules(['Qt' + n for n in modules], + debug = env['CONFIG'] == 'debug') env.StaticLibrary('mo_shared', env.Glob('*.cpp')) -- cgit v1.3.1 From 2628dd3fb8731dcf87ec301a5bc6717401108cd0 Mon Sep 17 00:00:00 2001 From: Tom Tanner Date: Sun, 15 Mar 2015 10:58:21 +0000 Subject: Yet more scons stuff. Now builds everything but the plugins, and installs all the dlls --- README.txt | 2 +- scons_configure_template.py | 13 ++++++---- src/SConscript | 59 ++++++++------------------------------------- 3 files changed, 19 insertions(+), 55 deletions(-) (limited to 'src') diff --git a/README.txt b/README.txt index 77559ccb..168e1726 100644 --- a/README.txt +++ b/README.txt @@ -232,7 +232,7 @@ Troubleshooting (thanks to Ross): avoid having some Delta toolbar garbage installed... 5) Problem TT has seen: - Complains about 'qtwebkit4' missing. FOr some reason this seems to insist on + Complains about 'qtwebkit4' missing. For some reason this seems to insist on living with modorganiser.exe ------------------- diff --git a/scons_configure_template.py b/scons_configure_template.py index 10baa234..c48d1082 100644 --- a/scons_configure_template.py +++ b/scons_configure_template.py @@ -1,6 +1,11 @@ # This python script contains the configuration for scons # Copy this to scons_configure.py and adjust to taste. +# Path to your boost install - it should have a boost/ subdirectory and a stage/ +# subdirectory. The scons script will use stage/lib if there, or the appropriate +# version for your compiler, if you installed the multiple-build version +BOOST_PATH = 'C:\\Apps\\boost_1_55_0' + # Version of Visual Studio to use, if you wish to use a specific version. If you # don't specify a version, the latest will be picked.. See the scons manual for # supported values. @@ -11,15 +16,13 @@ # 64-bit python install and scons has been installed for the 64 bit version #PYTHONPATH=C:\Apps\Python -# Path to your boost install - it should have a boost/ subdirectory and a stage/ -# subdirectory. The scons script will use stage/lib if there, or the appropriate -# version for your compiler, if you installed the multiple-build version -BOOST_PATH = 'C:\\Apps\\boost_1_55_0' - # Path to your QT install. This might constrain the version of MSVC you can use. # This seems to be set by QTCreator #QTDIR = 'C:\\Apps\\Qt\\4.8.6' +# Path to 7-zip sources +SEVENZIP_PATH = 'C:\\Apps\\7-Zip\\7z920' + # Path to zlib. Please read the README file for more information about how this # needs to be set up ZLIB_PATH = 'C:\\Apps\\zlib-1.2.8' diff --git a/src/SConscript b/src/SConscript index 3a5aaa1e..e8f266ed 100644 --- a/src/SConscript +++ b/src/SConscript @@ -29,10 +29,8 @@ else: env.EnableQt4Modules(['Qt' + n for n in modules], debug = env['CONFIG'] == 'debug') -env.Uic4(Glob('*.ui')) -# modeltest is optional and it doesn't compile anyway... -cpp_files = [ x for x in Glob('*.cpp') if not str(x).endswith('modeltest.cpp') ] +env.Uic4(Glob('*.ui')) env.AppendUnique(LIBPATH = [ '..\\uibase', @@ -56,8 +54,8 @@ env.AppendUnique(LIBS = [ 'Version' ]) -# We have to 'persuade' moc to generate certain other targets and inject them into -# the list of cpps +# We have to 'persuade' moc to generate certain other targets and inject them +# into the list of cpps other_sources = env.AddExtraMoc(env.Glob('*.h')) for file in env.Glob('*.rc'): @@ -86,8 +84,8 @@ env.AppendUnique(CPPDEFINES = [ '_SCL_SECURE_NO_WARNINGS', 'NOMINMAX', 'BOOST_DISABLE_ASSERTS', -# Although the .pro file says it adds this, the compile line doesn't seem to have it (unless it's in the -# annoying '@' file +# Although the .pro file says it adds this, the compile line doesn't seem to +# have it (unless it's in the annoying '@' file # 'NDEBUG' ]) @@ -98,25 +96,20 @@ env.AppendUnique(CPPDEFINES = [ env.AppendUnique(CPPFLAGS = [ '-wd4100', '-wd4127', '-wd4512', '-wd4189' ]) -env['WINDOWS_EMBED_MANIFEST'] = True - env.AppendUnique(LINKFLAGS = [ '/SUBSYSTEM:WINDOWS', '${EXE_MANIFEST_DEPENDENCY}' ]) +# modeltest is optional and it doesn't compile anyway... +cpp_files = [ x for x in Glob('*.cpp') if not str(x).endswith('modeltest.cpp') ] + prog = env.Program('ModOrganizer', cpp_files + env.Glob('*.qrc') + other_sources) -env.Depends(prog, env.Value(env['ENV']['DLLSPATH'])) - -# FIXME scons bug doesn't provide pdb for executable. -if env['CONFIG'] == 'debug': - x = env.File('ModOrganizer.pdb') - env.Depends(x, prog) - prog.append(x) env.Install(env['INSTALL_PATH'], - filter(lambda x: str(x).endswith('.exe') or str(x).endswith('.pdb'), prog)) + filter(lambda x: str(x).endswith('.exe') or str(x).endswith('.pdb'), + prog)) for subdir in ('tutorials', 'stylesheets'): env.Install(os.path.join(env['INSTALL_PATH'], subdir), @@ -129,45 +122,13 @@ CONFIG(debug, debug|release) { QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF } -CONFIG += embed_manifest_exe - TRANSLATIONS = organizer_en.ts QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\*.qm) $$quote($$DSTDIR)\\translations $$escape_expand(\\n) -CONFIG(debug, debug|release) { - QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\..\\dlls.*manifest.debug) $$quote($$DSTDIR)\\dlls $$escape_expand(\\n) - QMAKE_POST_LINK += copy /y $$quote($$DSTDIR)\\dlls\\dlls.manifest.debug $$quote($$DSTDIR)\\dlls\\dlls.manifest $$escape_expand(\\n) - QMAKE_POST_LINK += del $$quote($$DSTDIR)\\dlls\\dlls.manifest.debug $$escape_expand(\\n) -} else { - QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\..\\dlls.*manifest) $$quote($$DSTDIR)\\dlls $$escape_expand(\\n) -} - """ -""" compile/link output --DHGID=\"dfd7e875f973+\" -DQT_DECLARATIVE_DEBUG -LINK : debug\ModOrganizer.exe not found or not built by the last incremental link; performing full link -mt.exe -nologo -manifest "debug\ModOrganizer.intermediate.manifest" -outputresource:debug\ModOrganizer.exe;1 """ - -""" scons -compile diffs -/TP -/DNDEBUG -(possible wrong order- should be at end) /IC:\Apps\Qt\4.8.6\mkspecs\win32-msvc2010 /IC:\Apps\Qt\4.8.6\include (twice) - -Using tempfile c:\users\dad\appdata\local\temp\tmpozwyw_.lnk for command line: -link /nologo /OUT:build-ModOrganizer-scons\debug\organizer\ModOrganizer.exe /LIBPATH:C:\Apps\boost_1_55_0\lib32-msvc-10.0 /LIBPATH:C:\Apps\Qt\4.8.6\lib /LIBPATH:build-ModOrganizer-scons\debug\uibase /LIBPATH:source\uibase /LIBPATH:build-ModOrganizer-scons\debug\shared /LIBPATH:source\shared /LIBPATH:build-ModOrganizer-scons\debug\bsatk /LIBPATH:source\bsatk /LIBPATH:build-ModOrganizer-scons\debug\esptk /LIBPATH:source\esptk qtmaind.lib QtCored4.lib QtGuid4.lib QtNetworkd4.lib QtScriptd4.lib QtSqld4.lib QtWebKitd4.lib QtXmld4.lib QtXmlPatternsd4.lib QtDeclaratived4.lib uibase.lib mo_shared.lib bsatk.lib esptk.lib shell32.lib user32.lib ole32.lib advapi32.lib gdi32.lib shlwapi.lib Psapi.lib Version.lib build-ModOrganizer-scons\debug\organizer\aboutdialog.obj build-ModOrganizer-scons\debug\organizer\activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\bbcode.obj build-ModOrganizer-scons\debug\organizer\browserdialog.obj build-ModOrganizer-scons\debug\organizer\browserview.obj build-ModOrganizer-scons\debug\organizer\categories.obj build-ModOrganizer-scons\debug\organizer\categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\csvbuilder.obj build-ModOrganizer-scons\debug\organizer\directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\downloadlist.obj build-ModOrganizer-scons\debug\organizer\downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\downloadmanager.obj build-ModOrganizer-scons\debug\organizer\dummybsa.obj build-ModOrganizer-scons\debug\organizer\editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\executableslist.obj build-ModOrganizer-scons\debug\organizer\filedialogmemory.obj build-ModOrganizer-scons\debug\organizer\gameinfoimpl.obj build-ModOrganizer-scons\debug\organizer\genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\helper.obj build-ModOrganizer-scons\debug\organizer\icondelegate.obj build-ModOrganizer-scons\debug\organizer\installationmanager.obj build-ModOrganizer-scons\debug\organizer\json.obj build-ModOrganizer-scons\debug\organizer\loadmechanism.obj build-ModOrganizer-scons\debug\organizer\lockeddialog.obj build-ModOrganizer-scons\debug\organizer\logbuffer.obj build-ModOrganizer-scons\debug\organizer\loghighlighter.obj build-ModOrganizer-scons\debug\organizer\main.obj build-ModOrganizer-scons\debug\organizer\mainwindow.obj build-ModOrganizer-scons\debug\organizer\messagedialog.obj build-ModOrganizer-scons\debug\organizer\moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_aboutdialog.obj build-ModOrganizer-scons\debug\organizer\moc_activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserview.obj build-ModOrganizer-scons\debug\organizer\moc_categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlist.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\moc_downloadmanager.obj build-ModOrganizer-scons\debug\organizer\moc_editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_icondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_installationmanager.obj build-ModOrganizer-scons\debug\organizer\moc_lockeddialog.obj build-ModOrganizer-scons\debug\organizer\moc_logbuffer.obj build-ModOrganizer-scons\debug\organizer\moc_loghighlighter.obj build-ModOrganizer-scons\debug\organizer\moc_mainwindow.obj build-ModOrganizer-scons\debug\organizer\moc_messagedialog.obj build-ModOrganizer-scons\debug\organizer\moc_moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_modinfo.obj build-ModOrganizer-scons\debug\organizer\moc_modinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_modlist.obj build-ModOrganizer-scons\debug\organizer\moc_modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_modlistview.obj build-ModOrganizer-scons\debug\organizer\moc_motddialog.obj build-ModOrganizer-scons\debug\organizer\moc_nexusinterface.obj build-ModOrganizer-scons\debug\organizer\moc_nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\moc_overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlist.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_previewdialog.obj build-ModOrganizer-scons\debug\organizer\moc_problemsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profile.obj build-ModOrganizer-scons\debug\organizer\moc_profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profilesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\moc_queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_savegame.obj build-ModOrganizer-scons\debug\organizer\moc_savegamegamebyro.obj build-ModOrganizer-scons\debug\organizer\moc_savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\moc_savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\moc_selectiondialog.obj build-ModOrganizer-scons\debug\organizer\moc_selfupdater.obj build-ModOrganizer-scons\debug\organizer\moc_settings.obj build-ModOrganizer-scons\debug\organizer\moc_settingsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_singleinstance.obj build-ModOrganizer-scons\debug\organizer\moc_spawn.obj build-ModOrganizer-scons\debug\organizer\moc_syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_transfersavesdialog.obj build-ModOrganizer-scons\debug\organizer\modflagicondelegate.obj build-ModOrganizer-scons\debug\organizer\modinfo.obj build-ModOrganizer-scons\debug\organizer\modinfodialog.obj build-ModOrganizer-scons\debug\organizer\modlist.obj build-ModOrganizer-scons\debug\organizer\modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\modlistview.obj build-ModOrganizer-scons\debug\organizer\motddialog.obj build-ModOrganizer-scons\debug\organizer\nexusinterface.obj build-ModOrganizer-scons\debug\organizer\noeditdelegate.obj build-ModOrganizer-scons\debug\organizer\nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\organizerproxy.obj build-ModOrganizer-scons\debug\organizer\overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\persistentcookiejar.obj build-ModOrganizer-scons\debug\organizer\pluginlist.obj build-ModOrganizer-scons\debug\organizer\pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\previewdialog.obj build-ModOrganizer-scons\debug\organizer\previewgenerator.obj build-ModOrganizer-scons\debug\organizer\problemsdialog.obj build-ModOrganizer-scons\debug\organizer\profile.obj build-ModOrganizer-scons\debug\organizer\profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\profilesdialog.obj build-ModOrganizer-scons\debug\organizer\qrc_resources.obj build-ModOrganizer-scons\debug\organizer\qrc_stylesheet_resource.obj build-ModOrganizer-scons\debug\organizer\qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\report.obj build-ModOrganizer-scons\debug\organizer\safewritefile.obj build-ModOrganizer-scons\debug\organizer\savegame.obj build-ModOrganizer-scons\debug\organizer\savegamegamebryo.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidgetgamebryo.obj build-ModOrganizer-scons\debug\organizer\savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\selectiondialog.obj build-ModOrganizer-scons\debug\organizer\selfupdater.obj build-ModOrganizer-scons\debug\organizer\serverinfo.obj build-ModOrganizer-scons\debug\organizer\settings.obj build-ModOrganizer-scons\debug\organizer\settingsdialog.obj build-ModOrganizer-scons\debug\organizer\singleinstance.obj build-ModOrganizer-scons\debug\organizer\spawn.obj build-ModOrganizer-scons\debug\organizer\syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\transfersavesdialog.obj -link @c:\users\dad\appdata\local\temp\tmpozwyw_.lnk -Using tempfile c:\users\dad\appdata\local\temp\tmpuzxnwy.lnk for command line: -link /nologo /OUT:build-ModOrganizer-scons\debug\organizer\ModOrganizer.exe /LIBPATH:C:\Apps\boost_1_55_0\lib32-msvc-10.0 /LIBPATH:C:\Apps\Qt\4.8.6\lib /LIBPATH:build-ModOrganizer-scons\debug\uibase /LIBPATH:source\uibase /LIBPATH:build-ModOrganizer-scons\debug\shared /LIBPATH:source\shared /LIBPATH:build-ModOrganizer-scons\debug\bsatk /LIBPATH:source\bsatk /LIBPATH:build-ModOrganizer-scons\debug\esptk /LIBPATH:source\esptk qtmaind.lib QtCored4.lib QtGuid4.lib QtNetworkd4.lib QtScriptd4.lib QtSqld4.lib QtWebKitd4.lib QtXmld4.lib QtXmlPatternsd4.lib QtDeclaratived4.lib uibase.lib mo_shared.lib bsatk.lib esptk.lib shell32.lib user32.lib ole32.lib advapi32.lib gdi32.lib shlwapi.lib Psapi.lib Version.lib build-ModOrganizer-scons\debug\organizer\aboutdialog.obj build-ModOrganizer-scons\debug\organizer\activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\bbcode.obj build-ModOrganizer-scons\debug\organizer\browserdialog.obj build-ModOrganizer-scons\debug\organizer\browserview.obj build-ModOrganizer-scons\debug\organizer\categories.obj build-ModOrganizer-scons\debug\organizer\categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\csvbuilder.obj build-ModOrganizer-scons\debug\organizer\directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\downloadlist.obj build-ModOrganizer-scons\debug\organizer\downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\downloadmanager.obj build-ModOrganizer-scons\debug\organizer\dummybsa.obj build-ModOrganizer-scons\debug\organizer\editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\executableslist.obj build-ModOrganizer-scons\debug\organizer\filedialogmemory.obj build-ModOrganizer-scons\debug\organizer\gameinfoimpl.obj build-ModOrganizer-scons\debug\organizer\genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\helper.obj build-ModOrganizer-scons\debug\organizer\icondelegate.obj build-ModOrganizer-scons\debug\organizer\installationmanager.obj build-ModOrganizer-scons\debug\organizer\json.obj build-ModOrganizer-scons\debug\organizer\loadmechanism.obj build-ModOrganizer-scons\debug\organizer\lockeddialog.obj build-ModOrganizer-scons\debug\organizer\logbuffer.obj build-ModOrganizer-scons\debug\organizer\loghighlighter.obj build-ModOrganizer-scons\debug\organizer\main.obj build-ModOrganizer-scons\debug\organizer\mainwindow.obj build-ModOrganizer-scons\debug\organizer\messagedialog.obj build-ModOrganizer-scons\debug\organizer\moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_aboutdialog.obj build-ModOrganizer-scons\debug\organizer\moc_activatemodsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserdialog.obj build-ModOrganizer-scons\debug\organizer\moc_browserview.obj build-ModOrganizer-scons\debug\organizer\moc_categoriesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_credentialsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_directoryrefresher.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlist.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidget.obj build-ModOrganizer-scons\debug\organizer\moc_downloadlistwidgetcompact.obj build-ModOrganizer-scons\debug\organizer\moc_downloadmanager.obj build-ModOrganizer-scons\debug\organizer\moc_editexecutablesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_genericicondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_icondelegate.obj build-ModOrganizer-scons\debug\organizer\moc_installationmanager.obj build-ModOrganizer-scons\debug\organizer\moc_lockeddialog.obj build-ModOrganizer-scons\debug\organizer\moc_logbuffer.obj build-ModOrganizer-scons\debug\organizer\moc_loghighlighter.obj build-ModOrganizer-scons\debug\organizer\moc_mainwindow.obj build-ModOrganizer-scons\debug\organizer\moc_messagedialog.obj build-ModOrganizer-scons\debug\organizer\moc_moapplication.obj build-ModOrganizer-scons\debug\organizer\moc_modinfo.obj build-ModOrganizer-scons\debug\organizer\moc_modinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_modlist.obj build-ModOrganizer-scons\debug\organizer\moc_modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_modlistview.obj build-ModOrganizer-scons\debug\organizer\moc_motddialog.obj build-ModOrganizer-scons\debug\organizer\moc_nexusinterface.obj build-ModOrganizer-scons\debug\organizer\moc_nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\moc_overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlist.obj build-ModOrganizer-scons\debug\organizer\moc_pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\moc_previewdialog.obj build-ModOrganizer-scons\debug\organizer\moc_problemsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profile.obj build-ModOrganizer-scons\debug\organizer\moc_profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\moc_profilesdialog.obj build-ModOrganizer-scons\debug\organizer\moc_qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\moc_queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_savegame.obj build-ModOrganizer-scons\debug\organizer\moc_savegamegamebyro.obj build-ModOrganizer-scons\debug\organizer\moc_savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\moc_savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\moc_selectiondialog.obj build-ModOrganizer-scons\debug\organizer\moc_selfupdater.obj build-ModOrganizer-scons\debug\organizer\moc_settings.obj build-ModOrganizer-scons\debug\organizer\moc_settingsdialog.obj build-ModOrganizer-scons\debug\organizer\moc_singleinstance.obj build-ModOrganizer-scons\debug\organizer\moc_spawn.obj build-ModOrganizer-scons\debug\organizer\moc_syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\moc_transfersavesdialog.obj build-ModOrganizer-scons\debug\organizer\modflagicondelegate.obj build-ModOrganizer-scons\debug\organizer\modinfo.obj build-ModOrganizer-scons\debug\organizer\modinfodialog.obj build-ModOrganizer-scons\debug\organizer\modlist.obj build-ModOrganizer-scons\debug\organizer\modlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\modlistview.obj build-ModOrganizer-scons\debug\organizer\motddialog.obj build-ModOrganizer-scons\debug\organizer\nexusinterface.obj build-ModOrganizer-scons\debug\organizer\noeditdelegate.obj build-ModOrganizer-scons\debug\organizer\nxmaccessmanager.obj build-ModOrganizer-scons\debug\organizer\organizerproxy.obj build-ModOrganizer-scons\debug\organizer\overwriteinfodialog.obj build-ModOrganizer-scons\debug\organizer\persistentcookiejar.obj build-ModOrganizer-scons\debug\organizer\pluginlist.obj build-ModOrganizer-scons\debug\organizer\pluginlistsortproxy.obj build-ModOrganizer-scons\debug\organizer\previewdialog.obj build-ModOrganizer-scons\debug\organizer\previewgenerator.obj build-ModOrganizer-scons\debug\organizer\problemsdialog.obj build-ModOrganizer-scons\debug\organizer\profile.obj build-ModOrganizer-scons\debug\organizer\profileinputdialog.obj build-ModOrganizer-scons\debug\organizer\profilesdialog.obj build-ModOrganizer-scons\debug\organizer\qrc_resources.obj build-ModOrganizer-scons\debug\organizer\qrc_stylesheet_resource.obj build-ModOrganizer-scons\debug\organizer\qtgroupingproxy.obj build-ModOrganizer-scons\debug\organizer\queryoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\report.obj build-ModOrganizer-scons\debug\organizer\safewritefile.obj build-ModOrganizer-scons\debug\organizer\savegame.obj build-ModOrganizer-scons\debug\organizer\savegamegamebryo.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidget.obj build-ModOrganizer-scons\debug\organizer\savegameinfowidgetgamebryo.obj build-ModOrganizer-scons\debug\organizer\savetextasdialog.obj build-ModOrganizer-scons\debug\organizer\selectiondialog.obj build-ModOrganizer-scons\debug\organizer\selfupdater.obj build-ModOrganizer-scons\debug\organizer\serverinfo.obj build-ModOrganizer-scons\debug\organizer\settings.obj build-ModOrganizer-scons\debug\organizer\settingsdialog.obj build-ModOrganizer-scons\debug\organizer\singleinstance.obj build-ModOrganizer-scons\debug\organizer\spawn.obj build-ModOrganizer-scons\debug\organizer\syncoverwritedialog.obj build-ModOrganizer-scons\debug\organizer\transfersavesdialog.obj -""" -""" -/MANIFESTFILE:"debug\ModOrganizer.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\ModOrganizer.exe @C:\Users\Dad\AppData\Local\Temp\nm8681.tmp -""" -""" -mt /nologo -manifest scons-ModOrganizer-QT_4_8_6_for_vs_2010_32bit-Debug\organizer\ModOrganizer.exe.manifest -outputresource:scons-ModOrganizer-QT_4_8_6_for_vs_2010_32bit-Debug\organizer\ModOrganizer.exe;1 """ -- cgit v1.3.1 From a00a9a5bbad0c6965edd76da110664f980786d31 Mon Sep 17 00:00:00 2001 From: Tom Tanner Date: Mon, 16 Mar 2015 08:35:14 +0000 Subject: Cleanup --- src/SConscript | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src') diff --git a/src/SConscript b/src/SConscript index e8f266ed..f86bc98a 100644 --- a/src/SConscript +++ b/src/SConscript @@ -107,9 +107,7 @@ cpp_files = [ x for x in Glob('*.cpp') if not str(x).endswith('modeltest.cpp') ] prog = env.Program('ModOrganizer', cpp_files + env.Glob('*.qrc') + other_sources) -env.Install(env['INSTALL_PATH'], - filter(lambda x: str(x).endswith('.exe') or str(x).endswith('.pdb'), - prog)) +env.InstallModule(prog) for subdir in ('tutorials', 'stylesheets'): env.Install(os.path.join(env['INSTALL_PATH'], subdir), -- cgit v1.3.1 From 16beb6f9b1db6cc0d04f18a206a177f8b781e124 Mon Sep 17 00:00:00 2001 From: Tom Tanner Date: Mon, 16 Mar 2015 10:14:00 +0000 Subject: Abortive attempt to use official 'qt' tool This resulted in some small cleanups but not much else --- src/SConscript | 160 +++++++++++---------------------------------------------- 1 file changed, 30 insertions(+), 130 deletions(-) (limited to 'src') diff --git a/src/SConscript b/src/SConscript index f86bc98a..4dd67e32 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,132 +1,32 @@ import os -Import('qt_env') - -env = qt_env.Clone() - -modules = [ - 'Core', - 'Gui', - 'Network', - 'Script', - 'Sql', - 'WebKit', - 'Xml', - 'XmlPatterns' -] - -if env['QT_MAJOR_VERSION'] > 4: - modules += [ - 'Widgets', - 'Qml', - 'Quick', - 'WebKitWidgets' - ] -else: - modules += [ - 'Declarative' - ] - -env.EnableQt4Modules(['Qt' + n for n in modules], - debug = env['CONFIG'] == 'debug') - -env.Uic4(Glob('*.ui')) - -env.AppendUnique(LIBPATH = [ - '..\\uibase', - '..\\shared', - '..\\bsatk', - '..\\esptk' -]) - -env.AppendUnique(LIBS = [ - 'uibase', - 'mo_shared', - 'bsatk', - 'esptk', - 'shell32', - 'user32', - 'ole32', - 'advapi32', - 'gdi32', - 'shlwapi', - 'Psapi', - 'Version' -]) - -# We have to 'persuade' moc to generate certain other targets and inject them -# into the list of cpps -other_sources = env.AddExtraMoc(env.Glob('*.h')) - -for file in env.Glob('*.rc'): - if str(file).endswith('version.rc'): - continue - other_sources.append(env.RES(file)) - -# FIXME Add the translate in here too - -# 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'] += [ - '../shared', - '../archive', - '../uibase', - '../bsatk', - '../esptk', - '../boss_modified/boss-api', - '.', # Why is this necessary? - '$BOOST_PATH', -] - -env.AppendUnique(CPPDEFINES = [ - '_UNICODE', - '_CRT_SECURE_NO_WARNINGS', - '_SCL_SECURE_NO_WARNINGS', - 'NOMINMAX', - 'BOOST_DISABLE_ASSERTS', -# Although the .pro file says it adds this, the compile line doesn't seem to -# have it (unless it's in the annoying '@' file -# 'NDEBUG' -]) - -# Umf. This changes everytime you do something with your repository. -# I don't think this is necessary with scons -# hgid = subprocess.check_output(['hg', 'id', '-i']) -# env.AppendUnique(CPPDEFINES = [ 'HGID="%s"' % hgid ]) - -env.AppendUnique(CPPFLAGS = [ '-wd4100', '-wd4127', '-wd4512', '-wd4189' ]) - -env.AppendUnique(LINKFLAGS = [ - '/SUBSYSTEM:WINDOWS', - '${EXE_MANIFEST_DEPENDENCY}' -]) - -# modeltest is optional and it doesn't compile anyway... -cpp_files = [ x for x in Glob('*.cpp') if not str(x).endswith('modeltest.cpp') ] - -prog = env.Program('ModOrganizer', - cpp_files + env.Glob('*.qrc') + other_sources) - -env.InstallModule(prog) - -for subdir in ('tutorials', 'stylesheets'): - env.Install(os.path.join(env['INSTALL_PATH'], subdir), - env.Glob(os.path.join(subdir, '*'))) - -""" -CONFIG(debug, debug|release) { -} else { - QMAKE_CXXFLAGS += /Zi /GL - QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF -} - -TRANSLATIONS = organizer_en.ts - - -QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\*.qm) $$quote($$DSTDIR)\\translations $$escape_expand(\\n) - -""" - -""" -/IC:\Apps\Qt\4.8.6\include (twice) -""" +Import('env qt_env') + +def InstallModule(self, arg): + # Ensure we install this when built from here, not just from top level build + self.Pseudo('install') + self.Depends('install', + self.Install('${INSTALL_PATH}', + filter(lambda x: str(x).endswith('.dll') or + str(x).endswith('.pdb') or + str(x).endswith('.exe'), + arg))) + +qt_env = qt_env.Clone() +qt_env.AddMethod(InstallModule) + +env = env.Clone() +env.AddMethod(InstallModule) + +Export('env qt_env') + +for file in env.Glob('*/SConscript'): + env.SConscript(file) + +dll_manifest = 'dlls.manifest' +if qt_env['CONFIG'] == 'debug': + dll_manifest += '.debug' +if qt_env['QT_MAJOR_VERSION'] > 4: + dll_manifest += '.q%d' % qt_env['QT_MAJOR_VERSION'] +qt_env.InstallAs(os.path.join(qt_env['INSTALL_PATH'], 'DLLs', 'dlls.manifest'), + dll_manifest) -- cgit v1.3.1 From de79d15980aec5771a3e850f248c1094a3c72f22 Mon Sep 17 00:00:00 2001 From: Tom Tanner Date: Tue, 17 Mar 2015 16:31:15 +0000 Subject: Every plugin now built --- scons_configure_template.py | 6 +- src/SConscript | 160 +++++++++++++++++++++++++++++++++++--------- src/shared/SConscript | 2 +- 3 files changed, 134 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/scons_configure_template.py b/scons_configure_template.py index c48d1082..d9cfc2b6 100644 --- a/scons_configure_template.py +++ b/scons_configure_template.py @@ -4,7 +4,7 @@ # Path to your boost install - it should have a boost/ subdirectory and a stage/ # subdirectory. The scons script will use stage/lib if there, or the appropriate # version for your compiler, if you installed the multiple-build version -BOOST_PATH = 'C:\\Apps\\boost_1_55_0' +BOOSTPATH = 'C:\\Apps\\boost_1_55_0' # Version of Visual Studio to use, if you wish to use a specific version. If you # don't specify a version, the latest will be picked.. See the scons manual for @@ -21,8 +21,8 @@ BOOST_PATH = 'C:\\Apps\\boost_1_55_0' #QTDIR = 'C:\\Apps\\Qt\\4.8.6' # Path to 7-zip sources -SEVENZIP_PATH = 'C:\\Apps\\7-Zip\\7z920' +SEVENZIPPATH = 'C:\\Apps\\7-Zip\\7z920' # Path to zlib. Please read the README file for more information about how this # needs to be set up -ZLIB_PATH = 'C:\\Apps\\zlib-1.2.8' +ZLIBPATH = 'C:\\Apps\\zlib-1.2.8' diff --git a/src/SConscript b/src/SConscript index 4dd67e32..cb0c1922 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,32 +1,132 @@ import os -Import('env qt_env') - -def InstallModule(self, arg): - # Ensure we install this when built from here, not just from top level build - self.Pseudo('install') - self.Depends('install', - self.Install('${INSTALL_PATH}', - filter(lambda x: str(x).endswith('.dll') or - str(x).endswith('.pdb') or - str(x).endswith('.exe'), - arg))) - -qt_env = qt_env.Clone() -qt_env.AddMethod(InstallModule) - -env = env.Clone() -env.AddMethod(InstallModule) - -Export('env qt_env') - -for file in env.Glob('*/SConscript'): - env.SConscript(file) - -dll_manifest = 'dlls.manifest' -if qt_env['CONFIG'] == 'debug': - dll_manifest += '.debug' -if qt_env['QT_MAJOR_VERSION'] > 4: - dll_manifest += '.q%d' % qt_env['QT_MAJOR_VERSION'] -qt_env.InstallAs(os.path.join(qt_env['INSTALL_PATH'], 'DLLs', 'dlls.manifest'), - dll_manifest) +Import('qt_env') + +env = qt_env.Clone() + +modules = [ + 'Core', + 'Gui', + 'Network', + 'Script', + 'Sql', + 'WebKit', + 'Xml', + 'XmlPatterns' +] + +if env['QT_MAJOR_VERSION'] > 4: + modules += [ + 'Widgets', + 'Qml', + 'Quick', + 'WebKitWidgets' + ] +else: + modules += [ + 'Declarative' + ] + +env.EnableQt4Modules(['Qt' + n for n in modules], + debug = env['CONFIG'] == 'debug') + +env.Uic4(Glob('*.ui')) + +env.AppendUnique(LIBPATH = [ + '..\\uibase', + '..\\shared', + '..\\bsatk', + '..\\esptk' +]) + +env.AppendUnique(LIBS = [ + 'uibase', + 'mo_shared', + 'bsatk', + 'esptk', + 'shell32', + 'user32', + 'ole32', + 'advapi32', + 'gdi32', + 'shlwapi', + 'Psapi', + 'Version' +]) + +# We have to 'persuade' moc to generate certain other targets and inject them +# into the list of cpps +other_sources = env.AddExtraMoc(env.Glob('*.h')) + +for file in env.Glob('*.rc'): + if str(file).endswith('version.rc'): + continue + other_sources.append(env.RES(file)) + +# FIXME Add the translate in here too + +# 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'] += [ + '../shared', + '../archive', + '../uibase', + '../bsatk', + '../esptk', + '../boss_modified/boss-api', + '.', # Why is this necessary? + '${BOOSTPATH}', +] + +env.AppendUnique(CPPDEFINES = [ + '_UNICODE', + '_CRT_SECURE_NO_WARNINGS', + '_SCL_SECURE_NO_WARNINGS', + 'NOMINMAX', + 'BOOST_DISABLE_ASSERTS', +# Although the .pro file says it adds this, the compile line doesn't seem to +# have it (unless it's in the annoying '@' file +# 'NDEBUG' +]) + +# Umf. This changes everytime you do something with your repository. +# I don't think this is necessary with scons +# hgid = subprocess.check_output(['hg', 'id', '-i']) +# env.AppendUnique(CPPDEFINES = [ 'HGID="%s"' % hgid ]) + +env.AppendUnique(CPPFLAGS = [ '-wd4100', '-wd4127', '-wd4512', '-wd4189' ]) + +env.AppendUnique(LINKFLAGS = [ + '/SUBSYSTEM:WINDOWS', + '${EXE_MANIFEST_DEPENDENCY}' +]) + +# modeltest is optional and it doesn't compile anyway... +cpp_files = [ x for x in Glob('*.cpp') if not str(x).endswith('modeltest.cpp') ] + +prog = env.Program('ModOrganizer', + cpp_files + env.Glob('*.qrc') + other_sources) + +env.InstallModule(prog) + +for subdir in ('tutorials', 'stylesheets'): + env.Install(os.path.join(env['INSTALL_PATH'], subdir), + env.Glob(os.path.join(subdir, '*'))) + +""" +CONFIG(debug, debug|release) { +} else { + QMAKE_CXXFLAGS += /Zi /GL + QMAKE_LFLAGS += /DEBUG /LTCG /OPT:REF /OPT:ICF +} + +TRANSLATIONS = organizer_en.ts + + +QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\*.qm) $$quote($$DSTDIR)\\translations $$escape_expand(\\n) + +""" + +""" +/IC:\Apps\Qt\4.8.6\include (twice) +""" diff --git a/src/shared/SConscript b/src/shared/SConscript index 30669320..daf8f2da 100644 --- a/src/shared/SConscript +++ b/src/shared/SConscript @@ -24,6 +24,6 @@ env.AppendUnique(CPPDEFINES = [ env.AppendUnique(CPPPATH = [ '../bsatk', - '$BOOST_PATH', + '${BOOSTPATH}', '.' # Seriously! ]) -- cgit v1.3.1 From 39dd67f22f236d9f962657abe5b619f2b338f2fc Mon Sep 17 00:00:00 2001 From: Tom Tanner Date: Wed, 18 Mar 2015 14:16:04 +0000 Subject: Refactoring and cleanup. --- README.txt | 8 +++++--- src/SConscript | 47 +++++++++++++++++------------------------------ src/shared/SConscript | 15 ++++----------- 3 files changed, 26 insertions(+), 44 deletions(-) (limited to 'src') diff --git a/README.txt b/README.txt index cbb571c3..7eafff83 100644 --- a/README.txt +++ b/README.txt @@ -243,7 +243,8 @@ Building with scons 2) Download QT4 (and/or QT5) from https://bitbucket.org/dirkbaechle/scons_qt4 and https://bitbucket.org/dirkbaechle/scons_qt5. Install as per instructions 3) Copy scons_configure_template.py to scons_configure.py. Edit to point to your - boost/python/zlib/7zip paths as appropriate + boost/python/zlib/7zip paths as appropriate (you can create an empty one if + you set up the params in qt creator) 4) Create build kits as follows: Custom Process step: Command: \Scripts\scons.bat @@ -259,6 +260,9 @@ Building with scons If you want to do parallel builds, add -j and a number to the arguments. However you may need to install pywin32 (but it seems to work OK for me). + -j 4 did the entire build in 2m 15s. scons uses -Z7 to store debugging + information in the .obj files which removes the issues with multiple + processes attempting to access one datafile. Note. If you want to build a sub project separately, it seems to be better to open the subproject, set that up with the scons kit and build that as a @@ -267,5 +271,3 @@ Building with scons Please note: the generated (runnable) output files end up in the build directory, in the '_ModOrganizer' subdirectory (not at the top level). Named like that so you can see it! - -This isn't complete by any means but.. diff --git a/src/SConscript b/src/SConscript index cb0c1922..2eeb869e 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,4 +1,5 @@ import os +import subprocess Import('qt_env') @@ -27,23 +28,13 @@ else: 'Declarative' ] -env.EnableQt4Modules(['Qt' + n for n in modules], - debug = env['CONFIG'] == 'debug') +env.EnableQtModules(*modules) -env.Uic4(Glob('*.ui')) +env.Uic4(env.Glob('*.ui')) -env.AppendUnique(LIBPATH = [ - '..\\uibase', - '..\\shared', - '..\\bsatk', - '..\\esptk' -]) +env.RequireLibraries('uibase', 'shared', 'bsatk', 'esptk') env.AppendUnique(LIBS = [ - 'uibase', - 'mo_shared', - 'bsatk', - 'esptk', 'shell32', 'user32', 'ole32', @@ -59,20 +50,14 @@ env.AppendUnique(LIBS = [ other_sources = env.AddExtraMoc(env.Glob('*.h')) for file in env.Glob('*.rc'): - if str(file).endswith('version.rc'): + if file.name == 'version.rc': continue other_sources.append(env.RES(file)) -# FIXME Add the translate in here too - # 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'] += [ - '../shared', '../archive', - '../uibase', - '../bsatk', - '../esptk', '../boss_modified/boss-api', '.', # Why is this necessary? '${BOOSTPATH}', @@ -89,11 +74,6 @@ env.AppendUnique(CPPDEFINES = [ # 'NDEBUG' ]) -# Umf. This changes everytime you do something with your repository. -# I don't think this is necessary with scons -# hgid = subprocess.check_output(['hg', 'id', '-i']) -# env.AppendUnique(CPPDEFINES = [ 'HGID="%s"' % hgid ]) - env.AppendUnique(CPPFLAGS = [ '-wd4100', '-wd4127', '-wd4512', '-wd4189' ]) env.AppendUnique(LINKFLAGS = [ @@ -102,7 +82,16 @@ env.AppendUnique(LINKFLAGS = [ ]) # modeltest is optional and it doesn't compile anyway... -cpp_files = [ x for x in Glob('*.cpp') if not str(x).endswith('modeltest.cpp') ] +cpp_files = [ + x for x in Glob('*.cpp') + if x.name != 'modeltest.cpp' and x.name != 'aboutdialog.cpp' +] + +about_env = env.Clone() +hgid = subprocess.check_output(['hg', 'id', '-i']).rstrip() +# FIXME: It'd be much easier to stringify this in the source code +about_env.AppendUnique(CPPDEFINES = [ 'HGID=\\"%s\\"' % hgid ]) +other_sources.append(about_env.StaticObject('aboutdialog.cpp')) prog = env.Program('ModOrganizer', cpp_files + env.Glob('*.qrc') + other_sources) @@ -113,6 +102,8 @@ for subdir in ('tutorials', 'stylesheets'): env.Install(os.path.join(env['INSTALL_PATH'], subdir), env.Glob(os.path.join(subdir, '*'))) +# FIXME Sort the translations. Except they don't exist on the 1.2 branch + """ CONFIG(debug, debug|release) { } else { @@ -126,7 +117,3 @@ TRANSLATIONS = organizer_en.ts QMAKE_POST_LINK += xcopy /y /s /I $$quote($$BASEDIR\\*.qm) $$quote($$DSTDIR)\\translations $$escape_expand(\\n) """ - -""" -/IC:\Apps\Qt\4.8.6\include (twice) -""" diff --git a/src/shared/SConscript b/src/shared/SConscript index daf8f2da..35c65d73 100644 --- a/src/shared/SConscript +++ b/src/shared/SConscript @@ -1,18 +1,8 @@ -import os.path - Import('qt_env') env = qt_env.Clone() -modules = [ - 'Core', - 'Gui' -] - -env.EnableQt4Modules(['Qt' + n for n in modules], - debug = env['CONFIG'] == 'debug') - -env.StaticLibrary('mo_shared', env.Glob('*.cpp')) +env.EnableQtModules('Core', 'Gui') env.AppendUnique(CPPDEFINES = [ 'UNICODE', @@ -27,3 +17,6 @@ env.AppendUnique(CPPPATH = [ '${BOOSTPATH}', '.' # Seriously! ]) + +# Not sure if renaming this helps much as it's static +env.StaticLibrary('mo_shared', env.Glob('*.cpp')) -- cgit v1.3.1