For the MSVC builds of my project, I have pre-built libraries set up
with the following layout:
ext/
libname/
include/
lib/
vc90/
vc100/
vc110/
libname-config.cmake
libname-config-version.cmake
And so on. It seemed like a good way to go, to build my own *-config
scripts and set things up in this way. To make finding the libraries
easier, I could set CMAKE_LIBRARY_ARCHITECTURE to the relevant suffix
and use find_library(), but that is not working exactly right.
Right now the script is something like this:
if (MSVC)
math(EXPR msvcver "${MSVC_VERSION} / 10 - 60")
set(CMAKE_LIBRARY_ARCHITECTURE "vc{$msvcver}")
find_package(libname REQUIRED CONFIG HINTS ${root}/ext/libname)
endif ()
And in libname-config.cmake:
if (NOT TARGET libname)
add_library(libname STATIC IMPORTED)
find_library(libname_LIBRARY_RELEASE libname HINTS ${libname_DIR}/lib)
find_library(libname_LIBRARY_DEBUG libnamed HINTS ${libname_DIR}/lib)
set_target_properties(libname PROPERTIES
IMPORTED_LOCATION ${libname_LIBRARY_RELEASE}
IMPORTED_LOCATION_DEBUG ${libname_LIBRARY_DEBUG})
endif ()
End result: libname_LIBRARY_RELEASE-NOTFOUND and
libname_LIBRARY_DEBUG-NOTFOUND. If use PATH_SUFFIXES though:
find_library(libname_LIBRARY_RELEASE libname HINTS
${libname_DIR}/lib PATH_SUFFIXES ${CMAKE_LIBRARY_ARCHITECTURE})
find_library(libname_LIBRARY_DEBUG libnamed HINTS ${libname_DIR}/lib
PATH_SUFFIXES ${CMAKE_LIBRARY_ARCHITECTURE})
.. it works as the doc suggests to me it should work without the PATH_SUFFIXES.
Am I making a false assumption, or doing something wrong?
Also as a general comment, I'm not too keen on adding all that junk
(libname_LIBRARY_RELEASE, etc.) to my cache as paths are pretty well
locked in. Updates to the version in the depot could cause problems
requiring a cache clean. Is there a better practice for getting paths
to libraries? Should I perhaps be just hand-coding it in, or
determining the architecture suffix in each -config.cmake script?
Thanks!
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake