-
Notifications
You must be signed in to change notification settings - Fork 122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LOGCXX-494: windows cmake build for log4cxx against apr-2 #3
Conversation
Just some notes: While it has been discussed in the past to move to CMAKE already, keep in mind that the current build based on Autotools and/or Maven and/or Ant deals with things like projetc files generation, website generation, development iteration incl. version numbers etc. as well. So it's not only about adding CMAKE support, but one needs to ultimately decide which parts of the current build tools are kept and all that. |
Not recommending a change in the overall build system. Following the Apache apr project, autotools is used on unix, and either cmake or a provided project is used on windows. I think that will work here; we do something similar in Apache Thrift for windows support. The complete lack of windows build support at all in the project trunk is what worries me the most. Version 0.10.0 eliminated all visual studio project files from the project, leaving folks to cobble their own solution together, so this is an attempt at remedying it. |
Any update on this? It's almost 3 months old now and no updates from the log4cxx team. |
Because I responded on the mailing list: http://mail-archives.apache.org/mod_mbox/logging-dev/201801.mbox/<1913119533.20180111172120%40am-soft.de> At least I don't have any plans to deal with such a major change in the build currently, I simply don't have the time to do so.
It's either about the addition of CMAKE to what is already there or the replacement of something which is already there, both are major changes from my understanding. And we already have Autotools, Maven, Shell Scripts, ANT and none of those is properly integrated with each other to support everything which is needed, like development iteration, version number updates, release date updates, site generation etc.
Build support in trunk was/is available using ANT and cpptasks and at least for some recent versions of Visual Studio this worked: https://logging.apache.org/log4cxx/latest_stable/building/index.html
Because those instructions addressed a release.
I'm somewhat sure they have never been in trunk, but only in the release package and have been generated during the release process. If you look at the following packages, some generated projects are still available: |
It currently looks like #14 gets merged, so am closing here for now. |
https://issues.apache.org/jira/browse/LOGCXX-494
I've used log4cxx for quite some time and I was surprised to find there are no project or cmake files for windows builds in the trunk. In the past I have cobbled together various sources and made visual studio projects to wrap apr, apr-util, and log4cxx into a single build.
Today, I spent the day making a cmake build environment that leverages the latest apr-2 development trunk.
When you build apr-2 with cmake on Windows you get a static and a shared library in the prefix output directory. The static library is named
apr-2.lib
and the dynamic link library islibapr-2.{dll,lib}
. I accounted for this in the cmake, expecting folks to set-DBUILD_SHARED_LIBS={ON|OFF}
. There are a number of build warnings when building dynamic, and it looks like some dllexport declarations are missing. This PR does not correct those shortcomings.I pulled some concepts from cmake files in the Apache Thrift project.
Here is an example configuration run and the output for configuring a Static, Release, VS2010 build. The out-of-tree build directory is
c:\Temp\log4cxx-build\Static\Release
. The source tree isc:\temp\logging-log4cxx
. Files will be installed intoC:\temp\log4cxx-install\Static\Release
.In the build directory you get a full Visual Studio project that you can use if you want.
It can then be built with: