Add an explicit LLVM_ENABLE_DIA_SDK option to control building support
for DIA SDK-based debugging. Control its value to match whether DIA SDK
support was found and expose it in LLVMConfig (alike LLVM_ENABLE_ZLIB).
Its value is needed for LLDB to determine whether to run tests requiring
DIA support. Currently it is obtained from llvm/Config/config.h;
however, this file is not available for standalone builds. Following
this change, LLDB will be modified to use the value from LLVMConfig.
Differential Revision: https://reviews.llvm.org/D26255
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@290818
91177308-0d34-0410-b5e6-
96231b3b80d8
else()
set(HAVE_DIA_SDK 0)
endif()
+
+ option(LLVM_ENABLE_DIA_SDK "Use MSVC DIA SDK for debugging if available."
+ ${HAVE_DIA_SDK})
+
+ if(LLVM_ENABLE_DIA_SDK AND NOT HAVE_DIA_SDK)
+ message(FATAL_ERROR "DIA SDK not found. If you have both VS 2012 and 2013 installed, you may need to uninstall the former and re-install the latter afterwards.")
+ endif()
else()
- set(HAVE_DIA_SDK 0)
+ set(LLVM_ENABLE_DIA_SDK 0)
endif( MSVC )
# FIXME: Signal handler return type, currently hardcoded to 'void'
set(LLVM_ENABLE_ZLIB @LLVM_ENABLE_ZLIB@)
+set(LLVM_ENABLE_DIA_SDK @LLVM_ENABLE_DIA_SDK@)
+
set(LLVM_NATIVE_ARCH @LLVM_NATIVE_ARCH@)
set(LLVM_ENABLE_PIC @LLVM_ENABLE_PIC@)
Enable building with zlib to support compression/uncompression in LLVM tools.
Defaults to ON.
+**LLVM_ENABLE_DIA_SDK**:BOOL
+ Enable building with MSVC DIA SDK for PDB debugging support. Available
+ only with MSVC. Defaults to ON.
+
**LLVM_USE_SANITIZER**:STRING
Define the sanitizer used to build LLVM binaries and tests. Possible values
are ``Address``, ``Memory``, ``MemoryWithOrigins``, ``Undefined``, ``Thread``,
#cmakedefine01 HAVE_DECL_STRERROR_S
/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */
-#cmakedefine01 HAVE_DIA_SDK
+#cmakedefine01 LLVM_ENABLE_DIA_SDK
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
source_group(${group} FILES ${ARGN})
endmacro()
-if(HAVE_DIA_SDK)
+if(LLVM_ENABLE_DIA_SDK)
include_directories(${MSVC_DIA_SDK_DIR}/include)
set(LIBPDB_LINK_FOLDERS "${MSVC_DIA_SDK_DIR}\\lib")
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
#include "llvm/DebugInfo/PDB/GenericError.h"
#include "llvm/DebugInfo/PDB/IPDBSession.h"
#include "llvm/DebugInfo/PDB/PDB.h"
-#if HAVE_DIA_SDK
+#if LLVM_ENABLE_DIA_SDK
#include "llvm/DebugInfo/PDB/DIA/DIASession.h"
#endif
#include "llvm/DebugInfo/PDB/Raw/RawSession.h"
if (Type == PDB_ReaderType::Raw)
return RawSession::createFromPdb(Path, Session);
-#if HAVE_DIA_SDK
+#if LLVM_ENABLE_DIA_SDK
return DIASession::createFromPdb(Path, Session);
#else
return llvm::make_error<GenericError>("DIA is not installed on the system");
if (Type == PDB_ReaderType::Raw)
return RawSession::createFromExe(Path, Session);
-#if HAVE_DIA_SDK
+#if LLVM_ENABLE_DIA_SDK
return DIASession::createFromExe(Path, Session);
#else
return llvm::make_error<GenericError>("DIA is not installed on the system");
config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
config.have_zlib = "@HAVE_LIBZ@"
config.have_libxar = "@HAVE_LIBXAR@"
-config.have_dia_sdk = @HAVE_DIA_SDK@
+config.have_dia_sdk = @LLVM_ENABLE_DIA_SDK@
config.enable_ffi = "@LLVM_ENABLE_FFI@"
config.test_examples = "@ENABLE_EXAMPLES@"