Skip to content

[cxx-interop] Allow disabling Cxx build when building stdlib #65264

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from

Conversation

egorzhdan
Copy link
Contributor

This makes it possible to pass SWIFT_BUILD_STDLIB_CXX_MODULE=FALSE to CMake to disable Cxx and CxxStdlib modules when building the Swift stdlib or the SDK overlay.

rdar://108206321

@egorzhdan egorzhdan added the c++ interop Feature: Interoperability with C++ label Apr 18, 2023
@egorzhdan
Copy link
Contributor Author

@swift-ci please smoke test

@egorzhdan egorzhdan force-pushed the egorzhdan/cmake-option-build-cxx branch from 43cdf6a to 6e0b8f3 Compare April 18, 2023 21:15
@egorzhdan
Copy link
Contributor Author

@swift-ci please smoke test

Copy link
Member

@compnerd compnerd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please add the SWIFT_BUILD_STDLIB_CXX_MODULE as YES in the runtime configurations?

@@ -74,7 +74,6 @@ set(LLDB_ENABLE_LIBXML2 NO CACHE BOOL "")
set(SWIFT_INCLUDE_DOCS NO CACHE BOOL "")
set(SWIFT_BUILD_ENABLE_PARSER_LIB YES CACHE BOOL "")
set(SWIFT_BUILD_STDLIB_EXTRA_TOOLCHAIN_CONTENT NO CACHE BOOL "")
set(SWIFT_BUILD_STDLIB_CXX_MODULE NO CACHE BOOL "")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this being removed? We don't build any of the runtime components in the toolchain.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I stumbled upon a mass test failure on Windows with this patch, apparently the swiftCxx binary was not built.
Let me try enabling it in the runtime configurations.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the swiftCxx module is still not built when I specify SWIFT_BUILD_STDLIB_CXX_MODULE=YES in the runtime presets.

LINK : fatal error LNK1104: cannot open file 'swiftCxx.lib'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not super familiar with the build pipeline on Windows. Since the Cxx module is shipped with the toolchain, would it be acceptable to build it alongside the toolchain as well?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, that wouldn't. That would basically force the stdlib to always be required, and we cannot do that because it takes too long.

@@ -73,7 +73,6 @@ set(LLDB_EMBED_PYTHON_HOME NO CACHE BOOL "")
set(SWIFT_INCLUDE_DOCS NO CACHE BOOL "")
set(SWIFT_BUILD_ENABLE_PARSER_LIB YES CACHE BOOL "")
set(SWIFT_BUILD_STDLIB_EXTRA_TOOLCHAIN_CONTENT NO CACHE BOOL "")
set(SWIFT_BUILD_STDLIB_CXX_MODULE NO CACHE BOOL "")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar

This makes it possible to pass `SWIFT_BUILD_STDLIB_CXX_MODULE=FALSE` to CMake to disable Cxx and CxxStdlib modules when building the Swift stdlib or the SDK overlay.

rdar://108206321
@egorzhdan egorzhdan force-pushed the egorzhdan/cmake-option-build-cxx branch from 6e0b8f3 to 14e6901 Compare April 19, 2023 16:47
@egorzhdan
Copy link
Contributor Author

@swift-ci please smoke test

This makes it possible to pass `SWIFT_BUILD_STDLIB_CXX_MODULE=FALSE` to CMake to disable Cxx and CxxStdlib modules when building the Swift stdlib or the SDK overlay.

rdar://108206321
@egorzhdan
Copy link
Contributor Author

@swift-ci please smoke test

@edymtt
Copy link
Contributor

edymtt commented May 1, 2023

Duplicate of #65398

@edymtt edymtt marked this as a duplicate of #65398 May 1, 2023
@edymtt edymtt closed this May 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ interop Feature: Interoperability with C++
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants