¯\_(ツ)_/¯
> I'm not sure I understand. Is it that Cygwin doesn't accept angle brackets with
> Windows paths?
The Cygwin compiler just doesn't accept Windows paths, as far as I can see.
Performing C++ SOURCE FILE Test BOOST_FILESYSTEM_HAS_STAT_ST_BLKSIZE failed with the following output:
Change Dir: C:/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp
Run Build Command(s):C:/cygwin64/bin/make.exe -f Makefile cmTC_8f9df/fast && /usr/bin/make -f CMakeFiles/cmTC_8f9df.dir/build.make CMakeFiles/cmTC_8f9df.dir/build
make[1]: Entering directory '/cygdrive/c/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_8f9df.dir/src.cxx.obj
C:/cygwin64/bin/c++.exe -DBOOST_FILESYSTEM_HAS_STAT_ST_BLKSIZE @CMakeFiles/cmTC_8f9df.dir/includes_CXX.rsp -o CMakeFiles/cmTC_8f9df.dir/src.cxx.obj -c C:/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp/src.cxx
C:/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp/src.cxx:1:10: fatal error: C:/boost-git/develop/libs/filesystem/config/has_stat_st_blksize.cpp: No such file or directory
1 | #include <C:/boost-git/develop/libs/filesystem/config/has_stat_st_blksize.cpp>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [CMakeFiles/cmTC_8f9df.dir/build.make:79: CMakeFiles/cmTC_8f9df.dir/src.cxx.obj] Error 1
make[1]: Leaving directory '/cygdrive/c/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp'
make: *** [Makefile:127: cmTC_8f9df/fast] Error 2
Source file was:
#include <C:/boost-git/develop/libs/filesystem/config/has_stat_st_blksize.cpp>
Ok, so it seems I'll have to add a check to enforce that the unified
headers directory exists. This means that we are still dependent on `b2
headers`, at least until there is a CMake equivalent.
>> I'm not sure I understand. Is it that Cygwin doesn't accept angle brackets with
>> Windows paths?
>
> The Cygwin compiler just doesn't accept Windows paths, as far as I can see.
>
> Performing C++ SOURCE FILE Test BOOST_FILESYSTEM_HAS_STAT_ST_BLKSIZE failed with the following output:
> Change Dir: C:/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp
>
> Run Build Command(s):C:/cygwin64/bin/make.exe -f Makefile cmTC_8f9df/fast && /usr/bin/make -f CMakeFiles/cmTC_8f9df.dir/build.make CMakeFiles/cmTC_8f9df.dir/build
> make[1]: Entering directory '/cygdrive/c/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp'
> Building CXX object CMakeFiles/cmTC_8f9df.dir/src.cxx.obj
>
> C:/cygwin64/bin/c++.exe -DBOOST_FILESYSTEM_HAS_STAT_ST_BLKSIZE @CMakeFiles/cmTC_8f9df.dir/includes_CXX.rsp -o CMakeFiles/cmTC_8f9df.dir/src.cxx.obj -c C:/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp/src.cxx
> C:/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp/src.cxx:1:10: fatal error: C:/boost-git/develop/libs/filesystem/config/has_stat_st_blksize.cpp: No such file or directory
> 1 | #include <C:/boost-git/develop/libs/filesystem/config/has_stat_st_blksize.cpp>
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> make[1]: *** [CMakeFiles/cmTC_8f9df.dir/build.make:79: CMakeFiles/cmTC_8f9df.dir/src.cxx.obj] Error 1
> make[1]: Leaving directory '/cygdrive/c/boost-git/develop/__build_gcc/CMakeFiles/CMakeTmp'
> make: *** [Makefile:127: cmTC_8f9df/fast] Error 2
>
>
> Source file was:
> #include <C:/boost-git/develop/libs/filesystem/config/has_stat_st_blksize.cpp>
Ok, I think I understand. You're using native Windows CMake that
generates Windows paths and a Cygwin compiler that doesn't understand
them. That looks like an incorrect config to me; you should be using
Cygwin CMake, which should generate Cygwin paths both in source files
and command lines.
"We" are not dependent on any such thing, and there will never be such a
CMake equivalent. This directory will not be maintained in a CMake build.
Maybe
#include
<cygdrive/c/boost-git/develop/libs/filesystem/config/has_stat_st_blksize.cpp>
works ?
Well, the only other alternative I see is globbing through all libraries
to collect their include paths. And that would have to be done in every
library, unless a common solution exists. I just looked at Boost.Atomic
and it also relies on the unified headers dir, and I'm pretty sure I'm
going to need it in Boost.Log. So the scanning will happen at least
three times per build, which is already not good.