(documentation ve example bakınız) herhangi bir sorun yoktur.
add_library(foo STATIC IMPORTED)
set_target_properties(foo PROPERTIES IMPORTED_LOCATION_DEBUG "/path/to/foo-d.lib")
set_target_properties(foo PROPERTIES IMPORTED_LOCATION_RELEASE "/path/to/foo.lib")
target_link_libraries(MyEXE foo)
not: <package>Config.cmake
üretecek böylece Eğer cevap taklit böyle bir süreçtir (o cmake aracını kullanamaz veya bunu yapmak istemiyorum) 3. taraf değiştiremezsiniz "debug"/"optimize" özelliği böyle bir yaklaşım ayıklama/Yayın yapılandırmasında sınırlı değildir aksine o:
da
set_target_properties(foo PROPERTIES IMPORTED_LOCATION_MINSIZEREL "/path/to/foo-small.lib")
Eğer INTERFACE_INCLUDE_DIRECTORIES gibi bazı güzellikler var:
set_target_properties(foo PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "/path/to/foo/includes")
include_directories("/path/to/foo/includes") # this line not needed
target_link_libraries(MyEXE foo) # this command will add "/path/to/foo/includes" for you
bağlama
ve geçişli: Elbette
add_library(boo STATIC IMPORTED)
set_target_properties(boo PROPERTIES IMPORTED_LOCATION_DEBUG "/path/to/boo-d.lib")
set_target_properties(boo PROPERTIES IMPORTED_LOCATION_RELEASE "/path/to/boo.lib")
add_library(foo STATIC IMPORTED)
set_target_properties(foo PROPERTIES IMPORTED_LOCATION_DEBUG "/path/to/foo-d.lib")
set_target_properties(foo PROPERTIES IMPORTED_LOCATION_RELEASE "/path/to/foo.lib")
set_target_properties(foo PROPERTIES INTERFACE_LINK_LIBRARIES boo) # foo depends on boo
target_link_libraries(MyEXE foo) # boo will be linked automatically
bunları hardcoding yerine konumlarını tahmin etmek find_library
ve find_package(... MODULE)
gibi düzenli cmake komutları kullanabilirsiniz.
Her zaman önceden hazırlanmış modüller için çözüm arıyorum. E.g .: FindQt4.cmake. – Naszta
Birden çok hata ayıklama ve kitaplık sürümlerim varsa bu nasıl çalışır. Örneğin, _Foo1_d _, _ Foo2_d_ & _Foo1 _, _ Foo2_. Onları tek değişken altında nasıl kulüpleyebilirim? Şu anda yalnızca ilişkili ilk lib (anahtar hata ayıklama veya yayımlama) için anahtar kelimeleri algılayabilir ve bir sonraki için tanınmayan – user1036908