Commit graph

108 commits

Author SHA1 Message Date
Pentarctagon
971073055e
Refactor the preferences into a proper singleton. (#8930)
The current preferences handling is a mess:
* it's essentially a global config object that anything can modify in any way the caller wants, which is managed across multiple source files which have their own oddities and interdependencies.
* the general preferences has its own bit of SDL event handling and while I get the idea behind `events::sdl_handler` there's no reason to have SDL events handled in the preferences instead of just calling the relevant preferences setter for each event when it happens.
* the general preferences is where most of the preferences are handled and has its `base_manager` struct, which is part of the `manager` struct in the game preferences, which is then implicitly initialized as part of game_launcher's constructor.
* the editor preferences are the only preferences in a sub-namespace `preferences::editor` while all other preferences are just in the `preferences` namespace.
* the display, editor, and lobby preferences are all dependent on including the game preferences, the credentials are dependent on including the general preferences (but not the game preferences), the game preferences are dependent on including the general preferences, and the advanced preferences are entirely their own thing which is dependent on none of the other preference functionality and manages its own singleton.
* nothing checks whether the preferences file has actually been loaded before allowing values to be read from or written to the preferences config - if you attempt to get a value too early in wesnoth's initialization it will silently just give you whatever the default value for that preference happens to be.

With this there is instead a single access point (with exceptions handled via friend functions/classes), all predefined preferences are accessed via their own setter/getter, and all mainline preferences are defined in a single file (preference_list.hpp) so it's easily findable what preferences exist and where they're used. Having the list of all mainline preferences listed out also allows the lua preferences API to provide that full list rather than just the list of the preferences that have been set so far. Also it now checks for whether the location of the preferences file is known before attempting to load the preferences file and asserts if someone attempts to use the preferences too early.
2024-06-09 11:34:09 -05:00
pentarctagon
2a243de31d ignore generated about.wiki 2024-05-26 15:01:24 -05:00
pentarctagon
94e216fb90 ignore generated macro-reference.html 2024-05-26 14:59:42 -05:00
Rafael Fillipe Silva
83cd8591f4 Add clangd cache directory to gitignore 2023-12-10 22:03:18 -06:00
Pentarctagon
43a1ea2132 Re-implement the boost tests execution.
All tests are now executed one at a time in order to avoid cross-test pollution.

Fixes #6937
2022-08-06 03:03:17 -05:00
Pentarctagon
0aa8dc3c6c Have cmake also execute the conftests. 2022-05-03 18:10:46 -05:00
Charles Dang
e6a1ea615c Ignore out/ 2021-05-27 14:20:59 -04:00
Pentarctagon
b95d72f9c1 Use cmake to create VS project files.
Due to an upstream change in vcpkg that breaks the simple integration previously available with `vcpkg integrate install`, building using that setup method is no longer possible. In order to work correctly, cmake must instead be used to generate the VS project files, since that is able to integrate with vcpkg, since vcpkg also uses cmake to build all the library dependencies.

An additional benefit of this is that it will no longer be necessary to separately update the VS project files since it will read the same source_lists files as cmake (on linux) and scons do.

This also enables running the WML unit tests on Windows with this in order to confirm that a valid wesnoth.exe is in fact being generated as well as fixes building the boost unit tests.

The warning level for both release and debug builds are now at level three, the remaining warnings have been fixed, and therefore strict builds have been enabled - any warning will now cause the build to fail, just like for the linux jobs.

Known issues:
* The boost unit tests don't actually run successfully - they fail on CI at least with an exit code on 201 - however I don't know if this is a real problem or just a problem with running headless on CI.
* The debug build doesn't quite work since the executables are built against the non-debug dlls but cmake copies over the debug dlls into the output directory. For now this can be worked around by copying the release dlls into the debug directory.
* The instructions in INSTALL.md are not very good since I don't use Windows and thus can't write anything more detailed. Ideally someone who uses Windows can add more detailed step by step instructions at some point.

Fixes #5741
2021-05-07 00:02:02 -05:00
Eric Gallager
3d27278296 update gitignores 2020-11-08 23:41:21 -05:00
Pentarctagon
46f74f0ebb Move campaignd and wesnothd files into more descriptive locations.
Also fix a few cases of not specifying the full path to header files.
2020-08-06 12:16:18 -05:00
pentarctagon
7f9eebdf49 Add mariadbpp as a submodule.
This has been added as a submodule for convenience of use, since mariadbpp isn't included in any repositories (linux distros, vcpkg, etc) aside from an Arch AUR.
2020-07-30 13:17:22 -05:00
Pentarctagon
0c3cdd3a86 Remove VC14 (VS2015/VS2017 project files).
Reasons:
* These projectfiles are still 32-bit, whereas all other builds for all other OSes are now 64-bit.
* Relatedly, these projectfiles are dependent on the libraries kept at the aquileia/external repository.
* VS2019 is still listed as supporting Windows 7, so there is a minimal likelihood of developers not being able to use VS2019.
* The VS2019 projectfiles instead use vcpkg to get the required dependencies, which is easier to setup than the aquileia/external prebuilt libraries.
* It's one less thing that needs to be updated whenever source files are added/moved/removed.
* It's two fewer jobs that Travis needs to run, which means Travis builds will finish more quickly.
2020-07-03 12:23:34 -05:00
doofus-01
ed0b4d5d58 gitignore data/**/layered_WIP_files 2020-02-29 04:55:51 -08:00
pentarctagon
ea90383f1d
Make additional changes to client source handling based on discussion.
Add a "BSD Repository" option.
Add data/dist to .gitignore.
Delete data/dist from git.
Error conditions reading data/dist just set the value to Default.
Remove a leftover TODO comment.
Add description comments for the two new database columns.
2019-10-22 01:14:45 -05:00
Charles Dang
5c34053774 Don't ignore projectfiles/VC16
[ci skip]
2019-08-04 05:24:42 +11:00
Martin Hrubý (hrubymar10)
8629cbf91f
[Fwd-port] Apply latest changes to Xcode project from 1.14 branch
Commits included:
b677423cdd
662da36ac5
d3eebd61e1
4d08b1eb78
c03ab2e54c
2019-01-31 14:17:49 +01:00
Victor Sergienko
f4f7086d9f .gitignore for CLion
(cherry picked from commit 9ec8589ef3)
2018-10-28 02:53:07 +00:00
Gregory A Lundberg
ddc2ba4a00 Add fonts.uuid to .gitignore for fontconfig 2.13.0
(cherry-picked from commit 49ecb08338)
2018-10-07 03:18:21 +00:00
Celtic Minstrel
8d1611c322 Update gitignore for VC project file update
(cherry-picked from commit b27c4c6512)
2018-10-07 03:17:56 +00:00
Sofartin
90e693fdce Fixed Xcode project (#2450)
* Removed bad openssl include and tuned header search paths
* Xcode project now requires libreadline 7.0 .
Added Fix_Xcode_Dependencies script. Just run it and script take care about all dependencies. No longer need to download Mac Compile Stuff.
Xcode now outputs .app which searches for .dylibs and .frameworks inside Frameworks directory in .app bundle.
* Some fixes and improvements

This commit made with help from @singalen
2018-02-10 22:37:43 -05:00
Gregory A Lundberg
d8efb9a2bf Git: do NOT ignore any MO translations in the po folder.
PR #1725 moved the compiled translations from the translations directory to the po directory.

I would have noticed sooner if Git had not been told to ignore virtually all MO files.
2017-11-17 15:13:12 -06:00
Gregory A Lundberg
d091391899 Renamed the target and binary for the Boost unit tests from test to boost_unit_tests
This quells warnings from CMake about reserved target names, and reduces confusion about which `test` is intended: the wesnoth executable or the standard shell command.
2017-11-06 20:32:27 +02:00
pentarctagon
e594815cfb Add pgo_data to .gitignore. 2017-10-27 20:43:36 +03:00
Sofartin
9ea059529c ignore Xcode 9 Index storage
New Xcode 9 creates Index storage inside project dir. This commit makes this index ignored by GIT
2017-10-27 09:43:05 +11:00
galegosimpatico
8b0d7e6799 On Boost: update build scripts and documentation.
At branch 'doc-from-discord-boost-discussion-20170926'.

The build documentation and scripts were slightly out of date about
Boost. This commit makes a (probably interim) update to them.

(CMakeLists.txt|SConstruct): `wesnoth` won't build using Boost earlier
than '1.50.0'. Boost 1.50.0 changed the location of version 3 of Boost
filesystem, from 'boost/filesystem/v3/' (e.g. for
'using boost::filesystem::v3::path;') to 'boost/filesystem/' (e.g. for
'using boost::filesystem::path;', enforced since the very introduction
of 'src/filesystem_boost.cpp'), making it incompatible unless using
precompiler directives for supporting backwards versions of Boost
filesystem prior than '1.50.0'. Using Boost 1.50.0 (and 51, 52 etc.)
`wesnoth` is able build and run. I checked using `ldd` that I am right
about the run time environment.

INSTALL.md: Requirement of Boost libraries version up to date.

projectfiles/VC12/README.md: Requirement of Boost libraries up to
date, only the statement of which one is the minimum version, not the
rest of the build guide for Boost as requirement.

.gitignore: Add KDevelop backup documents.
2017-10-06 20:38:50 +03:00
Arcanister
c1ed69ff12 Add *.so to .gitignore 2017-10-02 11:25:59 +03:00
lundberg
f9da4a9322 Ignore directory created by Visual Studio 2017 2017-05-27 16:27:15 -05:00
Celtic Minstrel
1c3d48a069 Add some MSVC build folders to gitignore
[ci skip]
2017-04-27 18:14:58 -04:00
sigurdfdragon
61e1b9650d SotA: Initial check-in of version 1.1.2 from BfW 1.13 add-on server
Changes relative to add-on server:
- Add numbers to map filenames
- Convert 'add-on' to 'campaigns' in file references.
- Set campaign rank
- Remove an unused map
- Remove some images that had been mainlined or had mainline equivalents
- Remove isthiniel portrait since it doesn't match mainline art and is only used briefly
- Updated dwarvish miner and orcish shaman sprites to match SoF and SotBE respectively
- Ran wesnoth optipng on the campaign's images, using:
  optipng 0.7.6
  advancecomp 1.23
  imagemagick 6.9.6.7
- Re-centre bone-bird.png
- Ran wmlindent
2016-12-15 19:32:50 -05:00
Gregory A Lundberg
2d4d8e26dc .gitignore missing build targets 2016-11-11 11:00:28 -06:00
Celtic Minstrel
ab6369098f Remove *.vcxproj.user files
While they did contain settings that are required for Wesnoth to run
correctly in the Visual Studio debugger, these settings can also be
specified in the main project file (even if only by manually editing
the XML).

Including the *.user files is problematic since it also includes things
that a developer may wish to frequently change, such as command-line
arguments.

Thus, the settings have been moved into the main project file.
2016-09-09 17:17:53 -04:00
Gregory A Lundberg
5a27d9513f Add .vscode to .gitignore 2016-07-11 11:50:07 -05:00
aquileia
ffd1638628 gitignore: Add install_manifest.txt
As suggested by @spixi

Due to commit d577938 where the *.txt rule was removed, we have to ignore that file manually.

[skip ci]
2016-05-23 08:52:19 +02:00
aquileia
d1718ae135 vcproj: Revert e2549c1, update .gitignore
*.vcproj.*.user files contain user specific settings.

*.vcproj.user files contain general settings, e.g. for the debugger, which
are required for our unit tests.
2016-05-14 16:25:14 +02:00
gfgtdf
0ee7451a00 ignore all other msvc projectfiles than for vc12 2016-04-30 14:42:21 +02:00
Celtic Minstrel
6c9cd2998e Update MSVC project files to VC12 (2013) 2016-04-30 02:31:34 -04:00
Wedge009
e2549c1fff Remove user-specific MSVC files and update gitignore. 2016-03-24 19:11:23 +11:00
Bruno Macabeus
ff6aca4192 Revert change in .gitignore 2016-03-22 11:05:57 +01:00
Bruno Macabeus
a79de2c35c wmlvalidator, wmlgrammar and wmldata: now it checks translatable lines.
schema.cfg: it was removed type "tstring" and can now be optional parameters
2016-03-22 11:05:56 +01:00
aquileia
798f037738 Remove POTFILES.in
Generated anew for each pot-update, no need to keep temporary files
2015-12-02 00:37:01 +01:00
Wedge009
c4c2eaa257 Ignore WindowsTimeout 2015-08-22 22:59:37 +10:00
Charles Dang
8ed95e7629 Ignore projectfiles/CodeBlocks/cb/
This is the default dir name for the extracted CB SDK zip we provide, and the projectfiles folder
is a logical place to put it
2014-12-05 05:18:40 +11:00
Chris Beck
e8698e49be refactor gitignore: ignore all build scripts (*build*.sh) 2014-11-04 12:57:09 -05:00
Chris Beck
9b0396629f add build_mingw*.sh to .gitignore
It's convenient for me to do this, because I use scripts to keep
all the configuration info set up correctly, and I have a few diff
versions of mingw and of boost floating around...
2014-10-24 13:20:45 -04:00
gfgtdf
de97f3f2e8 add stdout.txt to gitignore 2014-07-05 03:42:39 +02:00
gfgtdf
ed60036aa4 ignore stderr.txt file 2014-06-29 17:30:17 +02:00
Boldizsár Lipka
d577938307 Don't ignore txt files. 2014-06-29 14:14:08 +02:00
Boldizsár Lipka
f46eaebad4 Don't ignore CMakeLists. 2014-06-28 14:17:49 +02:00
Alexander van Gessel
5f6487c4e5 Merge pull request #204 from aquileia/ignore
Merge all remaining .gitignore files
2014-06-15 20:29:46 +02:00
aquileia
3ba90bbf64 gitignore: Merge rules from src/ directory 2014-06-14 20:10:32 +02:00