Re: [Mesa-dev] [PATCH v2] docs: add documentation for building with meson

2017-10-18 Thread Dylan Baker
Quoting Eric Engestrom (2017-10-18 15:27:39)
> On Wednesday, 2017-10-18 18:09:22 +, Dylan Baker wrote:
> > v2: - Add information about CC, CXX, CFLAGS, and CXXFLAGS (Nicolai)
> > - Add message at top that meson for mesa is still a work in progress
> > - Add trailing "/" to directories (Eric E.)
> > - Fix a number of spelling/grammar/style suggestions from Eric E.
> > - Make a number of changes as suggested by Emil.
> > 
> > Signed-off-by: Dylan Baker 
> > ---
> >  docs/contents.html |   1 +
> >  docs/meson.html| 126 
> > +
> >  2 files changed, 127 insertions(+)
> >  create mode 100644 docs/meson.html
> > 
> > diff --git a/docs/contents.html b/docs/contents.html
> > index d5455421091..9a86019e2f6 100644
> > --- a/docs/contents.html
> > +++ b/docs/contents.html
> > @@ -43,6 +43,7 @@
> >  Compiling / Installing
> >
> >  Autoconf
> > +Meson
> >
> >  
> >  Precompiled Libraries
> > diff --git a/docs/meson.html b/docs/meson.html
> > new file mode 100644
> > index 000..9f933382965
> > --- /dev/null
> > +++ b/docs/meson.html
> > @@ -0,0 +1,126 @@
> > + > "http://www.w3.org/TR/html4/loose.dtd;>
> > +
> > +
> > +  
> > +  Compilation and Installation using Meson
> > +  
> > +
> > +
> > +
> > +
> > +  The Mesa 3D Graphics Library
> > +
> > +
> > +
> > +
> > +
> > +Compilation and Installation using Meson
> > +
> > +1. Basic Usage
> > +
> > +The Meson build system for Mesa is still under active 
> > development,
> > +and should not be used in production environments.
> > +
> > +
> > +The meson program is used to configure the source directory and generates
> > +either a ninja build file, or Visual Studio® build files. The latter, and 
> > must
> 
> s/, and//
> 
> > +be enabled via the --backend switch, as ninja is always the default. Meson 
> > only
> > +supports out-of-tree builds, and must be passed a directory to put built 
> > and
> > +generated sources into. We'll call that directory "build" for examples.
> > +
> > +
> > +
> > +meson build/
> > +
> > +
> > +
> > +To see a description of your options you can run "meson configure" with no
> > +arguments. This will show your meson global arguments and project 
> > arguments,
> > +along with their defaults and your local settings.
> > +
> > +
> > +
> > +meson configure build/
> > +
> > +
> > +
> > +With arguments "meson configure" is used to change options on already
> > +configured build directory. All options passed to this command are in the 
> > form
> > +-D"command"="value".
> 
> s/command/option/, and I think you can drop the quotes?
> 
> > +
> > +
> > +
> > +meson configure build/ -Dprefix=/tmp/install -Dglx=true
> > +
> > +
> > +
> > +Once you've run meson successfully you can use your configured backend to 
> > build
> > +the project. With ninja, the -C option can be be used to point at a 
> > directory
> > +to build.
> > +
> > +
> > +
> > +ninja -C build/
> > +
> > +
> > +
> > +Without arguments, it will produce libGL.so and/or several other libraries
> > +depending on the options you have chosen. Later, if you want to rebuild 
> > for a
> > +different configuration, you should run ninja clean before
> > +rebuilding, or create a new out of tree build directory (meson supports an
> > +unlimited number of them) for each configuration you want to build.
> > +
> > +
> > +CC, CFLAGS, CXX, CXXFLAGS
> > +These environment variables
> > +control the C and C++ compilers used during the build. The default 
> > compilers
> > +depends on your operating system. Meson supports most of the popular 
> > compilers,
> > +a complete list is available
> > + > href="http://mesonbuild.com/Reference-tables.html#compiler-ids;>here.
> > +
> > +These arguments are consumed and stored by meson when it is initialized or
> > +re-initialized. Therefore passing them to meson configure will not do 
> > anything,
> > +and passing them to ninja will only do something if ninja decides to
> > +re-initialze meson, for example, if a meson.build file has been changed.
> > +Changing these variables will not cause all targets to be rebuilt, so 
> > running
> > +ninja clean is recomended when changing any of these variables.
> > +
> > +
> > +
> > +CC=clang CXX=clang++ meson build-clang
> > +ninja -C build-clang
> > +
> > +touch meson.build
> > +ninja -C build-clang clean
> > +CFLAGS=-Wno-typedef-redefinition ninja -C build-clang
> 
> `touch` should be after `clean`, otherwise `clean` will execute the
> regeneration, and the CFLAGS will come too late.
> 
> Do you want to also mention Lyude's question about using a non-standard
> llvm-config here? It was surprisingly trivial to do :)

