On Tue, Nov 15, 2011 at 1:19 PM, Alexander Neundorf <neund...@kde.org> wrote: > On Monday 14 November 2011, you wrote: >> On 11/14/2011 4:01 PM, Alexander Neundorf wrote: >> >> Instead of adding the code to the bottom of GenerateImportPropertyCode >> >> please create a separate method next to it for that part. >> > >> > Done, in an updated version of the >> > CheckImportedFileExistenceInConfigDotCMakeFiles branch. >> >> Looks good. My remaining hesitation is that the message gets duplicated >> many times in the targets file and takes a lot of (visual) space but >> its presence does not add much information for a (human) reader. I >> wonder if we can accumulate a list of files to be checked and add one >> test at the end of the targets file that looks for everything and >> fails with a single message. > > I could do > > function(check_for_file _file _target) > if(NOT EXISTS _file) > message(FATAL_ERROR "... long error message...") > endfunction() > > check_for_file(libFoo123.so Foo) > ... > check_for_file(libBar123.so Bar) > > > Or I could collect the files and targets together, but then the error message > becomes less straigh forward. > Right now it is: > > The file "libbar.so.1.2.3" for the imported target "bar" does not exist. > There are multiple possible reasons: > * the file "libbar.so.1.2.3" has been manually deleted, renamed or moved to > another location > * a previous install or uninstall procedure did not run successfully to its > end > * the installation package was faulty, and contained "BarTargets.cmake", > but not "libbar.so.1.2.3", which must always be installed together. > > > Then it could be: > > There were files missing for imported targets. There are multiple possible > reasons: > * the files have been manually deleted, renamed or moved to > another location > * a previous install or uninstall procedure did not run successfully to its > end > * the installation package was faulty, and contained "BarTargets.cmake", > but not the corresponding files, although they must always be installed > together. > > Missing files: > libbar123.so (for target "bar") > > > I'm not sure in the second version is as clear to understand as the first one, > since it has to talk generally about "the files" in the text, while the first > one can directly use "libbar.so.123". > > Also, since this should be a rare error case, I'm not sure it makes sense to > optimize it for the case of multiple missing files. > > Alex >
I think the function approach is reasonable... -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers