Skip to content
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

Modularize code base. #101

Open
3 tasks
crud89 opened this issue Oct 11, 2023 · 0 comments · May be fixed by #99
Open
3 tasks

Modularize code base. #101

crud89 opened this issue Oct 11, 2023 · 0 comments · May be fixed by #99
Assignees
Labels
Module: Build 🛠 Issues that involve the build process.
Milestone

Comments

@crud89
Copy link
Owner

crud89 commented Oct 11, 2023

CMake 3.28 finally moves C++ module support from being experimental! This means that work on the cxx-modules branch can continue. I will track updates in this issue, if there are any.

I expect MSVC 17.9 to ship with CMake 3.28. At this point, the modularization of this project will be the main focus moving forward. The VS generator already supports building STL modules (it adds the BuildStlModules option to vcxproj files, which defaults to true). The Ninja generator will support this later on by allowing to define import targets for STL modules through CMake.

The planned roadmap after CMake 3.28 is available along Visual Studio is the following:

  • Use import std in conjunction with VS generator (Ninja requires manually pre-building STL modules at the beginning).
  • Use STL modules throughout the codebase.
  • Allow two three build modes:
    • shared library builds DLLs as is currently done
    • static library adds support for building the project as a static library
    • modules exports modules only which can be imported from applications directly and should be preferred in the future

I plan to update this issue infrequently to not lose track.

@crud89 crud89 added the Module: Build 🛠 Issues that involve the build process. label Oct 11, 2023
@crud89 crud89 added this to the Version 1.0 milestone Oct 11, 2023
@crud89 crud89 self-assigned this Oct 11, 2023
@crud89 crud89 pinned this issue Oct 11, 2023
@crud89 crud89 linked a pull request Oct 13, 2023 that will close this issue
3 tasks
@crud89 crud89 linked a pull request Oct 13, 2023 that will close this issue
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Module: Build 🛠 Issues that involve the build process.
Projects
Status: Blocked
Development

Successfully merging a pull request may close this issue.

1 participant