PackageCPPLibraries - npackd/npackd GitHub Wiki

Introduction

There are three types of C++/C packages:

  • source code
  • development libraries with .a and .obj files compiled to a particular platform with a particular compiler
  • binary only with .dll files

Source code

Please use the suffix -src for source code libraries. Example: quazip-src

Development libraries

A development library in C++ should contain .h files in the include directory and .a and .dll files in the bin directory. The development libraries should form a tree of dependencies with other development libraries.

The created binaries are compiler and platform dependent. Please use the -dev-<platform>-<compiler and its version>-<build options> suffix for the name of the development library.

Please use the values from the following lists to create such suffixes (in this order):

Platforms:

  • x86_64 - 64 bit binaries
  • i686 - 32 bit binaries

Compilers:

  • mingw32 - MinGW
  • w64_dw2_posix - MinGW-w64, DW2, Posix threads
  • w64_dw2_win - MinGW-w64, DW2, Windows threads
  • w64_sjlj_posix - MinGW-w64, SJLJ, Posix threads
  • w64_sjlj_win - MinGW-w64, SJLJ, Windows threads
  • w64_seh_posix - MinGW-w64, SEH, Posix threads
  • w64_seh_win - MinGW-w64, SEH, Windows threads
  • vc - Visual Studio 98 (VC6)
  • sdk - Windows SDK C++ compiler

Compiler versions examples:

  • w64_4.9.2 - MinGW-w64 4.9.2
  • vc_7 - Visual Studio 2002
  • vc_7.1 - Visual Studio 2003
  • vc_8 - Visual Studio 2005
  • vc_9 - Visual Studio 2008
  • vc_10- Visual Studio 2010
  • vc_11- Visual Studio 2012
  • vc_12- Visual Studio 2013
  • sdk_7 - Windows SDK 7.0 C++ compiler
  • sdk_7.1 - Windows SDK 7.1 C++ compiler

A build option should be specified in form _. For yes/no options the value should be omitted. The options should appear in alphabetical order. If the amount of options does not allow to put them all in the package name, consider describing the list of options in the package description and create a new option name that would combine other options.

Example: qt-dev-i686-w64_4.9.2-opengl_desktop-opensource-qt_freetype-qt_sql_sqlite-release-static-style_windows

Standard names for compiler specific options:

  • Visual C++ specific: "mt" - causes your application to use the multi-threaded and DLL-specific version of the run-time library
  • Visual C++ specific: "md" - causes your application to use the multi-threaded, static version of the run-time library
  • Visual C++ specific: see http://msdn.microsoft.com/en-us/library/2kzt1wy3(v=vs.110).aspx

Different set of compiler or linker options:

  • release - release build (default, can be omitted)
  • debug - debug build

Static or dynamic library loading:

  • static - static build
  • dynamic - dynamic loading libraries (default, can be omitted)

Example: qt-dev-i686-w64-debug-static

The library should have the standard name expected by the compiler.

Example for MinGW (prefix "lib" and extension ".a"): "lib\libz.a"

Binaries

The packages with binaries (only .dll files, no .o or .lib) should be named simply as the library. It is also possible to use the simple suffix 64 for 64-bit binaries as in program packages.

Example: qt-i686-debug Example 2: qt64

⚠️ **GitHub.com Fallback** ⚠️