lcpkg
v0.3.3
Published
A command line tool for manage LCUI application
Downloads
23
Maintainers
Readme
LCPkg
(English/中文)
LCPkg (LC's Package Manager) is a command line tool for manage Windows C/C++ project dependencies, it is able to:
- Install dependencies from Vcpkg or GitHub.
- Save information about your project and its dependencies.
- Pack resource files, header files and library files into a package file to make your project easier to install.
Quick Start
Prerequisites:
To get started:
npm install -g lcpkgTell lcpkg where the root directory of vcpkg is:
lcpkg config vcpkg.root /path/to/vcpkgGo to your project directory:
cd /path/to/your/projectTell lcpkg about your project information:
lcpkg initInstall any packages with:
lcpkg install sdl2 curlThe files in these packages will be copied to the lcpkg/installed directory in the project directory. The directory structure is similar to the Vcpkg package:
x64-windows/
bin
libxxx.dll
debug
bin
libxxxd.dll
lib
libxxxd.lib
include
libxxx.h
lib
libxxx.libExport packages
If your project is an application, and its working directory requires the dll files and resource files of the dependent package, you can export them to the working directory:
lcpkg export --filter runtime /path/to/your/app/workdirYou can also specify which CPU architecture and build mode resource files to export:
lcpkg export --filter rumtime --arch x64 --mode debug /path/to/your/app/workdirPackage C/C++ library project
If your project is a C/C++ library, and want to publish it to other developers, you can package it:
lcpkg packThis command will output some files like this:
dist/yourlib_all.lcpkg.zip
dist/yourlib_x86-windows.lcpkg.zip
dist/yourlib_x64-windows.lcpkg.zip
dist/yourlib_x86-uwp.lcpkg.zip
dist/yourlib_x64-uwp.lcpkg.zipThe yourlib_all.lcpkg.zip file includes packages for all platforms and architectures, you can install it like this:
lcpkg install /path/to/yourlib_all.lcpkg.zipIf your project is an open source project and hosted on GitHub.com, you can upload them to the release assets each time you post a release note, and tell your users install it like this:
lcpkg install github.com/yourusername/yourlibThe yourlib_all.lcpkg.zip file is usually large, We recommend you upload files other than it, so that users don't have to wait too long for downloading.
Debug C/C++ library project locally
The approach of lcpkg is similar to that of npm. It maps local development projects in the form of symbolic links to the global package directory for application projects, but is limited by the directory structure of C/C++ projects and the dependency search rules of the build tool. Some additional commands are needed to synchronize the dependent package files.
Symlink current package directory to global package directory:
lcpkg linkThen repackage to update the package files every time the library is built:
lcpkg packAnd update the dependent library files in the application project:
lcpkg installFAQ
Vcpkg is awesome, why should I use LCPkg instead of Vcpkg?
In the current version, LCPkg doesn't have any appealing features, For the author, its main use is help other developers to download and install the binary packages of LCUI and LC Design. But if you happen to meet the following conditions, you can try LCPkg.
- Have a C/C++ library project that you need to publish to other developers.
- The build tool used in the project is not CMake, and you don't want to learn CMake.
- Some tools written in JavaScript are used in your project, and the Node.js has already been installed.
Contribute
There are many ways to contribute to LCPkg.
- Submit bugs and help us verify fixes as they are checked in.
- Vote and discuss participation in feature requests.
- Review the source code changes.
- Contribute bug fixes.
LCPkg has adopted the code of conduct defined by the Contributor Covenant. This document is used across many open source communities, and we think it articulates our values well. For more, see the Code of Conduct.
License
Code licensed under the MIT License.
