Work in progress
A real stupid C/C++ package manager for own studying (intended not to use other C++ package managers available).
And YES! cpk
sounds exactly like swearing in Cantonese-mixing-English. hahaha :P
cpk
focuses on providing prebuilt libraries for CMake projectscpk
must be portable (no registry, no system directory access, no%PATH%
modifying, nopkg-config
, no crazy path-searching)- store the fetched C++ packages in its directory instead of %USERPROFILE% or
~
- store the fetched C++ packages in its directory instead of %USERPROFILE% or
cpk
must support different compilers- For Windows, mingw and MSVC are a must.
TARGET_COMPILER
should be well-defined and consistent, with compiler versionTARGET_TAG
should stick to the original versioning practice (eg. some may version "v2.5.1", some may version "2.5.1")TARGET_LIBRARY
is the library name, it should follow the original name- There should be a centralized repository store the information of prebuilt libraries (exactly like
npm
) - The creation of prebuilt libraries and their repository should be automated in GitHub action and repository template (
gcc -dumpversion
gets "8.1.0") cpk
and the supporting library repositories should also support listing include paths for easier development in VSCode- For C/C++ projects using
cpk
, there should not be any configuration files needed -cpk
should only depend on (read / write) explicitcmake
file complying project onfiguration (find_package
inCMakeLists.txt
) cpk
should leave room for modifying third-party libraries (for example: editing originalCMakeLists.txt
and may / may not submit PR in a fork repo and rebuilding prebuilts, including ad-hoc /private redirection of librariescpk
should resolve dependency-related issues like nested dependencycpk
should give hints (using CMake macros?) on further setup for the projects using the installed librariescpk
should be unobtrusive, play well with unsupported / local libraries -cpk
should have a dedicated folder for its CMake modules fetching and configuration (useCMAKE_INSTALL_PREFIX
?)cpk
should have a logic to redirect to official git repo (for header-only libraries like g-truc/glm: OpenGL Mathematics (GLM))cpk
should be available as a CMake module- refer to dirkarnez/cmake-playground
- Prerequisites for C/C++ setup (also these compiler, git, cmake,
cpk
are in%PATH%
) - Having
cmake/modules/.gitkeep
-cpk
assumescmake/cpk_modules
exists (or warn) and expect to overwrite the FindXXX.cmake if applicable cpk
assumes there are version constraints (exact or ranged,master
should not be supported)
- SFML, WIP
v2.5.1
- dmlc/xgboost, WIP
v2.0.0
- karthickai/serial, WIP
c55e4e3bfd90c84236f4d4f5743b1502d8e6cb43a
- Quandela/QuandeLibC, WIP
v0.6.0
- Tereius/libONVIF(https://github.com/dirkarnez/libONVIF-prebuilt), WIP
v2.0.1
- DCMTK/dcmtk, WIP
v3.6.7
- valhalla/valhalla, WIP
v3.4.0
- sumatrapdfreader/chmlib, WIP
cbb2fdcce847abda23a4f9704ec7a2595e53382b3
- microsoft/DirectXMath, WIP
dec2022
- microsoft/DirectXTK, WIP
sept2023
- dilawar/libsoda-cxx, WIP
v0.1.0
- https://www.hboehm.info/gc/, WIP
v8.2.2
- arximboldi/immer, WIP
v0.8.0
- gnu/libunistring, WIP
v1.1
- jedisct1/libsodium, WIP
v1.0.19
- jmcnamara/libxlsxwriter, WIP
v1.1.5
- abseil/abseil-cpp, WIP
v20230802.0
- yhirose/cpp-httplib, WIP
v0.14.0
- google/flatbuffers, WIP
v23.5.26
- gpg/gpgme, WIP
v1.21.0
- gpg/libassuan, WIP
v2.5.6
- ledger/ledger, WIP
v3.3.2
- lvgl/lvgl, WIP
v8.3.9
- casbin/casbin-cpp, WIP
v1.52.3
- Monkey's Audio - a fast and powerful lossless audio compressor, WIP
v10.18
- Libmicrohttpd - GNU Project - Free Software Foundation, WIP
v0.9.77
- qhull/qhull, WIP
v8.0.2
- ETLCPP/etl: Embedded Template Library, WIP
-
v20.36.1
- wjakob/nanogui: Minimalistic GUI library for OpenGL, WIP
ce9ec8a1a9861cf578d9c6e85a6420080aa715c03
- PetteriAimonen/libfixmath: Cross Platform Fixed Point Maths Library, WIP
c9457f48b5caa955b9675b61c99bd27b9e0093dcb
- RoutingKit/RoutingKit, WIP
c13bc2f49f41d2e8a750a299487705ca7217d634d
- libAudioFlux/audioFlux, WIP
v0.1.6
- LibRaw/LibRaw, WIP
v0.21.1
- liballeg/allegro5, WIP
v5.2.8.0
- xissburg/edyn, WIP
v1.2.1
- skypjack/entt, WIP
v3.10.3
- p-ranav/csv2: Fast CSV parser and writer for Modern C++, WIP
v0.1
- p-ranav/alpaca: Serialization library written in C++17 - Pack C++ structs into a compact byte-array without any macros or boilerplate code, WIP
v0.2.1
- p-ranav/argparse: Argument Parser for Modern C++, WIP
v2.9
- tesseract-ocr/tesseract, WIP
v5.3.1
- raysan5/raylib, WIP
v4.5.0
- juce-framework/JUCE, WIP
v7.0.5
- KhronosGroup/OpenCL-SDK, WIP
v2023.02.06
- antlr/antlr4/runtime/Cpp, WIP
v4.11.1
- yhirose/cpp-peglib, WIP
v1.8.3
- johnmcfarlane/cnl, WIP
v1.1.7
- MikeLankamp/fpm, WIP
c19ad7a3336e2ec0d7faa9da5232398873b555cfb
- erincatto/box2d, WIP
v2.4.1
- knik0/faac, WIP
v1.30
- rsta2/circle, WIP
step45.1
- ufbx/ufbx, WIP
v0.3.1
- BaguetteFramboise/miroir, WIP
c19c43c909fa621cc8adb23cdc3616b18a121dd85
- recastnavigation/recastnavigation, WIP
c8e9c308afd0fc6f7b8d8a76dbb8f905e41cb1425
- steinbergmedia/vst3sdk, WIP
v3.7.7_build_19
- alaingalvan/CrossWindow, WIP
c3511e43d0bbdc5fd23b4717580cc47ad3df87e4c
- alaingalvan/CrossWindow-Graphics, WIP
c28022e3ba565a975e8bf6dada1aa605c6f73a848
- cycfi/elements, WIP
cd7106afe85fe99c28a3d7314a7ea5d3bd50e9c84
- dacap/clip, WIP
v1.4
- GiovanniDicanio/WinReg, WIP
v4.1.2
- sciplot/sciplot, WIP
v0.2.2
- ufbx/ufbx, WIP
v0.3.1
- boostorg/boost, WIP
v1.80.0
- arvidn/libtorrent, WIP
v2.0.7
- dpilger26/NumCpp, WIP
v2.8.0
- openbabel/openbabel, WIP
v3.1.1
- facebook/zstd, WIP
v1.5.2
- ros/catkin, WIP
v0.8.10
- Dav1dde/glad, WIP
v2.0.4
- BaguetteFramboise/miroir, WIP
c19c43c909fa621cc8adb23cdc3616b18a121dd85
- lief-project/LIEF, WIP
v0.12.3
- xianyi/OpenBLAS, WIP
v0.3.21
- knik0/faac, WIP
v1.30
- zherczeg/sljit', WIP
cfaecd2b12f3e1119019255ca547f7db5c8627a7d
- zsiciarz/aquila, WIP
cd5e3bde3c8d07678a95f225b657a7bb23d0c4730
- zxing-cpp/zxing-cpp, WIP
v1.4.0
- libuv/libuv, WIP
v1.44.2
- XZ Utils | SourceForge.net, WIP
v5.4.0
- erincatto/box2d, WIP
v2.4.1
- coin-or/CppAD, WIP
stable/20210000
- maxbachmann/rapidfuzz-cpp, WIP
v1.10.1
- soundtouch/soundtouch, WIP
v2.3.1
- ImageMagick/ImageMagick: 🧙♂️ ImageMagick 7
- sreiter/ProMesh: Grid generation for scientific computations
- socketio/socket.io-client-cpp, WIP
v3.1.0
- CGAL/cgal, WIP
v5.5.1
- Voro++ - A 3D Voronoi cell software library, WIP
v0.4.6
- LAME, WIP
v3.100.0
- json-c/json-c, WIP
v0.16
- Independent JPEG Group, WIP
v9e
- uchardet/uchardet
v0.0.8
- dlbeer/quirc, WIP
v1.1
- lipnitsk/libcue, WIP
v2.2.1
- jfalcou/kumi: C++20 Compact Tuple Tools, WIP
v3.0
- sreiter/stl_reader, WIP
v1.0.0
- fmtlib/fmt, WIP
v9.1.0
- arximboldi/lager, WIP
c05e4ffda3eb1a4158eb678f21fbfc00e96a8c95d
- msteinbeck/tinyspline, WIP
v0.5.0
- audionamix/wave: Simple C++ library for reading and writting wave files
- UG4/ugcore: The core functionality of UG4. Includes sources, build-scripts, and utility scripts.
- abseil/abseil-cpp: Abseil Common Libraries (C++)
- sbellus/libmicrohttpd-cmake: The repository contains cmake build files for libmicrohttpd (https://www.gnu.org/software/libmicrohttpd/)
- audionamix/auconv: An audio file conversion library
- audionamix/rtff: A real time frequential filtering library
- j256/dmalloc: Debug Malloc memory allocation debugging C library
- microsoft/wil, WIP
v1.0.220914.1
- PortMidi/portmidi, WIP
v2.0.4
- PortAudio/portaudio, WIP
v19.7.0
- FITSIO Home Page, WIP
v4.2.0
- gflags/gflags: The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. Online documentation available at:
- gpg/libgpg-error, WIP
v1.46
- cycfi/q
- facebookincubator/MY_ENUM: Small c++ macro library to add compile-time introspection to c++ enum classes.
- yanyiwu/cppjieba, WIP
v5.0.3
- wxWidgets/wxWidgets, WIP
v3.2.1
- AshampooSystems/boden: Purely native C++ cross-platform GUI framework for Android and iOS development. https://www.boden.io
- libsndfile/libsndfile: A C library for reading and writing sound files containing sampled audio data., WIP
- gnuradio/gnuradio: GNU Radio – the Free and Open Software Radio Ecosystem
- g-truc/glm: OpenGL Mathematics (GLM), WIP
cfc8f4bb442b9540969f2f3f351c4960d91bca17a
, WIP
- pradeep-pyro/tinynurbs: C++ library for NURBS curves and surfaces, WIP
c98ab6e55ffa441d7471f4ef39f520eaf712b2d74
- videolan/x264, WIP
cbaee400fa9ced6f5481a728138fed6e867b0ff7f
- Download Xpdf and XpdfReader
- ampl/mp, WIP
v3.1.0
- ampl/asl, WIP
c642206393ec127906fb248343e0bcee1c2119850
- gpac/gpac: Modular Multimedia framework for packaging, streaming and playing your favorite content.
- openframeworks/openFrameworks: openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
- ampl/ampls-api: AMPL Solver APIs
- libusb/libusb: A cross-platform library to access USB devices
- libusb/hidapi: A Simple library for communicating with HID devices on Linux, Mac and Windows.
- twitter/vireo, WIP
c7f0bc1ad50f5eaf30a09de209f0172f2def36abd
- [oberhumer.com: LZO real-time data compression library], WIP
v2.10
- libexpat/libexpat, WIP
v2.5.0
- libffi/libffi, WIP
v3.4.3
- enzo1982/mp4v2, WIP
v2.1.1
- pocoproject/poco, WIP
v1.12.2
- GNU Readline, WIP
v8.2
- coreutils/gnulib, WIP
v0.1
- jugit.fz-juelich.de/mlz/libcerf, WIP
v2.1
- IfcOpenShell/IfcOpenshell, WIP
v0.7.0
- flann-lib/flann, WIP
v1.9.1
- dlfcn-win32/dlfcn-win32, WIP
v1.3.1
- gpg/gpg4win: GnuPG for Windows. NOTE: Maintainers are not tracking this mirror. Do not make pull requests here, nor comment any commits, submit them usual way to bug tracker (https://www.gnupg.org/documentation/bts.html) or to the mailing list (https://www.gnupg.org/documentation/mailing-lists.html).
- lfreist/hwinfo, WIP
- dirkarnez/libass-prebuilt, WIP
- dirkarnez/libjit-prebuilt, WIP
- dirkarnez/bison-prebuilt, WIP
- mpdecimal, WIP
- GNU Guile, WIP
v3.0.8
- xnd-project/gumath: Library supporting function dispatch on general data containers. C base and Python wrapper
- nemtrif/utfcpp, WIP
v3.2.1
- erincatto/box2d: Box2D is a 2D physics engine for games
- assimp/assimp: The official Open-Asset-Importer-Library Repository. Loads 40+ 3D-file-formats into one unified and clean data structure.
- bulletphysics/bullet3: Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
- mapbox/geojson-cpp: A C++14 library for converting GeoJSON into geometry.hpp representation
- mapbox/tippecanoe: Build vector tilesets from large collections of GeoJSON features.
- wawanbreton/cvcomposer: Advanded GUI for OpenCV, to compose various filters and quickly see the result
ce30ab337ed625e1b868202b9e92b85bd9e3f766a
- bloomberg/bde: Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.
- facebook/watchman: Watches files and records, or triggers actions, when they change.
- facebook/yoga: Yoga is a cross-platform layout engine which implements Flexbox. Follow https://twitter.com/yogalayout for updates.
- facebook/fboss: Facebook Open Switching System Software for controlling network switches.
- facebook/wangle: Wangle is a framework providing a set of common client/server abstractions for building services in a consistent, modular, and composable way.
- fox-toolkit.org, WIP
- nlohmann/json, WIP
v3.11.2
- rttrorg/rttr, WIP
v0.9.6
- Artelnics/opennn: OpenNN - Open Neural Networks Library
- pdfium - Git at Google
- g-truc/glm: OpenGL Mathematics (GLM), WIP
v0.9.9
- OpenVPN/openvpn: OpenVPN is an open source VPN daemon
- Kitware/VTK, WIP
v9.2.2
- MetaLogic Inference - Summary [Savannah]
- v8/v8: The official mirror of the V8 Git repository
- openMVG/openMVG: open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.
- facebook/kuduraft: A Raft Library in C++ based on the Raft implementation in Apache Kudu
- facebook/fatal: Fatal is a library for fast prototyping software in modern C++. It provides facilities to enhance the expressive power of C++. The library is heavily based on template meta-programming, while keeping the complexity under-the-hood.
- facebook/folly: An open-source C++ library developed and used at Facebook.
- unicode-org/icu, WIP
v71.1
- libharu/libharu: libharu - free PDF library, WIP
- l-smash/l-smash, WIP
v2.14.5
- dealii/dealii: The development repository for the deal.II finite element library.
- google/skia: Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.
- apache/xerces-c, WIP
v3.2.3
- LibreDWG/libredwg, WIP
ce32962da3f247937f6355f80a113ea716016e998
- JagPDF - Downloads
- Qt
- google/double-conversion
- verilator/verilator: Verilator open-source SystemVerilog simulator and lint system
- llvm-project/pstl at main · llvm/llvm-project
- [google/fhir)(https://github.com/dirkarnez/fhir-prebuilt), WIP
- armadillo, WIP
v11.1.1
- alecthomas/entityx
- jackaudio/jack2: jack2 codebase
- cartographer-project/cartographer: Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
- alsa-project/alsa-lib: The Advanced Linux Sound Architecture (ALSA) - library
- catchorg/Catch2, WIP
v3.1.0
- OpenAL
- http://www.gphoto.org/proj/libgphoto2/
- https://c.msgpack.org/cpp/index.html
- fltk/fltk, WIP
v1.3.8
- craigsapp/midifile, WIP
cf7ded879139061c41631797e5b735d6d5ceee23e
- FreeGLUTProject/freeglut, WIP
v3.2.2
- FreeImage download | SourceForge.net
- [nigels-com/glew]dirkarnez/glew-prebuilt, WIP
v2.2.0
- taocpp/PEGTL, WIP
v3.2.7
- libjpeg-turbo/libjpeg-turbo, WIP
v2.1.3
- CImg
- bblanchon/ArduinoJson, WIP
v6.19.4
- chemfiles/chemfiles, WIP
v0.10.2
- antirez/sds, non-cmake repo, WIP
- kuafuwang/LspCpp, WIP
c6e280bccc1df85527089abcd8a37098b0d6c1eb9
- dirkarnez/lspcpp-boilerplate
- fuzzylite/fuzzylite, WIP
- https://github.com/mlpack/mlpack
- glfw/glfw, WIP
v3.3.8
- thestk/rtaudio: A set of C++ classes that provide a common API for realtime audio input/output across Linux (native ALSA, JACK, PulseAudio and OSS), Macintosh OS X (CoreAudio and JACK), and Windows (DirectSound, ASIO, and WASAPI) operating systems.
- OGRECave/ogre-next
- lballabio/QuantLib, WIP
v1.27
- symisc/unqlite, WIP
v1.1.9
- sqlite/sqlite, WIP
v3.40.1
- open-mpi/ompi: Open MPI main development repository
- OpenMP/sources: This repository contains supplementary source code for the OpenMP(R) API Specification.
- oneapi-src/oneTBB: oneAPI Threading Building Blocks (oneTBB)
- oneapi-src/oneDNN: oneAPI Deep Neural Network Library (oneDNN)
- oneapi-src/oneCCL: oneAPI Collective Communications Library (oneCCL)
- oneapi-src/oneDAL: oneAPI Data Analytics Library (oneDAL)
- oneapi-src/oneMKL: oneAPI Math Kernel Library (oneMKL) Interfaces
- oneapi-src/oneDPL: oneAPI DPC++ Library (oneDPL) https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-library.html
- laserpants/dotenv-cpp, WIP
cca1d543f78702921dbb398c865806b71dedfd2eb
- Armadillo: C++ library for linear algebra & scientific computing
- libjpeg
- glennrp/libpng, WIP
v1.6.34
- qgis/QGIS: QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
- graphql/libgraphqlparser: A GraphQL query parser in C++ with C and C++ APIs
- opencv/opencv, WIP
ce14c3cff856ad0f56fb14a5e59f9bb9849555903
- Magick++
- https://github.com/facebook/folly
- Simd
- https://www.openal.org/
- https://www.kfrlib.com/
- zeux/pugixml, WIP
v1.12.1
- https://github.com/STEllAR-GROUP/hpx/
- GNU gettext - Git Repositories [Savannah], WIP
- GNU libiconv - Git Repositories [Savannah], WIP
- GNOME / libxml2 · GitLab
- http://mpg123.org/, WIP
c90e9d67613c506d599af806c81221c2e9dc77079
- https://github.com/LRN/ntldd
- LRN/libntlink: A library that implements symlink(), link(), unlink(), lstat() and readlink() on top of WinAPI
- gpg/gpg4win
- cpp-netlib
- pybind/pybind11: Seamless operability between C++11 and Python
- https://github.com/snakster/cpp.react
- hosseinmoein/DataFrame, WIP
v1.21.0
- FFTW/fftw3, WIP
v3.3.10
- oatpp/oatpp, WIP
v1.3.0
- madler/zlib, WIP
v1.2.13
- OpenMP
- https://github.com/steven-varga/h5cpp
- GMP, WIP
v6.2.1
- GNU MPFR, WIP
v4.1.0
- GNU MPC — multiprecision.org, WIP
v1.2.1
- GStreamer
- libsdl-org/SDL, WIP
v2.0.2
- TagLib
- cpprestsdk
- google/brotli, WIP
v1.0.9
- Google tests
- gRPC
- davisking/dlib, WIP
v19.24
- darknet
- https://github.com/GHamrouni/Recommender
- libeigen / eigen · GitLab, WIP
v3.4.0
- https://github.com/softwareQinc/qpp
- https://github.com/Mbed-TLS/mbedtls
- https://github.com/libevent/libevent
- https://github.com/the-tcpdump-group/libpcap
- Exiv2/exiv2, WIP
v0.27.6
- protocolbuffers/protobuf, WIP
v21.7
- https://github.com/USCiLab/cereal
- FFmpeg/FFmpeg
- https://github.com/jakogut/tinyvm
- CGAL
- CUDA
- jbeder/yaml-cpp, WIP
v0.7.0
- The Programming Language Lua, WIP
v5.4.4
- OpenBSD bcrypt, WIP
- ``
- https://github.com/c-ares/c-ares.git
- curl/curl, WIP
v8.0.1
- https://github.com/curl/doh
- https://www.gnutls.org/
- https://github.com/rockdaboot/libpsl
- https://www.libssh2.org/
- hosseinmoein/DataFrame, WIP
v1.21.0
- https://www.cgal.org/
- https://github.com/DieShell/TclTk
- https://github.com/dirkarnez/boost-prebuilt
- https://github.com/FreeRDP/FreeRDP
- manticoresoftware/manticoresearch: Easy to use open source fast database for search | Good alternative to Elasticsearch now | Drop-in replacement for E in the ELK soon
- openssl/openssl, WIP
v3.0.5
- RaftLib/RaftLib: The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators
- Xiph.Org / flac · GitLab, WIP
v1.4.2
- Xiph.Org / Ogg · GitLab
- GNU Scientific Library
- ampl/gsl, WIP
v2.7.0
- ampl/gsl, WIP
- freedesktop/fontconfig: Font customization and configuration library
- electronicarts/EASTL: EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.
- ETLCPP/etl: Embedded Template Library
- jfalcou/eve: Expressive Vector Engine - SIMD in C++ Goes Brrrr
- g-truc/glm: OpenGL Mathematics (GLM)
- HDFGroup/hdf5, WIP
v1.13.2
- oneapi-src/oneTBB: oneAPI Threading Building Blocks (oneTBB)
- modm-io/avr-libstdcpp: Subset of the C++ standard library for AVR targets
- webview/webview: Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)
- andrew-gresyk/HFSM2: High-Performance Hierarchical Finite State Machine Framework
- agenium-scale/nsimd: Agenium Scale vectorization library for CPUs and GPUs
- jfalcou/eve: Expressive Vector Engine - SIMD in C++ Goes Brrrr
- dmlc/xgboost: Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow
- freedesktop/cairo: cairo's central repository
- hselasky/libumidi: MIDI file and interface library
- hselasky/midipp: MIDI Player Pro
- hselasky/jack_umidi: Raw MIDI to JACK daemon
- bzip2/bzip2, WIP
v1.0.8
- harfbuzz/harfbuzz, WIP
v5.3.0
- freetype/freetype: Official mirror of https://gitlab.freedesktop.org/freetype/freetype