Warning, /games/ksirk/ksirk/iris/qcm/qca.qcm is written in an unsupported language. File is not indexed.

0001 /*
0002 -----BEGIN QCMOD-----
0003 name: QCA >= 2.0
0004 arg: with-qca=[path],Specify path to QCA tree, mainly for building against an uninstalled QCA.
0005 -----END QCMOD-----
0006 */
0007 
0008 // based on crypto.prf. any changes made to that file need to be tracked here.
0009 static QString internal_crypto_prf(const QString &incdir, const QString &libdir)
0010 {
0011         QString out = QString(
0012 "QCA_INCDIR = %1\n"
0013 "QCA_LIBDIR = %2\n"
0014 "\n"
0015 "CONFIG *= qt\n"
0016 "\n"
0017 "LINKAGE =\n"
0018 "\n"
0019 "# on mac, if qca was built as a framework, link against it\n"
0020 "mac: {\n"
0021 "       framework_dir = $$QCA_LIBDIR\n"
0022 "       exists($$framework_dir/qca.framework) {\n"
0023 "               #QMAKE_FRAMEWORKPATH *= $$framework_dir\n"
0024 "               LIBS += -F$$framework_dir\n"
0025 "               INCLUDEPATH += $$framework_dir/qca.framework/Headers\n"
0026 "               LINKAGE = -framework qca\n"
0027 "       }\n"
0028 "}\n"
0029 "\n"
0030 "# else, link normally\n"
0031 "isEmpty(LINKAGE) {\n"
0032 "       INCLUDEPATH += $$QCA_INCDIR/QtCrypto\n"
0033 "       LIBS += -L$$QCA_LIBDIR\n"
0034 "       LINKAGE = -lqca\n"
0035 "       CONFIG(debug, debug|release) {\n"
0036 "               windows:LINKAGE = -lqcad\n"
0037 "               mac:LINKAGE = -lqca_debug\n"
0038 "       }\n"
0039 "}\n"
0040 "\n"
0041 "LIBS += $$LINKAGE\n"
0042         ).arg(incdir, libdir);
0043         return out;
0044 }
0045 
0046 #define QC_QCA
0047 QString qc_qca_procode;
0048 
0049 //----------------------------------------------------------------------------
0050 // qc_qca
0051 //----------------------------------------------------------------------------
0052 class qc_qca : public ConfObj
0053 {
0054 public:
0055         qc_qca(Conf *c) : ConfObj(c) {}
0056         QString name() const { return "QCA >= 2.0"; }
0057         QString shortname() const { return "qca"; }
0058         bool exec()
0059         {
0060                 // get the build mode
0061 #ifdef QC_BUILDMODE
0062                 bool release = qc_buildmode_release;
0063                 bool debug = qc_buildmode_debug;
0064 #else
0065                 // else, default to just release mode
0066                 bool release = true;
0067                 bool debug = false;
0068 #endif
0069 
0070                 // test for "crypto" feature and check qca version number
0071                 QString qca_prefix, qca_incdir, qca_libdir, qca_crypto_prf;
0072                 qca_prefix = conf->getenv("QC_WITH_QCA");
0073 
0074                 QString proextra;
0075                 if(!qca_prefix.isEmpty()) {
0076                         qca_incdir = qca_prefix + "/include";
0077                         qca_libdir = qca_prefix + "/lib";
0078                         qca_crypto_prf = internal_crypto_prf(qca_incdir, qca_libdir);
0079                         proextra =
0080                         "CONFIG += qt\n"
0081                         "QT -= gui\n";
0082                         proextra += qca_crypto_prf;
0083                 } else {
0084                         proextra =
0085                         "CONFIG += qt crypto\n"
0086                         "QT -= gui\n";
0087                 }
0088 
0089                 QString str =
0090                 "#include <QtCrypto>\n"
0091                 "\n"
0092                 "int main()\n"
0093                 "{\n"
0094                 "       unsigned long x = QCA_VERSION;\n"
0095                 "       if(x >= 0x020000 && x < 0x030000) return 0; else return 1;\n"
0096                 "}\n";
0097 
0098                 if(release)
0099                 {
0100                         int ret;
0101                         if(!conf->doCompileAndLink(str, QStringList(), QString(), proextra + "CONFIG += release\n", &ret))
0102                                 return false;
0103                         if(ret != 0)
0104                                 return false;
0105                 }
0106 
0107                 if(debug)
0108                 {
0109                         int ret;
0110                         if(!conf->doCompileAndLink(str, QStringList(), QString(), proextra + "CONFIG += debug\n", &ret))
0111                                 return false;
0112                         if(ret != 0)
0113                                 return false;
0114                 }
0115 
0116                 if(!qca_prefix.isEmpty())
0117                         str = qca_crypto_prf;
0118                 else
0119                         str = "CONFIG += crypto\n";
0120 
0121                 qc_qca_procode = str;
0122                 conf->addExtra(str);
0123 
0124                 return true;
0125         }
0126 };