diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ca3e7f..d65dfe7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,15 @@ project (Morfeusz) set (Morfeusz_VERSION_MAJOR 2) set (Morfeusz_VERSION_MINOR 0) set (Morfeusz_VERSION_PATCH 0) +set (Morfeusz_VERSION "${Morfeusz_VERSION_MAJOR}.${Morfeusz_VERSION_MINOR}.${Morfeusz_VERSION_PATCH}") +if (NOT ${VERSION_SUFFIX} STREQUAL "") + set (Morfeusz_VERSION_TWEAK "${VERSION_SUFFIX}") + set (Morfeusz_VERSION "${Morfeusz_VERSION}_${Morfeusz_VERSION_TWEAK}") +endif () set (CMAKE_BUILD_TYPE Release) +set (CMAKE_SKIP_RPATH ON) + +message ("Version=${Morfeusz_VERSION}") enable_testing() @@ -25,7 +33,7 @@ else () endif () # PROJECT_VERSION -set (PROJECT_VERSION "${Morfeusz_VERSION_MAJOR}.${Morfeusz_VERSION_MINOR}.${Morfeusz_VERSION_PATCH}") +#~ set (PROJECT_VERSION "${Morfeusz_VERSION_MAJOR}.${Morfeusz_VERSION_MINOR}.${Morfeusz_VERSION_PATCH}") ### USER DEFINED VARIABLES @@ -103,7 +111,7 @@ set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) ########## Configure CPack ########## # general -set (CPACK_PACKAGE_FILE_NAME "morfeusz2-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}") +set (CPACK_PACKAGE_FILE_NAME "morfeusz2-${Morfeusz_VERSION}-${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}") set (CPACK_PACKAGE_VENDOR "MichaĆ Lenart") set (CPACK_PACKAGE_CONTACT "michal.lenart@ipipan.waw.pl") set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Morphological analyzer for the Polish language.") diff --git a/buildAll.sh b/buildAll.sh index 34273d3..84f24c7 100755 --- a/buildAll.sh +++ b/buildAll.sh @@ -4,6 +4,7 @@ set -e -o pipefail export CROSSMORFEUSZ_ROOT="$1" export INPUT_DICTIONARIES="$2" +export VERSION_SUFFIX="$3" function build { set -e -o pipefail @@ -12,12 +13,12 @@ function build { shift shift targets=$@ - + srcDir=`pwd` buildDir=buildall/$os-$arch - targetDir=$srcDir/target/$os-$arch + targetDir=$srcDir/target toolchain=$srcDir/morfeusz/Toolchain-$os-$arch.cmake - + echo "Will use $toolchain toolchain" rm -rf $buildDir @@ -26,10 +27,11 @@ function build { mkdir -p $targetDir cd $buildDir cmake -D CROSSMORFEUSZ_ROOT=$CROSSMORFEUSZ_ROOT \ - -D CMAKE_TOOLCHAIN_FILE=$toolchain \ - -D TARGET_DIR=$targetDir \ - -D INPUT_DICTIONARIES=$INPUT_DICTIONARIES \ - $srcDir + -D CMAKE_TOOLCHAIN_FILE=$toolchain \ + -D TARGET_DIR=$targetDir \ + -D INPUT_DICTIONARIES=$INPUT_DICTIONARIES \ + -D VERSION_SUFFIX=$VERSION_SUFFIX \ + $srcDir 2>&1 echo "building $toolchain" >&2 make make $targets @@ -42,23 +44,23 @@ function build { cd "$srcDir" } +function log { + os=$1 + arch=$2 + stdbuf -oL sed -e $"s/^/$os-$arch:\t/" | tee "log/$os-$arch.out" +} + export -f build +export -f log rm -rf log mkdir -p log -#{ -# echo "build Linux amd64 package package-java package-python package-builder &> log/linux-amd64.out" -# echo "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 package package-java package-builder &> log/linux-i386.out" -# echo "build Windows amd64 package package-java package-builder &> log/windows-amd64.out" -# echo "build Windows i386 package package-java package-builder &> log/windows-i386.out" -# echo "build Darwin amd64 package package-builder package-java &> log/darwin-amd64.out" -#} | xargs --null | parallel -j5 bash -c -- \ - "build Linux amd64 package package-java package-python package-builder 2>&1 | tee log/linux-amd64.out" \ - "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 package package-java package-builder 2>&1 | tee log/linux-i386.out" \ - "build Windows amd64 package package-java package-builder 2>&1 | tee log/windows-amd64.out" \ - "build Windows i386 package package-java package-builder 2>&1 | tee log/windows-i386.out" \ - "build Darwin amd64 package package-builder package-java 2>&1 | tee log/darwin-amd64.out" + "build Linux amd64 package package-java package-python package-builder 2>&1 | log Linux amd64" \ + "LDFLAGS=-m32;CFLAGS=-m32;CXXFLAGS=-m32 build Linux i386 package package-java 2>&1 | log Linux i386" \ + "build Windows amd64 package package-java 2>&1 | log Windows amd64" \ + "build Windows i386 package package-java 2>&1 | log Windows i386" \ + "build Darwin amd64 package package-java 2>&1 | log Darwin amd64" diff --git a/fsabuilder/CMakeLists.txt b/fsabuilder/CMakeLists.txt index 535efb6..7de3938 100644 --- a/fsabuilder/CMakeLists.txt +++ b/fsabuilder/CMakeLists.txt @@ -16,37 +16,40 @@ add_custom_command (OUTPUT ${SETUP_PY} add_custom_target (builder-setup DEPENDS ${SETUP_PY}) -if (${UNIX}) - add_custom_target (install-builder - COMMAND python ${SETUP_PY} install --home=${CMAKE_INSTALL_PREFIX} +add_custom_target (install-builder + COMMAND python ${SETUP_PY} install --home=${CMAKE_INSTALL_PREFIX} + DEPENDS builder-setup +) +#~ add_custom_target (package-builder-tgz + #~ COMMAND python ${SETUP_PY} bdist -d "${TARGET_DIR}" --plat-name='all' + #~ DEPENDS builder-setup +#~ ) +add_custom_target (package-builder-egg + COMMAND python ${SETUP_PY} bdist_egg -d "${TARGET_DIR}" + DEPENDS builder-setup +) +add_custom_target (package-builder-sdist + COMMAND python ${SETUP_PY} sdist -d "${TARGET_DIR}" + DEPENDS builder-setup +) + +set (PACKAGE_DEPENDS "package-builder-egg" "package-builder-sdist") + +if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") + add_custom_target (package-builder-deb-sdist + COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --package "${MORFEUSZBUILDER}" --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --depends python-pyparsing DEPENDS builder-setup ) - add_custom_target (package-builder-tgz - COMMAND python ${SETUP_PY} bdist -d "${TARGET_DIR}" - DEPENDS builder-setup + add_custom_target (package-builder-deb-build + COMMAND debuild -us -uc + WORKING_DIRECTORY deb_dist/${MORFEUSZBUILDER}-${MORFEUSZBUILDER_VERSION} + DEPENDS package-builder-deb-sdist ) - add_custom_target (package-builder-egg - COMMAND python ${SETUP_PY} bdist_egg -d "${TARGET_DIR}" - DEPENDS builder-setup + add_custom_target(package-builder-deb + COMMAND mkdir -p "${TARGET_DIR}" && cp ${CMAKE_CURRENT_BINARY_DIR}/deb_dist/${MORFEUSZBUILDER}*.deb "${TARGET_DIR}" + DEPENDS package-builder-deb-build ) - set (PACKAGE_DEPENDS "package-builder-egg" "package-builder-tgz") - - if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") - add_custom_target (package-builder-deb-sdist - COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --package "${MORFEUSZBUILDER}" --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --depends python-pyparsing - DEPENDS builder-setup - ) - add_custom_target (package-builder-deb-build - COMMAND debuild -us -uc - WORKING_DIRECTORY deb_dist/${MORFEUSZBUILDER}-${MORFEUSZBUILDER_VERSION} - DEPENDS package-builder-deb-sdist - ) - add_custom_target(package-builder-deb - COMMAND mkdir -p "${TARGET_DIR}" && cp ${CMAKE_CURRENT_BINARY_DIR}/deb_dist/${MORFEUSZBUILDER}*.deb "${TARGET_DIR}" - DEPENDS package-builder-deb-build - ) - list (APPEND PACKAGE_DEPENDS package-builder-deb) - endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") + list (APPEND PACKAGE_DEPENDS package-builder-deb) elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") #~ add_custom_target (package-python-win-installer #~ COMMAND python ${SETUP_PY} bdist_wininst -d ${TARGET_DIR} --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}" diff --git a/morfeusz/python/CMakeLists.txt b/morfeusz/python/CMakeLists.txt index ad329bb..42950c1 100644 --- a/morfeusz/python/CMakeLists.txt +++ b/morfeusz/python/CMakeLists.txt @@ -16,7 +16,7 @@ set (SWIG_PYTHON_OUTFILE_CXX "${CMAKE_CURRENT_BINARY_DIR}/swigPYTHON.cpp") set (SWIG_PYTHON_OUTFILE_PY "${CMAKE_CURRENT_BINARY_DIR}/morfeusz2.py") add_custom_command ( OUTPUT "${SWIG_PYTHON_OUTFILE_CXX}" "${SWIG_PYTHON_OUTFILE_PY}" - COMMAND swig -python -c++ -o "${SWIG_PYTHON_OUTFILE_CXX}" ${CMAKE_SOURCE_DIR}/morfeusz/morfeusz.i + COMMAND swig -python -c++ -o "${SWIG_PYTHON_OUTFILE_CXX}" "${CMAKE_SOURCE_DIR}/morfeusz/morfeusz.i" DEPENDS libmorfeusz ) add_custom_target (generate_python_wrapper @@ -56,7 +56,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set (PACKAGE_DEPENDS "package-python-bin") add_custom_target (package-python-deb-sdist - COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --depends "${CPACK_DEBIAN_PACKAGE_NAME}" + COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --copyright-file "${PROJECT_SOURCE_DIR}/License.txt" DEPENDS pymorfeusz ) add_custom_target (package-python-deb-build