Giter VIP home page Giter VIP logo

rapidcpp / pkg Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 22.21 MB

CMake library manager for Windows(host/cross build), Linux, MacOS, Raspberry Pi(host/cross build), iOS, android, etc.

Home Page: https://cmake.sh

License: Other

CMake 59.22% Batchfile 0.03% Shell 0.34% C 2.54% C++ 34.42% PowerShell 2.49% Perl 0.39% Python 0.31% PHP 0.26%
cmake vcpkg libraries windows cpp package-manager packages c cplusplus

pkg's Introduction

CMake

Overview

CMake helps you manage C and C++ libraries on Windows, Linux, MacOS, Raspberry Pi, iOS and android, etc. This tool and ecosystem are constantly evolving; your involvement are vital to its success!

Currently this project depends on vcpkg. For short description of available commands, run vcpkg help.

Possibilities

Quick Start

Prerequisites:

  • Windows 10, 8.1, 7, Linux, or MacOS
  • Visual Studio 2015 Update 3 or newer (on Windows)
  • Git
  • gcc >= 7 or equivalent clang (on Linux)
  • Optional: CMake 3.12.4

To get started:

> git clone https://github.com/Microsoft/vcpkg.git
> cd vcpkg

PS> .\bootstrap-vcpkg.bat
Linux:~/$ ./bootstrap-vcpkg.sh

Then, to hook up user-wide integration, run (note: requires admin on first use)

PS> .\vcpkg integrate install
Linux:~/$ ./vcpkg integrate install

Install any packages with

PS> .\vcpkg install sdl2 curl
Linux:~/$ ./vcpkg install sdl2 curl

The best way to use installed libraries with CMake is via the toolchain file scripts\buildsystems\vcpkg.cmake. To use this file, you simply need to add it onto your CMake command line as -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake.

In Visual Studio, you can create a New Project (or open an existing one). All installed libraries are immediately ready to be #include'd and used in your project without additional configuration.

For more information, see our using a package example for the specifics. If your library is not present in vcpkg catalog, you can open an issue on the GitHub repo where the dev team and the community can see it and potentially create the port file for this library.

Additional notes on macOS and Linux support can be found in the official announcement.

Tab-Completion / Auto-Completion

vcpkg supports auto-completion of commands, package names, options etc in Powershell and bash. To enable tab-completion, use one of the following:

PS> .\vcpkg integrate powershell
Linux:~/$ ./vcpkg integrate bash

and restart your console.

Examples

See the documentation for specific walkthroughs, including installing and using a package, adding a new package from a zipfile, and adding a new package from a GitHub repo.

Our docs are now also available online at ReadTheDocs: https://vcpkg.readthedocs.io/!

See a 4 minute video demo.

Contributing

Vcpkg is built with your contributions. Here are some ways you can contribute:

Please refer to our Contribution guidelines for more details.

pkg's People

Contributors

alexkaratarakis avatar ras0219-msft avatar jackboosy avatar rastaban avatar codicodi avatar atkawa7 avatar myd7349 avatar neumann-a avatar vicroms avatar nancyli1013 avatar grdowns avatar lilywangl avatar jasjuang avatar cbezault avatar unanancyowen avatar ehsan-mohammadi avatar mixaill avatar cenit avatar sdcb avatar kinddragon avatar strega-nil avatar pravic avatar traversaro avatar billyoneal avatar barath-kannan avatar eao197 avatar coryan avatar xoviat avatar past-due avatar albertziegenhagel avatar

Watchers

James Cloos avatar  avatar

pkg's Issues

[milestone]CMake包管理与编译器

CMake包管理与编译器

实现工程的结构化,通过基于cmake的可视化配置文件,可以便捷生成VS或xcode的工程项目。

  • build via clang-cl + LLD,gcc,cl.exe,apple-clang,intel,etc
  • supports x86、x64、arm64等
  • host on windows、raspberry pi、OSX、linux(ubuntu/debian/redhat/arhlinux/raspbian)、FreeBSD、SunOS, etc.

CMake的工作原理

  1. cmake build
  2. exec_process命令
  3. 执行exe/python脚本
  4. 生成基于json的cmake文件
  5. download packages
  6. 生成工程配置文件
  7. 编译
  8. install: 执行exe/python脚本,上传至包管理服务器

特性支持

  • cmake.sh脚本支持,封装cmake基础功能,并扩展
  • 包下载
  • patch应用
  • 构建规则
  • 包管理+CI+CD,实现conan
  • 二进制包管理:编译选项多样性,runtime,编译器版本,平台,CPU(ARM/x64/x86)等,包含版本管理
  • 私有包管理系统
  • 命名规范:user/package:version;platform;debug/release;crt-runtime;cpu;options.
  • 增量编译+改动检测+云端编译+缓存服务
  • 源码编译
  • 编译脚本+patch
  • package.json
  • WSL: 跨平台
  • module+import机制

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.