blob: c47c5d0999aac27d6c151c83fab25deab34ba89c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
Building on Win32.
Building libical on Windows is a different process than building it on the other platforms: Instead of autogenerating makefiles using the autoconf/automake/make tools, Microsoft project files (.dsp) are used.
Here are the requirements and steps to build libical on the Win32 platform.
Software Requirements
---------------------
The following softwares need to be installed for a standard Windows build:
- Microsoft Visual C++ 6.0 or higher (only tested on 6.0 as of today).
- GNU Tools for Microsoft Windows (the cygwin toolkit).
cygwin is a UNIX-like environment for Windows, free from Red Hat. libical uses a few set of cygwin packages, which must be installed.
Go to http://www.cygwin.com and follow the installation instructions. The cygwin installer wizard runs as a Windows program. One page of the wizard presents an outline view of categories and packages. Here is a list of the cygwin packages needed for building libical:
. base --> ash : Unix-like command line interpreter shell.
. base --> grep: GNU grep, egrep and fgrep
. interpreters --> perl: A scripting language used to autogenerate some header files.
Environment Variables
---------------------
Visual C++ needs to be able to launch the cygwin tools. To do so, you can either:
- add the path to the cygwin tools (by default c:\cygwin\bin) to your global or user Path enviroment variable,
- or, in Visual C++ go to Tools --> Options --> Directories --> Show directories for Executable files and add the path to the cygwin tools (by default c:\cygwin\bin).
Building the library
--------------------
You need to build each subcomponent of libical one by one in the following order:
. src/libical/libical.dsp
. src/libicalss/libicalss.dsp
. src/libicalvcal/libicalvcal.dsp
Testing your build
------------------
libical comes with 2 regression test programs:
. src/test/recur.dsp
. src/test/regression.dsp
Building those and running them (from the command line or from VC++) is probably a good idea to check that your build is OK. The results are pretty much self explanatory.
Of course, running the regression tests becomes mandatory if you're planning on submitting a change.
Using the library
-----------------
By default, the library is created as a static library under src/libical/Debug/libical.lib (Debug version). You can also create a Release version which will be put under src/libical/Release/libical.lib.
The header file ical.h is autogenerated by the build process and should be located under src/libical/ical.h.
The library is created using the (Debug) Multithreaded DLL run-time library option. Be sure that you have the same setting in your application (Project --> Settings --> C/C++ --> Code Generation) or things will start to break.
The symptoms of this problem are link time errors like:
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _malloc already defined in
LIBCMTD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _free already defined in
LIBCMTD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _strncmp already defined in
LIBCMTD.lib(strncmp.obj)
Alternatively, you can alter the libical .dsp files and recompile the library.
|