Skip to content
Snippets Groups Projects
Commit b99d90fd authored by asantamaria's avatar asantamaria
Browse files

modification to FindPkgConfig.cmake

parent 1b458011
No related branches found
No related tags found
No related merge requests found
## FindPkgConfig.cmake ## FindPkgConfig.cmake
## by Albert Strasheim <http://students . ee . sun . ac . za/~albert/> ## by Albert Strasheim <http://students . ee . sun . ac . za/~albert/>
## and Alex Brooks (a.brooks at acfr . usyd . edu . au) ## and Alex Brooks (a.brooks at acfr . usyd . edu . au)
## ##
## This module finds packages using pkg-config, which retrieves ## This module finds packages using pkg-config, which retrieves
## information about packages from special metadata files. ## information about packages from special metadata files.
## ##
## See http://www . freedesktop . org/Software/pkgconfig/ ## See http://www . freedesktop . org/Software/pkgconfig/
## ##
## ------------------------------------------------------------------- ## -------------------------------------------------------------------
## ##
## Usage: ## Usage:
## ##
## INCLUDE( ${CMAKE_ROOT}/Modules/FindPkgConfig.cmake) ## INCLUDE( ${CMAKE_ROOT}/Modules/FindPkgConfig.cmake)
## ##
## IF ( CMAKE_PKGCONFIG_EXECUTABLE ) ## IF ( CMAKE_PKGCONFIG_EXECUTABLE )
## ##
## # Find all the librtk stuff with pkg-config ## # Find all the librtk stuff with pkg-config
## PKGCONFIG( "librtk >= 2.0" HAVE_RTK RTK_INCLUDE_DIRS RTK_DEFINES RTK_LINK_DIRS RTK_LIBS ) ## PKGCONFIG( "librtk >= 2.0" HAVE_RTK RTK_INCLUDE_DIRS RTK_DEFINES RTK_LINK_DIRS RTK_LIBS )
## ##
## ELSE ( CMAKE_PKGCONFIG_EXECUTABLE ) ## ELSE ( CMAKE_PKGCONFIG_EXECUTABLE )
## ##
## # Can't find pkg-config -- have to find librtk somehow else ## # Can't find pkg-config -- have to find librtk somehow else
## ##
## ENDIF ( CMAKE_PKGCONFIG_EXECUTABLE ) ## ENDIF ( CMAKE_PKGCONFIG_EXECUTABLE )
## ##
## ##
## Notes: ## Notes:
## ##
## You can set the PKG_CONFIG_PATH environment variable to tell ## You can set the PKG_CONFIG_PATH environment variable to tell
## pkg-config where to search for .pc files. See pkg-config(1) for ## pkg-config where to search for .pc files. See pkg-config(1) for
## more information. ## more information.
## ##
# #
# FIXME: IF(WIN32) pkg-config --msvc-syntax ENDIF(WIN32) ??? # FIXME: IF(WIN32) pkg-config --msvc-syntax ENDIF(WIN32) ???
# #
# FIXME: Parsing of pkg-config output is specific to gnu-style flags # FIXME: Parsing of pkg-config output is specific to gnu-style flags
# #
FIND_PROGRAM(CMAKE_PKGCONFIG_EXECUTABLE pkg-config) FIND_PROGRAM(CMAKE_PKGCONFIG_EXECUTABLE pkg-config)
MARK_AS_ADVANCED(CMAKE_PKGCONFIG_EXECUTABLE) MARK_AS_ADVANCED(CMAKE_PKGCONFIG_EXECUTABLE)
######################################## ########################################
MACRO(PKGCONFIG_PARSE_FLAGS FLAGS INCLUDES DEFINES) MACRO(PKGCONFIG_PARSE_FLAGS FLAGS INCLUDES DEFINES)
#MESSAGE("DEBUG: FLAGS: ${FLAGS}") #MESSAGE("DEBUG: FLAGS: ${FLAGS}")
STRING(REGEX MATCHALL " -I[^ ]*" ${INCLUDES} "${FLAGS}") STRING(REGEX MATCHALL " -I[^ ]*" ${INCLUDES} "${FLAGS}")
STRING(REGEX REPLACE " -I" "" ${INCLUDES} "${${INCLUDES}}") STRING(REGEX REPLACE " -I" "" ${INCLUDES} "${${INCLUDES}}")
#MESSAGE("DEBUG: INCLUDES: ${${INCLUDES}}") #MESSAGE("DEBUG: INCLUDES: ${${INCLUDES}}")
STRING(REGEX REPLACE " -I[^ ]*" "" ${DEFINES} "${FLAGS}") STRING(REGEX REPLACE " -I[^ ]*" "" ${DEFINES} "${FLAGS}")
#MESSAGE("DEBUG: DEFINES: ${${DEFINES}}") #MESSAGE("DEBUG: DEFINES: ${${DEFINES}}")
ENDMACRO(PKGCONFIG_PARSE_FLAGS) ENDMACRO(PKGCONFIG_PARSE_FLAGS)
######################################## ########################################
MACRO(PKGCONFIG_PARSE_LIBS LIBS LINKDIRS LINKLIBS) MACRO(PKGCONFIG_PARSE_LIBS LIBS LINKDIRS LINKLIBS)
#MESSAGE("DEBUG: LIBS: ${LIBS}") #MESSAGE("DEBUG: LIBS: ${LIBS}")
STRING(REGEX MATCHALL " -L[^ ]*" ${LINKDIRS} "${LIBS}") STRING(REGEX MATCHALL " -L[^ ]*" ${LINKDIRS} "${LIBS}")
STRING(REGEX REPLACE " -L" "" ${LINKDIRS} "${${LINKDIRS}}") STRING(REGEX REPLACE " -L" "" ${LINKDIRS} "${${LINKDIRS}}")
#MESSAGE("DEBUG: LINKDIRS: ${${LINKDIRS}}") #MESSAGE("DEBUG: LINKDIRS: ${${LINKDIRS}}")
STRING(REGEX MATCHALL " -l[^ ]*" ${LINKLIBS} "${LIBS}") STRING(REGEX MATCHALL " -l[^ ]*" ${LINKLIBS} "${LIBS}")
STRING(REGEX REPLACE " -l" "" ${LINKLIBS} "${${LINKLIBS}}") STRING(REGEX REPLACE " -l" "" ${LINKLIBS} "${${LINKLIBS}}")
#MESSAGE("DEBUG: LINKLIBS: ${${LINKLIBS}}") #MESSAGE("DEBUG: LINKLIBS: ${${LINKLIBS}}")
ENDMACRO(PKGCONFIG_PARSE_LIBS) ENDMACRO(PKGCONFIG_PARSE_LIBS)
######################################## ########################################
MACRO(PKGCONFIG LIBRARY FOUND INCLUDE_DIRS DEFINES LINKDIRS LINKLIBS) MACRO(PKGCONFIG LIBRARY FOUND INCLUDE_DIRS DEFINES LINKDIRS LINKLIBS)
SET(${FOUND} 0) SET(${FOUND} 0)
# alexm: why print it twice? once here, and once when it's found/not found # alexm: why print it twice? once here, and once when it's found/not found
# MESSAGE("-- Looking for ${LIBRARY}") # MESSAGE("-- Looking for ${LIBRARY}")
IF(CMAKE_PKGCONFIG_EXECUTABLE) IF(CMAKE_PKGCONFIG_EXECUTABLE)
# MESSAGE("DEBUG: pkg-config executable found") # MESSAGE("DEBUG: pkg-config executable found")
EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE} EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE}
ARGS "'${LIBRARY}'" ARGS "'${LIBRARY}'"
OUTPUT_VARIABLE PKGCONFIG_OUTPUT OUTPUT_VARIABLE PKGCONFIG_OUTPUT
RETURN_VALUE PKGCONFIG_RETURN) RETURN_VALUE PKGCONFIG_RETURN)
IF(NOT PKGCONFIG_RETURN) IF(NOT PKGCONFIG_RETURN)
# set C_FLAGS and CXX_FLAGS # set C_FLAGS and CXX_FLAGS
EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE} EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE}
ARGS "--cflags '${LIBRARY}'" ARGS "--cflags '${LIBRARY}'"
OUTPUT_VARIABLE CMAKE_PKGCONFIG_C_FLAGS) OUTPUT_VARIABLE CMAKE_PKGCONFIG_C_FLAGS)
#SET(CMAKE_PKGCONFIG_CXX_FLAGS "${CMAKE_PKGCONFIG_C_FLAGS}") #SET(CMAKE_PKGCONFIG_CXX_FLAGS "${CMAKE_PKGCONFIG_C_FLAGS}")
PKGCONFIG_PARSE_FLAGS(" ${CMAKE_PKGCONFIG_C_FLAGS}" ${INCLUDE_DIRS} ${DEFINES} ) PKGCONFIG_PARSE_FLAGS(" ${CMAKE_PKGCONFIG_C_FLAGS}" ${INCLUDE_DIRS} ${DEFINES} )
# set LIBRARIES # set LIBRARIES
EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE} EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE}
ARGS "--libs '${LIBRARY}'" ARGS "--libs '${LIBRARY}'"
OUTPUT_VARIABLE CMAKE_PKGCONFIG_LIBRARIES) OUTPUT_VARIABLE CMAKE_PKGCONFIG_LIBRARIES)
PKGCONFIG_PARSE_LIBS (" ${CMAKE_PKGCONFIG_LIBRARIES}" ${LINKDIRS} ${LINKLIBS} ) PKGCONFIG_PARSE_LIBS (" ${CMAKE_PKGCONFIG_LIBRARIES}" ${LINKDIRS} ${LINKLIBS} )
SET(${FOUND} 1) SET(${FOUND} 1)
MESSAGE("-- Looking for ${LIBRARY} -- found") MESSAGE("-- Looking for ${LIBRARY} -- found")
ELSE(NOT PKGCONFIG_RETURN) ELSE(NOT PKGCONFIG_RETURN)
MESSAGE("-- Looking for ${LIBRARY} -- not found") MESSAGE("-- Looking for ${LIBRARY} -- not found")
SET(CMAKE_PKGCONFIG_C_FLAGS "") SET(CMAKE_PKGCONFIG_C_FLAGS "")
SET(CMAKE_PKGCONFIG_CXX_FLAGS "") SET(CMAKE_PKGCONFIG_CXX_FLAGS "")
SET(CMAKE_PKGCONFIG_LIBRARIES "") SET(CMAKE_PKGCONFIG_LIBRARIES "")
SET(${INCLUDE_DIRS} "") SET(${INCLUDE_DIRS} "")
SET(${DEFINES} "") SET(${DEFINES} "")
SET(${LINKDIRS} "") SET(${LINKDIRS} "")
SET(${LINKLIBS} "") SET(${LINKLIBS} "")
ENDIF(NOT PKGCONFIG_RETURN) ENDIF(NOT PKGCONFIG_RETURN)
ELSE(CMAKE_PKGCONFIG_EXECUTABLE) ELSE(CMAKE_PKGCONFIG_EXECUTABLE)
MESSAGE("-- pkg-config executable NOT FOUND") MESSAGE("-- pkg-config executable NOT FOUND")
ENDIF(CMAKE_PKGCONFIG_EXECUTABLE) ENDIF(CMAKE_PKGCONFIG_EXECUTABLE)
#MESSAGE("Have ${LIBRARY} : ${${FOUND}}") #MESSAGE("Have ${LIBRARY} : ${${FOUND}}")
#MESSAGE("${LIBRARY} include dirs: ${${INCLUDE_DIRS}}") #MESSAGE("${LIBRARY} include dirs: ${${INCLUDE_DIRS}}")
#MESSAGE("${LIBRARY} defines : ${${DEFINES}}") #MESSAGE("${LIBRARY} defines : ${${DEFINES}}")
#MESSAGE("${LIBRARY} link dirs : ${${LINKDIRS}}") #MESSAGE("${LIBRARY} link dirs : ${${LINKDIRS}}")
#MESSAGE("${LIBRARY} link libs : ${${LINKLIBS}}") #MESSAGE("${LIBRARY} link libs : ${${LINKLIBS}}")
ENDMACRO(PKGCONFIG) ENDMACRO(PKGCONFIG)
\ No newline at end of file
...@@ -40,7 +40,5 @@ INSTALL(FILES ${headers} DESTINATION include/iridrivers/uam) ...@@ -40,7 +40,5 @@ INSTALL(FILES ${headers} DESTINATION include/iridrivers/uam)
INSTALL(FILES ${headers_tasks} DESTINATION include/iridrivers/uam/tasks) INSTALL(FILES ${headers_tasks} DESTINATION include/iridrivers/uam/tasks)
INSTALL(FILES ../Finduam_task_ctrl.cmake DESTINATION ${CMAKE_ROOT}/Modules/) INSTALL(FILES ../Finduam_task_ctrl.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
INSTALL(FILES ../FindKDL.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
INSTALL(FILES ../FindPkgConfig.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
ADD_SUBDIRECTORY(examples) ADD_SUBDIRECTORY(examples)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment