summaryrefslogtreecommitdiff
path: root/openscad.pro
blob: 021687685e6ccb5b5a85f371606c9548d56b58f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
isEmpty(VERSION) VERSION = $$system(date "+%Y.%m.%d")
DEFINES += OPENSCAD_VERSION=$$VERSION
TEMPLATE = app

macx {
  TARGET = OpenSCAD
  ICON = OpenSCAD.icns
  QMAKE_INFO_PLIST = Info.plist
  #CONFIG += x86 ppc
}
else {
  TARGET = openscad
}

CONFIG += qt
QT += opengl

# Application configuration
CONFIG += debug
# CONFIG += release
# CONFIG += mdi
CONFIG += cgal
CONFIG += opencsg

mdi {
  # MDI needs an OpenCSG library that is compiled with OpenCSG-Reset-Hack.patch applied
  DEFINES += ENABLE_MDI
}

cgal {
# Uncomment this to enable experimental CGAL tesselation
# DEFINES += CGAL_TESSELATE
  DEFINES += ENABLE_CGAL
  LIBS += -lCGAL
  macx {
    INCLUDEPATH += $(PWD)/../install/include /opt/local/include
    # The -L/usr/lib is to force the linker to use system libraries over MacPort libraries
    LIBS += -L/usr/lib -L$(PWD)/../install/lib -L/opt/local/lib /opt/local/lib/libgmp.a /opt/local/lib/libmpfr.a /opt/local/lib/libboost_thread-mt.a
  }
  else {
    LIBS += -lmpfr
  }
  win32:LIBS += -lboost_thread -lgmp
  QMAKE_CXXFLAGS += -frounding-math
}

opencsg {
  DEFINES += ENABLE_OPENCSG
  LIBS += -lopencsg
  unix:LIBS += -lGLEW
  win32:LIBS += -lglew32

  # Optionally specify location of OpenCSG using the 
  # OPENCSGDIR env. variable
  OPENCSG_DIR = $$(OPENCSGDIR)
  !isEmpty(OPENCSG_DIR) {
    INCLUDEPATH += $$OPENCSG_DIR/include
    LIBS += -L$$OPENCSG_DIR/lib
  }
  macx {
    # For glew
    INCLUDEPATH += /opt/local/include
    LIBS += -L/opt/local/lib
  }
}

QMAKE_CXXFLAGS_RELEASE = -O3 -march=pentium
QMAKE_CXXFLAGS_DEBUG = -O0 -ggdb

# QMAKE_CFLAGS   += -pg
# QMAKE_CXXFLAGS += -pg
# QMAKE_LFLAGS   += -pg

LEXSOURCES += lexer.l
YACCSOURCES += parser.y

FORMS   += MainWindow.ui

HEADERS += openscad.h \
           MainWindow.h \
           GLView.h \
           printutils.h

macx: HEADERS += EventFilter.h

SOURCES += openscad.cc mainwin.cc glview.cc export.cc \
           value.cc expr.cc func.cc module.cc context.cc \
           csgterm.cc polyset.cc csgops.cc transform.cc \
           primitives.cc surface.cc control.cc render.cc \
           import.cc dxfdata.cc dxftess.cc dxftess-glu.cc \
           dxftess-cgal.cc dxfdim.cc \
           dxflinextrude.cc dxfrotextrude.cc highlighter.cc \
           printutils.cc nef2dxf.cc

target.path = /usr/local/bin/
INSTALLS += target
contact: Jan Huwald // Impressum