Skip to content

msvc-pkg consists solely of scripts, patches, and YAML configuration files to build many C/C++/Fortran open source libraries using MSVC/MSVC-like toolsets

License

Notifications You must be signed in to change notification settings

jiangjianshan/msvc-pkg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 msvc-pkg

msvc-pkg consists solely of 📜scripts, 🔧patches, and 📄YAML configuration files. Leveraging MSVC/MSVC-like command-line 🛠️toolchains, it enables users to compile each library from source within the packages directory of this repository.

✨ Key Features

  • 🔧 Fully relies on MSVC/MSVC-like toolchains to generate native Windows binaries
  • 🛠️ Lightweight UNIX-like environment without requiring additional installations of Cygwin/MSYS2
  • 🤖 Automatically generate dependency tree and detect circular dependencies based on package configurations
  • 🌳 Nice view of dependency tree for each package on terminal
  • 🌈 Rich and vibrant colors in the terminal during display output
  • 🚧 Each library's build environment (UNIX-like or Windows) is isolated within the terminal
  • 🔌 Enhanced compiler's wrappers for C/C++/Fortran/MPI and etc

Screenshots

list-pkgs
dep-tree
cmake-build

📜 Special Notes

  • Intel Compiler Support: 2024.2.1 is the final version supporting ifort

🚀 Getting Started

🏗️ Initial Setup

# Initial cloning
git clone https://github.com/jiangjianshan/msvc-pkg.git

# Commands below are dedicated for future content synchronization
cd msvc-pkg
git fetch origin main
git reset --hard origin/main

💡 Pro Tip: The settings.yaml will be created on the root of msvc-pkg folder if it is missing, you must check the content of it before run mpt with or without parameters.

🖥️ Basic Commands

Command Description Example Usage
mpt --list List all available libraries which support by msvc-pkg mpt --list
mpt Build all libraries for default architecture (x64) mpt
mpt <arch> Build all libraries for specified architecture (x86/x64) mpt x86
mpt <arch> <pkg1> <pkg2>... Build specific packages with dependencies for specified architecture mpt x86 gmp ffmpeg
mpt <pkg1> <pkg2>... Build specific packages with dependencies mpt gmp ffmpeg

➕ How To Add New Package

  1. Create package directory in packages/, e.g. gmp
  2. For those libraries using cmake, meson, autotools, msbuild, nmake and so on, take the examples inside packages/ and add required files:
    gmp/
    ├── sync.sh                # Source fetching and patching if have
    ├── build.bat/build.sh     # Script for build configuration, compile and install
    ├── config.yaml            # define package essential information
    └── *.diff                 # Patch files for this package (required if need)

🤝 Contributing

It is a huge job to create the scripts to build as many as libraries as possible. We welcome contributions through:

  • 🐛 Bug reports
  • 💡 Feature proposals
  • 📦 New package additions
  • 📚 Documentation improvements

About

msvc-pkg consists solely of scripts, patches, and YAML configuration files to build many C/C++/Fortran open source libraries using MSVC/MSVC-like toolsets

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published