From 5ee20fc3d91010c47530018e6546c9f4aac02f54 Mon Sep 17 00:00:00 2001 From: tqtg <tuantq.vnu@gmail.com> Date: Sat, 10 Jul 2021 02:26:53 +0800 Subject: [PATCH] add environment variables for macos gcc build --- .github/workflows/python-publish.yml | 2 +- setup.py | 29 +++++++++++++++------------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index 10e3a702..fc0f8f3f 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -37,7 +37,7 @@ jobs: - name: Install GCC for MacOS using Homebrew if: matrix.os == 'macos-latest' run: | - brew install gcc libomp llvm + brew install gcc libomp brew link gcc - name: Install dependencies diff --git a/setup.py b/setup.py index a01e1537..56f63928 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,6 @@ import os import sys import glob -import platform from setuptools import Extension, setup, find_packages try: @@ -43,10 +42,12 @@ USE_OPENMP = True def extract_gcc_binaries(): """Try to find GCC on OSX for OpenMP support.""" patterns = [ + "/opt/local/bin/g++-mp-[0-9].[0-9]", + "/opt/local/bin/g++-mp-[0-9]", "/usr/local/bin/g++-[0-9].[0-9]", "/usr/local/bin/g++-[0-9]", ] - if "darwin" in platform.platform().lower(): + if sys.platform.startswith("darwin"): gcc_binaries = [] for pattern in patterns: gcc_binaries += glob.glob(pattern) @@ -80,20 +81,25 @@ else: "-ffast-math", ] - if "darwin" in platform.platform().lower(): + if sys.platform.startswith("darwin"): if gcc is not None: os.environ["CC"] = gcc os.environ["CXX"] = gcc - else: - USE_OPENMP = False - print( - "No GCC available. Install gcc from Homebrew " "using brew install gcc." + os.environ["CPPFLAGS"] = os.environ["CPPFLAGS"] + " -Xpreprocessor -fopenmp" + os.environ["CFLAGS"] = os.environ["CFLAGS"] + " -I/usr/local/opt/libomp/include" + os.environ["CXXFLAGS"] = ( + os.environ["CXXFLAGS"] + " -I/usr/local/opt/libomp/include" + ) + os.environ["LDFLAGS"] = ( + os.environ["LDFLAGS"] + + " -Wl,-rpath,/usr/local/opt/libomp/lib -L/usr/local/opt/libomp/lib -lomp" ) + else: + print("No GCC available. Install gcc from Homebrew " "using brew install gcc.") # required arguments for default gcc of OSX compile_args.extend(["-O2", "-stdlib=libc++", "-mmacosx-version-min=10.7"]) link_args.extend(["-O2", "-stdlib=libc++", "-mmacosx-version-min=10.7"]) - - if USE_OPENMP: + elif USE_OPENMP: compile_args.append("-fopenmp") link_args.append("-fopenmp") @@ -139,10 +145,7 @@ extensions = [ ), Extension( "cornac.models.hpf.hpf", - sources=[ - "cornac/models/hpf/cython/hpf" + ext, - "cornac/models/hpf/cpp/cpp_hpf.cpp", - ], + sources=["cornac/models/hpf/cython/hpf" + ext, "cornac/models/hpf/cpp/cpp_hpf.cpp",], include_dirs=[ "cornac/models/hpf/cpp/", "cornac/utils/external/eigen/Eigen", -- GitLab