Recently, someone ask for PKG_SEARCH_MODULE

At first, I thought simple flag is flag:

PROJECT(MiG)
INCLUDE (FindPkgConfig)
# For GTK
PKG_SEARCH_MODULE(GTK REQUIRED gtk+-2.0)
SET(_targetname ULS)
SET(_src CTest.c)

ADD_EXECUTABLE(${_targetname} ${_src})
SET_TARGET_PROPERTIES(${_targetname} 
        PROPERTIES COMPILE_FLAGS "${GTK_CFLAGS}"
                LINK_FLAGS ${GTK_LDFLAGS})

Alas, in this case SET_TARGET_PROPERTIES is not practical.

For the header file I can use

INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIRS})
or 
ADD_DEFINITIONS(${GTK_CFLAGS})

The problem is how to link the libraries.

If I assume that all needed libraries start with lib, are in the same
location and have the suffix .so, I could write something like this:

FOREACH(_libname ${GTK_LIBRARIES})
        LIST(APPEND NEW_GTK_LIBRARIES
${GTK_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${_libname}${CMAKE_SHARED_LIBRARY_SUFFIX})
ENDFOREACH(_libname)

TARGET_LINK_LIBRARIES(${_targetname} ${NEW_GTK_LIBRARIES})

Of course my assumptions are not always true.

So what is the best and practical way to link the libraries with the
data of PKG_SEARCH_MODULE.

Greetings

Micha




_______________________________________________
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

Reply via email to