# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 PortGroup cmake 1.0 PortGroup muniversal 1.0 PortGroup compiler_blacklist_versions 1.0 PortGroup github 1.0 name libomp maintainers eborisch openmaintainer homepage http://openmp.llvm.org description The OpenMP subproject of LLVM long_description ${description} is intended to contain all of the\ components required to build an executing OpenMP\ program that are outside the compiler itself. \ This port works with MacPorts' clang-3.7+ (optionally \ with +openmp variant for clang-3.7.) categories lang platforms darwin supported_archs i386 x86_64 license {MIT NCSA} subport libomp-devel {} if {${subport} ne ${name}} { conflicts libomp github.setup llvm-mirror openmp 88b2b1c worksrcdir openmp-${version}/runtime version 283577 revision 1 name ${subport} checksums \ rmd160 18f048f0a620646d24bb75000cce97c41e3003be \ sha256 7ecb37997e32a39fbeb5a98719f532db0c9a5969ba8c7aca040545c64fb60128 livecheck.url \ http://llvm.org/viewvc/llvm-project/openmp/trunk/?view=log livecheck.version ${version} livecheck.regex revision=(\[0-9\]+) } else { conflicts libomp-devel if {${os.platform} eq "darwin" && ${os.major} > 12} { github.setup llvm-mirror openmp 390 svn-tags/RELEASE_ worksrcdir openmp-${version}/rc1/runtime version 3.9.0 revision 1 checksums \ rmd160 d161143863e9440dac76da8e2b1a424e2f042026 \ sha256 dbd72561753cfab8a39590bc3c30974d3e8a6d8e358fc90b1e0f2f87a80b1e98 } else { github.setup llvm-mirror openmp 381 svn-tags/RELEASE_ worksrcdir openmp-${version}/rc1/runtime version 3.8.1 revision 2 checksums \ rmd160 a41054068a127ef84610afef8090109078cb6c46 \ sha256 4c46b5946fe9b2a701661746d11c7c85c51a7f18673194a7ebd2a43470948a34 } # Moved to epoch 1 for svn # -> version # change. epoch 1 name libomp livecheck.url https://github.com/llvm-mirror/openmp/branches livecheck.regex svn-tags/RELEASE_(\[0-9\]+) } cmake.out_of_source yes # According to documentation builds with clang >= 3.3 compiler.blacklist-append {clang < 500} *gcc* default_variants +universal # Do actual install into ${prefix}/(install|lib)/libomp # A little unorthodox, but to have clang automatically find the includes and # lib, with -fopenmp, it is nice to have them their own directories. Not # exactly a config cmake supports directly; install into dummy location and # move post-install configure.pre_args -DCMAKE_INSTALL_PREFIX=${prefix}/tmp configure.args-delete -DCMAKE_INSTALL_RPATH=${prefix}/lib \ -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib \ # With this, cmake sets the correct library name in the dylibs for the # final destination we move them to configure.args-append -DCMAKE_INSTALL_RPATH=${prefix}/lib/libomp \ -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib/libomp \ variant top_level description \ "Install (links to) omp.h and libs into ${prefix}/(include|lib)" {} post-extract { # Patch tool for build with CMAKE_INSTALL_PREFIX reinplace "/bulk.*compatibility/s/s\+/s+.*/" \ tools/check-depends.pl } post-destroot { set instdest ${destroot}${prefix} xinstall -d ${instdest}/share/doc/libomp file copy ${worksrcpath}/README.txt ${worksrcpath}/../LICENSE.txt \ ${worksrcpath}/../www ${instdest}/share/doc/libomp/ xinstall -d ${instdest}/include/libomp move ${instdest}/tmp/include/omp.h ${instdest}/include/libomp/ xinstall -d ${instdest}/lib/libomp foreach p {libiomp5.dylib libomp.dylib libgomp.dylib} { move ${instdest}/tmp/lib/${p} ${instdest}/lib/libomp/ } if [variant_isset top_level] { system -W ${instdest}/include \ "ln -s libomp/omp.h" foreach p {libiomp5.dylib libomp.dylib libgomp.dylib} { system -W ${instdest}/lib/ \ "ln -s libomp/${p}" } } } notes " Use with clang-3.7 and up by adding \"-fopenmp\" during compilation / linking. * For clang-3.7 without +openmp variant, use: \"-I${prefix}/include/libomp -L${prefix}/lib/libomp -fopenmp\" " test.run yes test.target libomp-micro-tests