Commit df4f610f5c7d4a702bc61300b8bd48fde73c86c2

Authored by Michał Lenart
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
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
  1 +#!/usr/bin/python
1 2 # -*- coding:utf-8 -*-
2 3 '''
3 4 Created on 21 paź 2013
... ...
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 ..
... ...