1# Detect eigen3 2# 3# Priority 4# 0. EIGENDIR if set 5# 1. OPENSCAD_LIBRARIES eigen3 6# 3. system's standard include paths for eigen3 7 8# read environment variables 9OPENSCAD_LIBRARIES_DIR = $$(OPENSCAD_LIBRARIES) 10EIGEN_DIR = $$(EIGENDIR) 11 12# Optionally specify location of Eigen3 using the 13# OPENSCAD_LIBRARIES env. variable 14!isEmpty(OPENSCAD_LIBRARIES_DIR) { 15 isEmpty(EIGEN_INCLUDEPATH) { 16 exists($$OPENSCAD_LIBRARIES_DIR/include/eigen3) { 17 EIGEN_INCLUDEPATH = $$OPENSCAD_LIBRARIES_DIR/include/eigen3 18 } 19 } 20} 21 22!isEmpty(EIGEN_DIR) { 23 EIGEN_INCLUDEPATH = $$EIGEN_DIR 24 message("User set EIGEN location: $$EIGEN_INCLUDEPATH") 25} 26 27isEmpty(EIGEN_INCLUDEPATH) { 28 linux*|hurd*|unix: EIGEN_INCLUDEPATH = /usr/include/eigen3 29 freebsd-g++: EIGEN_INCLUDEPATH = /usr/local/include/eigen3 30 netbsd*: EIGEN_INCLUDEPATH = /usr/pkg/include/eigen3 31 macx: EIGEN_INCLUDEPATH = /opt/local/include/eigen3 32} 33 34!exists($$EIGEN_INCLUDEPATH/Eigen/Core) { 35 EIGEN_CFLAGS = $$system("$$PKG_CONFIG --cflags eigen3") 36 EIGEN_INCLUDEPATH = $$replace(EIGEN_CFLAGS,"-I","") 37} 38 39# disable Eigen SIMD optimizations for platforms where it breaks compilation 40!macx { 41 !freebsd-g++ { 42 QMAKE_CXXFLAGS += -DEIGEN_DONT_ALIGN 43 } 44} 45 46# EIGEN being under 'include/eigen3' needs special prepending 47has_qt5 { 48 QMAKE_INCDIR = $$EIGEN_INCLUDEPATH $$QMAKE_INCDIR 49} else { 50 QMAKE_INCDIR_QT = $$EIGEN_INCLUDEPATH $$QMAKE_INCDIR_QT 51} 52 53# qmakespecs on netbsd prepend system includes, we need eigen first. 54netbsd* { 55 QMAKE_CXXFLAGS = -I$$EIGEN_INCLUDEPATH $$QMAKE_CXXFLAGS 56} 57 58