1rem Ensure Cygwin executables like sh.exe are not in PATH
2rem set PATH=C:\Windows\system32;C:\Windows
3
4echo on
5echo
6
7set CMAKE_FLAGS=-DENABLE_SSL=OPENSSL -DENABLE_SASL=CYRUS
8set TAR=C:\cygwin\bin\tar
9set CMAKE=C:\cmake\bin\cmake
10set CMAKE_MAKE_PROGRAM=C:\mingw-w64\x86_64-4.9.1-posix-seh-rt_v3-rev1\mingw64\bin\mingw32-make.exe
11set CC=C:\mingw-w64\x86_64-4.9.1-posix-seh-rt_v3-rev1\mingw64\bin\gcc.exe
12rem Ensure Cygwin executables like sh.exe are not in PATH
13set PATH=C:\cygwin\bin;C:\Windows\system32;C:\Windows;C:\mingw-w64\x86_64-4.9.1-posix-seh-rt_v3-rev1\mingw64\bin;C:\mongoc;src\libbson
14
15set SRCROOT=%CD%
16set BUILD_DIR=%CD%\build-dir
17rmdir /S /Q %BUILD_DIR%
18mkdir %BUILD_DIR%
19
20set INSTALL_DIR=%CD%\install-dir
21rmdir /S /Q %INSTALL_DIR%
22mkdir %INSTALL_DIR%
23
24set PATH=%PATH%;"c:\Program Files (x86)\MSBuild\14.0\Bin"
25set PATH=%PATH%;"c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin"
26set PATH=%PATH%;%INSTALL_DIR%\bin
27
28cd %BUILD_DIR%
29%TAR% xf ..\..\mongoc.tar.gz -C . --strip-components=1
30
31rem Build libbson
32cd src\libbson
33%CMAKE% -G "MinGW Makefiles" -DCMAKE_MAKE_PROGRAM=%CMAKE_MAKE_PROGRAM% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% .
34%CMAKE_MAKE_PROGRAM%
35if errorlevel 1 (
36   exit /B 1
37)
38
39%CMAKE_MAKE_PROGRAM% install
40if errorlevel 1 (
41   exit /B 1
42)
43
44cd ..\..
45rem Build libmongoc
46%CMAKE% -G "MinGW Makefiles" -DCMAKE_MAKE_PROGRAM=%CMAKE_MAKE_PROGRAM% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DCMAKE_PREFIX_PATH=%INSTALL_DIR%\lib\cmake %CMAKE_FLAGS% .
47%CMAKE_MAKE_PROGRAM%
48if errorlevel 1 (
49   exit /B 1
50)
51
52%CMAKE_MAKE_PROGRAM% install
53if errorlevel 1 (
54   exit /B 1
55)
56
57call ..\.evergreen\check-installed-files.bat
58if errorlevel 1 (
59   exit /B 1
60)
61
62if not exist %INSTALL_DIR%\lib\libmongoc-static-1.0.a (
63  echo libmongoc-static-1.0.a missing!
64  exit /B 1
65) else (
66  echo libmongoc-static-1.0.a check ok
67)
68
69cd %SRCROOT%
70
71rem Test our pkg-config file
72set EXAMPLE_DIR=%SRCROOT%\examples\
73cd %EXAMPLE_DIR%
74
75rem Proceed from here once we have pkg-config on Windows
76exit /B 0
77
78set PKG_CONFIG_PATH=%INSTALL_DIR%\lib\pkgconfig
79
80rem http://stackoverflow.com/questions/2323292
81for /f %%i in ('pkg-config --libs --cflags libmongoc-1.0') do set PKG_CONFIG_OUT=%%i
82
83echo PKG_CONFIG_OUT is %PKG_CONFIG_OUT%
84
85%CC% -o hello_mongoc hello_mongoc.c %PKG_CONFIG_OUT%
86
87rem Works on windows-64-vs2013-compile, VS 2013 is a.k.a. "Visual Studio 12"
88rem And yes, they should've named the flag "dependencies".
89"c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\dumpbin.exe" /dependents Debug\hello_mongoc.exe
90
91rem Add DLLs to PATH
92set PATH=%PATH%;%INSTALL_DIR%\bin
93
94Debug\hello_mongoc.exe %MONGODB_EXAMPLE_URI%
95