Commits (3)
unix {
TOPDIR = $$system( pwd )/
}
win32 {
TOPDIR = $$system( cd )/
}
#use next qmake.cache if it exists
exists(../.qmake.cache) {
include( ../.qmake.cache )
}
include( qmake/all.include )
......@@ -6,6 +6,19 @@
<!-- --------------------------------------------------------------------- -->
<tr valign=top><td><b>7.1</b> (?/?/?)</td><td>
<b>General</b>
<ul>
<li>Remove old qmake project files. Unmaintained for a very long time</li>
</ul>
</tr>
<tr valign=top><td><b>7.0</b> (2018/04/19)</td><td>
<b>Breaking changes</b>
......@@ -62,7 +75,7 @@
<li>BaseExporter: Added accessor functions for HalfEdgeHandles and faceTexCoords to base exporter and exporter template.</li>
<li>OBJ Writer: Fail if vertex color export was requested (Thanks to Manuel Massing)</li>
<li>OBJ Writer: Added functionality to store FaceTexCoords to objwriter</li>
<li>OBJ Writer: Applied fix for bad or missing vertex tex coords (Thanks to Gero Müller for the patch)</li>>
<li>OBJ Writer: Applied fix for bad or missing vertex tex coords (Thanks to Gero Müller for the patch)</li>
<li>OBJ Writer: Fix vertex texture coordinates export in OBJ writer</li>
<li>OBJ Loader: range check for vertex colors and normals in OBJ loader</li>
<li>OBJ Loader: fixed handling of negative indices in OBJ loader</li>
......
contains( OPENFLIPPER , OpenFlipper ){
include( $$TOPDIR/qmake/all.include )
} else {
include( $$TOPDIR/OpenMesh/qmake/all.include )
}
Subdirs()
addSubdirs( src/OpenMesh/Core )
addSubdirs( src/OpenMesh/Tools , src/OpenMesh/Core )
addSubdirs( src/OpenMesh/Apps/commandlineDecimater , src/OpenMesh/Core src/OpenMesh/Tools)
addSubdirs( src/OpenMesh/Apps/Decimating/DecimaterGui , src/OpenMesh/Core src/OpenMesh/Tools)
addSubdirs( src/OpenMesh/Apps/mconvert , src/OpenMesh/Core src/OpenMesh/Tools)
addSubdirs( src/OpenMesh/Apps/QtViewer , src/OpenMesh/Core src/OpenMesh/Tools)
addSubdirs( src/OpenMesh/Apps/Smoothing , src/OpenMesh/Core src/OpenMesh/Tools)
addSubdirs( src/OpenMesh/Apps/Subdivider/commandlineSubdivider , src/OpenMesh/Core src/OpenMesh/Tools)
addSubdirs( src/OpenMesh/Apps/Subdivider/commandlineAdaptiveSubdivider , src/OpenMesh/Core src/OpenMesh/Tools)
addSubdirs( src/OpenMesh/Apps/Subdivider/SubdividerGui , src/OpenMesh/Core src/OpenMesh/Tools)
VERSION=7.0
VERSION=7.1
MAJOR=7
MINOR=0
MINOR=1
PATCH=0
ID=OPENMESH
......@@ -63,6 +63,7 @@ IF (NOT OPENMESH_FOUND)
"${CMAKE_SOURCE_DIR}/OpenMesh/src/OpenMesh"
"${CMAKE_SOURCE_DIR}/libs_required/OpenMesh/src/OpenMesh"
"${CMAKE_SOURCE_DIR}/../OpenMesh/src/OpenMesh"
"C:/Program Files/OpenMesh 7.1"
"C:/Program Files/OpenMesh 7.0"
"C:/Program Files/OpenMesh 6.3"
"C:/Program Files/OpenMesh 6.2"
......@@ -82,6 +83,7 @@ IF (NOT OPENMESH_FOUND)
"C:/Program Files/OpenMesh 2.4.1"
"C:/Program Files/OpenMesh 2.4"
"C:/Program Files/OpenMesh 2.0/include"
"C:/libs/OpenMesh 7.1"
"C:/libs/OpenMesh 7.0"
"C:/libs/OpenMesh 6.3"
"C:/libs/OpenMesh 6.2"
......
################################################################################
# This is a library
################################################################################
################################################################################
# Needed Qt packages and build plugin
################################################################################
CONFIG += qt uitools opengl thread debug_and_release
QT += opengl
################################################################################
# Add toplevel directory to include path
# TOPDIR has to be specified in a .qmake.cache file in your projects toplevel
# directory
################################################################################
INCLUDEPATH = $$quote( $$TOPDIR/src )
DEPENDPATH = $$quote( $${TOPDIR}/src )
################################################################################
# Define header Extension
# This will also override the header extension for uic output
# ( Do not change to += otherwise uic output will end with .h ! )
################################################################################
QMAKE_EXT_H = .hh .h
################################################################################
# Architecture detection
################################################################################
include( architecture.include )
################################################################################
# Helper functions
################################################################################
include( functions.include )
################################################################################
# Custom settings for compiler flags and similar
################################################################################
include( compiler.include)
################################################################################
# Extra target definitions
################################################################################
include( targets.include )
################################################################################
# Global package definitions
################################################################################
include( packages/packages.$${SYSTEMTYPE} )
################################################################################
# Local package definitions
# These lines will include a file from a .qmake directory inside your home.
# this file will overwrite existing setting
################################################################################
unix {
HOME=$$system(echo ~)
}
#else {
#message( TODO : Define Home in Windows )
#}
exists( $${HOME}/.qmake/config.$${SYSTEMTYPE} ) {
include( $${HOME}/.qmake/config.$${SYSTEMTYPE} )
}
################################################################################
# Set standard build directories
# ( Everything generated while compiling will go # into a per architecture
# directory )
################################################################################
OBJECTS_DIR = tmp/$$BUILDDIRECTORY
MOC_DIR = tmp/$$BUILDDIRECTORY
UI_DIR = tmp/$$BUILDDIRECTORY
################################################################################
# type definitions
################################################################################
defineTest(Library) {
unix{
TEMPLATE = lib
contains( OPERATING_SYSTEM, Darwin) {
CONFIG -= static
export(CONFIG)
}
}
win32 {
TEMPLATE = vclib
}
export(TEMPLATE)
DESTDIR = lib/$$BUILDDIRECTORY
export(DESTDIR)
defineTargets()
UI_DIR = include
export(UI_DIR)
}
defineTest(Application) {
unix {
TEMPLATE = app
}
win32 {
TEMPLATE = vcapp
}
macx {
CONFIG -= app_bundle
export( CONFIG )
}
export(TEMPLATE)
DESTDIR = $$BUILDDIRECTORY
export(DESTDIR)
defineTargets()
}
defineTest(Subdirs) {
unix {
TEMPLATE = subdirs
}
win32 {
TEMPLATE = vcsubdirs
}
export(TEMPLATE)
CONFIG += ordered
export(CONFIG)
defineTargets()
}
################################################################################
# Architecture detection
# The following Variables are defined by this include:
# OPERATING_SYSTEM : Debian / Fedora / Windows
# ARCHITECTURE : 32 / 64
# MODE : Debug / Release
# BUILDDIRECTORY : Concat of all above variables sesparated by underscores e.g. Debian_64_debug
################################################################################
unix {
OPERATING_SYSTEM = UNKNOWN_OS
exists( /etc/lsb-release ) {
OPERATING_SYSTEM = Ubuntu
}
exists( /etc/debian_version ) | exists( /etc/debian_release ) {
OPERATING_SYSTEM = Debian
}
exists( /etc/fedora-release ) {
OPERATING_SYSTEM = Fedora
}
exists( /etc/gentoo-release ) {
OPERATING_SYSTEM = Gentoo
}
exists( /etc/lfs-release ) {
OPERATING_SYSTEM = Linux_From_Scratch
}
exists( /etc/mandrake-release ) | exists( /etc/mandrakelinux-release ) {
OPERATING_SYSTEM = Mandrake
}
exists( /etc/mandriva-release ) {
OPERATING_SYSTEM = Mandriva
}
exists( /etc/redhat-release ) | exists( /etc/redhat_version ) {
OPERATING_SYSTEM = Redhat
}
exists( /etc/SuSE-release ) | exists( /etc/novell-release ) {
OPERATING_SYSTEM = SuSE
}
TEST_DARWIN = $$system(uname -s)
contains( TEST_DARWIN, Darwin) {
OPERATING_SYSTEM = Darwin
DEFINES += ARCH_DARWIN
export(DEFINES)
}
HARDWARE_PLATFORM = $$system(uname -a)
contains( HARDWARE_PLATFORM, x86_64 ) {
# 64-bit Linux
ARCHITECTURE = 64
} else {
# 32-bit Linux
ARCHITECTURE = 32
}
contains(TEST_DARWIN, Darwin) {
SYSTEMTYPE = Darwin
} else {
SYSTEMTYPE = Linux
}
}
win32 {
OPERATING_SYSTEM = Windows
ARCHITECTURE = 32
SYSTEMTYPE = Windows
}
CONFIG( debug, debug|release ){
MODE = Debug
} else {
MODE = Release
}
BUILDDIRECTORY = $${OPERATING_SYSTEM}_$${ARCHITECTURE}_$${MODE}
################################################################################
# Custom settings for compiler flags and similar
################################################################################
unix {
QMAKE_CC = gcc-4.3
QMAKE_CXX = g++-4.3
macx {
QMAKE_CC = gcc-4.0
QMAKE_CXX = g++-4.0
}
QMAKE_CFLAGS_RELEASE = -O3 -DINCLUDE_TEMPLATES -W -Wall -Wno-unused -DNDEBUG
QMAKE_CXXFLAGS_RELEASE = -O3 -DINCLUDE_TEMPLATES -ftemplate-depth-100 -W -Wall -Wno-unused -DNDEBUG
QMAKE_CFLAGS_DEBUG = -g -DINCLUDE_TEMPLATES -W -Wall -Wno-unused -DDEBUG
QMAKE_CXXFLAGS_DEBUG = -g -DINCLUDE_TEMPLATES -ftemplate-depth-100 -W -Wall -Wno-unused -DDEBUG
}
################################################################################
# functions collecting all headers in the directory
################################################################################
# getFilesFromDir( directory, pattern )
# returns a list of all files matching pattern in directory
defineReplace(getFilesFromDir) {
dirs = $$1
pattern = $$2
files =
for(dir, dirs) {
found = $$files( $${dir}/$${pattern} )
files += $$found
}
return( $$files )
}
# addSubdirs(subdirs,deps): Adds directories to the project that depend on
# other directories
defineTest( addSubdirs ) {
for(subdirs, 1) {
entries = $$files($$subdirs)
for(entry, entries) {
name = $$replace(entry, [/\\\\], _)
name = $$replace(name, - , _)
SUBDIRS += $$name
eval ($${name}.subdir = $$entry)
for(dep, 2): {
tempval = $$replace(dep, [/\\\\], _)
eval ($${name}.depends += $$replace(tempval, - , _) )
}
export ($${name}.subdir)
export ($${name}.depends)
}
}
export (SUBDIRS)
}
# given a list of paths and a libname this function checks if the lib is there
# adds the path and returns true if found otherwise false
defineTest( addLib ) {
dirs = $$1
name = $$2
# check for the library
for(dir , dirs) {
check = $${dir}/lib$${name}.so
# Found, so use it
exists( $$check ) {
LIBS *= -L$${dir} -l$$name
export(LIBS)
return(true)
}
}
return(false)
}
defineReplace( getCurrentDir ) {
DIR = ''
unix {
DIR = $$system( pwd )
}
win32 {
DIR = $$system( cd )
}
return( $$DIR )
}
################################################################################
# INCLUDE Packages
################################################################################
defineTest( qt ) {
QT += opengl network script sql
export(QT)
}
defineTest( glew ) {
INCLUDEPATH *= /sw/include/GL
export(INCLUDEPATH)
LIBS *= -L/opt/local/lib/ -lGLEW
export(LIBS)
}
defineTest( glut ) {
INCLUDEPATH *= /System/Library/Frameworks/GLUT.framework/Headers
export(INCLUDEPATH)
LIBS *= -framework GLUT
export(LIBS)
}
defineTest( openmesh ) {
QMAKE_LIBDIR += $${TOPDIR}/lib
QMAKE_LIBDIR += $${TOPDIR}/lib
CONFIG( debug, debug|release ){
LIBS += -lOpenMeshToolsd
LIBS += -lOpenMeshCored
} else {
LIBS += -lOpenMeshTools
LIBS += -lOpenMeshCore
}
export(QMAKE_LIBDIR)
export(LIBS)
}
################################################################################
# INCLUDE Packages
################################################################################
defineTest( qt ) {
CONFIG *= uitools
export(CONFIG)
QT += opengl network script sql
export(QT)
}
defineTest( qwt ) {
INCLUDEPATH *= /usr/include/qwt-qt4/
export(INCLUDEPATH)
LIBS *= -L/usr/lib/ -lqwt-qt4
export(LIBS)
}
defineTest( glew ) {
INCLUDEPATH *= /usr/include/GL
export(INCLUDEPATH)
LIBS *= -L/usr/lib -lGLEW
export(LIBS)
}
defineTest( glut ) {
INCLUDEPATH *=$${ACG}/OpenGL/include
export(INCLUDEPATH)
LIBS *= -L/usr/X11R6/lib -lglut
export(LIBS)
}
defineTest( openmesh ) {
QMAKE_LIBDIR += $${TOPDIR}/lib/
QMAKE_LIBDIR += $${TOPDIR}/lib/
CONFIG( debug, debug|release ){
LIBS+= -Wl,-rpath=$${TOPDIR}/lib -lOpenMeshCored
LIBS+= -Wl,-rpath=$${TOPDIR}/lib -lOpenMeshToolsd
} else {
LIBS+= -Wl,-rpath=$${TOPDIR}/lib -lOpenMeshCore
LIBS+= -Wl,-rpath=$${TOPDIR}/lib -lOpenMeshTools
}
export(QMAKE_LIBDIR)
export(LIBS)
}
defineTest( openmp ) {
addLib( /usr/lib/gcc/x86_64-linux-gnu/4.3 /usr/lib, gomp ) {
QMAKE_CXXFLAGS_RELEASE += -fopenmp
QMAKE_CXXFLAGS_DEBUG += -fopenmp
QMAKE_CFLAGS_RELEASE += -fopenmp
QMAKE_CFLAGS_DEBUG += -fopenmp
QMAKE_LFLAGS_DEBUG += -fopenmp
QMAKE_LFLAGS_RELEASE += -fopenmp
export(QMAKE_CXXFLAGS_RELEASE)
export(QMAKE_CFLAGS_RELEASE)
export(QMAKE_CXXFLAGS_DEBUG)
export(QMAKE_CFLAGS_DEBUG)
export(QMAKE_LFLAGS_DEBUG)
export(QMAKE_LFLAGS_RELEASE)
} else {
message("Unable to find OpenMP lib for linking. OpenMP support will be disabled!!")
}
}
################################################################################
# INCLUDE Packages
################################################################################
defineTest( glew ) {
#######################################
## Enter here the correct path to GLEW
#######################################
GLEW_PATH = c:\libs\glew
#######################################
!exists ( $${GLEW_PATH} ) {
error (ERROR: GLEW not found or wrong path entry in OpenMesh\qmake\packages\packages.Windows! Please adjust it to your path!)
}
INCLUDEPATH *= $${GLEW_PATH}\include
export(INCLUDEPATH)
LIBS *= -L$${GLEW_PATH}\lib -lglew32
export(LIBS)
}
defineTest( qt ) {
CONFIG *= uitools
export(CONFIG)
QT += opengl network script sql
export(QT)
}
defineTest( glut ) {
#######################################
## Enter here the correct path to GLUT
#######################################
GLUT_PATH = c:\libs\glut-3.7
########################################
!exists ( $${GLUT_PATH} ) {
error (ERROR: GLUT not found or wrong path entry in OpenMesh\qmake\packages\packages.Windows! Please adjust it to your path!)
}
INCLUDEPATH *= $${GLUT_PATH}\include
export(INCLUDEPATH)
LIBS *= -L$${GLUT_PATH}\lib -lglut32
export(LIBS)
}
defineTest( openmp ) {
QMAKE_CXXFLAGS_DEBUG += /openmp
QMAKE_CXXFLAGS_RELEASE += /openmp
export(QMAKE_CXXFLAGS_DEBUG)
export(QMAKE_CXXFLAGS_RELEASE)
}
defineTest( openmesh ) {
DEFINES += _USE_MATH_DEFINES NOMINMAX
QMAKE_LIBDIR += $${TOPDIR}/lib/
QMAKE_LIBDIR += $${TOPDIR}/lib/
CONFIG( debug, debug|release ){
LIBS+= -L$${TOPDIR}/lib -lOpenMeshCored
LIBS+= -L$${TOPDIR}/lib -lOpenMeshToolsd
} else {
LIBS+= -L$${TOPDIR}/lib -lOpenMeshCore
LIBS+= -L$${TOPDIR}/lib -lOpenMeshTools
}
export(DEFINES)
export(QMAKE_LIBDIR)
export(LIBS)
}
################################################################################
# Custom targets
################################################################################
defineTest( defineTargets ) {
# internal target ... Use allclean instead!
# cleanDirs target called by subAllclean.
# removes all lib tmp and Builddirectories created by these qmake scripts
!contains( QMAKE_EXTRA_TARGETS , cleanDirs) {
# Remove temp dirs when doing allclean
cleanDirs.target = cleanDirs
cleanDirs.commands = rm -rf tmp
contains( TEMPLATE, app ) {
cleanDirs.commands += ; rm -rf $${BUILDDIRECTORY}
}
contains( TEMPLATE, lib ) {
cleanDirs.commands += ; rm -rf lib
}
export(cleanDirs.target)
export(cleanDirs.commands)
export(cleanDirs.depends)
export(cleanDirs.CONFIG)
QMAKE_EXTRA_TARGETS += cleanDirs
export(QMAKE_EXTRA_TARGETS)
}
# internal target ... Use allclean instead!
# main local subAllclean target called by allclean (see below)
# this one calls
# 1. clean to remove temporary files created
# 2. cleanDirs to remove all tmp and lib directories created by qmake
# 3. distclean to remove the rest
!contains( QMAKE_EXTRA_TARGETS , subAllclean) {
# Remove temp dirs when doing allclean
subAllclean.target = subAllclean
subAllclean.depends = clean cleanDirs distclean
export(subAllclean.target)
export(subAllclean.depends)
QMAKE_EXTRA_TARGETS += subAllclean
export(QMAKE_EXTRA_TARGETS)
}
# basic allclean target, will cleate a recursive target calling subAllclean in the subdirectories makefiles
!contains( QMAKE_EXTRA_TARGETS , allclean) {
allclean.target = allclean
allclean.CONFIG = recursive
allclean.recurse_target = subAllclean
export(allclean.target)
export(allclean.CONFIG)
export(allclean.recurse_target)
QMAKE_EXTRA_TARGETS += allclean
export(QMAKE_EXTRA_TARGETS)
}
!contains( QMAKE_EXTRA_TARGETS , plugindoc ) {
exists ( Documentation ) {
plugindoc.target = plugindoc
PLUGINNAME = $$getCurrentDir()
PLUGINNAME = $$section( PLUGINNAME, "/" ,-1, -1)
unix {
plugindoc.commands += rm -rf $${TOPDIR}/OpenFlipper/Docs/User/$$PLUGINNAME ;
plugindoc.commands += mkdir $${TOPDIR}/OpenFlipper/Docs/User/$$PLUGINNAME ;
plugindoc.commands += cp Documentation/*.html $${TOPDIR}/OpenFlipper/Docs/User/$$PLUGINNAME ;
exists ( Documentation/pics ) {
plugindoc.commands += cp -r Documentation/pics $${TOPDIR}/OpenFlipper/Docs/User/$$PLUGINNAME ;
}
}
win32 {
message(Documentaion copy not supported on windows platform)
#plugindoc.commands += rmdir /s $${TOPDIR}/OpenFlipper/Docs/User/$$PLUGINNAME ;
#plugindoc.commands += mkdir $${TOPDIR}/OpenFlipper/Docs/User/$$PLUGINNAME ;
#plugindoc.commands += xcopy /f Documentation/*.html $${TOPDIR}/OpenFlipper/Docs/User/$$PLUGINNAME ;
#exists ( Documentation/pics ) {
# plugindoc.commands += xcopy /f /s Documentation/pics $${TOPDIR}/OpenFlipper/Docs/User/$$PLUGINNAME ;
#}
}
export(plugindoc.target)
export(plugindoc.commands)
export(plugindoc.depends)
QMAKE_EXTRA_TARGETS += plugindoc
export(QMAKE_EXTRA_TARGETS)
}
}
}
# target for libraries
# this target will copy all headers to an include subdirectory
# You have to call this after you defined evertything else for your library.
# Otherwise this target doesnt know about the required headers.
defineTest( installs ) {
!contains( INSTALLS , includes ) {
contains( TEMPLATE, lib ) {
includes.path = include/
includes.extra = cp -f --parents $${HEADERS} include/
export(includes.path)
export(includes.extra)
INSTALLS *= includes
export(INSTALLS)
}
}
}
################################################################################
#
################################################################################
include( $$TOPDIR/qmake/all.include )
Application()
INCLUDEPATH += ../../..
Application()
glew()
glut()
openmesh()
DIRECTORIES = ../../QtViewer ../
# Input
HEADERS += $$getFilesFromDir($$DIRECTORIES,*.hh)
SOURCES += ../../QtViewer/QGLViewerWidget.cc ../../QtViewer/MeshViewerWidgetT.cc ../DecimaterViewerWidget.cc
SOURCES += ../decimaterviewer.cc
################################################################################
################################################################################
#
################################################################################
include( $$TOPDIR/qmake/all.include )
INCLUDEPATH += ../../..
Application()
glew()
glut()
openmesh()
DIRECTORIES = ..
# Input
SOURCES += ../decimater.cc
################################################################################
################################################################################
#
################################################################################
include( $$TOPDIR/qmake/all.include )
Application()
glew()
glut()
openmesh()
DIRECTORIES = .
# Input
HEADERS += $$getFilesFromDir($$DIRECTORIES,*.hh)
SOURCES += $$getFilesFromDir($$DIRECTORIES,*.cc)
FORMS += $$getFilesFromDir($$DIRECTORIES,*.ui)
################################################################################
################################################################################
#
################################################################################
include( $$TOPDIR/qmake/all.include )
INCLUDEPATH += ../../..
Application()
glew()
glut()
openmesh()
DIRECTORIES = .
# Input
HEADERS += $$getFilesFromDir($$DIRECTORIES,*.hh)
SOURCES += $$getFilesFromDir($$DIRECTORIES,*.cc)
FORMS += $$getFilesFromDir($$DIRECTORIES,*.ui)
################################################################################
################################################################################
#
################################################################################
include( $$TOPDIR/qmake/all.include )
INCLUDEPATH += ../../..
Application()
glew()
glut()
openmesh()
DIRECTORIES = .. ../../QtViewer
# Input
HEADERS += $$getFilesFromDir($$DIRECTORIES,*.hh)
SOURCES += ../../QtViewer/QGLViewerWidget.cc ../../QtViewer/MeshViewerWidgetT.cc ../SubdivideWidget.cc
SOURCES += ../qtsubdivider.cc
################################################################################
################################################################################
#
################################################################################
include( $$TOPDIR/qmake/all.include )
INCLUDEPATH += ../../..
Application()
openmesh()
# Input
SOURCES += ../adaptive_subdivider.cc
################################################################################
################################################################################
#
################################################################################
include( $$TOPDIR/qmake/all.include )
INCLUDEPATH += ../../..
Application()
openmesh()
# Input
SOURCES += ../subdivider.cc
################################################################################