Mercurial > minori
annotate dep/fmt/doc/html/_sources/usage.rst.txt @ 368:6d37a998cf91
gui/dialog: consolidate win32 dark theme cruft into a single class
| author | Paper <paper@tflc.us> | 
|---|---|
| date | Fri, 25 Jul 2025 10:05:23 -0400 | 
| parents | 1faa72660932 | 
| children | 
| rev | line source | 
|---|---|
| 343 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1 ***** | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2 Usage | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 3 ***** | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 4 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 5 To use the {fmt} library, add :file:`fmt/core.h`, :file:`fmt/format.h`, | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 6 :file:`fmt/format-inl.h`, :file:`src/format.cc` and optionally other headers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 7 from a `release archive <https://github.com/fmtlib/fmt/releases/latest>`_ or | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 8 the `Git repository <https://github.com/fmtlib/fmt>`_ to your project. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 9 Alternatively, you can :ref:`build the library with CMake <building>`. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 10 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 11 .. _building: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 12 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 13 Building the Library | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 14 ==================== | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 15 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 16 The included `CMake build script`__ can be used to build the fmt | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 17 library on a wide range of platforms. CMake is freely available for | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 18 download from https://www.cmake.org/download/. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 19 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 20 __ https://github.com/fmtlib/fmt/blob/master/CMakeLists.txt | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 21 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 22 CMake works by generating native makefiles or project files that can | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 23 be used in the compiler environment of your choice. The typical | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 24 workflow starts with:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 25 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 26 mkdir build # Create a directory to hold the build output. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 27 cd build | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 28 cmake .. # Generate native build scripts. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 29 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 30 where :file:`{<path/to/fmt>}` is a path to the ``fmt`` repository. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 31 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 32 If you are on a \*nix system, you should now see a Makefile in the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 33 current directory. Now you can build the library by running :command:`make`. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 34 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 35 Once the library has been built you can invoke :command:`make test` to run | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 36 the tests. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 37 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 38 You can control generation of the make ``test`` target with the ``FMT_TEST`` | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 39 CMake option. This can be useful if you include fmt as a subdirectory in | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 40 your project but don't want to add fmt's tests to your ``test`` target. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 41 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 42 If you use Windows and have Visual Studio installed, a :file:`FMT.sln` | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 43 file and several :file:`.vcproj` files will be created. You can then build them | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 44 using Visual Studio or msbuild. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 45 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 46 On Mac OS X with Xcode installed, an :file:`.xcodeproj` file will be generated. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 47 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 48 To build a `shared library`__ set the ``BUILD_SHARED_LIBS`` CMake variable to | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 49 ``TRUE``:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 50 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 51 cmake -DBUILD_SHARED_LIBS=TRUE ... | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 52 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 53 __ https://en.wikipedia.org/wiki/Library_%28computing%29#Shared_libraries | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 54 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 55 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 56 To build a `static library` with position independent code (required if the main | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 57 consumer of the fmt library is a shared library i.e. a Python extension) set the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 58 ``CMAKE_POSITION_INDEPENDENT_CODE`` CMake variable to ``TRUE``:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 59 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 60 cmake -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE ... | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 61 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 62 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 63 Installing the Library | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 64 ====================== | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 65 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 66 After building the library you can install it on a Unix-like system by running | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 67 :command:`sudo make install`. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 68 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 69 Usage with CMake | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 70 ================ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 71 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 72 You can add the ``fmt`` library directory into your project and include it in | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 73 your ``CMakeLists.txt`` file:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 74 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 75 add_subdirectory(fmt) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 76 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 77 or | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 78 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 79 :: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 80 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 81 add_subdirectory(fmt EXCLUDE_FROM_ALL) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 82 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 83 to exclude it from ``make``, ``make all``, or ``cmake --build .``. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 84 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 85 You can detect and use an installed version of {fmt} as follows:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 86 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 87 find_package(fmt) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 88 target_link_libraries(<your-target> fmt::fmt) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 89 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 90 Setting up your target to use a header-only version of ``fmt`` is equally easy:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 91 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 92 target_link_libraries(<your-target> PRIVATE fmt::fmt-header-only) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 93 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 94 Usage with build2 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 95 ================= | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 96 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 97 You can use `build2 <https://build2.org>`_, a dependency manager and a | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 98 build-system combined, to use ``fmt``. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 99 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 100 Currently this package is available in these package repositories: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 101 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 102 - **https://cppget.org/fmt/** for released and published versions. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 103 - `The git repository with the sources of the build2 package of fmt <https://github.com/build2-packaging/fmt.git>`_ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 104 for unreleased or custom revisions of ``fmt``. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 105 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 106 **Usage:** | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 107 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 108 - ``build2`` package name: ``fmt`` | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 109 - Library target name : ``lib{fmt}`` | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 110 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 111 For example, to make your ``build2`` project depend on ``fmt``: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 112 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 113 - Add one of the repositories to your configurations, or in your | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 114 ``repositories.manifest``, if not already there:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 115 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 116 : | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 117 role: prerequisite | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 118 location: https://pkg.cppget.org/1/stable | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 119 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 120 - Add this package as a dependency to your ``./manifest`` file | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 121 (example for ``v7.0.x``):: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 122 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 123 depends: fmt ~7.0.0 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 124 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 125 - Import the target and use it as a prerequisite to your own target | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 126 using `fmt` in the appropriate ``buildfile``:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 127 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 128 import fmt = fmt%lib{fmt} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 129 lib{mylib} : cxx{**} ... $fmt | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 130 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 131 Then build your project as usual with `b` or `bdep update`. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 132 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 133 For ``build2`` newcomers or to get more details and use cases, you can read the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 134 ``build2`` | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 135 `toolchain introduction <https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml>`_. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 136 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 137 Usage with Meson | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 138 ================ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 139 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 140 `Meson's WrapDB <https://mesonbuild.com/Wrapdb-projects.html>` includes a ``fmt`` | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 141 package, which repackages fmt to be built by Meson as a subproject. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 142 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 143 **Usage:** | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 144 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 145 - Install the ``fmt`` subproject from the WrapDB by running:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 146 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 147 meson wrap install fmt | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 148 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 149 from the root of your project. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 150 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 151 - In your project's ``meson.build`` file, add an entry for the new subproject:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 152 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 153 fmt = subproject('fmt') | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 154 fmt_dep = fmt.get_variable('fmt_dep') | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 155 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 156 - Include the new dependency object to link with fmt:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 157 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 158 my_build_target = executable('name', 'src/main.cc', dependencies: [fmt_dep]) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 159 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 160 **Options:** | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 161 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 162 If desired, ``fmt`` may be built as a static library, or as a header-only | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 163 library. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 164 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 165 For a static build, use the following subproject definition:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 166 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 167 fmt = subproject('fmt', default_options: 'default_library=static') | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 168 fmt_dep = fmt.get_variable('fmt_dep') | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 169 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 170 For the header-only version, use:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 171 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 172 fmt = subproject('fmt') | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 173 fmt_dep = fmt.get_variable('fmt_header_only_dep') | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 174 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 175 Building the Documentation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 176 ========================== | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 177 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 178 To build the documentation you need the following software installed on your | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 179 system: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 180 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 181 * `Python <https://www.python.org/>`_ with pip and virtualenv | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 182 * `Doxygen <http://www.stack.nl/~dimitri/doxygen/>`_ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 183 * `Less <http://lesscss.org/>`_ with ``less-plugin-clean-css``. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 184 Ubuntu doesn't package the ``clean-css`` plugin so you should use ``npm`` | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 185 instead of ``apt`` to install both ``less`` and the plugin:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 186 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 187 sudo npm install -g less less-plugin-clean-css. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 188 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 189 First generate makefiles or project files using CMake as described in | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 190 the previous section. Then compile the ``doc`` target/project, for example:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 191 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 192 make doc | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 193 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 194 This will generate the HTML documentation in ``doc/html``. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 195 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 196 Conda | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 197 ===== | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 198 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 199 fmt can be installed on Linux, macOS and Windows with | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 200 `Conda <https://docs.conda.io/en/latest/>`__, using its | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 201 `conda-forge <https://conda-forge.org>`__ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 202 `package <https://github.com/conda-forge/fmt-feedstock>`__, as follows:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 203 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 204 conda install -c conda-forge fmt | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 205 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 206 Vcpkg | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 207 ===== | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 208 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 209 You can download and install fmt using the `vcpkg | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 210 <https://github.com/Microsoft/vcpkg>`__ dependency manager:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 211 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 212 git clone https://github.com/Microsoft/vcpkg.git | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 213 cd vcpkg | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 214 ./bootstrap-vcpkg.sh | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 215 ./vcpkg integrate install | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 216 ./vcpkg install fmt | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 217 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 218 The fmt port in vcpkg is kept up to date by Microsoft team members and community | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 219 contributors. If the version is out of date, please `create an issue or pull | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 220 request <https://github.com/Microsoft/vcpkg>`__ on the vcpkg repository. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 221 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 222 LHelper | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 223 ======= | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 224 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 225 You can download and install fmt using | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 226 `lhelper <https://github.com/franko/lhelper>`__ dependency manager:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 227 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 228 lhelper activate <some-environment> | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 229 lhelper install fmt | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 230 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 231 All the recipes for lhelper are kept in the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 232 `lhelper's recipe <https://github.com/franko/lhelper-recipes>`__ repository. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 233 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 234 Android NDK | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 235 =========== | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 236 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 237 fmt provides `Android.mk file`__ that can be used to build the library | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 238 with `Android NDK <https://developer.android.com/tools/sdk/ndk/index.html>`_. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 239 For an example of using fmt with Android NDK, see the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 240 `android-ndk-example <https://github.com/fmtlib/android-ndk-example>`_ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 241 repository. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 242 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 243 __ https://github.com/fmtlib/fmt/blob/master/support/Android.mk | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 244 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 245 Homebrew | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 246 ======== | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 247 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 248 fmt can be installed on OS X using `Homebrew <https://brew.sh/>`_:: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 249 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 250 brew install fmt | 
