Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
7631d7a
Python 2/3: relative imports (#9670)
josephsl Jun 8, 2019
b63554c
Python 3: print statement -> print function (#9664)
josephsl Jun 8, 2019
f66e46e
Python 3: file function -> open function (#9663)
josephsl Jun 8, 2019
a8074d5
Python 3: use floor division (//) to obtain integer results from divi…
josephsl Jun 8, 2019
8b82c5d
Python 3: use importlib for importing modules (#9693)
josephsl Jun 8, 2019
1d43a4e
Python 3: dictionary iteration/list methods made compatible with Pyth…
josephsl Jun 8, 2019
e573f30
Python 3: xrange -> range (#9627)
josephsl Jun 8, 2019
f797aef
Start building threshold_py3_staging branch on appveyor. For now it …
michaelDCurran Jun 8, 2019
4e0d3f7
Appveyor: use Python 3.7 rather than Python 2.
michaelDCurran Jun 8, 2019
61e66ec
SAPI 5 synth driver: percentage to pitch/rate must return an integer.…
josephsl Jun 9, 2019
e18c5f4
Python 3: except exception, e -> except as e (#9698)
josephsl Jun 9, 2019
5f0be63
Python 3: dict.haskey -> key in dict (#9697)
josephsl Jun 9, 2019
6506bc7
Update dependencies for Python 3 (#9630)
LeonarddeR Jun 9, 2019
5b67a1b
import Python 3 native modules (#9703)
michaelDCurran Jun 9, 2019
ef8c266
Python 3: sys.maxint -> sys.maxsize, as maxint is gone in Python 2. R…
michaelDCurran Jun 9, 2019
ddae63b
Python3: os.getcwdu -> os.getcwd (#9705)
michaelDCurran Jun 10, 2019
b808253
Python 3/remote python console: SocketServer -> socketserver. (#9706)
michaelDCurran Jun 10, 2019
89b2744
Update miscDeps to latest master, containing python3 txt2tags.
michaelDCurran Jun 11, 2019
2e32334
txt2tags for python3 #8734 (#9648)
nishimotz Jun 11, 2019
f1f823e
Update setup script for Python 3.7 (#9605)
LeonarddeR Jun 11, 2019
840dce5
Update Scons build environment to run on Python 3 (#9667)
LeonarddeR Jun 11, 2019
031532d
Python 3: Fix use of subprocess (#9716)
LeonarddeR Jun 11, 2019
0443119
Check pot: file -> open (#9718)
josephsl Jun 11, 2019
1ab7d82
Python 3: the thread module is no longer available. Use threading ins…
michaelDCurran Jun 11, 2019
1164178
Python3: fix remaining syntax errors found by py2exe (#9719)
michaelDCurran Jun 12, 2019
0e06e45
Python3: fix NVDA's logging infrastructure (#9712)
michaelDCurran Jun 12, 2019
c3d0e27
Python3: gettext is unicode, and pgettext is placed in builtins prope…
michaelDCurran Jun 12, 2019
95b20d1
WinConsole handler/Python 3: use floor divisoin assignment operator. …
josephsl Jun 13, 2019
e6fa058
Unittests/Python 3: update syntax, catch unbound method registration …
josephsl Jun 13, 2019
8d63788
Python 3: zip function -> list(zip), itertools.izip -> zip() (#9729)
josephsl Jun 14, 2019
5da17fd
Quick fix from pr #9729: for loop's cannot be split over two lines.
michaelDCurran Jun 14, 2019
e19697e
Python 3: No longer encode or decode if it is not necessary (#9734)
LeonarddeR Jun 15, 2019
5ec1aeb
objidl: HRESULT is no longer available in ctypes.wintypes. Get it fro…
michaelDCurran Jun 15, 2019
590c4f9
remove use of unichr, basestring and unicode objects. (#9724)
michaelDCurran Jun 15, 2019
6ef31d9
Remove need for hashing NVDAObject and TextInfo objects (#9746)
michaelDCurran Jun 15, 2019
e8fdfbf
Global commands: restore commands affected by division operator diffe…
josephsl Jun 15, 2019
7ccbe6f
Python 3: more native imports and modules (#9751)
josephsl Jun 16, 2019
b34733e
Input core/input gestures dialog: script function object has no attri…
josephsl Jun 16, 2019
c3d8e4a
Python 3: use native metaclass definition syntax (#9753)
josephsl Jun 16, 2019
a8f4c54
Revert "Remove need for hashing NVDAObject and TextInfo objects (#974…
michaelDCurran Jun 16, 2019
7862dfb
Python3: base virtualBuffer: coerce attribute values to a string befo…
michaelDCurran Jun 16, 2019
eb2d280
cmp no longer exists in Python3. Replace with (a>b)-(a<b) (#9758)
michaelDCurran Jun 16, 2019
9cfa14e
Python3: Provide __hash__ methods where ever we have provided __eq__ …
michaelDCurran Jun 17, 2019
c312713
Compile liblouis with 32 bit widechars (#9544)
LeonarddeR Jun 17, 2019
c4cafd3
Update what's new.
michaelDCurran Jun 17, 2019
2d4e27c
Merge branch 'threshold' into threshold_py3_staging
michaelDCurran Jun 17, 2019
b8fb2a7
Python 3: fix several remaining division errors (#9774)
LeonarddeR Jun 21, 2019
7e0599d
Write syntax errors and tracebacks to python console (#9767)
LeonarddeR Jun 21, 2019
0a09904
Correct a few places where we are trying to do integer comparisons wi…
michaelDCurran Jun 24, 2019
993ee7b
Ensure NVDA contains a signed and valid python37.dll (#9796)
michaelDCurran Jun 24, 2019
4b99fd9
Python3: implement new way of converting COMError to CallCancelled (#…
michaelDCurran Jun 24, 2019
e7a7af1
System tests/Python 3: syntax and imports (#9801)
josephsl Jun 24, 2019
3a134d0
bdDetect: change basestring to str.
michaelDCurran Jun 24, 2019
088fb0d
Make output of both py2exe and nose more verbose to aide in future bu…
michaelDCurran Jun 24, 2019
5db55ce
App module handler/does app mod exists: return false when called befo…
josephsl Jun 25, 2019
8acc736
Python 3: fix logging level not being updated correctly (#9809)
LeonarddeR Jun 25, 2019
6507e9f
Add-on handler: ugettext -> gettext (#9810)
josephsl Jun 25, 2019
46bbf7d
Revert "App module handler/does app mod exists: return false when cal…
michaelDCurran Jun 26, 2019
25eebe0
config.addConfigDirsToPythonPackagePath: When adding scratchpad dirs,…
michaelDCurran Jun 26, 2019
1c474d9
Update miscDeps to contain new brlApi module (#9812)
michaelDCurran Jun 26, 2019
779ca15
Python 3/urllib: imports, timeout (#9820)
josephsl Jun 26, 2019
0b9f3ef
Update check/Python 3: update check resource is encoded as bytes, thu…
josephsl Jun 28, 2019
7241d4f
Python3: stop using unichr in brailleInput.py (#9835)
michaelDCurran Jun 28, 2019
0a35c8f
Python3 convert braille drivers (PR #9736)
feerrenrut Jun 28, 2019
83385de
Fixes for BrailliantB and FreedomScientific (PR #9839)
bramd Jun 28, 2019
ec1c253
Python 3: Fix deprecation warning extensionPoints.callWithSUpportedKw…
LeonarddeR Jun 28, 2019
3e04309
Fix comparison error in start menu (PR #9846)
LeonarddeR Jul 1, 2019
bb12612
Update BRLTTY driver (PR #9821)
LeonarddeR Jul 1, 2019
15d8374
textUtils module to deal with offset differences between Python 3 str…
LeonarddeR Jul 2, 2019
9812e7b
Python 3: Update py2exe to fix several issues (PR #9856)
LeonarddeR Jul 3, 2019
5a0fb7f
Update UIAutomationCore.dll comtypes module to version 10.0.18362 (PR…
LeonarddeR Jul 3, 2019
b229fc4
Python 3 one core: Don't check for sys.frozen in the check method. (P…
LeonarddeR Jul 5, 2019
e458683
Python 3: fix say all for DisplayModelEditableText (PR #9866)
LeonarddeR Jul 5, 2019
17c7ea1
Python 3: sys.exec_prefix > sys.prefix for nvda_slave (PR #9871)
LeonarddeR Jul 5, 2019
2a260be
WinKernel: create a wrapper for MoveFileExW function and associated f…
josephsl Jul 5, 2019
3ab9024
Merge remote-tracking branch 'origin/threshold' into threshold_py3_st…
feerrenrut Jul 5, 2019
37d4dfe
Fix merge: inspected diff for Py3 errors
feerrenrut Jul 5, 2019
83e6a54
Merge remote-tracking branch 'origin/threshold' into threshold_py3_st…
feerrenrut Jul 8, 2019
4e60f5e
Merge remote-tracking branch 'origin/threshold' into threshold_py3_st…
feerrenrut Jul 8, 2019
74431b8
Python 3: Fix usages of "open" function (PR #9853)
LeonarddeR Jul 8, 2019
0f2db0b
Python 3: Fix missing import, remove unused imports (PR #9901)
feerrenrut Jul 9, 2019
200a7a6
Python3: Fix save scripts in lockapp (PR #9884)
LeonarddeR Jul 9, 2019
92be7aa
Python 3: use UTF-8 decoding for font name with Scintilla controls (P…
josephsl Jul 9, 2019
f1c884d
Python 3: When processing xml coming from virtual buffers, make sure …
LeonarddeR Jul 9, 2019
a92ac90
Python 3: Fix error with accPropServer (PR #9900)
feerrenrut Jul 10, 2019
0fb2342
Python 3: Remove many instances of "py3 review required" comments (PR…
LeonarddeR Jul 10, 2019
d28b527
Python 3: Fix adobe reader int/str to NoneType comparisons as well as…
LeonarddeR Jul 11, 2019
2c7680c
Python 3: MoveFileEx - catch WindowsError instead of WinError (PR #9…
josephsl Jul 11, 2019
bbbb969
Python 3: Clean the current words buffer in more cases (PR #9877)
LeonarddeR Jul 11, 2019
2faf24b
Python 3: Remove Python 2 specific workarounds (PR #9889)
LeonarddeR Jul 11, 2019
7c235ec
Python 3: Use built-in "input" instread of "raw_input" (PR #9908)
josephsl Jul 12, 2019
ed15de9
Python 3: Fix loading of espeak variants (PR #9920)
LeonarddeR Jul 12, 2019
92458e9
Python 3: Fix several local overrides of range function (PR #9912)
LeonarddeR Jul 12, 2019
cb5405f
Python 3: Check for None during check for previous installation versi…
josephsl Jul 15, 2019
131ed84
Merge remote-tracking branch 'origin/threshold' into threshold_py3_st…
feerrenrut Jul 15, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@
ignore = untracked
[submodule "include/comtypes"]
path = include/comtypes
url = https://github.com/enthought/comtypes.git
ignore = untracked
url = https://github.com/nvaccess/comtypes-bin
[submodule "include/scons"]
path = include/scons
url = https://github.com/SConsProject/scons
Expand All @@ -38,3 +37,6 @@
[submodule "include/cldr-emoji-annotation"]
path = include/cldr-emoji-annotation
url = https://github.com/fujiwarat/cldr-emoji-annotation
[submodule "include/py2exe"]
path = include/py2exe
url = https://github.com/nvaccess/py2exe-bin
5 changes: 3 additions & 2 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ version: "{branch}-{build}"
branches:
only:
- threshold
- threshold_py3_staging
- master
- beta
- rc
Expand All @@ -12,7 +13,7 @@ branches:
- /release-.*/

environment:
PY_PYTHON: 2.7-32
PY_PYTHON: 3.7-32
encFileKey:
secure: ekOvuyywHuDdGZmRmoj+b3jfrq39A2xlx4RD5ZUGd/8=
mozillaSymsAuthToken:
Expand Down Expand Up @@ -150,7 +151,7 @@ test_script:
$errorCode=0
$outDir = (Resolve-Path .\testOutput\unit\)
$unitTestsXml = "$outDir\unitTests.xml"
py -m nose --with-xunit --xunit-file="$unitTestsXml" ./tests/unit
py -m nose -sv --with-xunit --xunit-file="$unitTestsXml" ./tests/unit
if($LastExitCode -ne 0) { $errorCode=$LastExitCode }
Push-AppveyorArtifact $unitTestsXml
$wc = New-Object 'System.Net.WebClient'
Expand Down
4 changes: 2 additions & 2 deletions appveyor/mozillaSyms.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
To update the list of symbols uploaded to Mozilla, see the DLL_NAMES constant below.
"""

from __future__ import print_function
import argparse
import os
import subprocess
Expand Down Expand Up @@ -43,7 +42,8 @@ def __init__(self, returncode, stderr):
def check_output(command):
proc = subprocess.Popen(command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
stderr=subprocess.PIPE,
text=True)
stdout, stderr = proc.communicate()
if proc.returncode != 0:
raise ProcError(proc.returncode, stderr)
Expand Down
2 changes: 1 addition & 1 deletion appx/sconscript
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def getCertPublisher(env):
return env['publisher']
certPassword=env.get('certPassword','')
cmd=['certutil','-dump','-p',certPassword,File('#'+certFile).abspath.replace('/','\\')]
lines=subprocess.check_output(cmd).splitlines()
lines=subprocess.run(cmd,check=True,capture_output=True,text=True).stdout.splitlines()
linePrefix='Subject: '
for line in lines:
if line.startswith(linePrefix):
Expand Down
4 changes: 2 additions & 2 deletions cldrDict_sconscript
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def createCLDRAnnotationsDict(sources, dest):
assert cldrDict, "cldrDict is empty"
with codecs.open(dest, "w", "utf_8_sig", errors="replace") as dictFile:
dictFile.write(u"symbols:\r\n")
for pattern, description in cldrDict.iteritems():
for pattern, description in cldrDict.items():
dictFile.write(u"{pattern}\t{description}\tsome\r\n".format(
pattern=pattern,
description=description
Expand Down Expand Up @@ -119,7 +119,7 @@ NVDAToCLDRLocales = {

annotationsDir = env.Dir("include/cldr-emoji-annotation/annotations")
annotationsDerivedDir = env.Dir("include/cldr-emoji-annotation/annotationsDerived")
for destLocale, sourceLocales in NVDAToCLDRLocales.iteritems():
for destLocale, sourceLocales in NVDAToCLDRLocales.items():
cldrSources = []
# First add all annotations, then the derived ones.
for sourceLocale in sourceLocales:
Expand Down
2 changes: 1 addition & 1 deletion include/comtypes
1 change: 1 addition & 0 deletions include/py2exe
Submodule py2exe added at c496ae
2 changes: 1 addition & 1 deletion include/wxPython
8 changes: 4 additions & 4 deletions keyCommandsDoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#A part of NonVisual Desktop Access (NVDA)
#This file is covered by the GNU General Public License.
#See the file COPYING for more details.
#Copyright (C) 2010-2015 NV Access Limited, Mesar Hameed
#Copyright (C) 2010-2019 NV Access Limited, Mesar Hameed, Takuya Nishimoto

"""Utilities related to NVDA Key Commands documents.
"""
Expand Down Expand Up @@ -213,7 +213,7 @@ def _heading(self, m):
self._headings.append(m)
self._kcLastHeadingLevel = min(self._kcLastHeadingLevel, level - 1)

RE_SETTING_SINGLE_KEY = re.compile(ur"^[^|]+?[::]\s*(.+?)\s*$")
RE_SETTING_SINGLE_KEY = re.compile(r"^[^|]+?[::]\s*(.+?)\s*$")
def _handleSetting(self):
if not self._settingsHeaderRow:
raise KeyCommandsError("%d, setting command cannot be used before settingsSection command" % self._lineNum)
Expand All @@ -237,7 +237,7 @@ def _handleSetting(self):
# The next few lines should be table rows for each layout.
# Alternatively, if the key is common to all layouts, there will be a single line of text specifying the key after a colon.
keys = []
for layout in xrange(self._settingsNumLayouts):
for layout in range(self._settingsNumLayouts):
line = next(self._ug).strip()
self._lineNum += 1
m = self.RE_SETTING_SINGLE_KEY.match(line)
Expand All @@ -254,7 +254,7 @@ def _handleSetting(self):
if 1 == len(keys) < self._settingsNumLayouts:
# The key has only been specified once, so it is the same in all layouts.
key = keys[0]
keys[1:] = (key for layout in xrange(self._settingsNumLayouts - 1))
keys[1:] = (key for layout in range(self._settingsNumLayouts - 1))

# There should now be a blank line.
line = next(self._ug).strip()
Expand Down
2 changes: 1 addition & 1 deletion miscDeps
Submodule miscDeps updated 380 files
2 changes: 1 addition & 1 deletion nvdaHelper/archBuild_sconscript
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def clsidStringToCLSIDDefine(clsidString):
"0x"+d[0:8],
"0x"+d[8:12],
"0x"+d[12:16],
"{%s}"%(",".join("0x"+d[x:x+2] for x in xrange(16,32,2)))
"{%s}"%(",".join("0x"+d[x:x+2] for x in range(16,32,2)))
)

def COMProxyDllBuilder(env,target,source,proxyClsid):
Expand Down
10 changes: 5 additions & 5 deletions nvdaHelper/espeak/sconscript
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def espeak_compilePhonemeData_buildAction(target,source,env):
# Unfortunately, there's no way we can flush it or use a different stream
# because our eSpeak statically links the CRT.
espeak=AutoFreeCDLL(espeakLib[0].abspath)
espeak.espeak_ng_InitializePath(espeakRepo.abspath)
espeak.espeak_ng_InitializePath(os.fsencode(espeakRepo.abspath))
espeak.espeak_ng_CompileIntonation(None,None)
espeak.espeak_ng_CompilePhonemeData(22050,None,None)
espeak.espeak_Terminate()
Expand All @@ -72,14 +72,14 @@ def espeak_compileDict_buildAction(target,source,env):
# Unfortunately, there's no way we can flush it or use a different stream
# because our eSpeak statically links the CRT.
espeak=AutoFreeCDLL(espeakLib[0].abspath)
espeak.espeak_Initialize(0,0,target[0].Dir('..').abspath,0x8000)
espeak.espeak_Initialize(0,0,os.fsencode(target[0].Dir('..').abspath),0x8000)
try:
lang=source[0].name.split('_')[0]
v=espeak_VOICE(languages=lang+'\x00')
lang=source[0].name.split('_')[0].encode()
v=espeak_VOICE(languages=lang+b'\x00')
if espeak.espeak_SetVoiceByProperties(ctypes.byref(v))!=0:
print("espeak_compileDict_action: failed to switch to language %s"%lang)
return 1
dictPath=os.path.split(source[0].abspath)[0]+'/'
dictPath=os.fsencode(os.path.split(source[0].abspath)[0]+'/')
if espeak.espeak_ng_CompileDictionary(dictPath,None,0,None)!=0:
print("espeak_compileDict_action: failed to compile dictionary for language %s"%lang)
return
Expand Down
8 changes: 4 additions & 4 deletions nvdaHelper/liblouis/sconscript
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
###
#This file is a part of the NVDA project.
#URL: https://www.nvaccess.org/
#Copyright 2011-2017 NV Access Limited, Joseph Lee
#Copyright 2011-2018 NV Access Limited, Joseph Lee, Babbage B.V.
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License version 2.0, as published by
#the Free Software Foundation.
Expand All @@ -28,7 +28,7 @@ signExec=env['signExec'] if env['certFile'] else None
RE_AC_INIT = re.compile(r"^AC_INIT\(\[(?P<package>.*)\], \[(?P<version>.*)\], \[(?P<bugReport>.*)\], \[(?P<tarName>.*)\], \[(?P<url>.*)\]\)")
def getLouisVersion():
# Get the version from configure.ac.
with file(louisRootDir.File("configure.ac").abspath) as f:
with open(louisRootDir.File("configure.ac").abspath) as f:
for line in f:
m = RE_AC_INIT.match(line)
if m:
Expand All @@ -54,7 +54,7 @@ env.Append(CPPDEFINES=[
# variants that start with an '_'. This removes those deprecation warnings. */
"_CRT_NONSTDC_NO_DEPRECATE",
("PACKAGE_VERSION", r'\"%s\"' % getLouisVersion()),
("UNICODE_BITS", 16),
"WIDECHARS_ARE_UCS4",
# Tell liblouis.h that we're exporting liblouis dll functions, not importing them.
"_EXPORTING",
])
Expand All @@ -64,7 +64,7 @@ env.Prepend(CPPPATH=[".", louisSourceDir])
env['CPPDEFINES'].remove("UNICODE")

liblouisH = env.Substfile("liblouis.h", louisSourceDir.File("liblouis.h.in"),
SUBST_DICT={"@WIDECHAR_TYPE@": "unsigned short int"})
SUBST_DICT={"@WIDECHAR_TYPE@": "unsigned int"})

sourceFiles = [
"compileTranslationTable.c",
Expand Down
28 changes: 15 additions & 13 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,31 +57,32 @@ If you didn't pass the `--recursive` option to git clone, you will need to run `
Whenever a required submodule commit changes (e.g. after git pull), you will need to run `git submodule update`.
If you aren't sure, run `git submodule update` after every git pull, merge or checkout.

For reference, the following dependencies are included in Git submodules:
For reference, the following run time dependencies are included in Git submodules:

* [comtypes](https://github.com/enthought/comtypes), version 1.1.7
* [wxPython](http://www.wxpython.org/), version 4.0.3
* [Six](https://pypi.python.org/pypi/six), version 1.10.0, required by wxPython
* [Python Windows Extensions](http://sourceforge.net/projects/pywin32/ ), build 218
* [eSpeak NG](https://github.com/espeak-ng/espeak-ng), commit 86e67a
* [Sonic](https://github.com/waywardgeek/sonic), commit 4f8c1d11
* [IAccessible2](http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2), commit 21bbb176
* [ConfigObj](https://github.com/DiffSK/configobj), commit 5b5de48
* [Six](https://pypi.python.org/pypi/six), version 1.12.0, required by wxPython and ConfigObj
* [liblouis](http://www.liblouis.org/), version 3.10.0
* [Unicode Common Locale Data Repository (CLDR)](http://cldr.unicode.org/) Emoji Annotations, version 35.0
* NVDA images and sounds
* System dlls not present on many systems: mfc90.dll, msvcp90.dll, msvcr90.dll, Microsoft.VC90.CRT.manifest
* [Adobe Acrobat accessibility interface, version XI](http://download.macromedia.com/pub/developer/acrobat/AcrobatAccess.zip)
* Adobe FlashAccessibility interface typelib
* [txt2tags](http://txt2tags.sourceforge.net/), version 2.5
* [MinHook](https://github.com/RaMMicHaeL/minhook), tagged version 1.2.2
* [SCons](http://www.scons.org/), version 3.0.4
* brlapi Python bindings, version 0.5.7 or later, distributed with [BRLTTY for Windows](http://brl.thefreecat.org/brltty/), version 4.2-2
* ALVA BC6 generic dll, version 3.0.4.1
* brlapi Python bindings, version 0.7.0 or later, distributed with [BRLTTY for Windows](http://brl.thefreecat.org/brltty/), version 4.2-2
* lilli.dll, version 2.1.0.0
* [pySerial](http://pypi.python.org/pypi/pyserial), version 3.4
* [Python interface to FTDI driver/chip](http://fluidmotion.dyndns.org/zenphoto/index.php?p=news&title=Python-interface-to-FTDI-driver-chip)
* [Py2Exe](http://sourceforge.net/projects/py2exe/), version 0.6.9

Additionally, the following build time dependencies are included in Git submodules:

* [Py2Exe](https://github.com/albertosottile/py2exe/), version 0.9.3.2 commit b372a8e
* [Python Windows Extensions](http://sourceforge.net/projects/pywin32/ ), build 224, required by py2exe
* [txt2tags](http://txt2tags.sourceforge.net/), version 2.5
* [SCons](http://www.scons.org/), version 3.0.4
* [Nulsoft Install System](http://nsis.sourceforge.net/), version 2.51
* [NSIS UAC plug-in](http://nsis.sourceforge.net/UAC_plug-in), version 0.2.4, ansi
* xgettext and msgfmt from [GNU gettext](http://sourceforge.net/projects/cppcms/files/boost_locale/gettext_for_windows/)
Expand All @@ -91,7 +92,7 @@ For reference, the following dependencies are included in Git submodules:
### Other Dependencies
These dependencies are not included in Git submodules, but aren't needed by most people.

* To generate developer documentation for nvdaHelper: [Doxygen version 1.7.3 Windows installer](https://sourceforge.net/projects/doxygen/files/rel-1.7.3/doxygen-1.7.3-setup.exe)
* To generate developer documentation for nvdaHelper: [Doxygen Windows installer](http://www.doxygen.nl/download.html), version 1.8.15:

## Preparing the Source Tree
Before you can run the NVDA source code, you must prepare the source tree.
Expand Down Expand Up @@ -161,13 +162,14 @@ scons launcher

The archive will be placed in the output directory.

To generate developer documentation, type:
To generate the NVDA developer guide, type:

```
scons devDocs
scons developerGuide
```

The developer docs will be placed in the `devDocs` folder in the output directory.
The developer guide will be placed in the `devDocs` folder in the output directory.
Note that the Python 3 sources of NVDA currently do not support building NVDA developer documentation using the `scons devDocs` command.

To generate developer documentation for nvdaHelper (not included in the devDocs target):

Expand Down
4 changes: 2 additions & 2 deletions scons.bat
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ rem Instead, find the python launcher (installed by python 3)
where py 1>nul 2>&1
if "%ERRORLEVEL%" == "0" (
rem Python launcher is present in the PATH
rem Call python 2.7 for 32 bits
py -2.7-32 "%~dp0\scons.py" %*
rem Call python 3.7 for 32 bits
py -3.7-32 "%~dp0\scons.py" %*
) else (
rem Python registers itself with the .py extension, so call scons.py.
"%~dp0\scons.py" %*
Expand Down
2 changes: 1 addition & 1 deletion scons.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import os
import platform
# Variables for storing required version of Python, and the version which is used to run this script.
requiredPythonMajor ="2"
requiredPythonMajor ="3"
requiredPythonMinor = "7"
requiredPythonArchitecture = "32bit"
installedPythonMajor = str(sys.version_info.major)
Expand Down
Loading