diff --git a/CMakeLists.txt b/CMakeLists.txt index 08c2cf476..1c9f374d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -570,6 +570,14 @@ set(ZIG_C_HEADER_FILES "xtestintrin.h" ) +if(MSVC) + set(MSVC_DIA_SDK_DIR "$ENV{VSINSTALLDIR}DIA SDK") + if (IS_DIRECTORY ${MSVC_DIA_SDK_DIR}) + set(ZIG_DIA_GUIDS_LIB "${MSVC_DIA_SDK_DIR}/lib/amd64/diaguids.lib") + string(REGEX REPLACE "\\\\" "\\\\\\\\" ZIG_DIA_GUIDS_LIB_ESCAPED "${ZIG_DIA_GUIDS_LIB}") + endif() +endif() + set(ZIG_LIB_DIR "lib/zig") set(C_HEADERS_DEST "${ZIG_LIB_DIR}/include") set(ZIG_STD_DEST "${ZIG_LIB_DIR}/std") @@ -631,6 +639,10 @@ target_link_libraries(zig LINK_PUBLIC ${LLVM_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) +if(ZIG_DIA_GUIDS_LIB) + target_link_libraries(zig LINK_PUBLIC ${ZIG_DIA_GUIDS_LIB}) +endif() + if(MSVC OR MINGW) target_link_libraries(zig LINK_PUBLIC version) endif() diff --git a/build.zig b/build.zig index b8b47cda2..57af7eaec 100644 --- a/build.zig +++ b/build.zig @@ -45,6 +45,7 @@ pub fn build(b: &Builder) { const lld_libraries = nextValue(&index, build_info); const std_files = nextValue(&index, build_info); const c_header_files = nextValue(&index, build_info); + const dia_guids_lib = nextValue(&index, build_info); const llvm = findLLVM(b, llvm_config_exe); @@ -76,6 +77,10 @@ pub fn build(b: &Builder) { exe.linkSystemLibrary("c++"); } + if (dia_guids_lib.len != 0) { + exe.addObjectFile(dia_guids_lib); + } + exe.linkSystemLibrary("c"); b.default_step.dependOn(&exe.step); diff --git a/ci/appveyor/build_script.bat b/ci/appveyor/build_script.bat index ce6844c8a..98786d986 100644 --- a/ci/appveyor/build_script.bat +++ b/ci/appveyor/build_script.bat @@ -7,13 +7,13 @@ SET "PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH%" SET "MSYSTEM=MINGW64" SET "APPVEYOR_CACHE_ENTRY_ZIP_ARGS=-m0=Copy" -bash -lc "cd ${APPVEYOR_BUILD_FOLDER} && if [ -s ""llvm+clang-5.0.0-win64-msvc-release.tar.xz"" ]; then echo 'skipping LLVM download'; else wget 'https://s3.amazonaws.com/superjoe/temp/llvm%%2bclang-5.0.0-win64-msvc-release.tar.xz'; fi && tar xf llvm+clang-5.0.0-win64-msvc-release.tar.xz" || exit /b +bash -lc "cd ${APPVEYOR_BUILD_FOLDER} && if [ -s ""llvm+clang-5.0.1-win64-msvc-release.tar.xz"" ]; then echo 'skipping LLVM download'; else wget 'https://s3.amazonaws.com/ziglang.org/deps/llvm%%2bclang-5.0.1-win64-msvc-release.tar.xz'; fi && tar xf llvm+clang-5.0.1-win64-msvc-release.tar.xz" || exit /b SET "PATH=%PREVPATH%" SET "MSYSTEM=%PREVMSYSTEM%" SET "ZIGBUILDDIR=%APPVEYOR_BUILD_FOLDER%\build-msvc-release" -SET "ZIGPREFIXPATH=%APPVEYOR_BUILD_FOLDER%\llvm+clang-5.0.0-win64-msvc-release" +SET "ZIGPREFIXPATH=%APPVEYOR_BUILD_FOLDER%\llvm+clang-5.0.1-win64-msvc-release" mkdir %ZIGBUILDDIR% cd %ZIGBUILDDIR% diff --git a/src/config.h.in b/src/config.h.in index 038d42d21..1fcc3fe12 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -32,5 +32,6 @@ #define ZIG_LLVM_CONFIG_EXE "@LLVM_CONFIG_EXE@" #define ZIG_STD_FILES "@ZIG_STD_FILES@" #define ZIG_C_HEADER_FILES "@ZIG_C_HEADER_FILES@" +#define ZIG_DIA_GUIDS_LIB "@ZIG_DIA_GUIDS_LIB_ESCAPED@" #endif diff --git a/src/main.cpp b/src/main.cpp index 6f70317f9..4acf4014b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -267,14 +267,15 @@ static void add_package(CodeGen *g, CliPkg *cli_pkg, PackageTableEntry *pkg) { int main(int argc, char **argv) { if (argc == 2 && strcmp(argv[1], "BUILD_INFO") == 0) { - printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n", + printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", ZIG_CMAKE_BINARY_DIR, ZIG_CXX_COMPILER, ZIG_LLVM_CONFIG_EXE, ZIG_LLD_INCLUDE_PATH, ZIG_LLD_LIBRARIES, ZIG_STD_FILES, - ZIG_C_HEADER_FILES); + ZIG_C_HEADER_FILES, + ZIG_DIA_GUIDS_LIB); return 0; }