# $Id: Portfile 152075 2016-08-28 20:47:45Z mmoll@macports.org $ PortSystem 1.0 PortGroup cmake 1.0 PortGroup active_variants 1.1 PortGroup cxx11 1.0 cmake.out_of_source yes name ompl version 1.2.1 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 7f4ccd3c36acca52d5ccb2e3c9ff8e388af12f1d \ sha256 9d00fdb262222ba5ff5732be84212c6b0ba769b0b0fb64a1189e5f1db1c568eb depends_lib-append port:boost port:ode port:flann port:triangle port:eigen3 configure.args-append -DOMPL_BUILD_DEMOS=OFF -DOMPL_BUILD_TESTS=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 { if {[variant_isset python27] || [variant_isset python34] || [variant_isset python35]} { # 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" } } # 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 pyqt5 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 port:redis configure.args-append -DOMPLAPP_PQP=OFF -DOMPLAPP_RESOURCE_DIR=${prefix}/share/ompl/resources distname omplapp-${version}-Source checksums rmd160 9146096d1826a2f11b9b5eb89a6bbb8c1e4b5160 \ sha256 e2a17e311ac980c73011e06902539314782da8eb54bb28d80abeeeeac2adb00d notes " If you intend to use ompl_webapp, you need to first launch the redis server: sudo port load redis " } set pythons_suffixes {27 34 35} 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] } { depends_lib-append \ port:py${s}-pyqt5 \ port:py${s}-opengl \ port:py${s}-flask \ port:py${s}-celery \ port:py${s}-redis post-destroot { reinplace "s|#!/usr/bin/env python|#!${prefix}/bin/python${v}|g" \ ${destroot}${prefix}/bin/ompl_app \ ${destroot}${prefix}/bin/ompl_benchmark_statistics.py reinplace "s|broker=rabbitmq|broker=redis|g" \ ${destroot}${prefix}/share/ompl/ompl.conf reinplace "s|python ./omplweb.py|${prefix}/bin/python${v} ./omplweb.py|g" \ ${destroot}${prefix}/share/ompl/webapp/omplweb.py # 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 { reinplace "s|#!/usr/bin/env python|#!${prefix}/bin/python${v}|g" \ ${destroot}${prefix}/bin/ompl_benchmark_statistics.py # 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