I'm going to be away for a few weeks, is it ok if the master branch stays in that state for a while?
-----Original Message----- From: Brad King [mailto:brad.k...@kitware.com] Sent: Friday, July 17, 2015 11:47 AM To: Robert Goulet Cc: Stephen Kelly; cmake-developers@cmake.org Subject: Re: [cmake-developers] Generator expressions for <archive|library|runtime> output directory On 07/17/2015 10:55 AM, Robert Goulet wrote: > Ok I'd like to fix the crash, what is the clean way to deal with this > kind of situation? I'm guessing this might be a problem that was > solved elsewhere for other cases before? I don't recall other cases where this specific problem has come up. There is code to deal with generator expression reference cycles e.g. for $<TARGET_PROPERTY:...> expressions but that is not quite the same thing. For the OUTPUT_DIRECTORY case the GetOutputInfo method: http://www.cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmTarget.cxx;hb=v3.3.0-rc4#l2612 memoizes the ComputeOutputDir result in a map. Currently it does not update the map until after computing the value. You could try teaching it to insert a placeholder (empty?) value in the map first. Then in the check for an existing map entry, if it is found to contain the placeholder then you know recursion is occurring and you can diagnose it with an error message and return early. The GetOutputName method could be refactored to use a map and then work the same way. Thanks, -Brad -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers