summaryrefslogtreecommitdiff
path: root/meson_options.txt
Commit message (Collapse)AuthorAgeFilesLines
* build: Use Meson built-in setting for RTTIPhilip Chimento2021-03-041-2/+0
| | | | | | There's no need to implement our own setting for RTTI, since Meson already has a built-in setting. We just set the default to false, since that's also the default for SpiderMonkey.
* maint: Add copyright notices based on major file contributorsPhilip Chimento2020-11-301-0/+1
| | | | | | | | | | | | Based on looking at the git logs, add copyright notices to files which were missing them, assuming the copyright belongs to people who made major contributions to each file. Some assumptions were made as to who to assign the copyright to, such as, what copyright assignment did the contributor make in other files added in the same commit? What email address did they use to make the commit? What copyright assignment did they make in other commits using the same email address?
* maint: Add dual MIT/LGPL license to all GJS files that didn't have onePhilip Chimento2020-10-041-0/+2
| | | | | | This adds a SPDX-License-Identifier comment to all files that are part of GJS, part of its unit tests, or auxiliary tools. (Except for some files like the debugger scripts that don't support comments.)
* meson: Bring back Visual Studio build supportChun-wei Fan2020-08-261-1/+1
| | | | | | After applying the workarounds in the sources, we can now restore support for builds that are done using Visual Studio. Builds on Windows are now supported both via Visual Studio and clang-cl.
* meson: Fix Windows builds against mozjs-78 and laterChun-wei Fan2020-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Since Spidermonkey 78, the headers shipped with it do not work on Visual Studio builds without major and intrusive changes, so make the Meson build files work for using CLang's `clang-cl` compiler, which is CLang that tries hard to emulate the MSVC compiler and is the compiler that is being used to build SpiderMonkey on Windows nowadays. As a result, we use Meson's `cxx.get_argument_syntax() == 'msvc'` rather than `cxx.get_id() === 'msvc'` (and so for the c compiler), so that we cover the case where we are using `clang-cl`. This also means that an error message will be displayed when one tries to use the Visual Studio compiler when building GJS, and that we can start sharing some of the compiler flags that is also being used for GCC (and other CLang) builds. This also means that we can clean up the build files a little bit. However, this will still require and use Microsoft's Windows SDK's headers and libraries, so there are some Visual Studio-specific compiler flags that needs to be kept, and the Cairo dependencies continue to be searched manually in cases where the pkg-config files for them cannot be found. Note that if the other dependencies of GJS were built with Visual Studio, they do not need to be recompiled with `clang-cl` as long as they link to the same C Runtime library DLL.
* meson.build: Don't check for GCC-specific items on MSVCChun-wei Fan2019-10-281-1/+1
| | | | | | | | | | | | | Instead, we use the msvc_recommended_pragmas.h as we do in the GTK stack, as well as in conjunction to disabling some other warnings, as we do in the the NMake Makefiles, so that we cover more or less the same items in MSVC builds. Since there is no -Bsymbolic-functions equivilant in MSVC, we just skip checking and using that as well. Also, make sure that we pass in the additional flags that we need for Visual Studio builds, as we did in the NMake Makefiles.
* build: Meson build systemPhilip Chimento2019-10-121-0/+27
This adds a Meson build system which should be functionally equivalent to the existing Autotools build system, but easier to deal with and faster. Equivalents: ./configure -> meson _build make -j5 -> ninja -C _build make install -> ninja -C _build install make check -> meson test -C _build It's also easy to run the tests under Valgrind or using the GC zeal variables, by adding e.g. --setup=valgrind to the meson test command. Dependencies (except SpiderMonkey) will be downloaded and built if not present (or not new enough), using Meson's wrap system. There were a small number of things the Autotools build did better. One is export-symbols-regex which doesn't exist in Meson; we must write two separate linker config files for GNU ld and macOS's linker, and I'm not sure what happens in this case on Windows. The other thing is merging the JS and C code coverage files automatically. Since this isn't possible using Meson's b_coverage option, we add a script, tools/run_coverage.sh, which generates a code coverage report from start to finish. This is actually kind of better than the old situation, since the script builds in a different build tree, so you cannot accidentally leave coverage-instrumented build artifacts sitting in your build tree.