blob: ccf1a8b6e00d4867ae5335059ee160cd14bfaeff (
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
97
98
99
|
# =============================================
# Subroutine for project files to detect which OS is compiling the project
# Generic variables it sets for internal use: OS, LINUX_DISTRO (if OS=="Linux")
# =============================================
# Main Build Variables (generally for finding existing files):
# PREFIX: Base install directory (${PREFIX}/[bin/share/etc/include] will be used)
# LIBPREFIX: Base install directory for libraries (usually ${PREFIX}/lib)
# Detailed Build Variables for installing files:
# L_BINDIR: Directory to install binaries
# L_LIBDIR: Directory to install Libraries
# L_ETCDIR: Directory to install/use global configs
# L_SHAREDIR: Directory to install the general Lumina files
# L_INCLUDEDIR: Directory to install include files
# L_SESSDIR: Directory to place *.desktop file for starting the Lumina session
# LRELEASE: binary path to the Qt lrelease utility (usually auto-set)
# =============================================
# Note: Make sure the OS variable matches the name of a libLumina/LuminaOS-<OS>.cpp file
# =============================================
!defined(OS){
message("Build OS Info: $${QMAKE_HOST.os}, $${QMAKE_HOST.arch}, $${QMAKE_HOST.version_string}")
#Load the initial library/includefile search locations (more can be added in the OS-specific sections below)
LIBS = -L$${PWD}/libLumina -L$$[QT_INSTALL_LIBS]
INCLUDEPATH = $${PWD}/libLumina $$[QT_INSTALL_HEADERS] $$[QT_INSTALL_PREFIX]
#Setup the default values for build settings (if not explicitly set previously)
!defined(PREFIX){ PREFIX=/usr/local }
!defined(LIBPREFIX){ LIBPREFIX=$${PREFIX}/lib }
#Now go through and setup any known OS build settings
# which are different from the defaults
equals(QMAKE_HOST.os, "DragonFly"){
#Note: DragonFly BSD gets detected as FreeBSD with compiler flags ?
OS = DragonFly
LIBS += -L/usr/local/lib -L/usr/lib
}else : freebsd-*{
OS = FreeBSD
LIBS += -L/usr/local/lib -L/usr/lib
#Use the defaults for everything else
}else : openbsd-*{
OS = OpenBSD
LIBS += -L/usr/local/lib -L/usr/lib
#Use the defaults for everything else
}else : netbsd-*{
OS = NetBSD
LIBS += -L/usr/local/lib -L/usr/lib
PREFIX=/usr/local
LIBPREFIX=/usr/local/lib
#Use the defaults for everything else
}else : linux-*{
L_SESSDIR=/usr/share/xsessions
OS=Linux
LIBS += -L/usr/local/lib -L/usr/lib -L/lib
PREFIX = /usr
exists(/bin/lsb_release){
LINUX_DISTRO = $$system(lsb_release -si)
} else:exists(/usr/bin/lsb_release){
LINUX_DISTRO = $$system(lsb_release -si)
}
#Now switch through known Linux distro templates
equals(LINUX_DISTRO, "Fedora"){
PREFIX=/usr/local
equals($${QMAKE_HOST.arch},"amd64"){ L_LIBDIR=/lib64 }
else{ L_LIBDIR=/lib }
}
}else{
OS="Unknown";
}
MSG="Build Settings Loaded: $${OS}"
equals(OS,"Linux"){ MSG+="-$${LINUX_DISTRO}" }
message( $$MSG )
# Setup the dirs needed to find/load libraries
QMAKE_LIBDIR = $${PWD}/libLumina $$[QT_INSTALL_LIBS] $$LIBPREFIX/qt5 $$LIBPREFIX
INCLUDEPATH +=$${PREFIX}/include
# If the detailed install variables are not set - create them from the general vars
!defined(L_BINDIR){ L_BINDIR = $${PREFIX}/bin }
!defined(L_LIBDIR){ L_LIBDIR = $${PREFIX}/lib }
!defined(L_ETCDIR){ L_ETCDIR = $${PREFIX}/etc }
!defined(L_SHAREDIR){ L_SHAREDIR = $${PREFIX}/share }
!defined(L_INCLUDEDIR){ L_INCLUDEDIR = $${PREFIX}/include }
!defined(L_SESSDIR){ L_SESSDIR = $${L_SHAREDIR}/xsessions }
!defined(LRELEASE){ LRELEASE = $$[QT_INSTALL_BINS]/lrelease }
!exists(LRELEASE){ NO_I18N=true } #translations unavailable
#Now convert any of these path variables into defines for C++ usage
DEFINES += PREFIX="QString\\\(\\\"$${PREFIX}\\\"\\\)"
DEFINES += L_ETCDIR="QString\\\(\\\"$${L_ETCDIR}\\\"\\\)"
DEFINES += L_SHAREDIR="QString\\\(\\\"$${L_SHAREDIR}\\\"\\\)"
}
|