diff --git a/.travis.yml b/.travis.yml index 6d6d1c8..339a63b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,39 +1,99 @@ language: python - matrix: - fast_finish: true - include: - - language: python - python: 2.7 - os: linux - dist: trusty + fast_finish: true + include: + - language: python + os: linux + env: + - PYTHON_VERSION="2.7" + - JAVA_VERSION="8" + - language: python + os: linux + env: + - PYTHON_VERSION="3.6" + - JAVA_VERSION="8" + - language: python + os: linux + env: + - PYTHON_VERSION="3.7" + - JAVA_VERSION="8" + - language: python + os: linux + env: + - PYTHON_VERSION="3.7" + - JAVA_VERSION="8" + - RUN=sdist + - language: python + os: linux + env: + - PYTHON_VERSION="2.7" + - JAVA_VERSION="9" + - language: python + os: linux + env: + - PYTHON_VERSION="3.6" + - JAVA_VERSION="9" + - language: python + os: linux + env: + - PYTHON_VERSION="3.7" + - JAVA_VERSION="9" + - language: python + os: linux + env: + - PYTHON_VERSION="2.7" + - JAVA_VERSION="10" + - language: python + os: linux + env: + - PYTHON_VERSION="3.6" + - JAVA_VERSION="10" + - language: python + os: linux + env: + - PYTHON_VERSION="3.7" + - JAVA_VERSION="10" + - language: python + os: linux + env: + - PYTHON_VERSION="2.7" + - JAVA_VERSION="11" + - language: python + os: linux + env: + - PYTHON_VERSION="3.6" + - JAVA_VERSION="11" + - language: python + os: linux + env: + - PYTHON_VERSION="3.7" + - JAVA_VERSION="11" - - language: python - python: 3.6 - os: linux - dist: trusty - - - language: python - python: 3.6 - os: linux - os: trusty - env: RUN=sdist - -before_install: - - sudo apt-get update - - sudo apt-get install python-pip openjdk-7-jdk install: - - if [ "$RUN" != "sdist" ]; then pip install --upgrade cython six; fi; + - sudo apt-get update + - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh + - bash miniconda.sh -b -p $HOME/miniconda + - echo ". $HOME/miniconda/etc/profile.d/conda.sh" >> $HOME/.bashrc + - source $HOME/.bashrc + - hash -r + - conda config --set always_yes yes --set changeps1 no + - conda config --add channels conda-forge + - conda update -q conda + - conda info -a + - conda create -n jnius_env python=$PYTHON_VERSION + - conda activate jnius_env + - conda install openjdk=$JAVA_VERSION cython nose ant pip setuptools six script: - - if [ "$RUN" == "sdist" ]; then - if [ "$PYJNIUS_DEPLOY" == "1" ]; then - pip install twine; - python setup_sdist.py sdist; - python -m twine upload dist/*; - fi; - else - make && make tests; + - conda activate jnius_env + - if [ "$RUN" == "sdist" ]; then + if [ "$PYJNIUS_DEPLOY" == "1" ]; then + conda install twine; + python setup_sdist.py sdist; + python -m twine upload dist/*; fi; + else + make && make tests; + fi; diff --git a/setup.py b/setup.py index 46103bc..04d1509 100644 --- a/setup.py +++ b/setup.py @@ -119,6 +119,18 @@ elif PLATFORM == 'darwin': )] else: LIB_LOCATION = 'jre/lib/server/libjvm.dylib' + + if isinstance(JRE_HOME, bytes): + JAVA_HOME = dirname(JRE_HOME.decode()) + else: + JAVA_HOME = dirname(JRE_HOME) + FULL_LIB_LOCATION = join(JAVA_HOME, LIB_LOCATION) + + if not exists(FULL_LIB_LOCATION): + # In that case, the Java version is very likely >=9. + # So we need to modify the `libjvm.so` path. + LIB_LOCATION = 'lib/server/libjvm.dylib' + INCLUDE_DIRS = [ '{0}/include'.format(FRAMEWORK), '{0}/include/darwin'.format(FRAMEWORK) @@ -181,6 +193,17 @@ else: INCL_DIR = join(JDK_HOME, 'include', 'linux') LIB_LOCATION = 'jre/lib/{}/server/libjvm.so'.format(CPU) + if isinstance(JRE_HOME, bytes): + JAVA_HOME = dirname(JRE_HOME.decode()) + else: + JAVA_HOME = dirname(JRE_HOME) + FULL_LIB_LOCATION = join(JAVA_HOME, LIB_LOCATION) + + if not exists(FULL_LIB_LOCATION): + # In that case, the Java version is very likely >=9. + # So we need to modify the `libjvm.so` path. + LIB_LOCATION = 'lib/server/libjvm.so' + INCLUDE_DIRS = [ join(JDK_HOME, 'include'), INCL_DIR