Reinplacing paths in cmake's Modules directory is a bad idea: Especially if using cmake for cross development projects (which is one of cmake's intended use cases) it's annoying that standard paths are gone and Find* do not work as expected. In my case, I need /usr/X11R6 which has been reinplaced by /usr/local. I don't see why leaving X11R6 in the paths should break something since that path is present on FreeBSD as well. Fix: I do not know the syntax possible with ${REINPLACE} yet. For a sed invoked from the command line I'd use e.g. s,(/usr/X11R6)([^<space><tab>]*),\1\2 ${LOCALBASE}\2,g to append LOCALBASE instead of replacing X11R6.
Responsible Changed From-To: freebsd-ports-bugs->kde Over to maintainer (via the GNATS Auto Assign Tool)
This patch fixes the problem for the X11R6 and kde4 directories. Would be nice if the problem could be fixed before cmake 2.8.9
Sorry, here the diff again uncompressed.
I had a quick look at it some time ago, and I remember seeing that the solution couldn't be that easy. Breakage is behind the corner. I'll try to check it again and see what can be done.
Well, without this patch, it is already crippled/broken... The regexes in the patch make the right replacement for every unquoted occurence of the path. The replacement will surely break when a path to be replaced is enclosed in quotes, e.g. xxx(... "/usr/X11R6/..." ...) However, afaics these are not present in the files being searched. If you want to disable this explicitely then you might add quotes in the third subexpression of the search regex ([^/A-Za-z0-9_$$-]) so these expressions do not get matched. For a minimal and clean solution, I'm wondering why it would not suffice to include ${LOCALBASE} (or replace /usr/local by ${LOCALBASE}) in CMAKE_SYSTEM_PREFIX_PATH in UnixPaths.cmake ? And for KDE4, I don't quite get why the replacement is made. On my system, KDE4 is installed directly in LOCALBASE, so should get found with the regular SYSTEM_PREFIX paths? If you could point me to the problem(s) that the original sed replacements are intended to solve I could dig around to see if a cleaner solution is possible.
back to pool