Yes, I should do that. I hadn't verified that it actually worked, so I didn't
want to document it as such...

> Other than that, this v2 is:
> Reviewed-by: Eric Engestrom 

Thanks!

> 
> > +
> > +
> > +PKG_CONFIG_PATH
> > +The
> > 

Re: [Mesa-dev] [PATCH v2] docs: add documentation for building with meson

2017-10-18 Thread Eric Engestrom
On Wednesday, 2017-10-18 18:09:22 +, Dylan Baker wrote:
> v2: - Add information about CC, CXX, CFLAGS, and CXXFLAGS (Nicolai)
> - Add message at top that meson for mesa is still a work in progress
> - Add trailing "/" to directories (Eric E.)
> - Fix a number of spelling/grammar/style suggestions from Eric E.
> - Make a number of changes as suggested by Emil.
> 
> Signed-off-by: Dylan Baker 
> ---
>  docs/contents.html |   1 +
>  docs/meson.html| 126 
> +
>  2 files changed, 127 insertions(+)
>  create mode 100644 docs/meson.html
> 
> diff --git a/docs/contents.html b/docs/contents.html
> index d5455421091..9a86019e2f6 100644
> --- a/docs/contents.html
> +++ b/docs/contents.html
> @@ -43,6 +43,7 @@
>  Compiling / Installing
>
>  Autoconf
> +Meson
>
>  
>  Precompiled Libraries
> diff --git a/docs/meson.html b/docs/meson.html
> new file mode 100644
> index 000..9f933382965
> --- /dev/null
> +++ b/docs/meson.html
> @@ -0,0 +1,126 @@
> + "http://www.w3.org/TR/html4/loose.dtd;>
> +
> +
> +  
> +  Compilation and Installation using Meson
> +  
> +
> +
> +
> +
> +  The Mesa 3D Graphics Library
> +
> +
> +
> +
> +
> +Compilation and Installation using Meson
> +
> +1. Basic Usage
> +
> +The Meson build system for Mesa is still under active development,
> +and should not be used in production environments.
> +
> +
> +The meson program is used to configure the source directory and generates
> +either a ninja build file, or Visual Studio® build files. The latter, and 
> must

s/, and//

> +be enabled via the --backend switch, as ninja is always the default. Meson 
> only
> +supports out-of-tree builds, and must be passed a directory to put built and
> +generated sources into. We'll call that directory "build" for examples.
> +
> +
> +
> +meson build/
> +
> +
> +
> +To see a description of your options you can run "meson configure" with no
> +arguments. This will show your meson global arguments and project arguments,
> +along with their defaults and your local settings.
> +
> +
> +
> +meson configure build/
> +
> +
> +
> +With arguments "meson configure" is used to change options on already
> +configured build directory. All options passed to this command are in the 
> form
> +-D"command"="value".

s/command/option/, and I think you can drop the quotes?

> +
> +
> +
> +meson configure build/ -Dprefix=/tmp/install -Dglx=true
> +
> +
> +
> +Once you've run meson successfully you can use your configured backend to 
> build
> +the project. With ninja, the -C option can be be used to point at a directory
> +to build.
> +
> +
> +
> +ninja -C build/
> +
> +
> +
> +Without arguments, it will produce libGL.so and/or several other libraries
> +depending on the options you have chosen. Later, if you want to rebuild for a
> +different configuration, you should run ninja clean before
> +rebuilding, or create a new out of tree build directory (meson supports an
> +unlimited number of them) for each configuration you want to build.
> +
> +
> +CC, CFLAGS, CXX, CXXFLAGS
> +These environment variables
> +control the C and C++ compilers used during the build. The default compilers
> +depends on your operating system. Meson supports most of the popular 
> compilers,
> +a complete list is available
> +http://mesonbuild.com/Reference-tables.html#compiler-ids;>here.
> +
> +These arguments are consumed and stored by meson when it is initialized or
> +re-initialized. Therefore passing them to meson configure will not do 
> anything,
> +and passing them to ninja will only do something if ninja decides to
> +re-initialze meson, for example, if a meson.build file has been changed.
> +Changing these variables will not cause all targets to be rebuilt, so running
> +ninja clean is recomended when changing any of these variables.
> +
> +
> +
> +CC=clang CXX=clang++ meson build-clang
> +ninja -C build-clang
> +
> +touch meson.build
> +ninja -C build-clang clean
> +CFLAGS=-Wno-typedef-redefinition ninja -C build-clang

`touch` should be after `clean`, otherwise `clean` will execute the
regeneration, and the CFLAGS will come too late.

Do you want to also mention Lyude's question about using a non-standard
llvm-config here? It was surprisingly trivial to do :)

Other than that, this v2 is:
Reviewed-by: Eric Engestrom 

