Re: CMake on Unix
Branko Čibej <[email protected]> Tue, 19 May 2026 17:01:52 +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. --------------WvltDsRmSVnr72GrSnsK7tSR Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 19. 5. 26 15:19, Timofei Zhakov wrote: > On Mon, May 18, 2026 at 11:20 PM Branko Čibej <[email protected]> wrote: > > On 18. 5. 26 22:27, Ivan Zhakov wrote: >> On Mon, 18 May 2026 at 21:24, Timofei Zhakov <[email protected]> >> wrote: >> >> On Mon, May 18, 2026 at 5:22 PM Branko Čibej >> <[email protected]> wrote: >> >> On 18. 5. 26 17:04, Ivan Zhakov wrote: >> >> [..] >> >> Yes, especially because the Unix and Win32 versions share a >> lot of things in common but sometimes need to do it in a >> slightly different way. >> >> Also what do you guys think about the fact that Win32 apr.h >> includes windows.h? It seems odd to me. APR promises to >> eliminate platform dependence by wrapping everything into >> POSIX-ish style API >> > > Cross-platform API. I'm not sure what you mean by POSIX-ish, but > APR isn't that. > > > I mean that the API is similar. For example, apr_file_open() kind of > works almost like fopen(). Not exactly but in my head I have this > connection. Okay their signatures are very different and even naming, > but I think there is some pattern of doing the same thing but in a > slightly more modern way with a bit more control. > >> without extra unneeded junk and then all high level code >> essentially has GetLastError in the scope. I think if one >> wants to explicitly use win32 API, they should include those >> headers themselves. >> >> >> It's a good question. I agree that apr.h should not depend on >> system headers like Windows.h. But one reason that Windows error >> codes are used in apr_errno.h. > > apr.h is a generated, /system-specific/ header. Of course it can > and should depend on system headers if it needs them. It also > includes sys/types.h and sys/socket.h and sys/wait.h and os2.h and > so on, depending on the target. That makes perfect sense. > > > The question I have is whether we really want it or not. > > In reality it's always included in every source file. Take svn_wc.h > for example: > > [[[ > #include <apr.h> > #include <apr_pools.h> > #include <apr_tables.h> > #include <apr_hash.h> > #include <apr_time.h> > #include <apr_file_io.h> > > #include "svn_types.h" > #include "svn_string.h" > #include "svn_checksum.h" > #include "svn_io.h" > #include "svn_delta.h" /* for svn_stream_t */ > #include "svn_opt.h" > #include "svn_ra.h" /* for svn_ra_reporter_t type */ > ]]] You'll have to be more specific: what exactly is wrong with that? apr.h uses symbols defined in windows.h, what else is it supposed to do? I really don't understand your objections. -- Brane --------------WvltDsRmSVnr72GrSnsK7tSR 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 19. 5. 26 15:19, Timofei Zhakov wrote:<br> </div> <blockquote type="cite" cite="mid:CAPD1kXTzfXaZS88PvQ2LqdpcyVW6xGLe+WPM8xY6xwpXDyRRHg@mail.gmail.com"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <div dir="ltr"> <div dir="ltr">On Mon, May 18, 2026 at 11:20 PM Branko Čibej <<a href="mailto:[email protected]" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>> wrote:</div> <div class="gmail_quote gmail_quote_container"> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div> <div>On 18. 5. 26 22:27, Ivan Zhakov wrote:<br> </div> <blockquote type="cite"> <div dir="ltr"> <div dir="ltr">On Mon, 18 May 2026 at 21:24, Timofei Zhakov <<a href="mailto:[email protected]" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>> wrote:</div> <div class="gmail_quote"> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div dir="ltr"> <div dir="ltr"> <div dir="ltr">On Mon, May 18, 2026 at 5:22 PM Branko Čibej <<a href="mailto:[email protected]" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>> wrote:</div> <div class="gmail_quote"> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div> <div>On 18. 5. 26 17:04, Ivan Zhakov wrote:<br> </div> </div> </blockquote> </div> </div> </div> </blockquote> <div>[..] </div> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div dir="ltr"> <div dir="ltr"> <div class="gmail_quote"> <div>Yes, especially because the Unix and Win32 versions share a lot of things in common but sometimes need to do it in a slightly different way.</div> <div><br> </div> <div>Also what do you guys think about the fact that Win32 apr.h includes windows.h? It seems odd to me. APR promises to eliminate platform dependence by wrapping everything into POSIX-ish style API</div> </div> </div> </div> </blockquote> </div> </div> </blockquote> <br> Cross-platform API. I'm not sure what you mean by POSIX-ish, but APR isn't that.<br> <br> </div> </blockquote> <div><br> </div> <div>I mean that the API is similar. For example, apr_file_open() kind of works almost like fopen(). Not exactly but in my head I have this connection. Okay their signatures are very different and even naming, but I think there is some pattern of doing the same thing but in a slightly more modern way with a bit more control.</div> <div> </div> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div> <blockquote type="cite"> <div dir="ltr"> <div class="gmail_quote"> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div dir="ltr"> <div dir="ltr"> <div class="gmail_quote"> <div>without extra unneeded junk and then all high level code essentially has GetLastError in the scope. I think if one wants to explicitly use win32 API, they should include those headers themselves.</div> </div> </div> </div> </blockquote> <br> </div> <div class="gmail_quote">It's a good question. I agree that apr.h should not depend on system headers like Windows.h. But one reason that Windows error codes are used in apr_errno.h.</div> </div> </blockquote> <br> apr.h is a generated, <i>system-specific</i> header. Of course it can and should depend on system headers if it needs them. It also includes sys/types.h and sys/socket.h and sys/wait.h and os2.h and so on, depending on the target. That makes perfect sense.<br> <br> </div> </blockquote> <div><br> </div> <div>The question I have is whether we really want it or not. </div> <div><br> </div> <div>In reality it's always included in every source file. Take svn_wc.h for example:</div> <div><br> </div> <div>[[[</div> <div>#include <apr.h><br> #include <apr_pools.h><br> #include <apr_tables.h><br> #include <apr_hash.h><br> #include <apr_time.h><br> #include <apr_file_io.h><br> <br> #include "svn_types.h"<br> #include "svn_string.h"<br> #include "svn_checksum.h"<br> #include "svn_io.h"<br> #include "svn_delta.h" /* for svn_stream_t */<br> #include "svn_opt.h"<br> #include "svn_ra.h" /* for svn_ra_reporter_t type */<br> ]]]</div> </div> </div> </blockquote> <br> <br> You'll have to be more specific: what exactly is wrong with that? apr.h uses symbols defined in windows.h, what else is it supposed to do? I really don't understand your objections.<br> <br> -- Brane<br> <br> </body> </html> --------------WvltDsRmSVnr72GrSnsK7tSR--