On Mar 20, 2008, at 3:50 AM, Andreas Grob wrote:
Hi,
Failed finding an option for ant to do it directly I did it hand
made using the
build-projects-vc8 option.
For the libs apr, aprutil and log4cxx I open the properties dialog
and changed
the runtime library option to /MT (or /MTd for the debug lib).
I've added an option to select the static C RTL as bug https://issues.apache.org/jira/browse/LOGCXX-254
. To build a static log4cxx library which uses the static
multithreaded C RTL use:
ant -Dlib.type=static -Druntime=static -Dfind=false
A dynamic log4cxx library which uses the static C RTL is unsafe since
the API passes STL strings over the DLL boundary which can easily
result in strings being allocated by one C RTL and freed by another.
The unit tests will fail quickly with heap corruption assertions or
access violations.
Building apr and aprutil works well. But log4cxx didn't link because
there are
missing dependencies. Well, not a big deal I had to add apr.lib and
aprutil.lib
to the additional dependencies option.
should this not already be done by ant -Dbuild-projects-vc8?
Unfortunately, the Microsoft Visual Studio.NET and later solution file
(.sln) format is not obvious and cpptasks does not generate it like
the VC6 .dsw file. I believe that I had some luck with a combination
of a .dsw and .vcproj's, but since I wasn't planning on providing VC7
or later project files with the log4cxx 0.10.0 release, I didn't
explore further. It looks like there is an analysis of the format at http://www.ondotnet.com/pub/a/dotnet/excerpt/vshacks_chap1/index.html?page=4
.
I'm looking forward for log4cxx release 0.10.0! :-)
RC3 hopefully on Monday.