Commit dcc6b433 authored by Jan Möbius's avatar Jan Möbius

Removed qmake directory

parent d097d916
Pipeline #6859 passed with stage
in 71 minutes and 57 seconds
################################################################################
# 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)
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment