1# Detect lib3mf, then use this priority list to determine
2# which library to use:
3#
4# Priority
5# 1. LIB3MF_INCLUDEPATH / LIB3MF_LIBPATH (env or qmake)
6# 2. OPENSCAD_LIBRARIES (environment variable)
7# 3. system's standard include paths
8
9# read environment variables if not set as qmake parameter
10isEmpty(LIB3MF_INCLUDEPATH) {
11  LIB3MF_INCLUDEPATH = $$(LIB3MF_INCLUDEPATH)
12}
13isEmpty(LIB3MF_LIBPATH) {
14  LIB3MF_LIBPATH = $$(LIB3MF_LIBPATH)
15}
16
17isEmpty(LIB3MF_INCLUDEPATH) {
18  LIB3MF_CFLAGS = $$system("$$PKG_CONFIG --cflags lib3MF")
19  LIB3MF_INCLUDEPATH = $$system("$$PKG_CONFIG --variable=includedir lib3MF")
20  !isEmpty(LIB3MF_CFLAGS) {
21    ENABLE_LIB3MF=yes
22  }
23} else {
24  LIB3MF_CFLAGS = -I$$LIB3MF_INCLUDEPATH
25}
26
27isEmpty(LIB3MF_LIBPATH) {
28  LIB3MF_LIBS = $$system("$$PKG_CONFIG --libs lib3MF")
29  LIB3MF_LIBPATH = $$system("$$PKG_CONFIG --variable=libdir lib3MF")
30  !isEmpty(LIB3MF_LIBS) {
31    ENABLE_LIB3MF=yes
32  }
33} else {
34  LIB3MF_LIBS = -L$$LIB3MF_LIBPATH -l3MF
35}
36
37exists($$LIB3MF_INCLUDEPATH/Model/COM/NMR_DLLInterfaces.h) {
38  ENABLE_LIB3MF=yes
39  LIB3MF_API="API 1.0"
40} else:exists($$LIB3MF_INCLUDEPATH/lib3mf_implicit.hpp) {
41  ENABLE_LIB3MF=yes
42  LIB3MF_API="API 2.0"
43  DEFINES += LIB3MF_API_2
44  LIB3MF_LIBS = -L$$LIB3MF_LIBPATH -l3mf
45} else {
46  ENABLE_LIB3MF=
47  LIB3MF_INCLUDEPATH =
48  LIB3MF_LIBPATH =
49}
50
51!isEmpty(ENABLE_LIB3MF) {
52  DEFINES += ENABLE_LIB3MF
53  QMAKE_CXXFLAGS += $$LIB3MF_CFLAGS
54  LIBS += $$LIB3MF_LIBS
55  message("3MF Import/Export enabled $$LIB3MF_API")
56} else {
57  message("3MF Import/Export disabled")
58}
59