# $Id: Portfile 139087 2015-07-31 22:14:54Z mmoll@macports.org $ PortSystem 1.0 PortGroup cmake 1.0 PortGroup active_variants 1.1 PortGroup compiler_blacklist_versions 1.0 cmake.out_of_source yes name ompl version 1.0.0 revision 2 categories science maintainers mmoll description The Open Motion Planning Library (OMPL) long_description The Open Motion Planning Library (OMPL) consists of a set \ of sampling-based motion planning algorithms. homepage http://ompl.kavrakilab.org platforms darwin license BSD master_sites https://bitbucket.org/ompl/ompl/downloads distname ${name}-${version}-Source checksums rmd160 f85e4f1b501306c08f72f110d61c805ae2668b73 \ sha256 9bb6242ca723ab49b31fc5ac343a580cb7e6229bcf876c503c235f4cdd75376b depends_lib-append port:boost port:ode port:flann port:triangle # We "inherit" the compiler blacklist from the Boost port, since OMPL depends heavily on Boost. compiler.blacklist {clang < 421} macports-clang-2.9 macports-clang-3.0 *llvm-gcc-4.2 *gcc-4.0 gcc-3.3 # no universal of gccxml-devel universal_variant no configure.args-append -DOMPL_BUILD_DEMOS=OFF # generate the extra C++ code needed for Python bindings. This code seems # somewhat dependent on compiler and/or boost version, so we can't # pre-generate them and make them available as an extra download. post-configure { # enable parallel build on at most 2 cores. Generating the bindings # uses large amounts of memory, so don't use more cores. if { ${use_parallel_build} } { set cj "-j 2" } else { set cj "" } system -W ${cmake.build_dir} "${build.cmd} ${cj} update_bindings" } configure.args-append -DOMPL_BUILD_DEMOS=OFF # The +app variant includes all the content of the regular OMPL version, but # adds a simple GUI and an extra library with bindings to the assimp and fcl # libraries. The cascade of dependencies due to pyqt4 is rather large, so by # default the +app variant is not enabled. Also, the additions to OMPL in # this variant are distributed under a slightly different license than the # regular OMPL version. variant app description {Include GUI and extra demo code} { license noncommercial pre-extract { ui_warn "The +app variant causes some extra code to be compiled that is distributed under the Rice University Software Distribution License. For details, please read: http://ompl.kavrakilab.org/license.html#ricelicense" } depends_build-append port:pkgconfig depends_lib-append port:assimp port:fcl configure.args-append -DOMPLAPP_PQP=OFF -DOMPLAPP_RESOURCE_DIR=${prefix}/share/ompl/resources distname omplapp-${version}-Source checksums rmd160 a5b07eac786560faeeee0ff72162cc363035bf28 \ sha256 2a7aa0374c1f11b83a54c2d35104e732e5c439804117a968dad10994390e8a7a patchfiles patch-gui-ompl_app.py.diff } set pythons_suffixes {27 34} set pythons_ports {} foreach s ${pythons_suffixes} { lappend pythons_ports python${s} } proc python_dir {} { global pythons_suffixes foreach s ${pythons_suffixes} { if {[variant_isset python${s}]} { set p python[string index ${s} 0].[string index ${s} 1] return [file normalize [exec ${p} -c "import sys; print(sys.prefix)"]/lib/${p}/site-packages] } } error "Python support not enabled." } foreach s ${pythons_suffixes} { set p python${s} set v [string index ${s} 0].[string index ${s} 1] set i [lsearch -exact ${pythons_ports} ${p}] set c [lreplace ${pythons_ports} ${i} ${i}] eval [subst { variant ${p} description "Use Python ${v} for python bindings" conflicts ${c} debug { depends_build-append port:py${s}-pyplusplus depends_lib-append port:${p} configure.args-append -DPYTHON_EXEC=${prefix}/bin/python${v} # the python bindings rely on Boost.Python, so make sure it is installed. require_active_variants boost ${p} if { [variant_isset app] } { # Can use either py*-pyqt4 or py*-pyqt4-devel. depends_lib-append \ path:share/py${s}-sip/PyQt4:py${s}-pyqt4 \ port:py${s}-opengl post-destroot { reinplace "s|#!/usr/bin/env python|#!${prefix}/bin/python${v}|g" \ ${destroot}${prefix}/bin/ompl_app # extra copy of libs not needed in site_packages and causes problems with rpaths set site_packages \[python_dir\] delete ${destroot}\${site_packages}/ompl/util/libompl.dylib \ ${destroot}\${site_packages}/ompl/app/libompl_app.dylib \ ${destroot}\${site_packages}/ompl/app/libompl_app_base.dylib } } else { post-destroot { # extra copy of libs not needed in site_packages and causes problems with rpaths set site_packages \[python_dir\] delete ${destroot}\${site_packages}/ompl/util/libompl.dylib } } } }] } # enable one python variant so that the python bindings can be compiled set selected_python python27 foreach s ${pythons_suffixes} { if {[variant_isset python${s}]} { set selected_python python${s} } } default_variants +${selected_python} livecheck.type regex livecheck.url http://ompl.kavrakilab.org/download.html livecheck.regex (\[0-9.\]+), released