summaryrefslogtreecommitdiffstats
path: root/windows/INSTALL-MSVC.txt
diff options
context:
space:
mode:
Diffstat (limited to 'windows/INSTALL-MSVC.txt')
-rw-r--r--windows/INSTALL-MSVC.txt56
1 files changed, 56 insertions, 0 deletions
diff --git a/windows/INSTALL-MSVC.txt b/windows/INSTALL-MSVC.txt
new file mode 100644
index 0000000..2fdd1e7
--- /dev/null
+++ b/windows/INSTALL-MSVC.txt
@@ -0,0 +1,56 @@
+
+Building XZ Utils with Microsoft Visual Studio
+==============================================
+
+Introduction
+------------
+
+ MSVC 2013 update 2 and later have enough C99 support to build
+ liblzma from XZ Utils 5.2.0 and later without modifications.
+ Older MSVC versions would require a large number of changes to
+ the XZ Utils code and thus the old MSVC versions aren't supported.
+
+ As of 2015-06-19, some work has been done to get xz.exe and other
+ command line tools built with MSVC, but it's not complete enough
+ to be included in XZ Utils.
+
+
+Building
+--------
+
+ It is recommended to use CMake to generate build files for MSVC.
+ The project files in vs201x directories will be removed in the
+ future (5.4.x releases will include them still).
+
+ Descriptions of the files in the vs201x directories:
+
+ config.h liblzma configuration #defines for MSVC.
+ liblzma.vcxproj This builds static liblzma.
+ liblzma_dll.vcxproj This builds liblzma.dll.
+ xz_win.sln Solution using the above project files.
+
+ The projects have x86 and x86-64 platform configurations, as well
+ as a Debug, Release, and ReleaseMT configuration -- MT is the
+ compiler switch to link to the CRT statically, so it will not
+ have any other DLL dependencies.
+
+ The VS2017 project files don't set <WindowsTargetPlatformVersion>.
+ This means that you may need to either install Windows SDK 8.1 or
+ you may need to set the target platform version before building.
+
+ Currently no test programs are built or run under MSVC from the
+ project files. CMake-based builds include tests too.
+
+
+Notes
+-----
+
+ liblzma API headers declare the functions with __declspec(dllimport)
+ by default. To avoid this when using static liblzma from your code,
+ #define LZMA_API_STATIC before #including <lzma.h>.
+
+ MSVC gives a bunch of compiler warnings. Some warnings are specific
+ to 32-bit or 64-bit build and some appear for both builds. These
+ are known and shouldn't be a problem. Some of them will probably
+ be fixed in the future.
+