[Cmake] How to build two libraries that mutually import functions

Karr, David David.Karr at titan.com
Fri, 26 Mar 2004 08:32:01 -0500


VGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbnMuIEkgdGhvdWdodCBwZXJoYXBzIHRoZXJlIG1pZ2h0
DQpiZSBhIGtub3duIHdheSB0byBhZGQgYSBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIC5kbGwNCm9m
IG9uZSBwcm9qZWN0IGFuZCB0aGUgLmV4cCBhbmQvb3IgLmxpYiBvZiBhbm90aGVyIGFuZCBoYXZl
IA0KdGhlIC5leHAgYW5kIC5saWIgZ2VuZXJhdGVkIGZpcnN0LiBJIGRpZCBjb25maXJtIHRoYXQg
aXQgaXMgDQpwb3NzaWJsZSB0byBidWlsZCB0aGVzZSBmaWxlcyBtYW51YWxseSB1c2luZyBMSUIg
L0VYUC4NCiANClRoZSByZWFzb24gdGhpcyBjYW1lIHVwIGluIHRoZSBmaXJzdCBwbGFjZSAobGli
cmFyaWVzIHRoYXQNCmltcG9ydCBmdW5jdGlvbnMgZnJvbSBlYWNoIG90aGVyKSBpcyBkdWUgdG8g
dGhlIGZhY3QgdGhhdA0KdGhlIGRlc2lnbiBvZiBjbGFzc2VzIGluIHRoZSBsaWJyYXJpZXMgaXMg
dW5kZXIgZGV2ZWxvcG1lbnQsDQphbmQgdGhlIG9idmlvdXMgd29ya2Fyb3VuZCBpcyB0byByZWRl
c2lnbiB0aGUgbGlicmFyaWVzDQp0aGVtc2VsdmVzIHRvIHJlbW92ZSBjaXJjdWxhcml0eS4gU3Rp
bGwsIGl0IHdvdWxkIGJlIGENCm5lYXQgdHJpY2sgdG8gYmUgYWJsZSB0byBjcmVhdGUganVzdCB0
aGUgLmV4cCBhbmQgLmxpYiBmaWxlcw0Kb2Ygb25lIGxpYnJhcnkgaW4gb3JkZXIgdG8gYnVpbGQg
YW5vdGhlciBsaWJyYXJ5Lg0KSSBoYXZlbid0IGhhZCB0aW1lIHRvIGludmVzdGlnYXRlIGl0IG11
Y2ggeWV0LCBidXQgSSB0aGluaw0KSSBzaG91bGQgbGVhcm4gaG93IEFERF9DVVNUT01fQ09NTUFO
RCB3b3Jrcy4NCiANCkRhdmlkDQoNCgktLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLSANCglGcm9t
OiBCcmFkIEtpbmcgW21haWx0bzpicmFkLmtpbmdAa2l0d2FyZS5jb21dIA0KCVNlbnQ6IFRodSAz
LzI1LzIwMDQgODo0MyBBTSANCglUbzogS2FyciwgRGF2aWQgDQoJQ2M6IGNtYWtlQHd3dy5jbWFr
ZS5vcmcgDQoJU3ViamVjdDogUmU6IFtDbWFrZV0gSG93IHRvIGJ1aWxkIHR3byBsaWJyYXJpZXMg
dGhhdCBtdXR1YWxseSBpbXBvcnQgZnVuY3Rpb25zDQoJDQoJDQoNCglLYXJyLCBEYXZpZCB3cm90
ZToNCgkNCgk+IEFtb25nIHRoZSBsaWJyYXJpZXMgdGhhdCBJIGJ1aWxkIGZvciBhIGNlcnRhaW4g
cHJvamVjdCwNCgk+IHRoZXJlIGFyZSB0d28gbXV0dWFsbHkgZGVwZW5kZW50IGxpYnJhcmllcy4N
Cgk+IFNwZWNpZmljYWxseSwgbGlicmFyeSBBIGV4cG9ydHMgc29tZSBmdW5jdGlvbnMgdGhhdA0K
CT4gbGlicmFyeSBCIG5lZWRzIHRvIGltcG9ydCwgYW5kIGxpYnJhcnkgQiBleHBvcnRzIHNvbWUN
Cgk+IGZ1bmN0aW9ucyB0aGF0IGxpYnJhcnkgQSBuZWVkcyB0byBpbXBvcnQuDQoJPg0KCT4gSSdt
IHRyeWluZyB0byBidWlsZCB0aGVzZSBsaWJyYXJpZXMgaW4gVmlzdWFsIEMrKyA2LjAuDQoJPiBB
cHBhcmVudGx5IHRoaXMgbWVhbnMgSSBoYXZlIHRvIHJ1biBMSUIgZmlyc3Qgb24gb25lDQoJPiBs
aWJyYXJ5IHRvIGdlbmVyYXRlIHRoZSAuZXhwIGZpbGUsIHRoZW4gSSBjYW4gYnVpbGQNCgk+IHRo
ZSBvdGhlciBsaWJyYXJ5LCBhbmQgZmluYWxseSBJIGNhbiBmaW5pc2ggYnVpbGRpbmcNCgk+IHRo
ZSBmaXJzdCBsaWJyYXJ5Lg0KCT4NCgk+IEZyYW5rbHkgSSBkb24ndCBldmVuIGtub3cgaG93IHRv
IGdldCBWaXN1YWwgQysrIHRvIGRvDQoJPiB0aGlzIGF1dG9tYXRpY2FsbHkgZXZlbiBpZiBJIGNy
ZWF0ZSB0aGUgd29ya3NwYWNlIGJ5IGhhbmQuDQoJPiBCdXQgSSB3YXMgaG9waW5nIENNYWtlIHdv
dWxkIHNldCB1cCB0aGUgd29ya3NwYWNlIHNvDQoJPiB0aGF0IGl0IGJ1aWxkcyBjb3JyZWN0bHku
ICBTbyBmYXIsIEkgaGF2ZSB0cmllZCBsaXN0aW5nDQoJPiBlYWNoIGxpYnJhcnkgaW4gYSBUQVJH
RVRfTElOS19MSUJSQVJJRVMgY29tbWFuZCBpbiB0aGUNCgk+IENNYWtlTGlzdHMudHh0IGZpbGUg
b2YgdGhlIG90aGVyIGxpYnJhcnksIGJ1dCB0aGUNCgk+IGxpYnJhcmllcyBzdGlsbCB3b24ndCBi
dWlsZC4NCgk+DQoJPiBEb2VzIHRoaXMgcHJvYmxlbSBoYXZlIGEga25vd24gc29sdXRpb24gb3Ro
ZXIgdGhhbg0KCT4gcmVtb3ZpbmcgYWxsIG11dHVhbCBpbXBvcnRzPw0KCQ0KCUlmIHRoZSBzZXQg
b2Ygc3ltYm9scyB0byBleHBvcnQgZnJvbSBvbmUgb2YgdGhlIGxpYnJhcmllcyBpcyByZWFzb25h
Ymx5DQoJc21hbGwsIEkgdGhpbmsgeW91IGNhbiBjcmVhdGUgYSAuZXhwIGZpbGUgbWFudWFsbHkg
YWhlYWQgb2YgdGltZSBhbmQNCglpbmNsdWRlIGl0IGluIHRoZSBzb3VyY2UgbGlzdCBmb3IgdGhh
dCBsaWJyYXJ5LiAgSSBoYXZlbid0IGFjdHVhbGx5DQoJdHJpZWQgdGhpcywgdGhvdWdoLCBiZWNh
dXNlIG5vbmUgb2Ygb3VyIHByb2plY3RzIGhhcyB0aGlzIGRlc2lnbi4NCgkNCgk+IEFuZCBieSB0
aGUgd2F5LCB3aGF0IGlzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4NCgk+IFRBUkdFVF9MSU5LX0xJ
QlJBUklFUyBhbmQgTElOS19MSUJSQVJJRVM/DQoJDQoJVEFSR0VUX0xJTktfTElCUkFSSUVTIGFk
ZHMgbGlua2luZyBydWxlcyB0byBhIHNwZWNpZmljIHRhcmdldC4NCglMSU5LX0xJQlJBUklFUyBj
YXVzZXMgdGhlIGxpc3RlZCBsaWJyYXJpZXMgdG8gYmUgbGlua2VkIGludG8gZXZlcnkNCgl0YXJn
ZXQgc2VlbiBhZnRlciBpdCBpbiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGNvbW1hbmQg
YW5kIGFsbA0KCXN1YmRpcmVjdG9yaWVzLiAgVGhlIExJTktfTElCUkFSSUVTIGNvbW1hbmQgaXMg
bGVmdCBvdmVyIGZyb20gYW4gZWFybHkNCglDTWFrZSBtZXRob2RvbG9neSB0aGF0IHdhcyBxdWl0
ZSBkaWZmZXJlbnQuICBJJ3ZlIGp1c3QgdXBkYXRlZCB0aGUNCglkb2N1bWVudGF0aW9uIGZvciB0
aGlzIGNvbW1hbmQgaW4gdGhlIENWUyB2ZXJzaW9uIHRvIGNsYXJpZnkgdGhpcw0KCWRpZmZlcmVu
Y2UgZm9yIHRoZSBuZXh0IHJlbGVhc2UuDQoJDQoJLUJyYWQNCgkNCgkNCg0K