Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use public scope to fix shared windows build#4009

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

uilianries
Copy link

@uilianries uilianries commented Apr 1, 2024

Hello all!

The CMake target libzstd_shared requires the file libzstd-dll.rc to expose library's symbols in DLL, when building with MSVC and configured to shared.

add_library(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources})

Still, the file libzstd-dll.rc includes the public header zstd.h to be able to read those publuc methods.

#include "zstd.h" /* ZSTD_VERSION_STRING */

The same does not occur with Linux/OSX, because only Windows needs that file to expose symbols.

To be able to access the zstd.h, CMake needs to know where this file is available. One way to do that is using the target_include_directories method, pointing a folder to be included to that CMake target only. The same is configured with the scope INTERFACE, which is only visible to the consumers of the target, not to the target itself. The result is follow error, because that folder is not visible when building on Windows (the OS does not matter).

In order to fix the situation, the zstd.h should be visible when both building the target, but also when consuming it. It describes the PUBLIC scope.

fixes #3999

OS: Windows 10
Compiler: Visual Studio 17 2022
CMake: version 3.29.0

This patch uses PUBLIC as scope to fix the current build.

Here is the build log using https://github.com/facebook/zstd/releases/download/v1.5.6/zstd-1.5.6.tar.gz without the patch.

Details
> cmake -S build/cmake -B build-cmake -DZSTD_BUILD_PROGRAMS=OFF -DZSTD_BUILD_STATIC=OFF -DZSTD_BUILD_SHARED=ON -DZSTD_MULTITHREAD_SUPPORT=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=ON
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.22000.0 to target Windows 10.0.19045.
-- The C compiler identification is MSVC 19.33.31630.0
-- The ASM compiler identification is MSVC
-- Found assembler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx64/x64/cl.exe
-- The CXX compiler identification is MSVC 19.33.31630.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- ZSTD VERSION: 1.5.6
-- Performing Test C_FLAG_MP
-- Performing Test C_FLAG_MP - Success
-- Performing Test CXX_FLAG_MP
-- Performing Test CXX_FLAG_MP - Success
-- Performing Test C_FLAG_D_UNICODE
-- Performing Test C_FLAG_D_UNICODE - Success
-- Performing Test CXX_FLAG_D_UNICODE
-- Performing Test CXX_FLAG_D_UNICODE - Success
-- Performing Test C_FLAG_DUNICODE
-- Performing Test C_FLAG_DUNICODE - Success
-- Performing Test CXX_FLAG_DUNICODE
-- Performing Test CXX_FLAG_DUNICODE - Success
-- CMAKE_INSTALL_PREFIX: C:/Program Files (x86)/zstd
-- CMAKE_INSTALL_LIBDIR: lib
-- ZSTD_LEGACY_SUPPORT defined!
-- ZSTD_MULTITHREAD_SUPPORT is enabled
-- Configuring done (6.6s)
-- Generating done (0.0s)
-- Build files have been written to: C:/Users/uilia/AppData/Local/Temp/zstd-1.5.6/build-cmake

C:\Temp\zstd-1.5.6
> cmake --build build-cmake\
Change Dir: 'C:/Users/uilia/AppData/Local/Temp/zstd-1.5.6/build-cmake'

Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/amd64/MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n
MSBuild version 17.3.1+2badb37d1 for .NET Framework
Build started 2024-04-01 01:10:18 PM.
Project "C:\Temp\zstd-1.5.6\build-cmake\ALL_BUILD.vcxproj" on node 1 (default targets).
Project "C:\Temp\zstd-1.5.6\build-cmake\ALL_BUILD.vcxproj" (1) is building "C:\Temp\zstd-1.5.6\build-cmake\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
PrepareForBuild:
  Creating directory "x64\Debug\ZERO_CHECK\".
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(544,5): warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build. [C:\Temp\zstd-1 .5.6\build-cmake\ZERO_CHECK.vcxproj]
  Creating directory "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\".
InitializeBuildStatus:
  Creating "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  1>Checking Build System
FinalizeBuildStatus:
  Deleting file "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
  Touching "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Done Building Project "C:\Temp\zstd-1.5.6\build-cmake\ZERO_CHECK.vcxproj" (default targets).

Project "C:\Temp\zstd-1.5.6\build-cmake\ALL_BUILD.vcxproj" (1) is building "C:\Temp\zstd-1.5.6\build-cmake\lib\libzstd_shared.vcxproj" (3) on node 1 (default targets).
PrepareForBuild:
  Creating directory "libzstd_shared.dir\Debug\".
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(544,5): warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build. [C:\Temp\zstd-1 .5.6\build-cmake\lib\libzstd_shared.vcxproj]
  Creating directory "C:\Temp\zstd-1.5.6\build-cmake\lib\Debug\".
  Creating directory "libzstd_shared.dir\Debug\libzstd_shared.tlog\".
