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

Abstract specialized Targets into generic Targets #62

Open
8 of 12 tasks
coder137 opened this issue Jun 16, 2021 · 4 comments
Open
8 of 12 tasks

Abstract specialized Targets into generic Targets #62

coder137 opened this issue Jun 16, 2021 · 4 comments

Comments

@coder137
Copy link
Owner

coder137 commented Jun 16, 2021

Currently, BuildCC follows an explicit Target-Toolchain method
ex.

// Toolchains
Toolchain_gcc gcc;
Toolchain_arm_gcc arm_gcc;
Toolchain_msvc msvc;

// Specialized targets
ExecutableTarget_gcc gccTarget(gcc);
ExecutanleTarget_gcc armgccTarget(arm_gcc);
ExecutableTarget_msvc msvcTarget(msvc);

// TODO, Generic targets
ExecutableTarget_generic gccGeneric(gcc);
ExecutableTarget_generic armGeneric(arm_gcc);
ExecutableTarget_generic msvcGeneric(msvc);

This keeps only the Toolchain definitions explicit with the low-level details hidden from regular users

  • Update Toolchain with ID (GCC, MSVC, CLANG, etc for toolchain family-specific implementations)
  • Target Triple Architecture for Clang and GCC compilers
  • Create ExecutableTarget_generic with case based overrides
    • Detect host OS
    • Target file extension dependent on Toolchain Id, Target Type and Host OS
    • BuildCC argparse module contain AddCustomToolchain specifications for complete control through the command line
  • Identify other common Toolchain families and document their Executable and Library command line invocations.
    • GCC
    • MSVC
    • Clang
    • MinGW

Future Features

  • C++20 Modules
@coder137
Copy link
Owner Author

#63 Toolchain ID
#68 Target Generic

@coder137
Copy link
Owner Author

#70 Detect Host OS
#70 Updated Target_generic with Extension API

@coder137
Copy link
Owner Author

#86 Specialized Target defaults
#88 Target common compile flags

@coder137
Copy link
Owner Author

coder137 commented Jan 4, 2022

#179 MinGW specialized

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant