[bt-devel] More CMake issues

Greg Hellings greg.hellings at gmail.com
Mon Apr 6 11:36:46 MST 2009


Sorry I haven't had a chance to try to build the sources on Windows
for a little while - I haven't had time to really devote to the build
process being so busy with life (in the next 8 weeks I am graduating
from my Master's degree, moving, getting married and hopefully getting
a job).  When the CMakeLists.txt file changes, it causes the build
process to automatically update the bibletime.vcproj file, which
undoes lots of the manual changes that I need to make at present to
build BibleTime.  Currently, the biggest hindrance is that it messes
with the Additional Include Directories entries and leaves the project
unable to locate the headers.

On my system, as per the suggestions for building Qt, I have defined
an environment variable $(QTDIR), and I told BibleTime to make all the
directories relative to that system variable, so people who were
building with Qt installed somewhere other than where I have it
(E:\Qt\vs2008) will not have to manually change the settings of
anything more than their environment variables.  When CMake runs, it
puts Include Directory entries in the project file like such:

C:\Bt\bibletime-svn\$(QTDIR)\include
C:\Bt\bibletime-svn\$(QTDIR)\include\QtWebKit

and so on for QtGui, QtTest, QtXml, and QtCore.  Since
QTDIR=E:\Qt\vs2008, obviously this means it can't find the Qt headers.
 Since they are spread across multiple drives, there is no way for me
to define QTDIR so that it's relative to C:\Bt\bibletime-svn that I am
aware of.  Is there a way to suppress the C:\Bt\bibletime-svn from
being prepended to the path that FindQt4 is returning? I can't see
easily where this is being prepended.

Additionally, since I'm not doing a 'make install' equivalent for
SWORD, all the sword headers are in C:\Bt\sword-1.5.11\include but
CMake is automatically taking that directory, which FindSword is
returning, and transforming it into
C:\Bt\bibletime-svn\..\sword-1.5.11\include\sword  -- the final \sword
makes it unable to find the SWORD headers.  Again, I'm not certain why
this is being returned, since the FindSword module is returning the
proper directory.  If I'm guessing right, it's because usually the
directory is /usr/local/include/sword, but I'm not sure why FindSword
is finding the correct directory, which is then being modified
incorrectly.

Thirdly: there is now an option in the build parameters for Visual
Studio that reads: /Zc:wchar_t-  This option causes the build to fail
when linking against CLucene unless I also edit the CLucene build
options to also include that same option.  I'm not sure whether that
was introduced to solve the build problems or not, but it has added on
extra step for me when building - although I must say that most of the
remaining problems that the Build Instructions for Windows include are
now handled automatically by CMake.  Is this problem solely mine with
some strange Unicode-related settings that I have?

If those three issues could be sorted out, all I would need to do for
updating the sources is run Tortoise SVN up and then rebuild.  I still
haven't bothered to come up with a new system for packaging the
binaries for a true Beta - if someone else can transform my .msi
package, then, perhaps, we could have a good beta of the Windows
software out there for people to use.

--Greg



More information about the bt-devel mailing list