mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-26 19:25:39 +00:00
patch and build system for cvs version of aspell
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14896 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d64a07a784
commit
1ac8cc30a3
176
development/Win32/aspell/CMakeLists.txt
Normal file
176
development/Win32/aspell/CMakeLists.txt
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
project(aspell)
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# Aspell Library
|
||||||
|
#
|
||||||
|
|
||||||
|
set(libaspell_sources
|
||||||
|
../common/cache.cpp
|
||||||
|
../common/string.cpp
|
||||||
|
../common/getdata.cpp
|
||||||
|
../common/itemize.cpp
|
||||||
|
../common/file_util.cpp
|
||||||
|
../common/string_map.cpp
|
||||||
|
../common/string_list.cpp
|
||||||
|
../common/config.cpp
|
||||||
|
../common/posib_err.cpp
|
||||||
|
../common/errors.cpp
|
||||||
|
../common/error.cpp
|
||||||
|
../common/fstream.cpp
|
||||||
|
../common/iostream.cpp
|
||||||
|
../common/info.cpp
|
||||||
|
../common/can_have_error.cpp
|
||||||
|
../common/convert.cpp
|
||||||
|
../common/convert_filter.cpp
|
||||||
|
../common/speller.cpp
|
||||||
|
../common/checker.cpp
|
||||||
|
../common/filter.cpp
|
||||||
|
../common/objstack.cpp
|
||||||
|
../common/strtonum.cpp
|
||||||
|
../common/gettext_init.cpp
|
||||||
|
../common/file_data_util.cpp
|
||||||
|
../modules/speller/default/readonly_ws.cpp
|
||||||
|
../modules/speller/default/suggest.cpp
|
||||||
|
../modules/speller/default/data.cpp
|
||||||
|
../modules/speller/default/multi_ws.cpp
|
||||||
|
../modules/speller/default/phonetic.cpp
|
||||||
|
../modules/speller/default/writable.cpp
|
||||||
|
../modules/speller/default/speller_impl.cpp
|
||||||
|
../modules/speller/default/checker_impl.cpp
|
||||||
|
../modules/speller/default/phonet.cpp
|
||||||
|
../modules/speller/default/typo_editdist.cpp
|
||||||
|
../modules/speller/default/editdist.cpp
|
||||||
|
../modules/speller/default/primes.cpp
|
||||||
|
../modules/speller/default/lang_impl.cpp
|
||||||
|
../modules/speller/default/leditdist.cpp
|
||||||
|
../modules/speller/default/affix.cpp
|
||||||
|
../lib/word_list-c.cpp
|
||||||
|
../lib/info-c.cpp
|
||||||
|
../lib/mutable_container-c.cpp
|
||||||
|
../lib/error-c.cpp
|
||||||
|
../lib/string_map-c.cpp
|
||||||
|
../lib/new_config.cpp
|
||||||
|
../lib/config-c.cpp
|
||||||
|
../lib/string_enumeration-c.cpp
|
||||||
|
../lib/can_have_error-c.cpp
|
||||||
|
../lib/dummy.cpp
|
||||||
|
../lib/new_filter.cpp
|
||||||
|
../lib/new_fmode.cpp
|
||||||
|
../lib/string_list-c.cpp
|
||||||
|
../lib/find_speller.cpp
|
||||||
|
../lib/speller-c.cpp
|
||||||
|
../lib/speller-cm.cpp
|
||||||
|
../lib/string_pair_enumeration-c.cpp
|
||||||
|
../lib/new_checker.cpp
|
||||||
|
../lib/checker-c.cpp
|
||||||
|
../lib/document_checker-c.cpp
|
||||||
|
../lib/convert-c.cpp
|
||||||
|
../lib/language-c.cpp
|
||||||
|
../lib/language_types-c.cpp
|
||||||
|
../lib/language-cm.cpp
|
||||||
|
../lib/munch_list.cpp
|
||||||
|
|
||||||
|
|
||||||
|
# This is for filters which are ALWAYS static.
|
||||||
|
# The url filter is always usefull and fairly simple.
|
||||||
|
# The genconv filter is mostly defined in the main aspell libarary
|
||||||
|
# since it is used by other filters. The actual genconv filter
|
||||||
|
# is just a small wrapper.
|
||||||
|
|
||||||
|
../modules/filter/url.cpp
|
||||||
|
../modules/filter/genconv.cpp
|
||||||
|
|
||||||
|
|
||||||
|
### msvc win32 support
|
||||||
|
../win32/libstub.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
file(GLOB commons_headers ../common/*.hpp)
|
||||||
|
|
||||||
|
if(COMPILE_IN_FILTERS)
|
||||||
|
|
||||||
|
### Add your filter sources here,
|
||||||
|
### starting with file containing filter class definition followed by
|
||||||
|
### file containing filter member implementation.
|
||||||
|
set(libaspell_sources
|
||||||
|
${libaspell_sources}
|
||||||
|
../modules/filter/email.cpp
|
||||||
|
../modules/filter/tex.cpp
|
||||||
|
../modules/filter/sgml.cpp
|
||||||
|
../modules/filter/context.cpp
|
||||||
|
../modules/filter/nroff.cpp
|
||||||
|
../modules/filter/texinfo.cpp
|
||||||
|
)
|
||||||
|
endif(COMPILE_IN_FILTERS)
|
||||||
|
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${CMAKE_SOURCE_DIR}
|
||||||
|
${CMAKE_SOURCE_DIR}/../win32
|
||||||
|
${CMAKE_SOURCE_DIR}/../gen
|
||||||
|
${CMAKE_SOURCE_DIR}/../lib
|
||||||
|
${CMAKE_SOURCE_DIR}/../common
|
||||||
|
${CMAKE_SOURCE_DIR}/../modules
|
||||||
|
${CMAKE_SOURCE_DIR}/../modules/filter
|
||||||
|
${CMAKE_SOURCE_DIR}/../modules/speller
|
||||||
|
${CMAKE_SOURCE_DIR}/../modules/speller/default
|
||||||
|
${CMAKE_SOURCE_DIR}/../interfaces/cc
|
||||||
|
)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
# debug library name: aspelld.lib
|
||||||
|
# release library name: aspell.lib
|
||||||
|
set(CMAKE_DEBUG_POSTFIX "d")
|
||||||
|
if(MSVC_IDE)
|
||||||
|
else(MSVC_IDE)
|
||||||
|
SET(CMAKE_EXE_LINKER_FLAGS /MANIFEST)
|
||||||
|
endif(MSVC_IDE)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Zi -wd4522 -wd4521 -wd4996 -wd4800")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -wd4522 -wd4521 -wd4996 -wd4800")
|
||||||
|
SET(CMAKE_C_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
|
||||||
|
SET(CMAKE_C_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
|
||||||
|
endif(MSVC)
|
||||||
|
|
||||||
|
add_definitions(-DWIN32PORT)
|
||||||
|
add_library(aspell STATIC ${libaspell_sources} ${commons_headers})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# Aspell Program
|
||||||
|
#
|
||||||
|
|
||||||
|
set(aspell_SOURCES
|
||||||
|
../prog/aspell.cpp
|
||||||
|
../prog/check_funs.cpp
|
||||||
|
../prog/checker_string.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(aspellexe ${aspell_SOURCES})
|
||||||
|
|
||||||
|
target_link_libraries(aspellexe aspell ole32)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# Install
|
||||||
|
#
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/../gnuwin32)
|
||||||
|
|
||||||
|
install(TARGETS aspellexe aspell
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib)
|
||||||
|
|
||||||
|
install(FILES ../interfaces/cc/aspell.h
|
||||||
|
DESTINATION include)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
36
development/Win32/aspell/Readme.txt
Normal file
36
development/Win32/aspell/Readme.txt
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
Aspell on Windows
|
||||||
|
|
||||||
|
You need cmake and cygwin.
|
||||||
|
|
||||||
|
- check out the latest CVS version:
|
||||||
|
http://savannah.gnu.org/cvs/?group=aspell
|
||||||
|
|
||||||
|
- copy the files from the LyX SVN to the other
|
||||||
|
files in the win32 folder of aspell
|
||||||
|
|
||||||
|
- with cygwin patch aspell, call in aspell/:
|
||||||
|
patch -p0 -i win32/win32-aspell.patch
|
||||||
|
|
||||||
|
- generate missing source files with cygwin:
|
||||||
|
./autogen
|
||||||
|
|
||||||
|
- make a separate build directory and run
|
||||||
|
on a standard Windows command promp
|
||||||
|
cmake <Aspell source directory>\win32
|
||||||
|
build and install debug AND release libraries
|
||||||
|
|
||||||
|
- build mingw makefiles files in
|
||||||
|
- cmd.exe shell:
|
||||||
|
cmake -G"MinGW Makefiles" <Aspell source directory>\win32
|
||||||
|
- in a MSYS shell
|
||||||
|
cmake -G"MSYS Makefiles" <Aspell source directory>\win32
|
||||||
|
|
||||||
|
|
||||||
|
The patched Aspell reads the location of the dictonary from
|
||||||
|
the registry. You can either install the dictionaries using
|
||||||
|
the official 1.4.2 installer or download them at:
|
||||||
|
http://wiki.lyx.org/Windows/Aspell6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
36
development/Win32/aspell/static_filters.src.cpp
Normal file
36
development/Win32/aspell/static_filters.src.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*File generated during static filter build
|
||||||
|
Automatically generated file
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern "C" IndividualFilter * new_aspell_url_filter();
|
||||||
|
|
||||||
|
static FilterEntry standard_filters[] = {
|
||||||
|
{"url",0,new_aspell_url_filter,0}
|
||||||
|
};
|
||||||
|
|
||||||
|
const unsigned int standard_filters_size = sizeof(standard_filters)/sizeof(FilterEntry);
|
||||||
|
|
||||||
|
static KeyInfo url_options[] = {
|
||||||
|
""
|
||||||
|
};
|
||||||
|
|
||||||
|
const KeyInfo * url_options_begin = url_options;
|
||||||
|
|
||||||
|
const KeyInfo * url_options_end = url_options+sizeof(url_options)/sizeof(KeyInfo);
|
||||||
|
|
||||||
|
|
||||||
|
static ConfigModule filter_modules[] = {
|
||||||
|
{
|
||||||
|
"url",0,
|
||||||
|
"filter to skip URL like constructs",
|
||||||
|
url_options_begin,url_options_end
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const ConfigModule * filter_modules_begin = filter_modules;
|
||||||
|
|
||||||
|
const ConfigModule * filter_modules_end = filter_modules+sizeof(filter_modules)/sizeof(ConfigModule);
|
||||||
|
|
||||||
|
const size_t filter_modules_size = sizeof(filter_modules);
|
||||||
|
|
||||||
|
|
205
development/Win32/aspell/win32-aspell.patch
Normal file
205
development/Win32/aspell/win32-aspell.patch
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
Index: common/config.cpp
|
||||||
|
===================================================================
|
||||||
|
RCS file: /sources/aspell/aspell/common/config.cpp,v
|
||||||
|
retrieving revision 1.78
|
||||||
|
diff -u -b -B -p -r1.78 config.cpp
|
||||||
|
--- common/config.cpp 21 Oct 2005 12:16:03 -0000 1.78
|
||||||
|
+++ common/config.cpp 30 Aug 2006 22:05:30 -0000
|
||||||
|
@@ -1581,3 +1581,61 @@ namespace aspell {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+#ifdef WIN32PORT
|
||||||
|
+
|
||||||
|
+#include "string.hpp"
|
||||||
|
+
|
||||||
|
+using namespace aspell;
|
||||||
|
+namespace acommon {
|
||||||
|
+
|
||||||
|
+ String ReadRegString(HKEY hive, String key, String name)
|
||||||
|
+ {
|
||||||
|
+
|
||||||
|
+ // Reads a string from the Windows registry (used to get paths)
|
||||||
|
+
|
||||||
|
+ HKEY hKey;
|
||||||
|
+ unsigned long lType;
|
||||||
|
+ DWORD dwSize;
|
||||||
|
+ unsigned char* szValue = NULL;
|
||||||
|
+
|
||||||
|
+ if (::RegOpenKeyEx(hive, key.c_str(), 0, KEY_READ, &hKey) == ERROR_SUCCESS)
|
||||||
|
+ {
|
||||||
|
+ if(::RegQueryValueEx(hKey, name.c_str(), NULL, &lType, NULL, &dwSize) == ERROR_SUCCESS)
|
||||||
|
+ {
|
||||||
|
+ szValue = new unsigned char[dwSize + 1];
|
||||||
|
+ ::RegQueryValueEx(hKey, name.c_str(), NULL, &lType, szValue, &dwSize);
|
||||||
|
+ String RegistryReturn((char*)szValue);
|
||||||
|
+ delete[] szValue;
|
||||||
|
+ return RegistryReturn;
|
||||||
|
+ } else {
|
||||||
|
+ return "";
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ return "";
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ HKEY GetRegHive()
|
||||||
|
+ {
|
||||||
|
+
|
||||||
|
+ // Check whether Aspell is installed for the current user or for all users
|
||||||
|
+
|
||||||
|
+ String value;
|
||||||
|
+
|
||||||
|
+ if (ReadRegString(HKEY_LOCAL_MACHINE, "Software\\Aspell", "Dictionary Path") == "")
|
||||||
|
+ {
|
||||||
|
+ return HKEY_CURRENT_USER;
|
||||||
|
+ } else {
|
||||||
|
+ return HKEY_LOCAL_MACHINE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#endif //WIN32PORT
|
||||||
|
+
|
||||||
|
+
|
||||||
|
Index: common/config.hpp
|
||||||
|
===================================================================
|
||||||
|
RCS file: /sources/aspell/aspell/common/config.hpp,v
|
||||||
|
retrieving revision 1.27
|
||||||
|
diff -u -b -B -p -r1.27 config.hpp
|
||||||
|
--- common/config.hpp 3 May 2005 05:08:19 -0000 1.27
|
||||||
|
+++ common/config.hpp 30 Aug 2006 22:05:30 -0000
|
||||||
|
@@ -277,5 +277,21 @@ namespace aspell {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef WIN32PORT
|
||||||
|
+
|
||||||
|
+#include "minwin.h"
|
||||||
|
+
|
||||||
|
+namespace aspell {
|
||||||
|
+ class String;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+namespace acommon {
|
||||||
|
+
|
||||||
|
+ extern HKEY GetRegHive();
|
||||||
|
+ extern aspell::String ReadRegString(HKEY type, aspell::String key, aspell::String name);
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: common/gettext_init.cpp
|
||||||
|
===================================================================
|
||||||
|
RCS file: /sources/aspell/aspell/common/gettext_init.cpp,v
|
||||||
|
retrieving revision 1.5
|
||||||
|
diff -u -b -B -p -r1.5 gettext_init.cpp
|
||||||
|
--- common/gettext_init.cpp 3 May 2005 05:08:19 -0000 1.5
|
||||||
|
+++ common/gettext_init.cpp 30 Aug 2006 22:05:30 -0000
|
||||||
|
@@ -16,7 +15,21 @@ extern "C" void aspell_gettext_init()
|
||||||
|
if (did_init) return;
|
||||||
|
did_init = true;
|
||||||
|
}
|
||||||
|
+#ifdef WIN32PORT
|
||||||
|
+ // Registry key for Locale Path
|
||||||
|
+
|
||||||
|
+ aspell::String value;
|
||||||
|
+ HKEY hive;
|
||||||
|
+
|
||||||
|
+ hive = acommon::GetRegHive();
|
||||||
|
+ value = acommon::ReadRegString(hive, "Software\\Aspell", "Locale Path");
|
||||||
|
+ if (value == "") value = LOCALEDIR;
|
||||||
|
+
|
||||||
|
+ bindtextdomain("aspell", value.c_str());
|
||||||
|
+#else
|
||||||
|
bindtextdomain("aspell", LOCALEDIR);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
Index: common/info.cpp
|
||||||
|
===================================================================
|
||||||
|
RCS file: /sources/aspell/aspell/common/info.cpp,v
|
||||||
|
retrieving revision 1.39
|
||||||
|
diff -u -b -B -p -r1.39 info.cpp
|
||||||
|
--- common/info.cpp 3 May 2005 05:08:19 -0000 1.39
|
||||||
|
+++ common/info.cpp 30 Aug 2006 22:05:30 -0000
|
||||||
|
@@ -17,9 +17,6 @@
|
||||||
|
/* BSDi defines u_intXX_t types in machine/types.h */
|
||||||
|
#include <machine/types.h>
|
||||||
|
#endif
|
||||||
|
-#if defined(WIN32) || defined(_WIN32)
|
||||||
|
-#include "minwin.h" //minimum windows declarations.
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
#include "iostream.hpp"
|
||||||
|
|
||||||
|
@@ -574,7 +571,17 @@ namespace aspell {
|
||||||
|
StringList & lst)
|
||||||
|
{
|
||||||
|
lst.clear();
|
||||||
|
- lst.add(config->retrieve("data-dir"));
|
||||||
|
+ String dictpath;
|
||||||
|
+
|
||||||
|
+#ifdef WIN32PORT
|
||||||
|
+ HKEY hive = acommon::GetRegHive();
|
||||||
|
+ // Registry key for dictionary path
|
||||||
|
+ dictpath =acommon::ReadRegString(hive, "Software\\Aspell", "Dictionary Path");;
|
||||||
|
+ if (dictpath == "") dictpath = config->retrieve("data-dir");
|
||||||
|
+#else
|
||||||
|
+ dictpath = config->retrieve("data-dir");
|
||||||
|
+#endif
|
||||||
|
+ lst.add(dictpath);
|
||||||
|
lst.add(config->retrieve("dict-dir"));
|
||||||
|
}
|
||||||
|
|
||||||
|
Index: common/vector.hpp
|
||||||
|
===================================================================
|
||||||
|
RCS file: /sources/aspell/aspell/common/vector.hpp,v
|
||||||
|
retrieving revision 1.15
|
||||||
|
diff -u -b -B -p -r1.15 vector.hpp
|
||||||
|
--- common/vector.hpp 3 May 2005 05:08:19 -0000 1.15
|
||||||
|
+++ common/vector.hpp 30 Aug 2006 22:05:30 -0000
|
||||||
|
@@ -47,13 +47,13 @@ namespace aspell
|
||||||
|
}
|
||||||
|
T * data() {return &*this->begin();}
|
||||||
|
T * data(int pos) {return &*this->begin() + pos;}
|
||||||
|
- T * data_end() {return &*this->end();}
|
||||||
|
+ T * data_end() {return &this->back()+1;}
|
||||||
|
|
||||||
|
T * pbegin() {return &*this->begin();}
|
||||||
|
- T * pend() {return &*this->end();}
|
||||||
|
+ T * pend() {return &this->back()+1;}
|
||||||
|
|
||||||
|
const T * pbegin() const {return &*this->begin();}
|
||||||
|
- const T * pend() const {return &*this->end();}
|
||||||
|
+ const T * pend() const {return &this->back()+1;}
|
||||||
|
|
||||||
|
template <typename U>
|
||||||
|
U * datap() {
|
||||||
|
Index: win32/settings.h
|
||||||
|
===================================================================
|
||||||
|
RCS file: /sources/aspell/aspell/win32/settings.h,v
|
||||||
|
retrieving revision 1.5
|
||||||
|
diff -u -b -B -p -r1.5 settings.h
|
||||||
|
--- win32/settings.h 15 Feb 2005 08:52:58 -0000 1.5
|
||||||
|
+++ win32/settings.h 30 Aug 2006 22:05:30 -0000
|
||||||
|
@@ -106,7 +106,7 @@
|
||||||
|
// declaring a template param. The other supporte compilers (Borlands
|
||||||
|
// BCB5.5 and GNU C++) require or allow it anywhere in the template
|
||||||
|
// decl. The macro TYPENAME is defines to whatever works.
|
||||||
|
-#ifdef _MSC_VER
|
||||||
|
+#if defined(_MSC_VER) && (_MSC_VER<1300)
|
||||||
|
#define TYPENAME
|
||||||
|
#else
|
||||||
|
#define TYPENAME typename
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user