From: Zachary Turner Date: Tue, 10 Feb 2015 05:04:25 +0000 (+0000) Subject: Define HAVE_DIA_SDK on Windows when DIA is present. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e20fe230bd1deb88fccc623cf3c2bb658f51e37b;p=oota-llvm.git Define HAVE_DIA_SDK on Windows when DIA is present. This allows all CMake projects, as well as C++ code, to detect if and when DIA SDK is available for use so that we can enable the DIA-based PDB reader implementation. Differential Revision: http://reviews.llvm.org/D7457 Reviewed By: Chandler Carruth git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228669 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index c845c070ecd..55727a85f37 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -429,6 +429,22 @@ if( MSVC ) set(SHLIBEXT ".lib") set(stricmp "_stricmp") set(strdup "_strdup") + + # See if the DIA SDK is available and usable. + set(MSVC_DIA_SDK_DIR "$ENV{VSINSTALLDIR}DIA SDK") + + # Due to a bug in MSVC 2013's installation software, it is possible + # for MSVC 2013 to write the DIA SDK into the Visual Studio 2012 + # install directory. If this happens, the installation is corrupt + # and there's nothing we can do. It happens with enough frequency + # though that we should handle it. We do so by simply checking that + # the DIA SDK folder exists. Should this happen you will need to + # uninstall VS 2012 and then re-install VS 2013. + if (IS_DIRECTORY ${MSVC_DIA_SDK_DIR}) + set(HAVE_DIA_SDK 1) + else() + set(HAVE_DIA_SDK 0) + endif() endif( MSVC ) if( PURE_WINDOWS ) diff --git a/include/llvm/Config/config.h.cmake b/include/llvm/Config/config.h.cmake index c112ea2fc1c..e10df045b4b 100644 --- a/include/llvm/Config/config.h.cmake +++ b/include/llvm/Config/config.h.cmake @@ -55,6 +55,9 @@ don't. */ #cmakedefine01 HAVE_DECL_STRERROR_S +/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */ +#cmakedefine HAVE_DIA_SDK ${HAVE_DIA_SDK} + /* Define to 1 if you have the header file, and it defines `DIR'. */ #cmakedefine HAVE_DIRENT_H ${HAVE_DIRENT_H} diff --git a/include/llvm/Config/config.h.in b/include/llvm/Config/config.h.in index c68c77aa607..9827eeaea33 100644 --- a/include/llvm/Config/config.h.in +++ b/include/llvm/Config/config.h.in @@ -67,6 +67,9 @@ don't. */ #undef HAVE_DECL_STRERROR_S +/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */ +#undef HAVE_DIA_SDK + /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H