1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
6 PYTHON_COMPAT=( 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="https://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 $(python_gen_cond_dep '
59 dev-python/numpy[${PYTHON_MULTI_USEDEP}]
63 ruby? ( dev-ruby/narray )"
67 >=app-doc/doxygen-1.8.13-r1[dot]
70 lua? ( >=dev-lang/swig-3.0.12 )
71 octave? ( >=dev-lang/swig-3.0.12 )
73 >=dev-lang/swig-3.0.12
78 R? ( >=dev-lang/swig-3.0.12 )
79 ruby? ( >=dev-lang/swig-3.0.12 )
81 $(python_gen_cond_dep '
82 dev-python/jinja[${PYTHON_MULTI_USEDEP}]
87 # javamodular needs jblas (painful to package properly)
88 # permodular work in progress (as 3.2.0)
89 # could actually support multiple pythons, multiple rubys
90 # feel free to do work for it
93 "${FILESDIR}"/${PN}-5.0.0-fix-buildsystem.patch
94 "${FILESDIR}"/${PN}-4.1.0-remove-C-linkage.patch
98 use python && python-single-r1_pkg_setup
102 export ATLAS_LIBRARY="$($(tc-getPKG_CONFIG) --libs cblas lapack)"
103 export CBLAS_LIBRARY="$($(tc-getPKG_CONFIG) --libs cblas)"
104 export ATLAS_LIBRARIES="$($(tc-getPKG_CONFIG) --libs blas cblas lapack)"
105 export LAPACK_LIBRARIES="$($(tc-getPKG_CONFIG) --libs lapack)"
107 append-cppflags "$($(tc-getPKG_CONFIG) --cflags cblas)"
110 -DCMAKE_SKIP_RPATH=ON
111 -DCMAKE_SKIP_INSTALL_RPATH=ON
112 -DLIB_INSTALL_DIR=$(get_libdir)
113 -DENABLE_TESTING=$(usex test)
114 -DBUILD_EXAMPLES=$(usex examples)
115 -DDISABLE_SSE=$(usex !cpu_flags_x86_sse)
116 -DCMAKE_DISABLE_FIND_PACKAGE_Pandoc=ON
117 $(cmake-utils_use_find_package doc Sphinx)
118 $(cmake-utils_use_find_package doc Doxygen)
121 -DENABLE_COVERAGE=OFF
124 -DENABLE_PYTHON_DEBUG=OFF
125 -DENABLE_VIENNACL=$(usex opencl)
133 -DLuaModular=$(usex lua)
134 -DOctaveModular=$(usex octave)
135 -DPythonModular=$(usex python)
137 -DRubyModular=$(usex ruby)
139 # Disable bundled libs
144 cmake-utils_src_configure
147 has_version 'sci-libs/hdf5[mpi]' && export CXX=mpicxx CC=mpicc
151 cmake-utils_src_compile
152 use doc && cmake-utils_src_compile -C doc
156 cmake-utils_src_install
160 for i in lua octave python R ruby; do
162 docinto html/${i,}_modular
163 dodoc -r "${BUILD_DIR}"/src/interfaces/${i,}_modular/modshogun/doxygen_xml/.