Re: Build system for Windows
Branko Čibej <[email protected]> Sat, 9 May 2026 23:46:28 +0200
| Newsgroups | gmane.comp.apache.apr.devel |
|---|---|
| Organization | The Apache Software Foundation |
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--------------0VcayrwNzUpk0HAZ08MzOf3n
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
On 9. 5. 26 23:22, Ivan Zhakov wrote:
> Hi,
>
> Currently apr-trunk has three different ways to build on Windows.
>
> 1. Visual C++ 6.0 (.dsw/.dsp)
>
> 2. NMake (apr.mak/libapr.mak). Generated during tarbal creation.
>
> 3. CMake (CMakeLists.txt)
>
> I suggest to make CMake the only build system for Windows and remove
> support for everything else (Visual C++ 6.0 and NMake):
> * CMake just works.
>
> * Modern Visual Studio has native support for building CMake projects.
>
> * Visual Studio doesn't have native support for NMake.
>
> * vcpkg has native support for CMake
>
> * Visual C++ 6.0 is really old
>
> * NMake files doesn't support discovery of externals components.
>
> * NMake is only available in tarball and cannot be used for development
+0.983
If we were starting from scratch, I'd suggest using meson + ninja on all
platforms. But we're not, and we have oodles of engineer-years invested
in the autotools build -- not to mention many, many downstream users who
depend on that.
From that perspective, going from "maintaining" 4(3) build systems to
only 2(1) seems like a good move. The only question I don't know the
answer to is how many downstream users use APR on some bespoke embedded
systems that can't handle CMake, hence the −0.17.
-- Brane
--------------0VcayrwNzUpk0HAZ08MzOf3n
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">On 9. 5. 26 23:22, Ivan Zhakov wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAPZho0-1nqndQm+9bR8cqwTAGZCHzmtB_sRWdNTTJvfUpdYchw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div>Hi,</div>
<div><br>
</div>
<div>Currently apr-trunk has three different ways to build on
Windows.</div>
<div><br>
</div>
<div>1. Visual C++ 6.0 (.dsw/.dsp)</div>
<div><br>
</div>
<div>2. NMake (apr.mak/libapr.mak). Generated during tarbal
creation.</div>
<div><br>
</div>
<div>3. CMake (CMakeLists.txt)</div>
<div><br>
</div>
<div>I suggest to make CMake the only build system for Windows
and remove support for everything else (Visual C++ 6.0 and
NMake):</div>
<div>* CMake just works.</div>
<div><br>
</div>
<div>* Modern Visual Studio has native support for building
CMake projects.</div>
<div><br>
</div>
<div>
* Visual Studio doesn't have native support for NMake. </div>
<div><br>
</div>
<div>* vcpkg has native support for CMake</div>
<div><br>
</div>
<div>* Visual C++ 6.0 is really old </div>
<div><br>
</div>
<div>* NMake files doesn't support discovery of externals
components.</div>
<div><br>
</div>
<div>* NMake is only available in tarball and cannot be used for
development</div>
</div>
</blockquote>
<br>
+0.983<br>
<br>
If we were starting from scratch, I'd suggest using meson + ninja on
all platforms. But we're not, and we have oodles of engineer-years
invested in the autotools build -- not to mention many, many
downstream users who depend on that.<br>
<br>
From that perspective, going from "maintaining" 4(3) build systems
to only 2(1) seems like a good move. The only question I don't know
the answer to is how many downstream users use APR on some bespoke
embedded systems that can't handle CMake, hence the −0.17.<br>
<br>
-- Brane
</body>
</html>
--------------0VcayrwNzUpk0HAZ08MzOf3n--