On 11/16/2014 04:12 AM, ゑ wrote: > I tried to 'FIND_PACKAGE(MFC)' on VS2013(community), but MFC not found. > VS2013 has no mfc120.dll but has mfc120u.dll, > so I make a patch for FindMFC.cmake,
This is not just the community edition but any VS 2013. The MBCS (non-unicode) versions of the MFC libraries are no longer installed by default but can be downloaded separately. This was fixed for the InstallRequiredSystemLibraries module here: InstallRequiredSystemLibraries: MBCS MFC is optional on VS 12 (#14903) http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c0a6646d Thanks for looking into it for FindMFC. > + -DCOMPILE_DEFINITIONS:STRING=-D_UNICODE This works for VS 2013, but it breaks on older VS versions that do not have a unicode MFC library available. Also, an application cannot simply start using the unicode MFC if the application itself is not built with _UNICODE. I think we actually need two separate checks for the two separate libraries. The FindMFC module should be taught to check for the libraries with a separate MFC_HAVE_MFC_UNICODE cache entry. The old check can be renamed to MFC_HAVE_MFC_MBCS (and MFC_HAVE_MFC set to a copy of that result for compatibility with applications that look for it). Then the only problem is how to set MFC_FOUND based on the two results. For this we could use the COMPONENTS mechanism of find_package. Then an application could do one of: find_package(MFC) # found if mbcs libs are found find_package(MFC COMPONENTS mbcs) # found if mbcs libs are found find_package(MFC COMPONENTS unicode) # found if unicode libs are found find_package(MFC COMPONENTS mbcs unicode) # found if both are found The find module can check the MFC_FIND_COMPONENTS variable to see which parts the application wants. 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
