[CMake] Using pkg-config

Marko Anastasov marko at marko.anastasov.name
Tue Dec 19 18:25:10 EST 2006


On Tue, 2006-12-19 at 08:20 +0100, Maik Beckmann wrote:
> Am Dienstag, den 19.12.2006, 02:12 +0100 schrieb Marko Anastasov:
> > Hello,
> > 
> > I'm new to CMake. I'm trying to write a CMakeLists.txt file to
> > build a simple gtkmm test program (should work with any though).
> > I can build and run it, but I need to fix something.
> > 
> > Here's the main part:
> > 
> > EXEC_PROGRAM(pkg-config ARGS --cflags --libs gtkmm-2.4
> >              OUTPUT_VARIABLE GTKMM_PKG_FLAGS)
> > SET(GTKMM_PKG_FLAGS "${GTKMM_PKG_FLAGS}" CACHE STRING "GTKMM Flags")
> > SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GTKMM_PKG_FLAGS}")
> > 
> > add_executable(example ${SOURCES})
> > 
> > target_link_libraries(example ${GTKMM_PKG_FLAGS})
> 
> A new autoconf-style pkg-config module has been uploaded to CVS:
> http://public.kitware.com/cgi-bin/viewcvs.cgi/Modules/FindPkgConfig.cmake?cvsroot=CMake&rev=1.1&content-type=text/x-cvsweb-markup
> 
> You can copy it to your project folder, say into a folder named
> cmake-extensions and use it like follows:
> <CMakeLists.txt>
> project(test)
> 
> set(CMAKE_MODULE_PATH  ${PROJECT_SOURCE_DIR}/cmake-extensions/ )
> find_package(PkgConfig)
> 
> pkg_check_modules(GTKMM gtkmm-2.4)
> 
> link_directories(
>     ${GTKMM_LIBRARY_DIRS}
> )
> include_directories(
>     ${GTKMM_INCLUDE_DIRS}
> )
> 
> add_executable(test_exe main.cpp)
> target_link_libraries(test_exe
>     ${GTKMM_LIBRARIES}
> )
> </ CMakeLists.txt>
> 
> 
> Note: If you change the package names at pkg_check_modules you have to
> delete CMakeCache.txt at your build folder, otherwise it won't take
> effect.
> 
> Regards, 
> Maik
> 

Thank you Maik, this has solved my problem. FindPkgConfig seems much
more helpful than UsePkgConfig.cmake, which I also tried to use, but
unsuccessfully.

Marko



More information about the CMake mailing list