Re: [Mesa-dev] [PATCH v2] docs: add documentation for building with meson
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
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
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