> +
> +
> +PKG_CONFIG_PATH
> +The
> +pkg-config utility is a hard requirement for configuring and
> +building Mesa on Linux and BSD. It is used to search for external libraries
> +on the system. This environment variable is used to control the search
> +path for pkg-config. For instance, setting
> +PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig will search for
> +package metadata in /usr/X11R6 before the standard
> +directories.
> +
> +
> +
> +
> +One of the oddities of meson is that some options are different when passed 
> to
> +the meson than to meson 

[Mesa-dev] [PATCH v2] docs: add documentation for building with meson

2017-10-18 Thread Dylan Baker
v2: - Add information about CC, CXX, CFLAGS, and CXXFLAGS (Nicolai)
- Add message at top that meson for mesa is still a work in progress
- Add trailing "/" to directories (Eric E.)
- Fix a number of spelling/grammar/style suggestions from Eric E.
- Make a number of changes as suggested by Emil.

Signed-off-by: Dylan Baker 
---
 docs/contents.html |   1 +
 docs/meson.html| 126 +
 2 files changed, 127 insertions(+)
 create mode 100644 docs/meson.html

diff --git a/docs/contents.html b/docs/contents.html
index d5455421091..9a86019e2f6 100644
--- a/docs/contents.html
+++ b/docs/contents.html
@@ -43,6 +43,7 @@
 Compiling / Installing
   
 Autoconf
+Meson
   
 
 Precompiled Libraries
diff --git a/docs/meson.html b/docs/meson.html
new file mode 100644
index 000..9f933382965
--- /dev/null
+++ b/docs/meson.html
@@ -0,0 +1,126 @@
+http://www.w3.org/TR/html4/loose.dtd;>
+
+
+  
+  Compilation and Installation using Meson
+  
+
+
+
+
+  The Mesa 3D Graphics Library
+
+
+
+
+
+Compilation and Installation using Meson
+
+1. Basic Usage
+
+The Meson build system for Mesa is still under active development,
+and should not be used in production environments.
+
+
+The meson program is used to configure the source directory and generates
+either a ninja build file, or Visual Studio?? build files. The latter, and must
+be enabled via the --backend switch, as ninja is always the default. Meson only
+supports out-of-tree builds, and must be passed a directory to put built and
+generated sources into. We'll call that directory "build" for examples.
+
+
+
+meson build/
+
+
+
+To see a description of your options you can run "meson configure" with no
+arguments. This will show your meson global arguments and project arguments,
+along with their defaults and your local settings.
+
+
+
+meson configure build/
+
+
+
+With arguments "meson configure" is used to change options on already
+configured build directory. All options passed to this command are in the form
+-D"command"="value".
+
+
+
+meson configure build/ -Dprefix=/tmp/install -Dglx=true
+
+
+
+Once you've run meson successfully you can use your configured backend to build
+the project. With ninja, the -C option can be be used to point at a directory
+to build.
+
+
+
+ninja -C build/
+
+
+
+Without arguments, it will produce libGL.so and/or several other libraries
+depending on the options you have chosen. Later, if you want to rebuild for a
+different configuration, you should run ninja clean before
+rebuilding, or create a new out of tree build directory (meson supports an
+unlimited number of them) for each configuration you want to build.
+
+
+CC, CFLAGS, CXX, CXXFLAGS
+These environment variables
+control the C and C++ compilers used during the build. The default compilers
+depends on your operating system. Meson supports most of the popular compilers,
+a complete list is available
+http://mesonbuild.com/Reference-tables.html#compiler-ids;>here.
+
+These arguments are consumed and stored by meson when it is initialized or
+re-initialized. Therefore passing them to meson configure will not do anything,
+and passing them to ninja will only do something if ninja decides to
+re-initialze meson, for example, if a meson.build file has been changed.
+Changing these variables will not cause all targets to be rebuilt, so running
+ninja clean is recomended when changing any of these variables.
+
+
+
+CC=clang CXX=clang++ meson build-clang
+ninja -C build-clang
+
+touch meson.build
+ninja -C build-clang clean
+CFLAGS=-Wno-typedef-redefinition ninja -C build-clang
+
+
+PKG_CONFIG_PATH
+The
+pkg-config utility is a hard requirement for configuring and
+building Mesa on Linux and BSD. It is used to search for external libraries
+on the system. This environment variable is used to control the search
+path for pkg-config. For instance, setting
+PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig will search for
+package metadata in /usr/X11R6 before the standard
+directories.
+
+
+
+
+One of the oddities of meson is that some options are different when passed to
+the meson than to meson configure. These options are
+passed as --option=foo to meson, but -Doption=foo to meson
+configure. Mesa defined options are always passed as -Doption=foo.
+
+
+For those coming from autotools be aware of the following:
+
+
+--buildtype/-Dbuildtype
+This option will set the compiler debug/optimisation levels (if the user
+hasn't already set them via the CFLAGS/CXXFLAGS) and macros to aid in
+debugging the Mesa libraries.
+
+Note that in meson this defaults to "debug", and  not setting it to
+"release" will yield non-optimal performance and binary size
-- 
2.14.2

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev