[Cmake] some starting help wanted :-)

Alexander Neundorf a.neundorf-work at gmx.net
Thu, 29 Apr 2004 16:49:16 +0200 (MEST)


This is a MIME encapsulated multipart message -
please use a MIME-compliant e-mail program to open it.

Dies ist eine mehrteilige Nachricht im MIME-Format -
bitte verwenden Sie zum Lesen ein MIME-konformes Mailprogramm.

--========GMXBoundary124011083250156
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

> Alexander Neundorf wrote:  
> > Hi,   
> >    
> > until now I used only some basic functions of cmake, now I want to do   
> > something more with it, i.e. try to add better support for Qt and KDE.  

> >    
> > 1) There is a FindQt file, which searches for libqt. Now I'd like to   
> > improve it this way that I can specify which version of Qt I need at  
> least   
> > and whether I need the multithreaded version of Qt or not.   
>   
> You could modify the file to look for a QT_REQUIRED_VERSION variable and  

>   use its contents to check for a particular version.  
  
Ok, here is a first try.  
 
In CMakeLists.txt you can set 
SET(QT_MT_REQUIRED TRUE) 
if you need the multithreaded Qt version. 
 
You can also set  
SET(QT_MIN_VERSION "3.2.0") 
if you require a minimum version of Qt. 
 
It also tries to compile and run a very small Qt app. 
 
The version checking wasn't quite easy. In qglobal.h there is a
QT_VERSION_STR 
defined. But how should I compare this to the value specified in
QT_MIN_VERSION ? 
The only way I found so far was to write the attached file 
CheckForQtMinVersion.cpp.in, where cmake replaces a placeholder with the
specified 
minimum version, and which compares this version with the one from
qglobal.h. Seems to 
me quite complicated. I also wanted to do something with awk, but this
doesn't exist 
under Win, so I guess I can't use it. 
 
I had also some problems with getting TRY_COMPILE and TRY_RUN to work. Is
there a way 
to get the used compile command and the error and warning messages ? I
couldn't find 
them anywhere. 
 
What do you think ? Is it on the right track or am I completely off ? 
 
Bye 
Alex 
  

-- 
NEU : GMX Internet.FreeDSL
Ab sofort DSL-Tarif ohne Grundgebühr: http://www.gmx.net/dsl
--========GMXBoundary124011083250156
Content-Type: text/plain; name="FindQtX.cmake"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="FindQtX.cmake"

IyBMb2NhdGUgUXQgaW5jbHVkZSBwYXRocyBhbmQgbGlicmFyaWVzDQoNCiMgVGhpcyBtb2R1bGUg
ZGVmaW5lcw0KIyBRVF9JTkNMVURFX0RJUiwgd2hlcmUgdG8gZmluZCBxdC5oLCBldGMuDQojIFFU
X0xJQlJBUklFUywgdGhlIGxpYnJhcmllcyB0byBsaW5rIGFnYWluc3QgdG8gdXNlIFF0Lg0KIyBR
VF9ERUZJTklUSU9OUywgZGVmaW5pdGlvbnMgdG8gdXNlIHdoZW4gY29tcGlsaW5nIGNvZGUgdGhh
dCB1c2VzIFF0Lg0KIyBRVF9XUkFQX0NQUCwgSWYgZmFsc2UsIGRvbid0IHVzZSBRVF9XUkFQX0NQ
UCBjb21tYW5kLg0KIyBRVF9XUkFQX1VJLCBJZiBmYWxzZSwgZG9uJ3QgdXNlIFFUX1dSQVBfVUkg
Y29tbWFuZC4NCiMgUVRfRk9VTkQsIElmIGZhbHNlLCBkb24ndCB0cnkgdG8gdXNlIFF0Lg0KDQoj
aWYgeW91IG5lZWQgdGhlIG11bHRpdGhyZWFkZWQgdmVyc2lvbiBvZiBRdCwgc2V0IFFUX01UX1JF
UVVJUkVEIHRvIFRSVUUNCg0KIyBhbHNvIGRlZmluZWQsIGJ1dCBub3QgZm9yIGdlbmVyYWwgdXNl
IGFyZQ0KIyBRVF9NT0NfRVhFQ1VUQUJMRSwgd2hlcmUgdG8gZmluZCB0aGUgbW9jIHRvb2wuDQoj
IFFUX1VJQ19FWEVDVVRBQkxFLCB3aGVyZSB0byBmaW5kIHRoZSB1aWMgdG9vbC4NCiMgUVRfUVRf
TElCUkFSWSwgd2hlcmUgdG8gZmluZCB0aGUgUXQgbGlicmFyeS4NCiMgUVRfUVRNQUlOX0xJQlJB
UlksIHdoZXJlIHRvIGZpbmQgdGhlIHF0bWFpbiBsaWJyYXJ5LiBUaGlzIGlzIG9ubHkgcmVxdWly
ZWQgYnkgUXQzIG9uIFdpbmRvd3MuDQoNCg0KSUYgKFFUX01UX1JFUVVJUkVEKQ0KICAgTUVTU0FH
RSggU1RBVFVTICJDaGVja2luZyBmb3IgUXQgLSBtdWx0aXRocmVhZGVkIHZlcnNpb24iKQ0KICAg
RklORF9MSUJSQVJZKFFUX1FUX0xJQlJBUlkNCiAgICAgICAgTkFNRVMgcXQtbXQgcXQtbXQyMzBu
Yw0KICAgICAgICBQQVRIUw0KICAgICAgICAkRU5We1FURElSfS9saWINCiAgICAgICAgL3Vzci9s
b2NhbC9xdC9saWINCiAgICAgICAgL3Vzci9sb2NhbC9saWINCiAgICAgICAgL3Vzci9saWIvcXQv
bGliDQogICAgICAgIC91c3IvbGliDQogICAgICAgIEM6L1Byb2dyYX4xL3F0L2xpYg0KICAgICAp
DQoNCkVMU0UgKFFUX01UX1JFUVVJUkVEKQ0KICAgTUVTU0FHRShTVEFUVVMgIkNoZWNraW5nIGZv
ciBRdCIpDQogICBGSU5EX0xJQlJBUlkoUVRfUVRfTElCUkFSWQ0KICAgICAgICBOQU1FUyBxdCBx
dC1tdCBxdC1tdDIzMG5jDQogICAgICAgIFBBVEhTDQogICAgICAgICRFTlZ7UVRESVJ9L2xpYg0K
ICAgICAgICAvdXNyL2xvY2FsL3F0L2xpYg0KICAgICAgICAvdXNyL2xvY2FsL2xpYg0KICAgICAg
ICAvdXNyL2xpYi9xdC9saWINCiAgICAgICAgL3Vzci9saWINCiAgICAgICAgQzovUHJvZ3JhfjEv
cXQvbGliDQogICAgICkNCiAgICAgDQpFTkRJRiAoUVRfTVRfUkVRVUlSRUQpDQoNCkZJTkRfUEFU
SChRVF9JTkNMVURFX0RJUiBxdC5oDQogICRFTlZ7UVRESVJ9L2luY2x1ZGUNCiAgL3Vzci9sb2Nh
bC9xdC9pbmNsdWRlDQogIC91c3IvbG9jYWwvaW5jbHVkZQ0KICAvdXNyL2xpYi9xdC9pbmNsdWRl
DQogIC91c3IvaW5jbHVkZS9xdA0KICAvdXNyL2luY2x1ZGUNCiAgQzovUHJvZ3JhfjEvcXQvaW5j
bHVkZQ0KICApDQoNCkZJTkRfTElCUkFSWShRVF9RQVNTSVNUQU5UQ0xJRU5UX0xJQlJBUlkNCiAg
TkFNRVMgcWFzc2lzdGFudGNsaWVudA0KICBQQVRIUw0KICAkRU5We1FURElSfS9saWINCiAgL3Vz
ci9sb2NhbC9xdC9saWINCiAgL3Vzci9sb2NhbC9saWINCiAgL3Vzci9saWINCiAgQzovUHJvZ3Jh
fjEvcXQvbGliDQogICkNCg0KRklORF9QUk9HUkFNKFFUX01PQ19FWEVDVVRBQkxFIG1vYw0KICAk
RU5We1FURElSfS9iaW4gDQogIC91c3IvbG9jYWwvcXQvYmluDQogIC91c3IvbGliL3F0L2Jpbg0K
ICBDOi9Qcm9ncmF+MS9xdC9iaW4NCiAgKQ0KDQpGSU5EX1BST0dSQU0oUVRfVUlDX0VYRUNVVEFC
TEUgdWljDQogICRFTlZ7UVRESVJ9L2JpbiANCiAgL3Vzci9sb2NhbC9xdC9iaW4NCiAgL3Vzci9s
aWIvcXQvYmluDQogIEM6L1Byb2dyYX4xL3F0L2Jpbg0KKQ0KDQoNCklGIChXSU4zMikNCiAgRklO
RF9MSUJSQVJZKFFUX1FUTUFJTl9MSUJSQVJZIHF0bWFpbg0KICAgICRFTlZ7UVRESVJ9L2xpYiBD
Oi9Qcm9ncmF+MS9xdC9saWINCiAgICBET0MgIlRoaXMgTGlicmFyeSBpcyBvbmx5IG5lZWRlZCBi
eSBhbmQgaW5jbHVkZWQgd2l0aCBRdDMgb24gTVNXaW5kb3dzLiBJdCBzaG91bGQgYmUgTk9URk9V
TkQsIHVuZGVmaW5lZCBvciBJR05PUkUgb3RoZXJ3aXNlLiINCiAgICApDQpFTkRJRiAoV0lOMzIp
DQoNCg0KSUYgKFFUX01PQ19FWEVDVVRBQkxFKQ0KICBTRVQgKCBRVF9XUkFQX0NQUCAiWUVTIikN
CkVORElGIChRVF9NT0NfRVhFQ1VUQUJMRSkNCg0KSUYgKFFUX1VJQ19FWEVDVVRBQkxFKQ0KICBT
RVQgKCBRVF9XUkFQX1VJICJZRVMiKQ0KRU5ESUYgKFFUX1VJQ19FWEVDVVRBQkxFKQ0KDQoNCklG
KFFUX0lOQ0xVREVfRElSKQ0KICBJRihRVF9RVF9MSUJSQVJZKQ0KI25vdyB0ZXN0IHdoZXRoZXIg
Y29tcGlsaW5nIGEgUXQgYXBwIHdvcmtzDQogICBJRiAoUVRfTUlOX1ZFUlNJT04pDQogICAgICBD
T05GSUdVUkVfRklMRSguL0NoZWNrRm9yUXRNaW5WZXJzaW9uLmNwcC5pbg0KICAgICAgLi9DaGVj
a0ZvclF0TWluVmVyc2lvbi5jcHAgSU1NRURJQVRFKQ0KICAgICAgVFJZX1JVTihxdF9ydW5fcmVz
IHF0X2NvbXBfcmVzIA0KCSAgJHtDTUFLRV9CSU5BUllfRElSfQ0KICAgICAgICAgIC4uL0NoZWNr
Rm9yUXRNaW5WZXJzaW9uLmNwcA0KICAgICAgICAgQ01BS0VfRkxBR1MgDQogICAgICAgIC1ETElO
S19MSUJSQVJJRVM6U1RSSU5HPSR7UVRfUVRfTElCUkFSWX0NCiAgICAgICAgICkNCiAgIEVMU0Ug
KFFUX01JTl9WRVJTSU9OKQ0KICAgICAgVFJZX1JVTihxdF9ydW5fcmVzIHF0X2NvbXBfcmVzIA0K
CSAgJHtDTUFLRV9CSU5BUllfRElSfQ0KICAgICAgICAgIC4uL0NoZWNrRm9yUXQuY3BwDQogICAg
ICAgIENNQUtFX0ZMQUdTIA0KICAgICAgIC1ETElOS19MSUJSQVJJRVM6U1RSSU5HPSR7UVRfUVRf
TElCUkFSWX0NCiAgICAgICAgICApDQogICBFTkRJRiAoUVRfTUlOX1ZFUlNJT04pDQoNCiNub3cg
Y2hlY2sgaWYgaXQgc3VjY2VlZGVkDQogICBJRiAocXRfY29tcF9yZXMpDQogICAgICBJRiAoUVRf
TUlOX1ZFUlNJT04pDQogICAgICAgICBJRiAocXRfcnVuX3JlcyBNQVRDSEVTIDApDQogICAgICAg
ICAgICBNRVNTQUdFKFNUQVRVUyAiVHJ5aW5nIHRvIGNvbXBpbGUgYW5kIHJ1biBhIHNpbXBsZSBR
dCBhcHAgLSB3b3JrcyBhbmQgdmVyc2lvbiBpcyBvayIpDQogICAgICAgICBFTFNFIChxdF9ydW5f
cmVzIE1BVENIRVMgMCkNCiAgICAgICAgICAgIE1FU1NBR0UoU1RBVFVTICJUcnlpbmcgdG8gY29t
cGlsZSBhbmQgcnVuIGEgc2ltcGxlIFF0IGFwcCAtIHZlcnNpb24gbm90IG9rIikNCiAgICAgICAg
IEVORElGIChxdF9ydW5fcmVzIE1BVENIRVMgMCkNCiAgICAgIEVMU0UgKFFUX01JTl9WRVJTSU9O
KQ0KICAgICAgICAgSUYgKHF0X3J1bl9yZXMgTUFUQ0hFUyAxKQ0KICAgICAgICAgICAgTUVTU0FH
RShTVEFUVVMgIlRyeWluZyB0byBjb21waWxlIGFuZCBydW4gYSBzaW1wbGUgUXQgYXBwIC0gd29y
a3MiKQ0KICAgICAgICAgRUxTRSAocXRfcnVuX3JlcyBNQVRDSEVTIDEpDQogICAgICAgICAgICBN
RVNTQUdFKFNUQVRVUyAiVHJ5aW5nIHRvIGNvbXBpbGUgYW5kIHJ1biBhIHNpbXBsZSBRdCBhcHAg
LSBjb21waWxpbmcgc3VjY2VlZGVkLCBydW5uaW5nIGZhaWxlZCIpDQogICAgICAgICBFTkRJRiAo
cXRfcnVuX3JlcyBNQVRDSEVTIDEpDQogICAgICBFTkRJRiAoUVRfTUlOX1ZFUlNJT04pDQogICBF
TFNFIChxdF9jb21wX3JlcykNCiAgICAgIE1FU1NBR0UoU1RBVFVTICJUcnlpbmcgdG8gY29tcGls
ZSBhbmQgcnVuIGEgc2ltcGxlIFF0IGFwcCAtIGZhaWxlZCIpDQogICBFTkRJRiAocXRfY29tcF9y
ZXMpDQoNCiAgIFNFVCggUVRfTElCUkFSSUVTICR7UVRfTElCUkFSSUVTfSAke1FUX1FUX0xJQlJB
Ull9ICkNCiAgIFNFVCggUVRfRk9VTkQgIllFUyIgKQ0KICAgU0VUKCBRVF9ERUZJTklUSU9OUyAi
IikNCg0KICAgSUYgKFdJTjMyKQ0KICAgICAgSUYgKFFUX1FUTUFJTl9MSUJSQVJZKQ0KICAgICAg
ICAjIGZvciB2ZXJzaW9uIDMNCiAgICAgICAgU0VUIChRVF9ERUZJTklUSU9OUyAtRFFUX0RMTCkN
CiAgICAgICAgU0VUIChRVF9ERUZJTklUSU9OUyAiLURRVF9ETEwgLURRVF9USFJFQURfU1VQUE9S
VCAtRE5PX0RFQlVHIikNCiAgICAgICAgU0VUIChRVF9MSUJSQVJJRVMgaW1tMzIubGliICR7UVRf
UVRfTElCUkFSWX0gJHtRVF9RVE1BSU5fTElCUkFSWX0gKQ0KICAgICAgICBTRVQgKFFUX0xJQlJB
UklFUyAke1FUX0xJQlJBUklFU30gd2lubW0gd3NvY2szMikNCiAgICAgIEVMU0UgKFFUX1FUTUFJ
Tl9MSUJSQVJZKQ0KICAgICAgICAjIGZvciB2ZXJzaW9uIDINCiAgICAgICAgU0VUIChRVF9MSUJS
QVJJRVMgaW1tMzIubGliIHdzMl8zMi5saWIgJHtRVF9RVF9MSUJSQVJZfSApDQogICAgICBFTkRJ
RiAoUVRfUVRNQUlOX0xJQlJBUlkpDQogICBFTFNFIChXSU4zMikNCiAgICAgIFNFVCAoUVRfTElC
UkFSSUVTICR7UVRfUVRfTElCUkFSWX0gKQ0KICAgRU5ESUYgKFdJTjMyKQ0KDQogICBJRiAoUVRf
UUFTU0lTVEFOVENMSUVOVF9MSUJSQVJZKQ0KICAgICAgU0VUIChRVF9MSUJSQVJJRVMgJHtRVF9R
QVNTSVNUQU5UQ0xJRU5UX0xJQlJBUll9ICR7UVRfTElCUkFSSUVTfSkNCiAgIEVORElGIChRVF9R
QVNTSVNUQU5UQ0xJRU5UX0xJQlJBUlkpDQoNCg0KDQogICAgIyBCYWNrd2FyZHMgY29tcGF0aWJp
bGl0eSBmb3IgQ01ha2UxLjQgYW5kIDEuMg0KICAgIFNFVCAoUVRfTU9DX0VYRSAke1FUX01PQ19F
WEVDVVRBQkxFfSApDQogICAgU0VUIChRVF9VSUNfRVhFICR7UVRfVUlDX0VYRUNVVEFCTEV9ICkN
Cg0KICAgIElGKFVOSVgpDQogICAgICBJTkNMVURFKCAke0NNQUtFX1JPT1R9L01vZHVsZXMvRmlu
ZFgxMS5jbWFrZSApDQogICAgICBJRiAoWDExX0ZPVU5EKQ0KICAgICAgICBTRVQgKFFUX0xJQlJB
UklFUyAke1FUX0xJQlJBUklFU30gJHtYMTFfTElCUkFSSUVTfSkNCiAgICAgIEVORElGIChYMTFf
Rk9VTkQpDQogICAgICBJRiAoQ01BS0VfRExfTElCUykNCiAgICAgICAgU0VUIChRVF9MSUJSQVJJ
RVMgJHtRVF9MSUJSQVJJRVN9ICR7Q01BS0VfRExfTElCU30pDQogICAgICBFTkRJRiAoQ01BS0Vf
RExfTElCUykNCiAgICBFTkRJRihVTklYKQ0KICAgIElGKFFUX1FUX0xJQlJBUlkgTUFUQ0hFUyAi
cXQtbXQiKQ0KICAgICAgSU5DTFVERSggJHtDTUFLRV9ST09UfS9Nb2R1bGVzL0ZpbmRUaHJlYWRz
LmNtYWtlICkNCiAgICAgIFNFVChRVF9MSUJSQVJJRVMgJHtRVF9MSUJSQVJJRVN9ICR7Q01BS0Vf
VEhSRUFEX0xJQlNfSU5JVH0pDQogICAgRU5ESUYoUVRfUVRfTElCUkFSWSBNQVRDSEVTICJxdC1t
dCIpDQoNCiAgRU5ESUYoUVRfUVRfTElCUkFSWSkNCkVORElGKFFUX0lOQ0xVREVfRElSKQ0KDQoN
Ck1BUktfQVNfQURWQU5DRUQoDQogIFFUX0lOQ0xVREVfRElSDQogIFFUX1FUX0xJQlJBUlkNCiAg
UVRfUVRNQUlOX0xJQlJBUlkNCiAgUVRfUUFTU0lTVEFOVENMSUVOVF9MSUJSQVJZDQogIFFUX1VJ
Q19FWEVDVVRBQkxFDQogIFFUX01PQ19FWEVDVVRBQkxFDQogIFFUX1dSQVBfQ1BQDQogIFFUX1dS
QVBfVUkNCiAgKSANCg==

