[CMake] PKGCONFIG backward compatibility on CVS trunk.

Michel Hermier michel.hermier at gmail.com
Tue Dec 5 17:51:58 EST 2006


Alan W. Irwin wrote:
> On 2006-12-05 22:31+0100 Michel Hermier wrote:
>
>>>>
>>> Do you have a case where something works in CMake-2.4.4, but does 
>>> not work in CVS CMake that uses UsePkgConfig.cmake?
>>> If so, we will fix it.  If this is new stuff, we can not change 
>>> UsePkgConfig.cmake because it will break old code.   There should
>>> be no change in this stuff from 2.4.4 and 2.4.5, so either should 
>>> work the same.  The new module is currently only in CVS.
>>>
>>> -Bill
>>>
>
>> I checked the generation of the qca.pc file and it was not updated 
>> for 2 month so it was definitely working before the update.
>
> Michel, could you clarify, please?  Are you comparing an old CVS version
> with latest CVS or an _actual release_ (such as 2.4.5 which is 
> available for
> you to try) with latest CVS?
I reverted the UsePkgConfig.cmake, so that the old macro is defined, and 
it worked again, so the package that broke for me was really working 
with the old macro.
Here is attached the hack that works for me and is probably not valid 
since I don't check for empty values but I'm not sure.

Michel
-------------- next part --------------
Index: FindPkgConfig.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/FindPkgConfig.cmake,v
retrieving revision 1.2
diff -u -3 -p -r1.2 FindPkgConfig.cmake
--- FindPkgConfig.cmake	29 Nov 2006 21:12:40 -0000	1.2
+++ FindPkgConfig.cmake	5 Dec 2006 22:49:08 -0000
@@ -365,8 +365,8 @@ macro(PKGCONFIG _package _include_DIR _l
     # have returned a blank sometimes followed by nl for the situation
     # where the pkg-config  module has been found [e.g., _PKGCONFIG_TMP_FOUND]
     # but does not define the desired quantity.
-    string(REGEX REPLACE ";" " " ${_include_DIR} " ${_PKGCONFIG_TMP_INCLUDE_DIRS}")
-    string(REGEX REPLACE ";" " " ${_link_DIR}    " ${_PKGCONFIG_TMP_LIBRARY_DIRS}")
+    set(${_include_DIR} ${_PKGCONFIG_TMP_INCLUDEDIR})
+    set(${_link_DIR}    ${_PKGCONFIG_TMP_LIBDIR})
     string(REGEX REPLACE ";" " " ${_link_FLAGS}  " ${_PKGCONFIG_TMP_LDFLAGS}")
     string(REGEX REPLACE ";" " " ${_cflags}      " ${_PKGCONFIG_TMP_CFLAGS}")
     set(_return_VALUE 0)


More information about the CMake mailing list