<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/57458>57458</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            `libcxx-generate-files` has different behavior on Windows and other platforms.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          fsb4000
      </td>
    </tr>
</table>

<pre>
    From https://libcxx.llvm.org/Contributing.html#pre-commit-check-list

> Did you run the `libcxx-generate-files` target and verify its output?

First  I build libc++ on Windows:
```
cmake -G Ninja -S runtimes -B build -DLLVM_ENABLE_RUNTIMES="libcxx" -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl
```
After that I run `ninja -C build libcxx-generate-files`

And I found some issues with `libcxx-generate-files` on Windows:

1) `CMakeLists.txt` is treated like a header file.
new line appears in `libcxx/test/libcxx/clang_tidy.sh.cpp` 
```c++
#include <CMakeLists.txt>
```
and new lines appear in `libcxx/test/libcxx/transitive_includes.sh.cpp`:
```c++
#if defined(TEST_0)
#include <CMakeLists.txt>
#endif
```

2) `libcxx/test/libcxx/transitive_includes.sh.cpp` uses different path separators.
```c++
#include <experimental\forward_list>
```
instead of
```c++
#include <experimental/forward_list>
```

3) Absent some `#if __cplusplus` in `libcxx/test/libcxx/clang_tidy.sh.cpp`
```c++
#include <experimental\algorithm>
#include <experimental\coroutine>
#include <experimental\deque>
#include <experimental\forward_list>
#include <experimental\functional>
```
instead of
```c++
#if __cplusplus >= 201103L
#   include <experimental/algorithm>
#endif
#if __cplusplus >= 201103L && !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_COROUTINES)
#   include <experimental/coroutine>
#endif
#if __cplusplus >= 201103L
#   include <experimental/deque>
#endif
#if __cplusplus >= 201103L
#   include <experimental/forward_list>
#endif
#if __cplusplus >= 201103L
#   include <experimental/functional>
#endif
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVttyozgQ_Rr8ooICYXx54AHbeNe1tpNKPLt5owQIoxkhsZLI5e-3wUziSUjGmZ0qWWBa6j59-uiSyvwpXCtZodKYWlt-ZOE1NM7S7PHR4fy-cqQ6wpelFEaxtDFMHJ3SVNzCfq2oncmqYsbOSpp9sznTxnJXlhv1vR-jFcvRk2yQagQyJUXWxD15t49UUEUMtQvGqYbvyBB1pAYRkaN7qljxhJjRSDambozlr89dr5nSBqENShvGc9S6tPACGpIC_cNELh-6dE5TJm7fur9ZRb5RZP-B9kx8Jci-bcEZVlGN7EXv0F5tt3_vkngfLbZxcvNlf9js4lvLX1kYn_DDC4xa7qK_4mSZLK9215ttfAMjMk7E0c74i_Xubsg-iC0qDFVAFDGQW8sZWMQJ5vIs1yH6zumJgMINKmQDTy0ripjWDeT3wEz5YQmG2Ot6z8LzduZyB-RtodDaMY-mncI0MoqClxYaEEtQSUkOWbROndNsQR_AKMBY15QojZh4gQHyMhSU81138NJxlBiWPzm6dLK6bgO9IqwveP8V-0xkvMlBYf7yFUg_HuS61dl3YLpH9jNgRhGhmWH3NOnj6ReEbwX3BmOBclpAvNzCs0N8e0hc4PUzKWCfipwVgwmdetxX6tdyQI0GMiBCQRUVBtUEFKNpTUAnUmnn8iLQxxoWcQVOCLeCZSHVA1F50m0S71SECW1AO0i-zu_SMHh9SZhT77c8Ralus-zWSGvvSpQkWc0b3f46gX9eq7_MEuFHqWCRVucVf394JpVs92R62fCc_ttcOHSYxw9nNCIzTAr487_L-0MNUOvPXyHsep7rb59HIYTe18EgkedL5ydRkIUn0ODhvazYZLtZLK-vkz-j22R_lcR31_ENnAv7Q7SFHf7m6sths4dT4mxFf4hxsHqfwHhZlDdF_-0R3tPK7w80ILHhDXFEQ28y8eZeMHXdUR76-dyfk5FhhtPwowOwJOe7X0pLcs-kOjsXu-uJhKuMQjUnBnKvtDNqFA9_vEMdQXxN6sAFqd0s4CbVP-xaya80a7eQ06EML8F0HMxGZegHGUlTr_CLYhZ47tQbe-4sGBdk6k2DjM5HnKSU69AKFv09pF84GFvBasRC7GLsznxg1Atc15libzr1yRhPZimhQWGNXVoRxp9vdiMVdpjS5qjByLvz5tlItGZHQWkXD_yTxpRShYVOxy6w2sEPO-z_AZg-HpY">