From 5a6d9449900977f609a507f9f70897937ada9a0a Mon Sep 17 00:00:00 2001 From: Peter Turcan Date: Fri, 21 Apr 2023 16:05:30 -0700 Subject: [PATCH] added all templates --- contributor-guide/modules/ROOT/nav.adoc | 16 +- .../ROOT/pages/documentation-structure.adoc | 300 ++++++++++++++++++ .../ROOT/pages/index-file-template.adoc | 31 ++ .../templates/acknowledgements-template.adoc | 17 + .../templates/bibliography-template.adoc | 17 + .../templates/configuration-template.adoc | 54 ++++ .../pages/templates/definitions-template.adoc | 20 ++ .../ROOT/pages/templates/faq-template.adoc | 22 ++ .../ROOT/pages/templates/header-template.adoc | 220 +++++++++++++ .../pages/templates/overview-template.adoc | 35 ++ .../pages/templates/rationale-template.adoc | 34 ++ user-guide/modules/ROOT/images/boost.png | Bin 0 -> 6308 bytes .../pages/getting-started-with-linux.adoc | 21 +- .../use-boost-with-linux-package-manager.adoc | 69 ++-- 14 files changed, 819 insertions(+), 37 deletions(-) create mode 100644 contributor-guide/modules/ROOT/pages/documentation-structure.adoc create mode 100644 contributor-guide/modules/ROOT/pages/index-file-template.adoc create mode 100644 contributor-guide/modules/ROOT/pages/templates/acknowledgements-template.adoc create mode 100644 contributor-guide/modules/ROOT/pages/templates/bibliography-template.adoc create mode 100644 contributor-guide/modules/ROOT/pages/templates/configuration-template.adoc create mode 100644 contributor-guide/modules/ROOT/pages/templates/definitions-template.adoc create mode 100644 contributor-guide/modules/ROOT/pages/templates/faq-template.adoc create mode 100644 contributor-guide/modules/ROOT/pages/templates/header-template.adoc create mode 100644 contributor-guide/modules/ROOT/pages/templates/overview-template.adoc create mode 100644 contributor-guide/modules/ROOT/pages/templates/rationale-template.adoc create mode 100644 user-guide/modules/ROOT/images/boost.png diff --git a/contributor-guide/modules/ROOT/nav.adoc b/contributor-guide/modules/ROOT/nav.adoc index f4db6b7..0d340ad 100644 --- a/contributor-guide/modules/ROOT/nav.adoc +++ b/contributor-guide/modules/ROOT/nav.adoc @@ -1,2 +1,14 @@ -* New content -xref:intro.adoc[Introduction to becoming a Boost Contributor] +* New Content +* xref:intro.adoc[Introduction to becoming a Boost Contributor] +* Legacy Content +** xref:documentation-structure.adoc[Writing Documentation for Boost - Documentation Structure] +** xref:index-file-template.adoc[Index File Template] +** Templates +*** xref:templates/acknowledgements-template.adoc[Acknowledgments Template] +*** xref:templates/bibliography-template.adoc[Bibliography Template] +*** xref:templates/configuration-template.adoc[Configuration Template] +*** xref:templates/definitions-template.adoc[Definitions Template] +*** xref:templates/faq-template.adoc[FAQ Template] +*** xref:templates/header-template.adoc[Header Template] +*** xref:templates/overview-template.adoc[Overview Template] +*** xref:templates/rationale-template.adoc[Rationale Template] \ No newline at end of file diff --git a/contributor-guide/modules/ROOT/pages/documentation-structure.adoc b/contributor-guide/modules/ROOT/pages/documentation-structure.adoc new file mode 100644 index 0000000..1663952 --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/documentation-structure.adoc @@ -0,0 +1,300 @@ += Writing Documentation for Boost - Documentation Structure + +== [#introduction]#Introduction# + +Boost does not require any specific documentation structure. However, +there are some important considerations that influence content and +structure. For example, many Boost libraries wind up being proposed for +inclusion in the C++ Standard, so writing them initially with text +suitable for inclusion in the Standard may be helpful. Also, Boost +library documentation is often accessed via the World Wide Web, +including via search engines, so context is often important for every +page. Finally, Boost libraries should provide additional documentation, +such as introductory, tutorial, example, and rationale content. With +those things in mind, we suggest the following guidelines for Boost +library documentation. + +== [#standards-conforming]#Standards Conforming# Documentation + +The documentation structure required for the C++ Standard is an +effective way to describe the technical specifications for a library. +Although terse, that format is familiar to many Boost users and is far +more precise than most ad hoc formats. The following description is +based upon §17.3 of the Standard. (Note that while final Standard +proposals must include full standardese wording, which the committee +will not do for you, that level of detail is not expected of Boost +library documentation.) + +=== [#elements]#Document elements# + +[#footnote1-location] +Each document contains the following elements, as +applicable. link:#footnote1[(1)]: + +* link:#summary[Summary] +* link:#requirements[Requirements] +* link:#detailed-specs[Detailed specifications] +* link:#ref-cpp[References to the Standard C++ library] +* link:#ref-c[References to the Standard C library] + +==== [#summary]#Summary# + +The Summary provides a synopsis of the category, and introduces the +first-level subclauses. Each subclause also provides a summary, listing +the headers specified in the subclause and the library entities provided +in each header. + +Paragraphs labeled "Note(s):" or "Example(s):" are informative, other +paragraphs are normative. + +The summary and the detailed specifications are presented in the order: + +* Macros +* Values +* Types +* Classes +* Functions +* Objects + +==== [#requirements]#Requirements# + +The library can be extended by a C++ program. Each clause, as +applicable, describes the requirements that such extensions must meet. +Such extensions are generally one of the following: + +* Template arguments +* Derived classes +* Containers, iterators, and/or algorithms that meet an interface +convention + +Interface convention requirements are stated as generally as possible. +Instead of stating "`class X` has to define a member function +`operator++()`," the interface requires "for any object `x` of +`class X`, `++x` is defined." That is, whether the operator is a member +is unspecified. + +Requirements are stated in terms of well-defined expressions, which +define valid terms of the types that satisfy the requirements. For every +set of requirements there is a table that specifies an initial set of +the valid expressions and their semantics. Any generic algorithm that +uses the requirements is described in terms of the valid expressions for +its formal type parameters. + +Template argument requirements are sometimes referenced by name. + +[#footnote2-location] +In some cases the semantic requirements are presented as C++ code. Such +code is intended as a specification of equivalence of a construct to +another construct, not necessarily as the way the construct must be +implemented.link:#footnote2[(2)] + +==== [#detailed-specs]#Detailed specification# + +The detailed specifications each contain the following elements: + +* Name and brief description +* Synopsis (class definition or function prototype, as appropriate) +* Restrictions on template arguments, if any +* Description of class invariants +* Description of function semantics + +[#footnote3-location] +Descriptions of class member functions follow the order (as +appropriate) link:#footnote3[(3)]: + +* Constructor(s) and destructor +* Copying and assignment functions +* Comparison functions +* Modifier functions +* Observer functions +* Operators and other non-member functions + +[#footnote4-location] +Descriptions of function semantics contain the following +elements (as appropriate) link:#footnote4[(4):] + +*link:#requires[Requires:]* the preconditions for calling the function + +*link:#effects[Effects:]* the actions performed by the function + +*link:#postconditions[Postconditions:]* the observable results +established by the function + +*link:#returns[Returns:]* a description of the value(s) returned by the +function + +*link:#throws[Throws:]* any exceptions thrown by the function, and the +conditions that would cause the exception + +*link:#complexity[Complexity:]* the time and/or space complexity of the +function + +*link:#rationale[Rationale:]* the rationale for the function's design or +existence + +Complexity requirements specified in the library clauses are upper +bounds, and implementations that provide better complexity guarantees +satisfy the requirements. + +==== [#ref-cpp]#References to the C++ Standard library# + +==== [#ref-c]#References to the C Standard library# + +=== [#other]#Other conventions# + +These conventions are for describing implementation-defined types, and +member functions. + +==== [#type-descs]#Type descriptions# + +The Requirements subclauses may describe names that are used to specify +constraints on template arguments. + +== [#more]#More Information# + +=== [#function-semantic-explanations]#Function semantic element explanations# + +The function semantic element description above is taken directly from the C++ standard, and is quite terse. Here is a +more detailed explanation of each of the elements. + +Note the use of the ` ... ` font tag to distinguish actual +C++ usage from English prose. + +==== [#requires]#Requires# + +Preconditions for calling the function, typically expressed as +predicates. The most common preconditions are requirements on the value +of arguments, often in the form of C++ expressions. For example, + +.... + +void limit( int * p, int min, int max ); +.... + +*Requires:* `p != 0 && min <= max` + +Requirements already enforced by the C++ language rules (such as the +type of arguments) are not repeated in Requires paragraphs. + +==== [#effects]#Effects# + +The actions performed by the function, described either in prose or in +C++. A description in prose is often less limiting on implementors, but +is often less precise than C++ code. + +If an effect is specified in one of the other elements, particularly +_postconditions_, _returns_, or _throws_, it is not also described in +the _effects_ paragraph. Having only a single description ensures that +there is one and only one specification, and thus eliminates the risk of +divergence. + +==== [#postconditions]#Postconditions# + +The observable results of the function, such as the value of variables. +Postconditions are often expressed as predicates that are true after the +function completes, in the form of C++ expressions. For example: + +.... + +void make_zero_if_negative( int & x ); +.... + +*Postcondition:* `x >= 0` + +==== [#returns]#Returns# + +The value returned by the function, usually in the form of a C++ +expression. For example: + +.... +int sum( int x, int y ); +.... + +*Returns:* `x + y` + +Only specify the return value; the type is already dictated by C++ +language rules. + +==== [#throws]#Throws# + +Specify both the type of exception thrown, and the condition that causes +the exception to be thrown. For example, the `std::basic_string` class +specifies: + +.... + +void resize(size_type n, charT c); +.... + +*Throws:* `length_error` if `n > max_size()`. + +==== [#complexity]#Complexity# + +Specifying the time and/or space complexity of a function is often not +desirable because it over-constrains implementors and is hard to specify +correctly. Complexity is thus often best left as a quality of +implementation issue. + +A library component, however, can become effectively non-portable if +there is wide variation in performance between conforming +implementations. Containers are a prime example. In these cases it +becomes worthwhile to specify complexity. + +Complexity is often specified in generalized +https://web.mit.edu/16.070/www/lecture/big_o.pdf["Big-O" notation]. + +==== [#rationale]#Rationale# + +Specifying the rationale for a function's design or existence can often +give users a lot of insight into why a library is designed the way it +is. More importantly, it can help prevent "fixing" something that wasn't +really broken as the library matures. + +[[web]] +== Web Reference Documentation + +Boost library documentation is often accessed via the World Web. Using +search engines, a page deep in the reference content could be viewed +without any further context. Therefore, it is helpful to add extra +context, such as the following, to each page: + +* Describe the enclosing namespace or use fully scoped identifiers. +* Document required headers for each type or function. +* Link to relevant tutorial information. +* Link to related example code. +* Include the library name. +* Include navigation elements to the beginning of the documentation. + +It is also useful to consider the effectiveness of a description in +search engines. Terse or cryptic descriptions are less likely to help +the curious find a relevant function or type. + +== [#footnotes]#Footnotes# + +[#footnote1] +link:#footnote1-location[(1)] To save space, items that do not apply to +a clause are omitted. For example, if a clause does not specify any +requirements, there will be no "Requirements" subclause. + +[#footnote2] +link:#footnote2-location[(2)] Although in some cases the code is +unambiguously the optimum implementation. + +[#footnote3] +link:#footnote3-location[(3)] To save space, items that do not apply to +a class are omitted. For example, if a class does not specify any +comparison functions, there will be no "Comparison functions" subclause. + +[#footnote4] +link:#footnote4-location[(4)] To save space, items that do not apply to +a function are omitted. For example, if a function does not specify any +precondition, there will be no "Requires" paragraph. + +''''' + +Revised 04 December, 2006 + +_Copyright © 2001 mailto:williamkempf@hotmail.com[William E. Kempf]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. diff --git a/contributor-guide/modules/ROOT/pages/index-file-template.adoc b/contributor-guide/modules/ROOT/pages/index-file-template.adoc new file mode 100644 index 0000000..7bc116f --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/index-file-template.adoc @@ -0,0 +1,31 @@ += \{\{Library}} Index File Template + +== Contents + +xref:templates/overview-template.adoc[Overview] + +=== Reference + +xref:templates/header-template.adoc[\{\{header}}] + +xref:templates/configuration-template.adoc[Configuration Information] + +xref:templates/rationale-template.adoc[Rationale] + +xref:templates/definitions-template.adoc[Definitions] + +xref:templates/faq-template.adoc[Frequently Asked Questions (FAQs)] + +xref:templates/bibliography-template.adoc[Bibliography] + +xref:templates/acknowledgements-template.adoc[Acknowledgements] + +''''' + +Revised 04 December, 2006 + +_Copyright © 2006 mailto:%7B%7Baddress%7D%7D[\{\{author}}]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. + diff --git a/contributor-guide/modules/ROOT/pages/templates/acknowledgements-template.adoc b/contributor-guide/modules/ROOT/pages/templates/acknowledgements-template.adoc new file mode 100644 index 0000000..f3f321d --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/templates/acknowledgements-template.adoc @@ -0,0 +1,17 @@ += Acknowledgements Template + +== \{\{Library}} + +=== Acknowledgments + +''''' + +\{\{text}} + +''''' +Revised 04 December, 2006 + +_Copyright © 2006 mailto:%7B%7Baddress%7D%7D[\{\{author}}]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. \ No newline at end of file diff --git a/contributor-guide/modules/ROOT/pages/templates/bibliography-template.adoc b/contributor-guide/modules/ROOT/pages/templates/bibliography-template.adoc new file mode 100644 index 0000000..775cef3 --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/templates/bibliography-template.adoc @@ -0,0 +1,17 @@ += Bibliography Template + +== \{\{Library}} + +=== Bibliography + +''''' + +\{\{bibliographical information}} + +''''' +Revised 04 December, 2006 + +_Copyright © 2006 mailto:%7B%7Baddress%7D%7D[\{\{author}}]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. \ No newline at end of file diff --git a/contributor-guide/modules/ROOT/pages/templates/configuration-template.adoc b/contributor-guide/modules/ROOT/pages/templates/configuration-template.adoc new file mode 100644 index 0000000..88bfce8 --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/templates/configuration-template.adoc @@ -0,0 +1,54 @@ += Configuration Template + +== \{\{Library}} Configuration + +== Introduction + +\{\{library}} uses several configuration macros in +http://www.boost.org/libs/config/config.htm[], as well as configuration macros meant to be supplied by the application. These +macros are documented here. + +== Application Defined Macros + +These are the macros that may be defined by an application using +\{\{library}}. + +[cols=",",] +|=== +|*Macro* |*Meaning* +|\{\{macro}} |\{\{meaning}} +|\{\{macro}} |\{\{meaning}} +|=== + +== Public Library Defined Macros + +These macros are defined by \{\{library}} but are expected to be used by +application code. + +[cols=",",] +|=== +|*Macro* |*Meaning* +|\{\{macro}} |\{\{meaning}} +|\{\{macro}} |\{\{meaning}} +|=== + +== Library Defined Implementation Macros + +These macros are defined by \{\{library}} and are implementation details +of interest only to implementers. + +[cols=",",] +|=== +|*Macro* |*Meaning* +|\{\{macro}} |\{\{meaning}} +|\{\{macro}} |\{\{meaning}} +|=== + +''''' + +Revised 04 December, 2006 + +_Copyright © 2006 mailto:%7B%7Baddress%7D%7D[\{\{author}}]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. \ No newline at end of file diff --git a/contributor-guide/modules/ROOT/pages/templates/definitions-template.adoc b/contributor-guide/modules/ROOT/pages/templates/definitions-template.adoc new file mode 100644 index 0000000..30b2fb3 --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/templates/definitions-template.adoc @@ -0,0 +1,20 @@ += Definitions Template + +== Introduction + +\{\{Introductory text}} + +== Definitions + +[#definition-term1]*\{\{term}}:* \{\{definition}} + +[#definition-term2]*\{\{term}}:* \{\{definition}} + +''''' + +Revised 04 December, 2006 + +_Copyright © 2006 mailto:%7B%7Baddress%7D%7D[\{\{author}}]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. diff --git a/contributor-guide/modules/ROOT/pages/templates/faq-template.adoc b/contributor-guide/modules/ROOT/pages/templates/faq-template.adoc new file mode 100644 index 0000000..204be28 --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/templates/faq-template.adoc @@ -0,0 +1,22 @@ += FAQ Template + +== \{\{Library}} Frequently Asked Questions (FAQs) + +''''' + +== \{\{question1}} + +\{\{answer}} + +== \{\{question2}} + +\{\{answer}} + +''''' + +Revised 04 December, 2006 + +_Copyright © 2006 mailto:%7B%7Baddress%7D%7D[\{\{author}}]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. \ No newline at end of file diff --git a/contributor-guide/modules/ROOT/pages/templates/header-template.adoc b/contributor-guide/modules/ROOT/pages/templates/header-template.adoc new file mode 100644 index 0000000..4169545 --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/templates/header-template.adoc @@ -0,0 +1,220 @@ += Header Template + +== \{\{library}} Header <\{\{header}}> + +== Introduction + +\{\{Introductory text}} + +== Macros + +[#macro-spec]##\{\{Macro specifications}} + +== Values + +[#value-spec]##\{\{Value specifications}} + +== Types + +[#type-spec]##\{\{Type specifications}} + +== Classes + +=== Class `{{class name}}` + +\{\{class overview text}} + +==== Class `{{class name}}` synopsis + +.... +namespace boost +{ + class {{class name}} + { + }; +}; +.... + +==== Class `{{class name}}` constructors and destructor + +.... +{{constructor}} +.... + +*Requires:* \{\{text}} + +*Effects:* \{\{text}} + +*Postconditions:* \{\{text}} + +*Returns:* \{\{text}} + +*Throws:* \{\{text}} + +*Complexity:* \{\{text}} + +*Note:* \{\{text}} + +*Danger:* \{\{text}} + +*Rationale:* \{\{text}} + +.... +{{destructor}} +.... + +*Requires:* \{\{text}} + +*Effects:* \{\{text}} + +*Postconditions:* \{\{text}} + +*Returns:* \{\{text}} + +*Throws:* \{\{text}} + +*Complexity:* \{\{text}} + +*Note:* \{\{text}} + +*Danger:* \{\{text}} + +*Rationale:* \{\{text}} + +==== Class `{{class name}}` comparison functions + +.... +{{function}} +.... + +*Requires:* \{\{text}} + +*Effects:* \{\{text}} + +*Postconditions:* \{\{text}} + +*Returns:* \{\{text}} + +*Throws:* \{\{text}} + +*Complexity:* \{\{text}} + +*Note:* \{\{text}} + +*Danger:* \{\{text}} + +*Rationale:* \{\{text}} + +==== Class `{{class name}}` modifier functions + +.... +{{function}} +.... + +*Requires:* \{\{text}} + +*Effects:* \{\{text}} + +*Postconditions:* \{\{text}} + +*Returns:* \{\{text}} + +*Throws:* \{\{text}} + +*Complexity:* \{\{text}} + +*Note:* \{\{text}} + +*Danger:* \{\{text}} + +*Rationale:* \{\{text}} + +==== Class `{{class name}}` observer functions + +.... +{{function}} +.... + +*Requires:* \{\{text}} + +*Effects:* \{\{text}} + +*Postconditions:* \{\{text}} + +*Returns:* \{\{text}} + +*Throws:* \{\{text}} + +*Complexity:* \{\{text}} + +*Note:* \{\{text}} + +*Danger:* \{\{text}} + +*Rationale:* \{\{text}} + +==== Class `{{class name}}` static functions + +.... +{{function}} +.... + +*Requires:* \{\{text}} + +*Effects:* \{\{text}} + +*Postconditions:* \{\{text}} + +*Returns:* \{\{text}} + +*Throws:* \{\{text}} + +*Complexity:* \{\{text}} + +*Note:* \{\{text}} + +*Danger:* \{\{text}} + +*Rationale:* \{\{text}} + +== Functions + +.... +{{function}} +.... + +*Requires:* \{\{text}} + +*Effects:* \{\{text}} + +*Postconditions:* \{\{text}} + +*Returns:* \{\{text}} + +*Throws:* \{\{text}} + +*Complexity:* \{\{text}} + +*Note:* \{\{text}} + +*Danger:* \{\{text}} + +*Rationale:* \{\{text}} + +== Objects + +[#object-spec] +\{\{Object specifications}} + +== Examples + +\{\{Example(s)}} + +''''' + +Revised 04 December, 2006 + +_Copyright © 2006 mailto:%7B%7Baddress%7D%7D[\{\{author}}]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. diff --git a/contributor-guide/modules/ROOT/pages/templates/overview-template.adoc b/contributor-guide/modules/ROOT/pages/templates/overview-template.adoc new file mode 100644 index 0000000..cf29df2 --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/templates/overview-template.adoc @@ -0,0 +1,35 @@ += Overview Template + +== \{\{Library}} Overview + +== Introduction + +\{\{text}} + +== First Topic + +[#footnote1-location] +\{\{text}} + +== Second Topic + +[#footnote2-location] +\{\{text}} + +== Footnotes + +[#footnote1] +link:#footnote1-location[(1)]: \{\{text}} + +[#footnote2] +link:#footnote2-location[(2)]: \{\{text}} + +''''' + +Revised 04 December, 2006 + +_Copyright © 2006 mailto:%7B%7Baddress%7D%7D[\{\{author}}]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. + diff --git a/contributor-guide/modules/ROOT/pages/templates/rationale-template.adoc b/contributor-guide/modules/ROOT/pages/templates/rationale-template.adoc new file mode 100644 index 0000000..016386c --- /dev/null +++ b/contributor-guide/modules/ROOT/pages/templates/rationale-template.adoc @@ -0,0 +1,34 @@ += Rationale Template + +== \{\{Library}} Rationale + +== Introduction + +\{\{text}} + +== First Topic + +[#footnote1-location] +\{\{text}} + +== Second Topic + +[#footnote2-location] +\{\{text}} + +== Footnotes + +[#footnote1] +link:#footnote1-location[(1)]: \{\{text}} + +[#footnote2] +link:#footnote2-location[(2)]: \{\{text}} + +''''' + +Revised 04 December, 2006 + +_Copyright © 2006 mailto:%7B%7Baddress%7D%7D[\{\{author}}]_ + +_Distributed under the Boost Software License, Version 1.0. (See +http://www.boost.org/LICENSE_1_0.txt)_. diff --git a/user-guide/modules/ROOT/images/boost.png b/user-guide/modules/ROOT/images/boost.png new file mode 100644 index 0000000000000000000000000000000000000000..b4d51fcd5c9149fd77f5ca6ed2b6b1b70e8fe24f GIT binary patch literal 6308 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 literal 0 HcmV?d00001 diff --git a/user-guide/modules/ROOT/pages/getting-started-with-linux.adoc b/user-guide/modules/ROOT/pages/getting-started-with-linux.adoc index ed08a83..1b42cd8 100644 --- a/user-guide/modules/ROOT/pages/getting-started-with-linux.adoc +++ b/user-guide/modules/ROOT/pages/getting-started-with-linux.adoc @@ -8,11 +8,20 @@ To install the Boost libraries on a Linux system, you can either use the package . Install the Boost development libraries using your package manager. For Ubuntu or Debian-based distributions, you can use the following command: `sudo apt install libboost-all-dev`. This command installs all the Boost development libraries available in the package repository. -== Method 2: Installing from source +== Method 2: Installing from Source . Open a terminal window. Install the necessary build tools and libraries. For Ubuntu or Debian-based distributions, use the following command: `sudo apt install build-essential g++ python-dev autotools-dev libicu-dev libbz2-dev libtool` -. Download the latest Boost source code from the official website (https://www.boost.org/users/download/), or use `wget` to download it directly: `wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_82_0.tar.bz2`. Replace the URL and version number (1.82.0) with the latest version available. +. Download the latest Boost source code from the official website (https://www.boost.org/users/download/), or use `wget` to download it directly: + ++ +[source] +---- +`wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_82_0.tar.bz2` +---- + ++ +Replace the URL and version number (1.82.0) with the latest version available. . Extract the downloaded archive: `tar xvfj boost_1_82_0.tar.bz2`. @@ -26,18 +35,12 @@ To install the Boost libraries on a Linux system, you can either use the package + For LD_LIBRARY_PATH: `export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH`. For CPLUS_INCLUDE_PATH: `export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH`. -Replace /usr/local with the prefix directory you specified during the installation, if different. +Replace `/usr/local` with the prefix directory you specified during the installation, if different. You can add these `export` commands to your `~/.bashrc` or `~/.profile` file to make the changes permanent. After completing either method, you should have the Boost libraries installed on your Linux system. - - - - - - == Next Steps * xref:use-boost-with-linux-package-manager.adoc[Use Boost with Linux and a Package Manager] \ No newline at end of file diff --git a/user-guide/modules/ROOT/pages/use-boost-with-linux-package-manager.adoc b/user-guide/modules/ROOT/pages/use-boost-with-linux-package-manager.adoc index b9eca96..bf4a8fc 100644 --- a/user-guide/modules/ROOT/pages/use-boost-with-linux-package-manager.adoc +++ b/user-guide/modules/ROOT/pages/use-boost-with-linux-package-manager.adoc @@ -1,42 +1,59 @@ -= Use Boost with Linux and a Package Manager += Use Boost with Linux and the vcpkg Package Manager -Yes, you can use vcpkg on Linux. To install vcpkg on a Linux system, follow these steps: +You can use vcpkg on Linux. To install vcpkg on a Linux system, follow these steps: -Open a terminal. +. Open a terminal. Install the necessary packages for building vcpkg by running the following command (for Ubuntu or Debian-based systems): -Install the necessary packages for building vcpkg by running the following command (for Ubuntu or Debian-based systems): - -sql -Copy code ++ +[source] +---- sudo apt-get update sudo apt-get install build-essential tar curl zip unzip git -For other Linux distributions, install the equivalent packages using the appropriate package manager, such as yum, dnf, or pacman. +---- -Clone the vcpkg repository from GitHub by running the following command: -bash -Copy code ++ +For other Linux distributions, install the equivalent packages using the appropriate package manager, such as _yum_, _dnf_, or _pacman_. + +. Clone the vcpkg repository from GitHub by running the following command: + ++ +[source] +---- git clone https://github.com/microsoft/vcpkg.git +---- + ++ This command will create a new directory named "vcpkg" in your current directory and clone the repository into it. -Change to the "vcpkg" directory using the "cd" command: -bash -Copy code -cd vcpkg -Run the bootstrap script to build the vcpkg executable: -bash -Copy code +. Change to the *vcpkg* directory: `cd vcpkg`. Then run the bootstrap script to build the vcpkg executable: + ++ +[source] +---- ./bootstrap-vcpkg.sh +---- + ++ This script will download and build the necessary components for vcpkg. It might take a few minutes to complete. -(Optional) Add the vcpkg executable to your system's PATH environment variable. This step makes it easier to run vcpkg from any directory. Run the following command: -bash -Copy code +. (Optional) Add the vcpkg executable to your system's PATH environment variable. This step makes it easier to run vcpkg from any directory. Run the following command: + ++ +[source] +---- export PATH=$PATH:$(pwd) -To make this change permanent, add the above export command to your shell's configuration file, such as ~/.bashrc or ~/.bash_profile for the Bash shell. +---- -Now, vcpkg is installed on your Linux system, and you can start using it to manage your C++ project dependencies. To install a package, you can run a command like: ++ +To make this change permanent, add the above export command to your shell's configuration file, such as `~/.bashrc` or `~/.bash_profile` for the Bash shell. -bash -Copy code +. Now, vcpkg is installed on your Linux system, and you can start using it to manage your C++ project dependencies. To install a package, you can run a command like: + ++ +[source] +---- ./vcpkg install -Replace with the name of the package you want to install. \ No newline at end of file +---- + ++ +Replace `` with the name of the package you want to install. \ No newline at end of file