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 --- README.txt | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'README.txt') 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 -- 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 'README.txt') 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 4b1059f5a118b70b2c8dfeb8fbecefc7852c6589 Mon Sep 17 00:00:00 2001 From: Tom Tanner Date: Sun, 15 Mar 2015 16:26:41 +0000 Subject: Building cleanly without patched versions. Doesn't do the plugins yet --- .hgignore | 4 ++-- README.txt | 20 +++++++++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) (limited to 'README.txt') diff --git a/.hgignore b/.hgignore index e04a39ce..19772d32 100644 --- a/.hgignore +++ b/.hgignore @@ -1,4 +1,6 @@ syntax: glob +scons_configure.py +scons-ModOrganizer-* ModOrganizer-build-desktop* outputd/* output/* @@ -34,5 +36,3 @@ html syntax: regexp Makefile\.(Debug|Release) source/.*/debug/.* -scons_configure.py -scons-ModOrganizer-* diff --git a/README.txt b/README.txt index 168e1726..cbb571c3 100644 --- a/README.txt +++ b/README.txt @@ -243,11 +243,16 @@ 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 paths as appropriate + boost/python/zlib/7zip paths as appropriate 4) Create build kits as follows: Custom Process step: Command: \Scripts\scons.bat - Arguments: -u + Arguments: -u . + Working directory: %{sourcedir} + + Clean Custom Process step: + Command: \Scripts\scons.bat + Arguments: -c -u . Working directory: %{sourcedir} For the release build, add 'CONFIG=release' to the arguments. @@ -255,7 +260,12 @@ 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). - 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). + 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 + project. + + 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.. \ No newline at end of file +This isn't complete by any means but.. -- 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 'README.txt') 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