summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2019-10-11 11:13:39 -0700
committerElliott Hughes <enh@google.com>2019-11-13 10:28:10 -0800
commit40a7191d8057597978b149621d2882ca507d8cb5 (patch)
treee8d918e4285a965f916def290385a0614313bde1 /win32
parent4c60b0d92a62545fa2ff75f7cac070df04a59bdf (diff)
downloadexpat-40a7191d8057597978b149621d2882ca507d8cb5.tar.gz
Upgrade expat to R_2_2_9
Manual changes to Android.bp and expat_config.h. Test: treehugger Change-Id: Iba9d1ed11fadaf15b95a9e94cbc128e77f3aea6d
Diffstat (limited to 'win32')
-rw-r--r--win32/README.txt43
-rw-r--r--win32/build_expat_iss.bat84
-rw-r--r--win32/expat.iss19
3 files changed, 104 insertions, 42 deletions
diff --git a/win32/README.txt b/win32/README.txt
index 462c49b7..1d725f38 100644
--- a/win32/README.txt
+++ b/win32/README.txt
@@ -6,16 +6,17 @@ Expat can be built on Windows in two ways:
This follows the Unix build procedures.
* MS Visual Studio 2013, 2015 and 2017:
- A solution file for Visual Studio 2013 is provided: expat.sln.
- The associated project files (*.vcxproj) reside in the appropriate
- project directories. This solution file can be opened in VS 2015 or VS 2017
- and should be upgraded automatically if VS 2013 is not also installed.
- Note: Tests have their own solution files.
+ Use CMake to generate a solution file for Visual Studio, then use msbuild
+ to compile. For example:
+
+ md build
+ cd build
+ cmake -G"Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
+ msbuild /m expat.sln
* All MS C/C++ compilers:
- The output for all projects will be generated in the win32\bin
- directory, intermediate files will be located in project-specific
- subdirectories of win32\tmp.
+ The output for all projects will be generated in the <CMAKE_BUILD_TYPE>\
+ and xmlwf\<CMAKE_BUILD_TYPE>\ directories.
* Creating MinGW dynamic libraries from MS VC++ DLLs:
@@ -37,39 +38,23 @@ Expat can be built on Windows in two ways:
Dynamic Linking:
- By default the Expat Dlls are built to link statically
+ By default the Expat Dlls are built to link dynamically
with the multi-threaded run-time library.
The libraries are named
- libexpat(w).dll
- libexpat(w).lib (import library)
The "w" indicates the UTF-16 version of the library.
- One rarely uses other versions of the Dll, but they can
- be built easily by specifying a different RTL linkage in
- the IDE on the C/C++ tab under the category Code Generation.
+ Versions that are statically linking with the multi-threaded run-time library
+ can be built with -DEXPAT_MSVC_STATIC_CRT=ON.
- Static Linking:
+ Static Linking: (through -DEXPAT_SHARED_LIBS=OFF)
The libraries should be named like this:
- Single-theaded: libexpat(w)ML.lib
Multi-threaded: libexpat(w)MT.lib
Multi-threaded Dll: libexpat(w)MD.lib
The suffixes conform to the compiler switch settings
- /ML, /MT and /MD for MS VC++.
-
- Note: In Visual Studio 2005 (Visual C++ 8.0) and later, the
- single-threaded runtime library is not supported anymore.
-
- By default, the expat-static and expatw-static projects are set up
- to link statically against the multithreaded run-time library,
- so they will build libexpatMT.lib or libexpatwMT.lib files.
-
- To build the other versions of the static library,
- go to Project - Settings:
- - specify a different RTL linkage on the C/C++ tab
- under the category Code Generation.
- - then, on the Library tab, change the output file name
- accordingly, as described above
+ /MT and /MD for MS VC++.
An application linking to the static libraries must
have the global macro XML_STATIC defined.
diff --git a/win32/build_expat_iss.bat b/win32/build_expat_iss.bat
new file mode 100644
index 00000000..4e31c17d
--- /dev/null
+++ b/win32/build_expat_iss.bat
@@ -0,0 +1,84 @@
+REM Batch script to build Inno Setup installer for libexpat for Windows
+REM Call from parent directory, e.g.: cmd /c win32\build_expat_iss.bat
+REM __ __ _
+REM ___\ \/ /_ __ __ _| |_
+REM / _ \\ /| '_ \ / _` | __|
+REM | __// \| |_) | (_| | |_
+REM \___/_/\_\ .__/ \__,_|\__|
+REM |_| XML parser
+REM
+REM Copyright (C) 2019 Expat development team
+REM Licensed under the MIT license:
+REM
+REM Permission is hereby granted, free of charge, to any person obtaining
+REM a copy of this software and associated documentation files (the
+REM "Software"), to deal in the Software without restriction, including
+REM without limitation the rights to use, copy, modify, merge, publish,
+REM distribute, sublicense, and/or sell copies of the Software, and to permit
+REM persons to whom the Software is furnished to do so, subject to the
+REM following conditions:
+REM
+REM The above copyright notice and this permission notice shall be included
+REM in all copies or substantial portions of the Software.
+REM
+REM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+REM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+REM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+REM NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+REM DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+REM OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+REM USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+SET GENERATOR=Visual Studio 15 2017
+
+REM Read by msbuild!
+SET CONFIGURATION=RelWithDebInfo
+
+REM Where Inno Setup expects build results
+SET BINDIR=win32\bin\Release
+
+
+MD %BINDIR% || EXIT /b 1
+
+
+MD build_shared_char || EXIT /b 1
+CD build_shared_char || EXIT /b 1
+ cmake -G"%GENERATOR%" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DEXPAT_MSVC_STATIC_CRT=ON -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_BUILD_TOOLS=OFF .. || EXIT /b 1
+ msbuild /m expat.sln || EXIT /b 1
+ DIR %CONFIGURATION% || EXIT /b 1
+ CD .. || EXIT /b 1
+COPY build_shared_char\%CONFIGURATION%\libexpat.dll %BINDIR%\ || EXIT /b 1
+COPY build_shared_char\%CONFIGURATION%\libexpat.lib %BINDIR%\ || EXIT /b 1
+
+
+MD build_static_char || EXIT /b 1
+CD build_static_char || EXIT /b 1
+ cmake -G"%GENERATOR%" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DEXPAT_MSVC_STATIC_CRT=ON -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_SHARED_LIBS=OFF .. || EXIT /b 1
+ msbuild /m expat.sln || EXIT /b 1
+ DIR %CONFIGURATION% || EXIT /b 1
+ CD .. || EXIT /b 1
+COPY build_static_char\%CONFIGURATION%\libexpatMT.lib %BINDIR%\ || EXIT /b 1
+COPY build_static_char\xmlwf\%CONFIGURATION%\xmlwf.exe %BINDIR%\ || EXIT /b 1
+
+
+MD build_shared_wchar_t || EXIT /b 1
+CD build_shared_wchar_t || EXIT /b 1
+ cmake -G"%GENERATOR%" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DEXPAT_MSVC_STATIC_CRT=ON -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_BUILD_TOOLS=OFF -DEXPAT_CHAR_TYPE=wchar_t .. || EXIT /b 1
+ msbuild /m expat.sln || EXIT /b 1
+ DIR %CONFIGURATION% || EXIT /b 1
+ CD .. || EXIT /b 1
+COPY build_shared_wchar_t\%CONFIGURATION%\libexpatw.dll %BINDIR%\ || EXIT /b 1
+COPY build_shared_wchar_t\%CONFIGURATION%\libexpatw.lib %BINDIR%\ || EXIT /b 1
+
+
+MD build_static_wchar_t || EXIT /b 1
+CD build_static_wchar_t || EXIT /b 1
+ cmake -G"%GENERATOR%" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DEXPAT_MSVC_STATIC_CRT=ON -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_BUILD_TOOLS=OFF -DEXPAT_SHARED_LIBS=OFF -DEXPAT_CHAR_TYPE=wchar_t .. || EXIT /b 1
+ msbuild /m expat.sln || EXIT /b 1
+ DIR %CONFIGURATION% || EXIT /b 1
+ CD .. || EXIT /b 1
+COPY build_static_wchar_t\%CONFIGURATION%\libexpatwMT.lib %BINDIR%\ || EXIT /b 1
+
+
+DIR %BINDIR% || EXIT /b 1
+iscc win32\expat.iss || EXIT /b 1
diff --git a/win32/expat.iss b/win32/expat.iss
index 20f50815..c93f9c75 100644
--- a/win32/expat.iss
+++ b/win32/expat.iss
@@ -4,7 +4,7 @@
; This script was contributed by Tim Peters.
; It was designed for Inno Setup 2.0.19 but works with later versions as well.
-#define expatVer "2.2.7"
+#define expatVer "2.2.9"
[Setup]
AppName=Expat
@@ -44,31 +44,24 @@ Flags: ignoreversion; Source: doc\*.css; DestDir: "{app}\Doc"
Flags: ignoreversion; Source: doc\*.png; DestDir: "{app}\Doc"
Flags: ignoreversion; Source: win32\bin\Release\*.dll; DestDir: "{app}\Bin"
Flags: ignoreversion; Source: win32\bin\Release\*.lib; DestDir: "{app}\Bin"
-Flags: ignoreversion; Source: expat.sln; DestDir: "{app}\Source"
Flags: ignoreversion; Source: win32\README.txt; DestDir: "{app}\Source"
+Flags: ignoreversion; Source: CMake.README; DestDir: "{app}\Source"
+Flags: ignoreversion; Source: CMakeLists.txt; DestDir: "{app}\Source"
+Flags: ignoreversion; Source: ConfigureChecks.cmake; DestDir: "{app}\Source"
+Flags: ignoreversion; Source: expat_config.h.cmake; DestDir: "{app}\Source"
+Flags: ignoreversion; Source: cmake\expat-config.cmake.in; DestDir: "{app}\Source\cmake"
Flags: ignoreversion; Source: lib\*.c; DestDir: "{app}\Source\lib"
Flags: ignoreversion; Source: lib\*.h; DestDir: "{app}\Source\lib"
Flags: ignoreversion; Source: lib\*.def; DestDir: "{app}\Source\lib"
-Flags: ignoreversion; Source: lib\*.vcxproj; DestDir: "{app}\Source\lib"
-Flags: ignoreversion; Source: lib\*.vcxproj.filters; DestDir: "{app}\Source\lib"
Flags: ignoreversion; Source: examples\*.c; DestDir: "{app}\Source\examples"
-Flags: ignoreversion; Source: examples\*.vcxproj; DestDir: "{app}\Source\examples"
-Flags: ignoreversion; Source: examples\*.vcxproj.filters; DestDir: "{app}\Source\examples"
Flags: ignoreversion; Source: tests\*.c; DestDir: "{app}\Source\tests"
Flags: ignoreversion; Source: tests\*.cpp; DestDir: "{app}\Source\tests"
Flags: ignoreversion; Source: tests\*.h; DestDir: "{app}\Source\tests"
-Flags: ignoreversion; Source: tests\*.sln; DestDir: "{app}\Source\tests"
-Flags: ignoreversion; Source: tests\*.vcxproj; DestDir: "{app}\Source\tests"
-Flags: ignoreversion; Source: tests\*.vcxproj.filters; DestDir: "{app}\Source\tests"
Flags: ignoreversion; Source: tests\README.txt; DestDir: "{app}\Source\tests"
Flags: ignoreversion; Source: tests\benchmark\*.c; DestDir: "{app}\Source\tests\benchmark"
-Flags: ignoreversion; Source: tests\benchmark\*.sln; DestDir: "{app}\Source\tests\benchmark"
-Flags: ignoreversion; Source: tests\benchmark\*.vcxproj; DestDir: "{app}\Source\tests\benchmark"
Flags: ignoreversion; Source: tests\benchmark\README.txt; DestDir: "{app}\Source\tests\benchmark"
Flags: ignoreversion; Source: xmlwf\*.c*; DestDir: "{app}\Source\xmlwf"
Flags: ignoreversion; Source: xmlwf\*.h; DestDir: "{app}\Source\xmlwf"
-Flags: ignoreversion; Source: xmlwf\*.vcxproj; DestDir: "{app}\Source\xmlwf"
-Flags: ignoreversion; Source: xmlwf\*.vcxproj.filters; DestDir: "{app}\Source\xmlwf"
[Messages]
WelcomeLabel1=Welcome to the Expat XML Parser Setup Wizard