--========GMXBoundary124011083250156
Content-Type: text/x-csrc; name="CheckForQtMinVersion.cpp.in"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="CheckForQtMinVersion.cpp.in"

I2luY2x1ZGUgPHFnbG9iYWwuaD4NCiNpbmNsdWRlIDxxc3RyaW5nbGlzdC5oPg0KDQppbnQgbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpDQp7DQogICBRU3RyaW5nTGlzdCBpc1NsPVFTdHJpbmdM
aXN0OjpzcGxpdCgnLicsIFFUX1ZFUlNJT05fU1RSKTsNCg0KICAgUVN0cmluZ0xpc3QgcmVxU2w9
UVN0cmluZ0xpc3Q6OnNwbGl0KCcuJywgIiR7UVRfTUlOX1ZFUlNJT059Iik7DQogICBpZiAoKGlz
U2wuY291bnQoKSE9MykgfHwgKHJlcVNsLmNvdW50KCkhPTMpKQ0KICAgICAgcmV0dXJuIDE7DQoN
CiAgIGlmIChyZXFTbFswXS50b1VJbnQoKSA+IGlzU2xbMF0udG9VSW50KCkpDQogICAgICByZXR1
cm4gMjsNCiAgIGVsc2UgaWYgKHJlcVNsWzBdLnRvVUludCgpIDwgaXNTbFswXS50b1VJbnQoKSkN
CiAgICAgIHJldHVybiAwOw0KDQovL21ham9yIGlzIGVxdWFsDQogICBpZiAocmVxU2xbMV0udG9V
SW50KCkgPiBpc1NsWzFdLnRvVUludCgpKQ0KICAgICAgcmV0dXJuIDM7DQogICBlbHNlIGlmIChy
ZXFTbFsxXS50b1VJbnQoKSA8IGlzU2xbMV0udG9VSW50KCkpDQogICAgICByZXR1cm4gMDsNCg0K
Ly9taWRkbGUgaXMgZXF1YWwNCiAgIGlmIChyZXFTbFsyXS50b1VJbnQoKSA+IGlzU2xbMl0udG9V
SW50KCkpDQogICAgICByZXR1cm4gNDsNCg0KICAgcmV0dXJuIDA7DQp9DQo=

--========GMXBoundary124011083250156
Content-Type: text/x-c++src; name="CheckForQt.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="CheckForQt.cpp"

I2luY2x1ZGUgPHFhcHBsaWNhdGlvbi5oPg0KDQppbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpDQp7DQogICBRQXBwbGljYXRpb24gYShhcmdjLCBhcmd2KTsNCiAgIHJldHVybiAxOw0KfQ==

--========GMXBoundary124011083250156--