summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c>2010-05-07 16:24:26 (GMT)
committerkintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c>2010-05-07 16:24:26 (GMT)
commit0f9802ec3ae9fb6ec453d9401313493debdc3f1a (patch)
treed66e71a59859f02de7cab19533df3bd4e942890f
parent838bb59ead12c77b0e64f4843c9d3be0abbf78b0 (diff)
Improved Mac OS X deployment - hopefully this doesn't break builds on other platforms
git-svn-id: http://svn.clifford.at/openscad/trunk@529 b57f626f-c46c-0410-a088-ec61d464b74c
-rw-r--r--cgal.pri27
-rw-r--r--doc/TODO.txt6
-rw-r--r--doc/checklist-macosx.txt58
-rw-r--r--opencsg.pri32
-rw-r--r--openscad.pro16
-rwxr-xr-xscripts/macosx-sanity-check.py2
-rwxr-xr-xscripts/release-common.sh2
-rw-r--r--setenv_mjau.sh3
8 files changed, 93 insertions, 53 deletions
diff --git a/cgal.pri b/cgal.pri
index 70c7fcc..0c1fd30 100644
--- a/cgal.pri
+++ b/cgal.pri
@@ -1,22 +1,17 @@
cgal {
DEFINES += ENABLE_CGAL
- LIBS += -lCGAL
- # Optionally specify location of CGAL using the
- # CGALDIR env. variable
- CGAL_DIR = $$(CGALDIR)
- !isEmpty(CGAL_DIR) {
- INCLUDEPATH += $$CGAL_DIR/include
- LIBS += -L$$CGAL_DIR/lib
- message("CGAL location: $$CGAL_DIR")
+ !deploy {
+ # Optionally specify location of CGAL using the
+ # CGALDIR env. variable
+ CGAL_DIR = $$(CGALDIR)
+ !isEmpty(CGAL_DIR) {
+ INCLUDEPATH += $$CGAL_DIR/include
+ LIBS += -L$$CGAL_DIR/lib
+ message("CGAL location: $$CGAL_DIR")
+ }
}
- macx {
- # The -L/usr/lib is to force the linker to use system libraries over MacPort libraries
- LIBS += -L/usr/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
+
+ LIBS += -lCGAL -lmpfr -lgmp -lboost_thread
QMAKE_CXXFLAGS += -frounding-math
}
diff --git a/doc/TODO.txt b/doc/TODO.txt
index e6b4ac5..b6643c4 100644
--- a/doc/TODO.txt
+++ b/doc/TODO.txt
@@ -41,7 +41,7 @@ o MDI
o 3D View
- OpenGL 2.0 test: What, exactly, is needed from OpenGL 2.0? Can we use 1.x with extensions?
- Improve mouse rotation
- - Add modifier key combos to handle pan on 1 mouse button systems
+ - Add modifier key combos to handle pan and zoom on 1 mouse button systems
- Show grid
- 4 x split view w/orthogonal cameras?
- Quick highlighting of object under the cursor in the editor
@@ -170,6 +170,8 @@ MISC
o Streamline the cmd-line interface a bit
- Implicit output file format
o Mac OS X:
- - universal binary -> fix cgal and opencsg
+ - 32-bit compatibility
+ o Build everything including i386 arch
+
o Write checklists for typical extension work (add new module, add new function)
-> make sure new test files are added
diff --git a/doc/checklist-macosx.txt b/doc/checklist-macosx.txt
index 6db2033..26ef208 100644
--- a/doc/checklist-macosx.txt
+++ b/doc/checklist-macosx.txt
@@ -1,30 +1,60 @@
-o Prerequisites (MacPorts):
- - NB! CGAL requires gcc >= 4.2
- - eigen
- - boost
- - gmp
- - mpfr
- - cmake
- - Qt4
+NB! This is the Mac OS X deployment checklist.
+ See build-macosx.txt for how to build a development build of
+ OpenSCAD for your system only without manually compiling all
+ dependencies.
+
+o MacPorts libs
+ port install eigen
+
+o Qt4
+ - Download and install the combined 32-bit and 64-bit build for 10.5-10.6 from here:
+ http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x
+
+o Build gmp
+
+ tar xjz gmp-5.0.1.tar.bz2
+ cd gmp-5.0.1
+ ./configure --prefix=$PWD/../../deploy CFLAGS=-mmacosx-version-min=10.5 LDFLAGS=-mmacosx-version-min=10.5
+ make install
+
+o Build mpfr
+ tar xjz mpfr-2.4.2.tar.bz2
+ cd mpfr-2.4.2
+ ./configure --prefix=$PWD/../../deploy --with-gmp=$PWD/../../deploy CFLAGS=-mmacosx-version-min=10.5 LDFLAGS=-mmacosx-version-min=10.5
+ make install
+
+o Build boost::thread
+ tar xjz boost_1_42_0.tar.bz2
+ cd boost_1_42_0
+ ./bootstrap.sh --prefix=$PWD/../../deploy --with-libraries=thread
+ ./bjam cflags="-mmacosx-version-min=10.5" linkflags="-mmacosx-version-min=10.5"
+ ./bjam install
o Build CGAL >= 3.5
tar xzf CGAL-3.6.tar.gz
cd CGAL-3.6
- cmake -DCMAKE_INSTALL_PREFIX=$PWD/../install/CGAL-3.6 -DBUILD_SHARED_LIBS=FALSE
+ cmake -DCMAKE_INSTALL_PREFIX=$PWD/../../deploy -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="10.5"
make -j4
make install
-o Patch OpenCSG >= 1.3.0
+o Patch & build GLEW
+
+ tar xzf glew-1.5.3.tar.gz
+ cd glew-1.5.3
+ patch -p1 < ../openscad/patches/glew-1.5.3-MacOSX.patch
+ mkdir ../../deploy/lib/pkgconfig
+ GLEW_DEST=$PWD/../../deploy make install
+
+o Patch and build OpenCSG >= 1.3.0
+ FIXME: Update patch
tar xzf OpenCSG-1.3.0.tar.gz
cd OpenCSG-1.3.0
patch -p1 < ../openscad/patches/OpenCSG-1.3.0-MacOSX-port.patch
-
-o Build OpenCSG
-
- qmake -recursive
+ MACOSX_DEPLOY_DIR=$PWD/../../deploy qmake -r
make
+ make install
o Build and Deploy OpenSCAD
diff --git a/opencsg.pri b/opencsg.pri
index c9ed990..a3b70f7 100644
--- a/opencsg.pri
+++ b/opencsg.pri
@@ -1,23 +1,21 @@
opencsg {
+ DEFINES += ENABLE_OPENCSG
+ CONFIG += glew
+ include(glew.pri)
+
HEADERS += src/render-opencsg.h
SOURCES += src/render-opencsg.cc
- 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
- message("OpenCSG location: $$CGAL_DIR")
- }
- macx {
- # For glew
- INCLUDEPATH += /opt/local/include
- LIBS += -L/opt/local/lib
+ !deploy {
+ # 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
+ message("OpenCSG location: $$OPENCSG_DIR")
+ }
}
+
+ LIBS += -lopencsg
}
diff --git a/openscad.pro b/openscad.pro
index 8d0df63..bb3d387 100644
--- a/openscad.pro
+++ b/openscad.pro
@@ -10,6 +10,16 @@ RCC_DIR = objects
INCLUDEPATH += src
macx {
+ # add CONFIG+=deploy to the qmake command-line to make a deployment build
+ deploy {
+ message("Building deployment version")
+ DEPLOYDIR = $$(MACOSX_DEPLOY_DIR)
+ !isEmpty(DEPLOYDIR) {
+ INCLUDEPATH += $$DEPLOYDIR/include
+ LIBS += -L$$DEPLOYDIR/lib
+ }
+ }
+
TARGET = OpenSCAD
ICON = icons/OpenSCAD.icns
QMAKE_INFO_PLIST = Info.plist
@@ -56,9 +66,9 @@ include(opencsg.pri)
include(eigen2.pri)
# Standard include path for misc external libs
-macx {
- INCLUDEPATH += /opt/local/include
-}
+#macx {
+# INCLUDEPATH += /opt/local/include
+#}
# QMAKE_CFLAGS += -pg
# QMAKE_CXXFLAGS += -pg
diff --git a/scripts/macosx-sanity-check.py b/scripts/macosx-sanity-check.py
index 2438906..1b5a7b7 100755
--- a/scripts/macosx-sanity-check.py
+++ b/scripts/macosx-sanity-check.py
@@ -5,6 +5,8 @@
# are present and that they are backwards compatible with at least 10.5.
# Run with an executable as parameter
#
+# Author: Marius Kintel <marius@kintel.net>
+#
import sys
import os
diff --git a/scripts/release-common.sh b/scripts/release-common.sh
index b782976..340266d 100755
--- a/scripts/release-common.sh
+++ b/scripts/release-common.sh
@@ -42,7 +42,7 @@ echo "Building openscad-$VERSION $CONFIGURATION..."
case $OS in
MACOSX)
- CONFIG=mdi
+ CONFIG=deploy
TARGET=
;;
WIN)
diff --git a/setenv_mjau.sh b/setenv_mjau.sh
index ed466f7..5a1adb0 100644
--- a/setenv_mjau.sh
+++ b/setenv_mjau.sh
@@ -1,3 +1,6 @@
+export MACOSX_DEPLOY_DIR=$PWD/../libraries/deploy
+export DYLD_LIBRARY_PATH=$MACOSX_DEPLOY_DIR/lib
+
export OPENCSGDIR=$PWD/../OpenCSG-1.3.0
export CGALDIR=$PWD/../install/CGAL-3.6
export QCODEEDITDIR=$PWD/../qcodeedit-2.2.3/install
contact: Jan Huwald // Impressum