Commit df4f610f5c7d4a702bc61300b8bd48fde73c86c2
1 parent
39804a1e
poprawki, żeby działało na Mac OS X
git-svn-id: svn://svn.nlp.ipipan.waw.pl/morfeusz/morfeusz@102 ff4e3ee1-f430-4e82-ade0-24591c43f1fd
Showing
16 changed files
with
52 additions
and
23 deletions
CMakeLists.txt
... | ... | @@ -13,13 +13,13 @@ enable_testing() |
13 | 13 | |
14 | 14 | # ARCHITECTURE |
15 | 15 | if ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64") |
16 | - set(ARCHITECTURE "amd64") | |
16 | + set (ARCHITECTURE "amd64") | |
17 | 17 | elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86") |
18 | - set(ARCHITECTURE "i386") | |
18 | + set (ARCHITECTURE "i386") | |
19 | 19 | elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "") |
20 | 20 | message (FATAL_ERROR "CMAKE_SYSTEM_PROCESSOR is not set (should be x86 or x86_64)") |
21 | 21 | else () |
22 | - message (FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_PROCESSOR}") | |
22 | + set (ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}") | |
23 | 23 | endif () |
24 | 24 | |
25 | 25 | # PROJECT_VERSION |
... | ... | @@ -28,8 +28,8 @@ set (PROJECT_VERSION "${Morfeusz_VERSION_MAJOR}.${Morfeusz_VERSION_MINOR}.${Morf |
28 | 28 | ### USER DEFINED VARIABLES |
29 | 29 | |
30 | 30 | # INPUT_DICTIONARY_CPP |
31 | -set (INPUT_DICTIONARY_CPP "${CMAKE_CURRENT_BINARY_DIR}/default_fsa.cpp") | |
32 | -set (INPUT_SYNTH_DICTIONARY_CPP "${CMAKE_CURRENT_BINARY_DIR}/default_synth_fsa.cpp") | |
31 | +set (INPUT_DICTIONARY_CPP "${PROJECT_SOURCE_DIR}/default_fsa.cpp") | |
32 | +set (INPUT_SYNTH_DICTIONARY_CPP "${PROJECT_SOURCE_DIR}/default_synth_fsa.cpp") | |
33 | 33 | if ("${INPUT_DICTIONARIES}" STREQUAL "") |
34 | 34 | if ("${EMPTY_INPUT_DICTIONARY}" STREQUAL "TRUE") |
35 | 35 | set (INPUT_DICTIONARIES ${PROJECT_SOURCE_DIR}/input/empty.txt) |
... | ... | @@ -69,6 +69,30 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") |
69 | 69 | # but exclude libgcc_eh.a as it causes "multiple definition of (...)" errors |
70 | 70 | set (CMAKE_SHARED_LINKER_FLAGS "-s -Os -static-libstdc++ -static-libgcc -Wl,--exclude-libs,libgcc_eh.a") |
71 | 71 | set (CMAKE_EXE_LINKER_FLAGS "-s -Os -static-libstdc++ -static-libgcc") |
72 | +elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | |
73 | + set (MACOSX_RPATH TRUE) | |
74 | +endif () | |
75 | + | |
76 | +########## Setup RPATH ########## | |
77 | + | |
78 | +# use, i.e. don't skip the full RPATH for the build tree | |
79 | +set (CMAKE_SKIP_BUILD_RPATH FALSE) | |
80 | + | |
81 | +# when building, don't use the install RPATH already | |
82 | +# (but later on when installing) | |
83 | +set (CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) | |
84 | + | |
85 | +set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") | |
86 | + | |
87 | +# add the automatically determined parts of the RPATH | |
88 | +# which point to directories outside the build tree to the install RPATH | |
89 | +set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) | |
90 | + | |
91 | + | |
92 | +# the RPATH to be used when installing, but only if it's not a system directory | |
93 | +list (FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) | |
94 | +if ("${isSystemDir}" STREQUAL "-1") | |
95 | + SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") | |
72 | 96 | endif () |
73 | 97 | |
74 | 98 | ########## Configure CPack ########## |
... | ... | @@ -81,11 +105,12 @@ set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Morphological analyzer for Polish langua |
81 | 105 | set (CPACK_OUTPUT_FILE_PREFIX "${TARGET_DIR}") |
82 | 106 | |
83 | 107 | if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") |
84 | - set (CPACK_GENERATOR "DEB" "STGZ" "TGZ") | |
108 | + set (CPACK_GENERATOR "DEB" "TGZ") | |
85 | 109 | #debian |
86 | 110 | set (CPACK_DEBIAN_PACKAGE_NAME "morfeusz") |
87 | 111 | set (CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_CONTACT}") |
88 | 112 | set (CPACK_DEBIAN_PACKAGE_DEPENDS "libstdc++6 (>= 4.6)") |
113 | + set (CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${ARCHITECTURE}") | |
89 | 114 | elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") |
90 | 115 | if (${ARCHITECTURE} MATCHES "amd64") |
91 | 116 | set (CPACK_GENERATOR "NSIS64" "TGZ") |
... | ... | @@ -93,7 +118,7 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") |
93 | 118 | set (CPACK_GENERATOR "NSIS" "TGZ") |
94 | 119 | endif () |
95 | 120 | elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") |
96 | - set (CPACK_GENERATOR "STGZ" "TGZ") | |
121 | + set (CPACK_GENERATOR "TGZ") | |
97 | 122 | endif () |
98 | 123 | |
99 | 124 | include (CPack) |
... | ... |
buildAll.sh
... | ... | @@ -34,7 +34,7 @@ function build { |
34 | 34 | } |
35 | 35 | |
36 | 36 | #~ build Linux amd64 package package-java package-python package-builder |
37 | -build Linux i386 package package-java package-builder | |
37 | +#~ LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 package package-java package-builder | |
38 | 38 | #~ build Windows amd64 package package-java |
39 | 39 | #~ build Windows i386 package package-java |
40 | -#~ build Darwin amd64 package package-java package-builder | |
40 | +build Darwin amd64 package package-java package-builder | |
... | ... |
fsabuilder/CMakeLists.txt
1 | 1 | |
2 | -set (MORFEUSZBUILDER "morfeuszbuilder") | |
2 | +set (MORFEUSZBUILDER "morfeusz-builder") | |
3 | 3 | set (MORFEUSZBUILDER_VERSION "0.1.0") |
4 | 4 | set (DIST_PATH "${CMAKE_CURRENT_BINARY_DIR}") |
5 | 5 | |
... | ... | @@ -42,7 +42,7 @@ if (${UNIX}) |
42 | 42 | |
43 | 43 | if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") |
44 | 44 | add_custom_target (package-builder-deb-sdist |
45 | - COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --depends "${CPACK_DEBIAN_PACKAGE_NAME}" | |
45 | + COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --package "${MORFEUSZBUILDER}" --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --depends python-pyparsing | |
46 | 46 | DEPENDS builder-setup |
47 | 47 | ) |
48 | 48 | add_custom_target (package-builder-deb-build |
... | ... | @@ -51,7 +51,7 @@ if (${UNIX}) |
51 | 51 | DEPENDS package-builder-deb-sdist |
52 | 52 | ) |
53 | 53 | add_custom_target(package-builder-deb |
54 | - COMMAND mkdir -p "${TARGET_DIR}" && cp ${CMAKE_CURRENT_BINARY_DIR}/deb_dist/python-${MORFEUSZBUILDER}*.deb "${TARGET_DIR}" | |
54 | + COMMAND mkdir -p "${TARGET_DIR}" && cp ${CMAKE_CURRENT_BINARY_DIR}/deb_dist/${MORFEUSZBUILDER}*.deb "${TARGET_DIR}" | |
55 | 55 | DEPENDS package-builder-deb-build |
56 | 56 | ) |
57 | 57 | list (APPEND PACKAGE_DEPENDS package-builder-deb) |
... | ... |
fsabuilder/buildfsa.py
fsabuilder/morfeuszbuilder/fsa/fsa.pyc deleted
No preview for this file type
fsabuilder/morfeuszbuilder/fsa/register.pyc deleted
No preview for this file type
fsabuilder/morfeuszbuilder/fsa/serializer.pyc deleted
No preview for this file type
fsabuilder/morfeuszbuilder/fsa/state.pyc deleted
No preview for this file type
fsabuilder/morfeuszbuilder/fsa/visualizer.pyc deleted
No preview for this file type
fsabuilder/setup.py.in
... | ... | @@ -5,6 +5,8 @@ if __name__ == '__main__': |
5 | 5 | setup(name='${MORFEUSZBUILDER}', |
6 | 6 | author='${CPACK_PACKAGE_VENDOR}', |
7 | 7 | author_email='${CPACK_PACKAGE_CONTACT}', |
8 | + description='Finite state automata builder for Morfeusz.', | |
8 | 9 | version='${MORFEUSZBUILDER_VERSION}', |
9 | - packages=['morfeuszbuilder', 'morfeuszbuilder.fsa'], | |
10 | - scripts = ['buildfsa.py']) | |
10 | + packages=['morfeuszbuilder', 'morfeuszbuilder.fsa', 'morfeuszbuilder.tagset', 'morfeuszbuilder.segrules', 'morfeuszbuilder.utils'], | |
11 | + scripts = ['buildfsa.py'], | |
12 | + requires=['pyparsing']) | |
... | ... |
morfeusz/CMakeLists.txt
... | ... | @@ -57,7 +57,6 @@ set(INCLUDE_FILES |
57 | 57 | |
58 | 58 | add_library (libmorfeusz SHARED ${SRC_FILES}) |
59 | 59 | set_source_files_properties ( SOURCE "${INPUT_DICTIONARY_CPP}" PROPERTIES GENERATED TRUE) |
60 | -# add_dependencies (libmorfeusz dupa) | |
61 | 60 | set_target_properties (libmorfeusz PROPERTIES OUTPUT_NAME "morfeusz") |
62 | 61 | |
63 | 62 | add_executable (morfeusz_analyzer morfeusz_analyzer.cpp) |
... | ... |
morfeusz/Morfeusz.cpp
... | ... | @@ -103,7 +103,7 @@ void Morfeusz::analyzeOneWord( |
103 | 103 | SegrulesOptions opts; |
104 | 104 | opts["aggl"] = "isolated"; |
105 | 105 | opts["praet"] = "split"; |
106 | - SegrulesFSAType* segrulesFSA = this->segrulesFSAsMap.at(opts); | |
106 | + SegrulesFSAType* segrulesFSA = (*(this->segrulesFSAsMap.find(opts))).second; | |
107 | 107 | doAnalyzeOneWord(currInput, inputEnd, accum, graph, segrulesFSA->getInitialState()); |
108 | 108 | if (!graph.empty()) { |
109 | 109 | InterpretedChunksDecoder interpretedChunksDecoder(env); |
... | ... |
morfeusz/java/CMakeLists.txt
... | ... | @@ -20,9 +20,10 @@ add_custom_command ( |
20 | 20 | DEPENDS libmorfeusz |
21 | 21 | ) |
22 | 22 | |
23 | -add_library (jmorfeusz SHARED ${SWIG_JAVA_OUTFILE}) | |
24 | -target_link_libraries (jmorfeusz ${JAVA_LIBRARIES} libmorfeusz) | |
25 | -add_dependencies (jmorfeusz ${SWIG_JAVA_OUTFILE}) | |
23 | +add_library (libjmorfeusz SHARED ${SWIG_JAVA_OUTFILE}) | |
24 | +set_target_properties (libjmorfeusz PROPERTIES OUTPUT_NAME "jmorfeusz") | |
25 | +target_link_libraries (libjmorfeusz ${JAVA_LIBRARIES} libmorfeusz) | |
26 | +add_dependencies (libjmorfeusz ${SWIG_JAVA_OUTFILE}) | |
26 | 27 | |
27 | 28 | if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") |
28 | 29 | set (CMAKE_SHARED_LINKER_FLAGS "-s -Os -static-libstdc++ -static-libgcc -D_JNI_IMPLEMENTATION_ -Wl,--kill-at") |
... | ... | @@ -37,7 +38,7 @@ set (CMAKE_JAVA_TARGET_OUTPUT_NAME jmorfeusz) |
37 | 38 | |
38 | 39 | # build jmorfeusz |
39 | 40 | file(GLOB_RECURSE JAVA_SOURCES ${JAVA_SRC_DIR} "*.java") |
40 | -add_jar (jmorfeusz-jar | |
41 | +add_jar (jmorfeusz | |
41 | 42 | SOURCES "${JAVA_SOURCES}" ) |
42 | 43 | |
43 | 44 | add_custom_target(jmorfeusz-copy-readme |
... | ... | @@ -45,4 +46,4 @@ add_custom_target(jmorfeusz-copy-readme |
45 | 46 | |
46 | 47 | add_custom_target(package-java |
47 | 48 | COMMAND mkdir -p "${TARGET_DIR}" && ${CMAKE_COMMAND} -E tar "cfvz" "${TARGET_DIR}/jmorfeusz-${JMORFEUSZ_VERSION}-${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}.tar.gz" "${CMAKE_CURRENT_BINARY_DIR}/*.jar" "${CMAKE_CURRENT_BINARY_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CMAKE_CURRENT_BINARY_DIR}/README" |
48 | - DEPENDS jmorfeusz-jar jmorfeusz-copy-readme jmorfeusz) | |
49 | + DEPENDS jmorfeusz jmorfeusz-copy-readme libjmorfeusz) | |
... | ... |
morfeusz/python/CMakeLists.txt
... | ... | @@ -31,7 +31,7 @@ add_custom_command (OUTPUT ${SETUP_PY} |
31 | 31 | ARGS setup.py build |
32 | 32 | DEPENDS ${DEPS}) |
33 | 33 | |
34 | -add_custom_target (pymorfeusz DEPENDS ${SETUP_PY} morfeusz) | |
34 | +add_custom_target (pymorfeusz DEPENDS ${SETUP_PY} libmorfeusz) | |
35 | 35 | |
36 | 36 | if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") |
37 | 37 | add_custom_target (install-python |
... | ... |
morfeusz/python/setup.py.in
... | ... | @@ -11,6 +11,7 @@ if __name__ == '__main__': |
11 | 11 | setup(name='pymorfeusz', |
12 | 12 | author='${CPACK_PACKAGE_VENDOR}', |
13 | 13 | author_email='${CPACK_PACKAGE_CONTACT}', |
14 | + description='Python bindings for Morfeusz', | |
14 | 15 | version='${PYMORFEUSZ_VERSION}', |
15 | 16 | package_dir={ '': '${CMAKE_CURRENT_BINARY_DIR}'}, |
16 | 17 | py_modules = ['morfeusz'], |
... | ... |
test-darwin.sh
... | ... | @@ -5,7 +5,7 @@ set -exo pipefail |
5 | 5 | cd morfeusz |
6 | 6 | echo 'Ala ma kota i żółć' | DYLD_LIBRARY_PATH=. ./morfeusz |
7 | 7 | cd ../jmorfeusz |
8 | -DYLD_LIBRARY_PATH=../morfeusz:. java -jar *.jar | |
8 | +DYLD_LIBRARY_PATH=../morfeusz:. java -cp *.jar pl.waw.ipipan.morfeusz.app.App | |
9 | 9 | cd ../pymorfeusz |
10 | 10 | DYLD_LIBRARY_PATH=../morfeusz:. python test.py |
11 | 11 | cd .. |
... | ... |