InitializeBuildStatus:
  Creating "libzstd_shared.dir\Debug\libzstd_shared.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule C:/Users/uilia/AppData/Local/Temp/zstd-1.5.6/build/cmake/lib/CMakeLists.txt
ClCompile:
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\bin\HostX64\x64\CL.exe /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICO
  DE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXPORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc
  :forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external:W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1
  .5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompress.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\U
  sers\uilia\AppData\Local\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Users\uilia\AppData\Local\T
  emp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Users\ui
  lia\AppData\Local\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Users\uilia\AppData\Local\Tem
  p\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdmt_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6
  \lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\l
  ib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Users
  \uilia\AppData\Local\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  Microsoft (R) C/C++ Optimizing Compiler Version 19.33.31630 for x64
  Copyright (C) Microsoft Corporation.  All rights reserved.
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  debug.c
  entropy_common.c
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  error_private.c
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  fse_decompress.c
  pool.c
  threading.c
  xxhash.c
  zstd_common.c
  fse_compress.c
  cl /c /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /Zi /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D _WINDLL /D _UNICODE /D UNICODE /D WIN32 /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXP
  ORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "CMAKE_INTDIR=\"Debug\"" /D libzstd_shared_EXPORTS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"libzstd_shared.dir\Debug\\" /Fd"libzstd_shared.dir\Debug\vc143.pdb" /external
  :W3 /Gd /TC /errorReport:queue "C:\Temp\zstd-1.5.6\lib\common\debug.c" "C:\Temp\zstd-1.5.6\lib\common\entropy_common.c" "C:\Temp\zstd-1.5.6\lib\common\error_private.c" "C:\Temp\zstd-1.5.6\lib\common\fse_decompre
  ss.c" "C:\Temp\zstd-1.5.6\lib\common\pool.c" "C:\Temp\zstd-1.5.6\lib\common\threading.c" "C:\Temp\zstd-1.5.6\lib\common\xxhash.c" "C:\Temp\zstd-1.5.6\lib\common\zstd_common.c" "C:\Temp\
  zstd-1.5.6\lib\compress\fse_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\hist.c" "C:\Temp\zstd-1.5.6\lib\compress\huf_compress.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress.c" "C:\Temp\zstd-1.5.6\lib\compres
  s\zstd_compress_literals.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_sequences.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_compress_superblock.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_double_fast.c" "C:\Temp\
  zstd-1.5.6\lib\compress\zstd_fast.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_lazy.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_ldm.c" "C:\Temp\zstd-1.5.6\lib\compress\zstd_opt.c" "C:\Temp\zstd-1.5.6\lib\compress\zstdm
  t_compress.c" "C:\Temp\zstd-1.5.6\lib\decompress\huf_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_ddict.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_decompress.c" "C:\Temp\zstd-1.5.6\lib\decompress\zstd_d
  ecompress_block.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\cover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\divsufsort.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\fastcover.c" "C:\Temp\zstd-1.5.6\lib\dictBuilder\zdict.c" "C:
  \Temp\zstd-1.5.6\lib\legacy\zstd_v01.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v02.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v03.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v04.c" "C:\Temp\zstd-1.
  5.6\lib\legacy\zstd_v05.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v06.c" "C:\Temp\zstd-1.5.6\lib\legacy\zstd_v07.c"
  hist.c
  huf_compress.c
  zstd_compress.c
  zstd_compress_literals.c
  zstd_compress_sequences.c
  zstd_compress_superblock.c
  zstd_double_fast.c
  zstd_fast.c
  zstd_lazy.c
  zstd_ldm.c
  zstd_opt.c
  zstdmt_compress.c
  huf_decompress.c
  zstd_ddict.c
  zstd_decompress.c
  zstd_decompress_block.c
  cover.c
  divsufsort.c
  fastcover.c
  zdict.c
  zstd_v01.c
  zstd_v02.c
  zstd_v03.c
  zstd_v04.c
  zstd_v05.c
  zstd_v06.c
  zstd_v07.c
ResourceCompile:
  C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\rc.exe /D _UNICODE /D UNICODE /D WIN32 /D _DEBUG /D _WINDOWS /D _UNICODE /D UNICODE /D ZSTD_DISABLE_ASM /D ZSTD_MULTITHREAD /D ZSTD_DLL_EXPORT=1 /D ZSTD_HEAPMODE=0 /D _CONSOLE /D _CRT_SECURE_NO_WARNINGS /D XXH_NAMESPACE=ZSTD_ /D ZSTD_LEGACY_SUPPORT=5 /D "
  CMAKE_INTDIR=\\\"Debug\\\"" /D libzstd_shared_EXPORTS /l"0x0409" /I"C:\Temp\zstd-1.5.6\build-cmake\lib" /I"C:\Temp\zstd-1.5.6\build\cmake\lib" /nologo /fo"libzstd_shared.dir\Debug\libzstd-dll.res" "C:\Temp\zstd-1.5.6\build\VS2010\libzstd
  -dll\libzstd-dll.rc"
