1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
6 PYTHON_COMPAT=( python2_7 python3_6 )
8 inherit cmake-utils flag-o-matic python-single-r1 toolchain-funcs versionator
10 MYPV=$(get_version_component_range 1-2)
13 DESCRIPTION="Large Scale Machine Learning Toolbox"
14 HOMEPAGE="http://shogun-toolbox.org/"
16 ftp://shogun-toolbox.org/shogun/releases/${MYPV}/sources/${P}.tar.bz2
17 test? ( ftp://shogun-toolbox.org/shogun/data/${MYPD}.tar.bz2 )
18 examples? ( ftp://shogun-toolbox.org/shogun/data/${MYPD}.tar.bz2 )"
20 LICENSE="GPL-3 free-noncomm"
22 KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
23 IUSE="cpu_flags_x86_sse doc examples lua octave opencl python R ruby static-libs test"
24 RESTRICT="!test? ( test )"
27 python? ( ${PYTHON_REQUIRED_USE} )
46 sci-mathematics/glpk:=
47 sci-mathematics/lpsolve:=
53 lua? ( dev-lang/lua:0 )
54 octave? ( >=sci-mathematics/octave-4.2.0:=[hdf5] )
55 opencl? ( virtual/opencl )
58 dev-python/numpy[${PYTHON_USEDEP}]
61 ruby? ( dev-ruby/narray )"
65 >=app-doc/doxygen-1.8.13-r1[dot]
68 lua? ( >=dev-lang/swig-3.0.12 )
69 octave? ( >=dev-lang/swig-3.0.12 )
71 >=dev-lang/swig-3.0.12
76 R? ( >=dev-lang/swig-3.0.12 )
77 ruby? ( >=dev-lang/swig-3.0.12 )
79 dev-python/jinja[${PYTHON_USEDEP}]
83 # javamodular needs jblas (painful to package properly)
84 # permodular work in progress (as 3.2.0)
85 # could actually support multiple pythons, multiple rubys
86 # feel free to do work for it
89 "${FILESDIR}"/${PN}-5.0.0-fix-buildsystem.patch
90 "${FILESDIR}"/${PN}-4.1.0-remove-C-linkage.patch
94 use python && python-single-r1_pkg_setup
98 export ATLAS_LIBRARY="$($(tc-getPKG_CONFIG) --libs cblas lapack)"
99 export CBLAS_LIBRARY="$($(tc-getPKG_CONFIG) --libs cblas)"
100 export ATLAS_LIBRARIES="$($(tc-getPKG_CONFIG) --libs blas cblas lapack)"
101 export LAPACK_LIBRARIES="$($(tc-getPKG_CONFIG) --libs lapack)"
103 append-cppflags "$($(tc-getPKG_CONFIG) --cflags cblas)"
106 -DCMAKE_SKIP_RPATH=ON
107 -DCMAKE_SKIP_INSTALL_RPATH=ON
108 -DLIB_INSTALL_DIR=$(get_libdir)
109 -DENABLE_TESTING=$(usex test)
110 -DBUILD_EXAMPLES=$(usex examples)
111 -DDISABLE_SSE=$(usex !cpu_flags_x86_sse)
112 -DCMAKE_DISABLE_FIND_PACKAGE_Pandoc=ON
113 $(cmake-utils_use_find_package doc Sphinx)
114 $(cmake-utils_use_find_package doc Doxygen)
117 -DENABLE_COVERAGE=OFF
120 -DENABLE_PYTHON_DEBUG=OFF
121 -DENABLE_VIENNACL=$(usex opencl)
129 -DLuaModular=$(usex lua)
130 -DOctaveModular=$(usex octave)
131 -DPythonModular=$(usex python)
133 -DRubyModular=$(usex ruby)
135 # Disable bundled libs
140 cmake-utils_src_configure
143 has_version 'sci-libs/hdf5[mpi]' && export CXX=mpicxx CC=mpicc
147 cmake-utils_src_compile
148 use doc && cmake-utils_src_compile -C doc
152 cmake-utils_src_install
156 for i in lua octave python R ruby; do
158 docinto html/${i,}_modular
159 dodoc -r "${BUILD_DIR}"/src/interfaces/${i,}_modular/modshogun/doxygen_xml/.