[CMake] SET_TARGET_PROPERTIES funny..
Thomas Hunger
hto at arcor.de
Fri Aug 18 13:18:01 EDT 2006
Ok, just for documentary purposes:
> error in my macro, but I think it would be better to catch it in
> SET_TARGET_PROPERTIES. What do you think?
I learned from Brad King that SET_TARGET_PROPERTIES is low level,
so PKGCONFIG has to check for ill-formed pkg-config output itself.
Here is the complete macro which will add the link and cflags to your
target (tested on unix).
Usage: PKGCONFIG(target packagename)
FIND_PROGRAM(PKGCONFIG_EXECUTABLE NAMES pkg-config
PATHS /usr/local/bin )
MACRO(PKGCONFIG _target _package)
EXECUTE_PROCESS(COMMAND ${PKGCONFIG_EXECUTABLE}
--exists ${_package}
RESULT_VARIABLE _ok
OUTPUT_QUIET)
IF (NOT ${_ok} EQUAL 0)
MESSAGE(FATAL_ERROR "No pkg-config configuration file found
for package ${_package}")
ENDIF (NOT ${_ok} EQUAL 0)
EXECUTE_PROCESS(COMMAND ${PKGCONFIG_EXECUTABLE}
${_package} --libs
OUTPUT_VARIABLE _libs)
STRING(REPLACE "\n" "" _libs ${_libs})
EXECUTE_PROCESS(COMMAND ${PKGCONFIG_EXECUTABLE}
${_package} --cflags
OUTPUT_VARIABLE _cflags)
STRING(REPLACE "\n" "" _cflags ${_cflags})
SET_TARGET_PROPERTIES(${_target} PROPERTIES
LINK_FLAGS ${_libs}
COMPILE_FLAGS ${_cflags})
ENDMACRO(PKGCONFIG)
More information about the CMake
mailing list