[CMake] Questions related to PkgConfig
Radu Serban
radu at llnl.gov
Mon Jan 28 22:45:03 EST 2008
Hi,
I have a couple of questions related to using pkg-config in CMake:
1) Using information returned by the macro pkg_check_module from
FindPkgConfig.cmake
This should be straightforward but I just cannot get it to work. Say I
create my own library "mylib" which depends on a module "cvodes" which comes
with a cvodes.pc file. Adding pkg_check_modules(CVODES cvodes) in
CMakelists.txt correctly extracts all the information from cvodes.pc and
sets the variables:
===========================
cvodes pkgconfig results:
===========================
PKG_CONFIG_FOUND 1
PKG_CONFIG_EXECUTABLE /usr/bin/pkg-config
CVODES_FOUND 1
CVODES_LIBRARIES sundials_cvodes;sundials_nvecserial;sundials_nvecparallel;m
CVODES_LIBRARY_DIRS /home/radu/CODES/NREL/lib
CVODES_LDFLAGS
-L/home/radu/CODES/NREL/lib;-lsundials_cvodes;-lsundials_nvecserial;-lsundials_nvecparallel;-lm
CVODES_LDFLAGS_OTHERS
CVODES_INCLUDE_DIRS /home/radu/CODES/NREL/include
CVODES_CFLAGS -I/home/radu/CODES/NREL/include
CVODES_CFLAGS_OTHERS
============================
I then use include_directories(${CVODES_INCLUDE_DIRS}) and successfully
build the library mylib.
But then I'd like to build an example which must be linked with mylib and
all CVODES libraries and this is where I got stuck... How do I use the above
information? I have
ADD_EXECUTABLE(testS testS.c)
TARGET_LINK_LIBRARIES(testS as2)
but how about the CVODES libraries? What's the proper way of linking the
target testS to these libraries? I tried unsuccessfully all sort of
combinations using TARGET_LINK_LIBRARIES and SET_TARGET_PROPERTIES...
2) Creating a *.pc file for a project.
Suppose my project creates a library "mylib" which requires the BLAS
library. Since I do not have a blas.pc file, I simply use some
FindBLAS.cmake file which finds the BLAS library as /usr/lib/libblas.so.
When I create mylib.pc I cannot use something like "Requires: blas" because
there is no blas.pc so I need to add the BLAS libraries under the "Libs"
keyword. Does CMake provide a way of generating the proper string to be
added to "Libs:"?
Thanks,
--Radu
More information about the CMake
mailing list