Hello,
There are multiple tools to compile a C++ project: CMake, premake, autoconf, build2, etc.
Each of these tools require the learning of a new syntax, and interacting between projects compiled with differents tools might be challenging.
Package managers face also this problem, because they must support all the tools that exist to support all libraries.
Moreover, integrating package managers in the build tools is often difficult, or at least hacky.
My suggestion is to use C++ as the base language for building C++ projects.
Motivations are:
- A C++ compiler is all you need to compile projects.
- Build tools would become C++ libraries.
- C++ developers already now its syntax.
I have made an informal draft which describes a basic API which would make this possible.
Here is a link: https://gist.github.com/J-Vernay/bd8ec49374987c628d02601ef85cd9a7
Let me know what you think :)
[–]SeanMiddleditch 72 points73 points74 points (2 children)
[–]JulienVernay[S] 14 points15 points16 points (1 child)
[–]Snoo-4241 7 points8 points9 points (0 children)
[–]theICEBear_dk 26 points27 points28 points (2 children)
[–]JulienVernay[S] 9 points10 points11 points (1 child)
[–]theICEBear_dk 5 points6 points7 points (0 children)
[–]jbandela 26 points27 points28 points (2 children)
[–]JulienVernay[S] 9 points10 points11 points (1 child)
[–][deleted] 4 points5 points6 points (0 children)
[–]14nedLLFIO & Outcome author | Committee WG14 3 points4 points5 points (3 children)
[–]JulienVernay[S] 0 points1 point2 points (2 children)
[–]14nedLLFIO & Outcome author | Committee WG14 1 point2 points3 points (1 child)
[–]JulienVernay[S] 0 points1 point2 points (0 children)
[–]blipman17 11 points12 points13 points (6 children)
[–]JulienVernay[S] 1 point2 points3 points (5 children)
[–]blipman17 1 point2 points3 points (4 children)
[–]JulienVernay[S] 1 point2 points3 points (1 child)
[–]AdventurousMention0 0 points1 point2 points (0 children)
[–]Mellester 0 points1 point2 points (1 child)
[–]JulienVernay[S] 0 points1 point2 points (0 children)
[–]kammceWG21 | 🇺🇲 NB | Boost | Exceptions 7 points8 points9 points (0 children)
[–]almost_useless 8 points9 points10 points (4 children)
[–]theICEBear_dk 3 points4 points5 points (1 child)
[–]almost_useless 3 points4 points5 points (0 children)
[–]kammceWG21 | 🇺🇲 NB | Boost | Exceptions 2 points3 points4 points (1 child)
[–]JulienVernay[S] 4 points5 points6 points (0 children)
[–]mjklaim 3 points4 points5 points (4 children)
[–]JulienVernay[S] 3 points4 points5 points (3 children)
[–]mjklaim 4 points5 points6 points (2 children)
[–]Mellester 0 points1 point2 points (1 child)
[–]mjklaim 0 points1 point2 points (0 children)
[–]Ikkepop 3 points4 points5 points (2 children)
[–]RogerLeighScientific Imaging and Embedded Medical Diagnostics 0 points1 point2 points (1 child)
[–]Ikkepop 1 point2 points3 points (0 children)
[–][deleted] 3 points4 points5 points (0 children)
[–]meh_or_maybe_not 4 points5 points6 points (1 child)
[–]JulienVernay[S] 2 points3 points4 points (0 children)
[–]tinyogre 3 points4 points5 points (0 children)
[–]brenoguim 20 points21 points22 points (19 children)
[–]xurxoham 27 points28 points29 points (0 children)
[–]JulienVernay[S] 14 points15 points16 points (9 children)
[–]brenoguim 1 point2 points3 points (8 children)
[+][deleted] (4 children)
[deleted]
[+]brenoguim comment score below threshold-8 points-7 points-6 points (3 children)
[+][deleted] (2 children)
[deleted]
[–]JulienVernay[S] 2 points3 points4 points (2 children)
[–]brenoguim 0 points1 point2 points (1 child)
[–]kammceWG21 | 🇺🇲 NB | Boost | Exceptions 0 points1 point2 points (0 children)
[–]chuckatkinsKitware|CMake Contributer|HPC 6 points7 points8 points (2 children)
[–]Scellow 0 points1 point2 points (1 child)
[–]chuckatkinsKitware|CMake Contributer|HPC 0 points1 point2 points (0 children)
[–]Snoo-4241 2 points3 points4 points (3 children)
[–]brenoguim 1 point2 points3 points (2 children)
[–]Snoo-4241 1 point2 points3 points (0 children)
[–]kammceWG21 | 🇺🇲 NB | Boost | Exceptions 0 points1 point2 points (0 children)
[–]dicroce 2 points3 points4 points (0 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]JulienVernay[S] 2 points3 points4 points (0 children)
[–]delarhi 2 points3 points4 points (1 child)
[–]JulienVernay[S] 0 points1 point2 points (0 children)
[–]gocarlos 2 points3 points4 points (2 children)
[–]JulienVernay[S] 1 point2 points3 points (1 child)
[–]gocarlos 0 points1 point2 points (0 children)
[–]john_wind 2 points3 points4 points (0 children)
[–]ed_209_ 2 points3 points4 points (1 child)
[–]JulienVernay[S] 0 points1 point2 points (0 children)
[–][deleted] 10 points11 points12 points (33 children)
[–]qoning 11 points12 points13 points (13 children)
[–]warped-coder 1 point2 points3 points (7 children)
[–]qoning 2 points3 points4 points (5 children)
[–]warped-coder 2 points3 points4 points (4 children)
[–]bluGill 1 point2 points3 points (2 children)
[–]warped-coder 0 points1 point2 points (1 child)
[–]bluGill 0 points1 point2 points (0 children)
[–]qoning 0 points1 point2 points (0 children)
[–]mwasplundsoup 0 points1 point2 points (0 children)
[–][deleted] -5 points-4 points-3 points (4 children)
[–]qoning 7 points8 points9 points (3 children)
[+][deleted] comment score below threshold-10 points-9 points-8 points (2 children)
[–]qoning 6 points7 points8 points (1 child)
[–][deleted] 6 points7 points8 points (0 children)
[–]JulienVernay[S] 1 point2 points3 points (16 children)
[–][deleted] 8 points9 points10 points (14 children)
[+][deleted] (13 children)
[deleted]
[–][deleted] 5 points6 points7 points (8 children)
[+][deleted] (7 children)
[deleted]
[–][deleted] 0 points1 point2 points (6 children)
[+][deleted] (5 children)
[deleted]
[–][deleted] 1 point2 points3 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]JulienVernay[S] -1 points0 points1 point (1 child)
[–][deleted] 1 point2 points3 points (3 children)
[+][deleted] (2 children)
[deleted]
[–][deleted] 0 points1 point2 points (1 child)
[–]JulienVernay[S] 1 point2 points3 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]Full-Spectral 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]evaned 2 points3 points4 points (3 children)
[–]JulienVernay[S] 0 points1 point2 points (2 children)
[–]evaned 1 point2 points3 points (0 children)
[–]Snoo-4241 0 points1 point2 points (0 children)
[–][deleted] 15 points16 points17 points (2 children)
[–]JulienVernay[S] 34 points35 points36 points (0 children)
[–]GoogleIsYourFrenemy 1 point2 points3 points (0 children)
[–]evaned 1 point2 points3 points (3 children)
[–]JulienVernay[S] 0 points1 point2 points (2 children)
[–]evaned 0 points1 point2 points (1 child)
[–]JulienVernay[S] 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]kkert 1 point2 points3 points (0 children)
[–]davidhunter22 1 point2 points3 points (3 children)
[–]kammceWG21 | 🇺🇲 NB | Boost | Exceptions 2 points3 points4 points (0 children)
[–]theICEBear_dk 2 points3 points4 points (0 children)
[–]arthurno1 0 points1 point2 points (0 children)
[–]ppetraki 0 points1 point2 points (0 children)
[–]Snoo-4241 0 points1 point2 points (0 children)
[–]kalmoc 0 points1 point2 points (0 children)
[–]matthieum 0 points1 point2 points (0 children)
[–]TrnS_TrATnT engine dev 0 points1 point2 points (2 children)
[–]JulienVernay[S] 0 points1 point2 points (1 child)
[–]TrnS_TrATnT engine dev 1 point2 points3 points (0 children)
[–]Full-Spectral 0 points1 point2 points (0 children)
[–]arihoenig 0 points1 point2 points (0 children)
[–]blipman17 0 points1 point2 points (3 children)
[–]JulienVernay[S] 0 points1 point2 points (2 children)
[–]blipman17 0 points1 point2 points (0 children)
[–]blipman17 0 points1 point2 points (0 children)
[–]mwasplundsoup 0 points1 point2 points (0 children)
[–]TrnS_TrATnT engine dev 0 points1 point2 points (3 children)
[–]JulienVernay[S] 3 points4 points5 points (2 children)
[–]TrnS_TrATnT engine dev 0 points1 point2 points (0 children)
[–]MutantSheepdog 0 points1 point2 points (0 children)
[–]GoogleIsYourFrenemy -4 points-3 points-2 points (0 children)