From 0de3e3e7325adf4a5e46cfa25df3607b50af05ae Mon Sep 17 00:00:00 2001 From: daanzu Date: Sat, 29 Feb 2020 04:17:00 -0500 Subject: [PATCH] improve building --- CMakeLists.txt | 20 ++++++++++++++++++-- setup.py | 8 +++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b3242df..e94f864 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,7 +47,19 @@ set(LIBRARIES src/lib/libkaldi-tree${CMAKE_SHARED_LIBRARY_SUFFIX} src/lib/libkaldi-util${CMAKE_SHARED_LIBRARY_SUFFIX}) -set(KALDI_CONFIG_FLAGS --shared --static-math) +if(DEFINED ENV{INTEL_MKL_DIR}) + set(INTEL_MKL_DIR $ENV{INTEL_MKL_DIR}) +else() + set(INTEL_MKL_DIR "/opt/intel/mkl/") +endif() +if(EXISTS "${INTEL_MKL_DIR}") + set(KALDI_CONFIG_FLAGS --shared --static-math --mkl-root=${INTEL_MKL_DIR}) +else() + message("WARNING: cannot find INTEL_MKL_DIR: ${INTEL_MKL_DIR}") + set(KALDI_CONFIG_FLAGS --shared --static-math) +endif() + +set(ENV{CXXFLAGS} -O2) find_program(MAKE_EXE NAMES make gmake nmake) @@ -58,6 +70,10 @@ message(" PYTHON_LIBRARY = ${PYTHON_LIBRARY}") message(" PYTHON_VERSION_STRING = ${PYTHON_VERSION_STRING}") message(" SKBUILD = ${SKBUILD}") +if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows") + message(FATAL_ERROR "CMake build not supported on Windows") +endif() + if(NOT "${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows") if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Darwin") set(STRIP_COMMAND find ${DST} -type f | xargs strip -x) @@ -70,7 +86,7 @@ if(NOT "${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows") GIT_TAG origin/dragonfly CONFIGURE_COMMAND mkdir -p python && touch python/.use_default_python && tools/extras/check_dependencies.sh && cd tools/openfst && autoreconf BUILD_IN_SOURCE TRUE - BUILD_COMMAND cd tools && ${MAKE_EXE} ${MAKE_FLAGS} && cd ../src && ./configure ${KALDI_CONFIG_FLAGS} && ${MAKE_EXE} ${MAKE_FLAGS} depend && ${MAKE_EXE} ${MAKE_FLAGS} dragonfly dragonflybin bin fstbin + BUILD_COMMAND cd tools && ${MAKE_EXE} ${MAKE_FLAGS} && cd ../src && ./configure ${KALDI_CONFIG_FLAGS} && ${MAKE_EXE} ${MAKE_FLAGS} depend && ${MAKE_EXE} ${MAKE_FLAGS} dragonfly dragonflybin bin fstbin lmbin LIST_SEPARATOR " " INSTALL_COMMAND mkdir -p ${DST} && cp ${BINARIES} ${LIBRARIES} ${DST} && ${STRIP_COMMAND}) endif() diff --git a/setup.py b/setup.py index ff963c4..7b7ca86 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,6 @@ # Always prefer setuptools over distutils from setuptools import find_packages -from skbuild import setup import os.path, re # io.open is needed for projects that support Python 2.7 # It ensures open() defaults to text mode with universal newlines, @@ -15,6 +14,13 @@ # Python 3 only projects can skip this import from io import open +import sys +if sys.argv[1] == '--raw': + sys.argv.pop(1) + from setuptools import setup +else: + from skbuild import setup + # https://stackoverflow.com/questions/45150304/how-to-force-a-python-wheel-to-be-platform-specific-when-building-it # https://github.com/Yelp/dumb-init/blob/48db0c0d0ecb4598d1a6400710445b85d67616bf/setup.py#L11-L27