Rev 2 | Rev 7 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#------------------------------------------------------------
#
# SMScanner
#
# Control Interface and point cloud construction interface
# for the SeeMa Lab Structured Light Scanner.
#
# Image Analysis and Computer Graphics, DTU, 2014
#
#------------------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = SMScanner
TEMPLATE = app
HEADERS += SMScanner.h \
SMVideoWidget.h \
SMPointCloudWidget.h \
camera/Camera.h \
projector/Projector.h \
projector/OpenGLContext.h \
codec/Codec.h \
codec/CodecGrayCode.h \
codec/CodecPhaseShift2x3.h \
triangulator/Triangulator.h \
cvtools.h \
SMCalibrationParams.h \
SMCaptureWorker.h \
SMTriangulationWorker.h \
SMPreferenceDialog.h
SOURCES += main.cpp\
SMScanner.cpp \
SMVideoWidget.cpp \
SMPointCloudWidget.cpp \
camera/Camera.cpp \
codec/CodecGrayCode.cpp \
codec/CodecPhaseShift2x3.cpp \
triangulator/Triangulator.cpp \
cvtools.cpp \
SMCalibrationParams.cpp \
SMCaptureWorker.cpp \
SMTriangulationWorker.cpp \
SMPreferenceDialog.cpp
FORMS += SMScanner.ui \
SMAboutDialog.ui \
SMPreferenceDialog.ui
INCLUDEPATH += camera/ projector/ codec/ triangulator/
# Operating System dependant linking and including
# Linux
unix:!macx {
CONFIG += link_pkgconfig
# Link VTK and Boost (no pkg-config)
INCLUDEPATH += /usr/include/vtk-5.8/
LIBS += -lQVTK -lvtkCommon -lvtkFiltering -lvtkRendering -lvtkIO -lvtkGraphics
# PCL pkg-config workaround
LIBS += -lboost_system -lpcl_visualization -lpcl_common -lpcl_io -lpcl_search -lpcl_surface
# PKG-config libs
INCLUDEPATH += /usr/local/include/pcl-1.7 /usr/include/eigen3/
PKGCONFIG += gl glu x11 xrandr opencv pcl_registration-1.7 pcl_visualization-1.7 pcl_surface-1.7 pcl_search-1.7 pcl_filters-1.7 pcl_kdtree-1.7 pcl_tracking-1.7 flann eigen3
}
# Windows
win32 {
# Boost join
DEFINES += DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED
# opencv
INCLUDEPATH += "$$(OPENCV_INCLUDE_DIR)/" #C:\opencv\build\include
CONFIG(debug,debug|release){
#debug
LIBS += -L"$$(OPENCV_DIR)" \ #C:\opencv\build\x64\vc10\lib
-lopencv_core247d \
-lopencv_highgui247d \
-lopencv_imgproc247d \
-lopencv_calib3d247d
} else {
#release
LIBS += -L"$$(OPENCV_DIR)" \
-lopencv_core247 \
-lopencv_highgui247 \
-lopencv_imgproc247 \
-lopencv_calib3d247
}
# pcl
INCLUDEPATH += "$$(PCL_INCLUDE_DIR)/" #C:\Program Files\PCL\include\pcl-1.7
CONFIG(debug,debug|release){
#debug
LIBS += -L"$$(PCL_DIR)" \ #C:\Program Files\PCL\lib
-lpcl_visualization_debug \
-lpcl_io_debug \
-lpcl_common_debug \
-lpcl_features_debug \
-lpcl_filters_debug \
-lpcl_io_debug \
-lpcl_io_ply_debug \
-lpcl_kdtree_debug \
-lpcl_keypoints_debug \
-lpcl_octree_debug \
-lpcl_registration_debug \
-lpcl_sample_consensus_debug \
-lpcl_search_debug \
-lpcl_segmentation_debug \
-lpcl_surface_debug \
-lpcl_tracking_debug \
-lpcl_visualization_debug
} else {
# release
LIBS += -L"$$(PCL_DIR)" \
-lpcl_visualization_release \
-lpcl_io_release \
-lpcl_common_release \
-lpcl_features_release \
-lpcl_filters_release \
-lpcl_io_release \
-lpcl_io_ply_release \
-lpcl_kdtree_release \
-lpcl_keypoints_release \
-lpcl_octree_release \
-lpcl_registration_release \
-lpcl_sample_consensus_release \
-lpcl_search_release \
-lpcl_segmentation_release \
-lpcl_surface_release \
-lpcl_tracking_release \
-lpcl_visualization_release
}
# pcl dependencies
INCLUDEPATH += "$$(BOOST_ROOT)/include" \
"$$(EIGEN_ROOT)/include" \
"$$(FLANN_ROOT)/include"
LIBS += -L"$$(BOOST_ROOT)/lib" -lboost_system-vc100-mt-1_50 -lboost_system-vc100-mt-gd-1_50
# vtk
INCLUDEPATH += "$$(VTK_INCLUDE_DIR)" #C:\Program Files\VTK\include\vtk-5.10
CONFIG(debug,debug|release){
#debug
LIBS += -L"$$(VTK_DIR)" \ #C:\Program Files\VTK\lib\vtk-5.10
-lvtkGraphics-gd \
-lQVTK-gd \
-lvtkCommon-gd \
-lvtkFiltering-gd \
-lvtkRendering-gd \
-lvtkIO-gd \
-lvtkpng-gd \
-lvtksys-gd \
-lvtktiff-gd \
-lvtkjpeg-gd \
-lvtkexpat-gd \
-lvtkzlib-gd
} else {
# release
LIBS += -L"$$(VTK_DIR)" \
-lvtkGraphics \
-lQVTK \
-lvtkCommon \
-lvtkFiltering \
-lvtkRendering \
-lvtkIO \
-lvtkpng \
-lvtksys \
-lvtktiff \
-lvtkjpeg \
-lvtkexpat \
-lvtkzlib
}
}
# Mac OS X
macx {
INCLUDEPATH += /opt/local/include/vtk-5.10/
LIBS += -L/opt/local/lib/vtk-5.10/ -lQVTK -lvtkCommon -lvtkFiltering -lvtkRendering -lvtkIO -lvtkGraphics
LIBS += -L/opt/local/lib/ -lboost_system-mt
CONFIG += link_pkgconfig
PKGCONFIG += opencv pcl_visualization-1.7 pcl_filters-1.7 pcl_search-1.7 pcl_registration-1.7
DEFINES += BOOST_TT_HAS_OPERATOR_HPP_INCLUDED
}
# Compile with system dependent OpenGL Context code
unix:!macx{
SOURCES += projector/OpenGLContext.Unix.cpp
LIBS += -lXxf86vm
}
win32{
SOURCES += projector/OpenGLContext.Win.cpp
}
macx{
CONFIG += objective_c
OBJECTIVE_SOURCES += projector/OpenGLContext.Mac.mm
LIBS += -framework Cocoa -framework OpenGL
# SOURCES += projector/OpenGLContext.GLFW.cpp
# LIBS += -L/usr/local/lib/ -lglfw3
}
# Compile with specific camera driver bindings
# libdc1394
unix:!macx:exists(/usr/include/dc1394/dc1394.h) {
DEFINES += WITH_CAMERAIIDC
LIBS += -ldc1394
}
macx:exists(/usr/local/include/dc1394/dc1394.h) {
DEFINES += WITH_CAMERAIIDC
LIBS += -ldc1394
}
contains(DEFINES, WITH_CAMERAIIDC) {
HEADERS += camera/CameraIIDC.h
SOURCES += camera/CameraIIDC.cpp
}
# IDS Imaging libueye
unix:!macx:exists(/usr/include/ueye.h) {
DEFINES += WITH_CAMERAIDSIMAGING
LIBS += -lueye_api
}
win32:exists("C:/Program Files/IDS/uEye/Develop/include/uEye.h"){
DEFINES += WITH_CAMERAIDSIMAGING
INCLUDEPATH += "C:/Program Files/IDS/uEye/Develop/include/"
LIBS += -L"C:/Program Files/IDS/uEye/Develop/Lib" -luEye_api_64
}
contains(DEFINES, WITH_CAMERAIDSIMAGING) {
HEADERS += camera/CameraIDSImaging.h
SOURCES += camera/CameraIDSImaging.cpp
}
# XIMEA libm3api
unix:!macx:exists(/opt/XIMEA/include/xiApi.h){
INCLUDEPATH += /opt/XIMEA/include
DEFINES += WITH_CAMERAXIMEA
LIBS += -lm3api
}
win32:exists("C:/XIMEA/API/xiApi.h"){
DEFINES += WITH_CAMERAXIMEA
INCLUDEPATH += "C:/XIMEA/API"
LIBS += -L"C:/XIMEA/API/x64" -lm3apiX64
}
macx:exists(/Library/Frameworks/m3api.framework/m3api){
DEFINES += WITH_CAMERAXIMEA
INCLUDEPATH += /Library/Frameworks/m3api.framework/Headers/
LIBS += -framework m3api
}
contains(DEFINES, WITH_CAMERAXIMEA) {
HEADERS += camera/CameraXIMEA.h
SOURCES += camera/CameraXIMEA.cpp
}
# Point Grey flycapture
unix:!macx:exists(/usr/include/flycapture/FlyCapture2.h){
INCLUDEPATH += /usr/include/flycapture
DEFINES += WITH_CAMERAPOINTGREY
LIBS += -lflycapture
}
win32:exists("C:/Program Files/Point Grey Research/FlyCapture2/include/FlyCapture2.h"){
DEFINES += WITH_CAMERAPOINTGREY
INCLUDEPATH += "C:/Program Files/Point Grey Research/FlyCapture2/include/"
LIBS += -L"C:/Program Files/Point Grey Research/FlyCapture2/lib64" -lFlyCapture2
}
contains(DEFINES, WITH_CAMERAPOINTGREY) {
HEADERS += camera/CameraPointGrey.h
SOURCES += camera/CameraPointGrey.cpp
}
# Compile with direct projector APIs
# LC3000 Api
DEFINES += WITH_LC3000API
HEADERS += projector/LC3000API/lcr_cmd.h
SOURCES += projector/ProjectorLC3000.cpp \
projector/LC3000API/lcr_cmd.cpp \
projector/LC3000API/lcr_packetizer.cpp \
projector/LC3000API/tcp_client.cpp
## LC4500 Api
DEFINES += WITH_LC4500API
HEADERS += projector/LC4500API/API.h
SOURCES += projector/ProjectorLC4500.cpp \
projector/LC4500API/API.cpp \
projector/LC4500API/usb.cpp
macx:SOURCES += projector/LC4500API/hid.Mac.c
unix:!macx{
SOURCES += projector/LC4500API/hid.Unix.c
CONFIG += link_pkgconfig
PKGCONFIG += libudev
}
win32{
SOURCES += projector/LC4500API/hid.Win.c
LIBS += -lsetupapi
}