C:\Temp\zstd-1.5.6\build\VS2010\libzstd-dll\libzstd-dll.rc(4): fatal error RC1015: cannot open include file 'zstd.h'. [C:\Temp\zstd-1.5.6\build-cmake\lib\libzstd_shared.vcxproj]

Done Building Project "C:\Temp\zstd-1.5.6\build-cmake\lib\libzstd_shared.vcxproj" (default targets) -- FAILED.

Done Building Project "C:\Temp\zstd-1.5.6\build-cmake\ALL_BUILD.vcxproj" (default targets) -- FAILED.


Build FAILED.

"C:\Temp\zstd-1.5.6\build-cmake\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\Temp\zstd-1.5.6\build-cmake\ZERO_CHECK.vcxproj" (default target) (2) ->
(PrepareForBuild target) ->
  C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(544,5): warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build. [C:\Temp\zstd -1.5.6\build-cmake\ZERO_CHECK.vcxproj]


"C:\Temp\zstd-1.5.6\build-cmake\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\Temp\zstd-1.5.6\build-cmake\lib\libzstd_shared.vcxproj" (default target) (3) ->
  C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(544,5): warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build. [C:\Temp\zstd -1.5.6\build-cmake\lib\libzstd_shared.vcxproj]


"C:\Temp\zstd-1.5.6\build-cmake\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\Temp\zstd-1.5.6\build-cmake\lib\libzstd_shared.vcxproj" (default target) (3) ->
(ResourceCompile target) ->
  C:\Temp\zstd-1.5.6\build\VS2010\libzstd-dll\libzstd-dll.rc(4): fatal error RC1015: cannot open include file 'zstd.h'. [C:\Temp\zstd-1.5.6\build-cmake\lib\libzstd_shared.vcxproj]

    2 Warning(s)
    1 Error(s)

Time Elapsed 00:00:01.51

Signed-off-by: Uilian Ries <uilianries@gmail.com>
@facebook-github-bot
Copy link

Hi @uilianries!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@uilianries
Copy link
Author

Hi @uilianries!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

Done, CLA has been signed.

@facebook-github-bot
Copy link

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@terrelln
Copy link
Contributor

terrelln commented Apr 1, 2024

@uilianries Zstd should not require the public include directory to build, because it uses relative includes. Is this a deficiency in the Windows cmake build, or have I misunderstood something about cmake?

@terrelln terrelln self-assigned this Apr 1, 2024
@terrelln
Copy link
Contributor

terrelln commented Apr 1, 2024

I'm happy to accept the PR, I would just like to understand why this is happening first

@uilianries
Copy link
Author

@terrelln Sorry my delay. When building shared on Windows, in order to generate the DLL, the file libzstd-dll.rc will be consumed here:

add_library(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources})

Then, it requires zstd.h (the public header) too:

#include "zstd.h" /* ZSTD_VERSION_STRING */

However, properties marked as interface are only visible to the consumers of the target, not to the target itself. The result is follow error, because that folder is not visible when building the shared library on Windows.

Another option would be adding an expression to use PUBLIC or INTERFACE according to MSVC value, but I guess is too much.

@terrelln
Copy link
Contributor

terrelln commented Apr 2, 2024

Then, it requires zstd.h (the public header) too:

Thanks! I didn't even realize that that file existed! We've switched all of our other headers over to relative includes. Would it be possible to use a relative include for that file as well?

But this makes sense, and I will merge this PR. Could you please just add a comment explaining why it needs to be PUBLIC for Windows, so we don't accidentally remove it again in the future.

@uilianries
Copy link
Author

@terrelln I just updated the PR description with more details. Please, take a look.

About the relative include, do you mean changing the libzstd-dll.rc to include zstd.h from a relative path, like:

#include "../../../lib/zstd.h" /* ZSTD_VERSION_STRING */

It would work yes, it tested locally on Windows + CMake and compiled the DLL without errors. But is really fragile, as any layout change in the folder would break it. Plus, I see not only CMake is consuming the .rc file, but also Meson and VS2010, so would need to build with them too to make sure.

@dg0yt
Copy link

dg0yt commented Apr 10, 2024

There is also #4019.

johnwparent added a commit to johnwparent/spack that referenced this pull request Apr 15, 2024
zstd 1.5.6 has issues building on Windows without the changes from
github.com/facebook/zstd/pull/4009
@bebuch
Copy link

bebuch commented Apr 17, 2024

I did run into the same issue. The PR worked for me. Thanks!

@dg0yt
Copy link

dg0yt commented Apr 17, 2024

#4019 was merged, so this PR might be obsolete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MSVC CMake build failed on v1.5.6
5 participants