Bump version to 0.36.9
[cygport.git] / cygclass / qt5-qmake.cygclass
blobb7ce1c0eb8fd849aae6b3c920b239cc4021dafc9
1 ################################################################################
3 # qt5-qmake.cygclass - functions for building QMake-based Qt5 packages
5 # Part of cygport - Cygwin packaging application
6 # Copyright (C) 2006-2020 Cygport authors
7 # Provided by the Cygwin project <https://cygwin.com/>
9 # cygport is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or
12 # (at your option) any later version.
14 # cygport is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with cygport.  If not, see <https://www.gnu.org/licenses/>.
22 ################################################################################
24 #****h* Cygclasses/qt5-qmake.cygclass
25 #  SYNOPSIS
26 #  inherit qt5-qmake
27 #  DESCRIPTION
28 #  This cygclass builds Qt5-based packages which use the qmake build system,
29 #  including the Qt5 non-base components themselves.
30 #  INHERITS
31 #  qt5.cygclass
32 #****
34 inherit qt5
36 #****C* qt5-qmake.cygclass/cygqmake5
37 #  SYNOPSIS
38 #  cygqmake5 FILE_OR_DIRECTORY
39 #  DESCRIPTION
40 #  Generates Makefiles from the specified qmake project file (or directory
41 #  containing such file).
42 #****
43 cygqmake5() {
44         if [ ! -x ${QT5_QMAKE} ]
45         then
46                 error "libQt5Core-devel is required to build this package"
47         fi
49         ${QT5_QMAKE} \
50                 QMAKE_CFLAGS_RELEASE="${CFLAGS}" \
51                 QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" \
52                 QMAKE_LFLAGS_RPATH= \
53                 QMAKE_STRIP=: \
54                 QMAKE_PROJECT_DEPTH=0 \
55                 ${CYGQMAKE5_ARGS} "${@}" \
56                 || error "qmake failed"
59 #****C* qt5-qmake.cygclass/qt5_qmake_compile
60 #  DEFINITION
61 qt5_qmake_compile() {
62         cygqmake5 ${S}
63         cygmake
65 #****
67 #****I* qt5-qmake.cygclass/qt5_qmake_install
68 #  SYNOPSIS
69 #  cd $B
70 #  qt5_qmake_install [OPTIONS]
71 #  DESCRIPTION
72 #  Installs the package into $D and fixes some common installation issues.
73 #  Any additional arguments (which may be either variable overrides or
74 #  additional install targets) are passed directly to make.
75 #  WARNING
76 #  Many qmake projects do not define correct install rules, if any at all.
77 #  qt5_qmake_install is of no use in such cases; you must use manual
78 #  installation commands instead.
79 #****
80 qt5_qmake_install() {
81         local dll la pc
83         make INSTALL_ROOT=${D} install ${@} || error "make install failed"
85         for dll in $(find ${D}$(__host_prefix)/lib/ -maxdepth 1 -name '*.dll' 2> /dev/null)
86         do
87                 dodir $(__host_prefix)/bin
88                 mv ${dll} ${D}$(__host_prefix)/bin/
90                 # dlname would need to be fixed for ../bin, and old_library
91                 # made empty, but we don't want .la files anyway
92                 la=$(echo ${dll} | sed -e 's|cyg\([^/]*\)-[0-9]*\.dll|lib\1.la|')
93                 if [ -f ${la} ]
94                 then
95                         rm -f ${la}
96                 fi
97         done
100 #****o* qt5-qmake.cygclass/src_compile (qt5-qmake)
101 #  DEFINITION
102 src_compile() {
103         cd ${B}
104         qt5_qmake_compile
106 #****
108 #****o* qt5-qmake.cygclass/src_install (qt5-qmake)
109 #  DEFINITION
110 src_install() {
111         cd ${B}
112         qt5_qmake_install
114 #****
116 readonly -f cygqmake5 qt5_qmake_compile qt5_qmake_install