Build the import lib with _ENFORCE_ONLY_CORE_HEADERS
#3621
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related to (and inspired by) #2141.
This will need some MSVC-internal changes, but the impact is surprisingly small.
stl/CMakeLists.txt
, we need to define_ENFORCE_ONLY_CORE_HEADERS
when building themsvcp${D_SUFFIX}_implib_objects
.IMPLIB_SOURCES
are mentioned -libcpmt${FLAVOR_SUFFIX}
is the static lib.nothrow.cpp
was including<new>
, a non-core header, but it can just include<vcruntime_new.h>
which is wherenothrow_t
is actually defined._STD_BEGIN
/_STD_END
if we include<yvals_core.h>
.// define nothrow
comment.locale0.cpp
and<xfacet>
are too difficult to untangle at this time. I'm just exempting them from this enforcement.