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_HEADERSwhen building themsvcp${D_SUFFIX}_implib_objects.IMPLIB_SOURCESare mentioned -libcpmt${FLAVOR_SUFFIX}is the static lib.nothrow.cppwas including<new>, a non-core header, but it can just include<vcruntime_new.h>which is wherenothrow_tis actually defined._STD_BEGIN/_STD_ENDif we include<yvals_core.h>.// define nothrowcomment.locale0.cppand<xfacet>are too difficult to untangle at this time. I'm just exempting them from this enforcement.