{"id":15136865,"url":"https://github.com/dosmike/mybcp","last_synced_at":"2026-01-20T14:02:23.917Z","repository":{"id":199547762,"uuid":"703136486","full_name":"DosMike/MyBCP","owner":"DosMike","description":"My Bootstrapper for Cpp Projects","archived":false,"fork":false,"pushed_at":"2024-08-07T09:48:45.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T03:45:20.561Z","etag":null,"topics":["build-script","cmake","conan","cpp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DosMike.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-10T17:00:13.000Z","updated_at":"2024-07-31T11:14:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"3509a105-c469-4c23-a8f3-8a20f88ecc93","html_url":"https://github.com/DosMike/MyBCP","commit_stats":null,"previous_names":["dosmike/mybcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DosMike/MyBCP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FMyBCP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FMyBCP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FMyBCP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FMyBCP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DosMike","download_url":"https://codeload.github.com/DosMike/MyBCP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FMyBCP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28604712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-script","cmake","conan","cpp"],"created_at":"2024-09-26T06:41:38.797Z","updated_at":"2026-01-20T14:02:23.891Z","avatar_url":"https://github.com/DosMike.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MyBCP\n\nMy Bootstrapper for Cpp Projects is a set of scripts intended to ease the pain to \nget a CPP dev environ up and running and managing dependencies.\n\n### MSVC / GCC + CMake + Conan + Python Venv\n\n## HowTo\n\nCopy the build.bat, build.sh and build_py files into your repository, run build.bat / build.sh\n\n```\nusage: MyBCP [-h] [--rebuild] [--cmake-args CMAKE_ARGS [CMAKE_ARGS ...]]\n             [--vs-dir COMPILER_PATH] [--build-dir BUILD_DIR] [--devshell]\n             [--build-type {Release,Debug}] [--update]\n\nCpp tool wrapper and loader for Windows\n\noptions:\n  -h, --help            show this help message and exit\n  --rebuild             Delete build directory and build clean\n  --cmake-args CMAKE_ARGS [CMAKE_ARGS ...]\n                        Arguments to pass to cmake. These are appended at the\n                        end.\n  --vs-dir COMPILER_PATH\n                        Path to visual studio installation. If not specified,\n                        it is detected automatically\n  --build-dir BUILD_DIR\n                        Subdirectory to build in\n  --devshell            Start a new command prompt in a complete dev\n                        environment. The venv is active and MSVC is\n                        discovered, so you can manage python packages load\n                        your IDE or whatever\n  --build-type {Release,Debug}\n                        Debug build type might enable debug symbols and other\n                        features\n  --update              Update MyBCP from GitHub\n  --install             Install the package into the local conan cache\n                        (requires a conanfile.py)\n```\n\n## Rant\n\nThe main issue I have with CPP dev on Windows is, in one word: Libraries.\n\nWhile you can get started pretty easily with CPP, using only the standard library and a \ncompiler + IDE like MSVC / Visual Studio, it is really annoying to find libraries, sometimes\nthey come without binaries, and then add include and lib path as well as the library name \nto the project for every build varaint and platform in Visual Studios is annoying.\n\nAdding a build system like CMake to the mix eases this pain immensely, but this also requires\nanother tool to actually manage those available dependencies, because that's not the \nresponsibility of the build tool.\n\nI feel like this it is not controversial to say, that the tooling around C++ compared to\nmodern languages is really lacking on Windows. It is bearable on Linux because you can install\npackages and build tools through the system package manager and everything is exposed through\ndpkg and other built in utilities.\n\nThe situation on Windows is so bad, that the recommended way to use dependencies is to install\na linux environment to manage packages and tools, like MinGW, Cygwin, WSL, ... and suddenly\nyou are probably using GCC/CLang on Windows instead of MSVC because the build environment \nhandles those better.\n\nLanguages like JavaScript, and Python show how easy it could be to get started with install\npackages that include runtime, build tools and package manager at once, all developed from\nan official place. Yes, the ecosystem around C++ has those features, but as a new dev I\ndon't want to install Python, because I want to install a package manager, to download the \ndependency, so I don't have to write another implementation of linked lists. It feels like\na lot of hoops to jump through, especially on Windows, and that has killed my interest in\nvarious projects for me.\n\nBut I guess I would not be a software developer if I didn't try to solve my problems with code!\n\nThis script will ease that set-up pain and create an opinionated template environment:\n* Windows: Find a working compiler (MSVC 2019 and 2022 are supported)\n* Linux: Require build-essential for gcc\n* Get a package manager and build system up and running (Conan+CMake)\n* Generate template build configs\n* Build the damn thing and give access to a dev env shell\n\nOn Windows it will search MSVC, as in the most recent installed version.\nThe package manager is Conan, with CMake as build system. Conan has a wide variety of \npackages with the JFrog repository and the website tells you what to poke to get a dep into\nCMake. It is simple enough for beginners while still offering flexibility for more complex\nprojects.\n\nFrom there on, subsequent runs of the build script will search MSVC, load the dev env,\nso Conan and CMake can find the compiler, make sure the dependencies are installed and\nrun you average CMake build.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdosmike%2Fmybcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdosmike%2Fmybcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdosmike%2Fmybcp/lists"}