[brailleblaster] Build environment setup

  • From: Keith Creasy <kcreasy@xxxxxxx>
  • To: "brailleblaster@xxxxxxxxxxxxx" <brailleblaster@xxxxxxxxxxxxx>
  • Date: Wed, 7 Mar 2012 08:23:44 -0500

Hi everyone.

I got the source and got Braille Blaster to build. It does not run however. 
Seems it does not have links to a couple of libraries.

Here's the output. Can anyone tell what is wrong here?

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
        Display cannot be resolved to a type
        The method getDisplay() from the type BBIni refers to the missing type 
Display
        liblouisutdml cannot be resolved to a type
        liblouisutdml cannot be resolved


        at org.brailleblaster.Main.main(Main.java:56)


If I copy the executable from the Windows binary distribution it works when in 
the same directory so the problem seems to be something with the way I have the 
project or environment variables set up.

I'm surprised I don't get compiler errors.

Keith

-----Original Message-----
From: brailleblaster-bounce@xxxxxxxxxxxxx 
[mailto:brailleblaster-bounce@xxxxxxxxxxxxx] On Behalf Of John J. Boyer
Sent: Tuesday, February 28, 2012 9:21 PM
To: liblouis-liblouisxml@xxxxxxxxxxxxx
Subject: [brailleblaster] Re: [liblouis-liblouisxml] Re: James Teh and others: 
SCONS

Hi Jamie,

This will be helpoful, in spite of all the caveats. I'll keep them in mind.

Thanks,
John

On Wed, Feb 29, 2012 at 10:55:53AM +1000, James Teh wrote:
> Hi John,
> 
> I've attached our liblouis sconscript. However:
> * This can't be used stand-alone. Rather, it is called from NVDA's 
> sconstruct. Therefore, some of the required set up is not included in 
> this file (although that's probably only a few lines).
> * This is written for NVDA, so it outputs files in NVDA specific 
> directories and only builds the dll, Python bindings and tables. The 
> tools, documentation, tests, etc. are not handled at all.
> * There is one compiler flag specific to Windows, but that is only 
> because of the way we build NVDA.
> * This uses configure.ac and the *.in files used by automake. If you 
> were moving to scons completely, I'd guess it might be neater to get 
> rid of these and instead pass compiler defines, though there are a few 
> exceptions to this.
> * Scons in-built support for the Windows SDK tends to break from time 
> to time (I'm not sure what the current status is), so we have written 
> our own. I can provide this, though it's currently under the terms of 
> the GPL (not LGPL).
> 
> Jamie
> 
> On 29/02/2012 10:10 AM, John J. Boyer wrote:
> >Hi Jamie,
> >
> >There has been considerable discussion on the BrailleBlaster list of 
> >SCONS in preparation for the next release. I am also thinking of 
> >using it for liblouisutdml Could you send your SCONS files for 
> >liblouis as attachments to this list? That would help us get started.
> >
> >Thanks,
> >John
> >
> 
> --
> James Teh
> Director, NV Access Limited
> Email: jamie@xxxxxxxxxxxx
> Web site: http://www.nvaccess.org/
> Phone: +61 7 5667 8372

> ###
> #This file is a part of the NVDA project.
> #URL: http://www.nvda-project.org/
> #Copyright 2006-2012 NVDA contributers.
> #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.
> #This program is distributed in the hope that it will be useful, #but 
> WITHOUT ANY WARRANTY; without even the implied warranty of 
> #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> #This license can be found at:
> #http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
> ###
> 
> import os
> import re
> 
> Import([
>       "env",
>       "sourceDir",
> ])
> 
> louisRootDir = env.Dir("#include/liblouis") louisSourceDir = 
> louisRootDir.Dir("liblouis") outDir = sourceDir.Dir("louis")
> 
> RE_AC_INIT = re.compile(r"^AC_INIT\((?P<name>.*), (?P<version>.*), 
> (?P<maintainer>.*)\)") def getLouisVersion():
>       # Get the version from configure.ac.
>       with file(louisRootDir.File("configure.ac").abspath) as f:
>               for line in f:
>                       m = RE_AC_INIT.match(line)
>                       if m:
>                               return m.group("version")
>       return "unknown"
> 
> env = env.Clone()
> env.Append(CCFLAGS="/W0")
> env.Append(CPPDEFINES=[
>       ("PACKAGE_VERSION", r'\"%s\"' % getLouisVersion()),
>       ("UNICODE_BITS", 16),
> ])
> env.Prepend(CPPPATH=[".", louisSourceDir])
> 
> liblouisH = env.Substfile("liblouis.h", louisSourceDir.File("liblouis.h.in"),
>       SUBST_DICT={"@WIDECHAR_TYPE@": "unsigned short int"})
> 
> sourceFiles = [
>       "compileTranslationTable.c",
>       "lou_translateString.c",
>       "lou_backTranslateString.c",
>       "wrappers.c",
> ]
> objs = [env.Object("%s.obj" % f, louisSourceDir.File(f)) for f in 
> sourceFiles] louisLib = env.SharedLibrary("liblouis", objs + 
> ["liblouis.def"]) env.Install(sourceDir, louisLib)
> 
> louisPython = env.Substfile(outDir.File("__init__.py"), 
> louisRootDir.File("python/louis/__init__.py.in"),
>       SUBST_DICT={"###LIBLOUIS_SONAME###": louisLib[0].name})
> 
> env.Install(outDir.Dir("tables"),
>       [f for f in env.Glob("%s/tables/*" % louisRootDir)
>               if f.name not in ("Makefile", "Makefile.am", "Makefile.in", 
> "README", "maketablelist.sh")
>       ])


--
John J. Boyer; President, Chief Software Developer Abilitiessoft, Inc.
http://www.abilitiessoft.com
Madison, Wisconsin USA
Developing software for people with disabilities



Other related posts: