Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Working master branch #3603

Closed
wants to merge 1,518 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1518 commits
Select commit Hold shift + click to select a range
96eb02a
fix oos when undoing after ally chat
gfgtdf Aug 6, 2018
920b34a
fix oos when undoing after ally chat 2
gfgtdf Aug 6, 2018
932edd3
fix segfault in wesnothd
gfgtdf Aug 7, 2018
f517f3a
fix missing map previews in the lobby
gfgtdf Aug 7, 2018
8f4c854
improve wesnoth version warning 3
gfgtdf Aug 9, 2018
3e7c530
fix 'start game' locked when other players abort flg dialog #3452
gfgtdf Aug 11, 2018
6b4e74e
boost::ptr_vector -> std::vector<unique_ptr>
gfgtdf Aug 11, 2018
1dff5db
fix game freezes on droiding when using dsu #3453
gfgtdf Aug 11, 2018
8fbe9cb
remove outdated code
gfgtdf Aug 12, 2018
35e34c7
add debug info
gfgtdf Aug 12, 2018
a1ee3fb
deploy string_view
gfgtdf Aug 12, 2018
6a10e12
add wesnoth.terrain_mask lua function
gfgtdf Aug 12, 2018
e4c170f
fix villages after terrain_mask
gfgtdf Aug 13, 2018
42af4c3
move [terrain_mask] to lua
gfgtdf Aug 13, 2018
3c86e3b
fixup [terrain_mask]
gfgtdf Aug 13, 2018
10638b4
Fixes track titles not being set from WML.
Pentarctagon Aug 13, 2018
341ad08
Update wesnoth.cbp
newfrenchy83 Aug 14, 2018
d9bac74
updated British English translation
ivanovic Aug 14, 2018
7aa185e
Help: Add Saurian race description (fix #3372)
sigurdfdragon Aug 4, 2018
7027930
Units: Have Saurian warriors be female to fit lore in mainline
sigurdfdragon Aug 14, 2018
35df7f6
Fast Micro AI: fix for chance-to-hit specials without id
mattsc Aug 10, 2018
af608e6
Update changelog
mattsc Aug 15, 2018
6eaba32
Fixup ed50b6b
sigurdfdragon Aug 16, 2018
96bbebb
Fix building with Xcode 10 (#3460)
hrubymar10 Aug 16, 2018
f434c0c
Made Thursagens words fit the timeframe
Konrad22 Aug 15, 2018
0c0192c
gui2/game_load: Constrain leader sprites to 72x72 using image path fu…
irydacea Aug 17, 2018
635e17e
Revert unwanted binary file change in previous commit
irydacea Aug 17, 2018
6ac3ffd
Fix crash after hitting enter when no units match the recall list filter
jostephd Aug 17, 2018
027d50f
NR S14: Update epilogue map to match previous scenario (fixes #3385)
joeylmaalouf Aug 9, 2018
9fb1ee2
Make Dune Burner line naphtha icons consistent and remove outdated co…
joeylmaalouf Aug 4, 2018
e4da9d9
Use MacCompileStuff for every macOS package
hrubymar10 Aug 18, 2018
fe545d4
SotA S14: Add hint about needing plenty of gold for the next scenario
sigurdfdragon Aug 18, 2018
1efaa64
Linux Packaging: Don't store log info which nobody will read
sevu Aug 18, 2018
bb680ba
clarify that pango markup is the cause
sevu Aug 20, 2018
bd88e4d
Capitalize Pango
sevu Aug 20, 2018
79fd02c
pofix: Genericize the Lua version number for the 1.14 announcement
irydacea Aug 20, 2018
9095611
wmlxgettext: fix #3469: lua plural strings not recognized in some con…
AncientLich Aug 22, 2018
6f66e0d
Slightly rewrite dialogue (fixes #3386)
Wedge009 Aug 5, 2018
a0eaf4e
fix editor cannot add starting location for > 9 players.
gfgtdf Aug 13, 2018
9cc105f
show add-on loading times on --log-debug=config
gfgtdf Aug 18, 2018
3c81435
fixup 'fix game freezes on droiding when using dsu #3453'
gfgtdf Aug 21, 2018
b6cce36
Revert "preserve traslatable strings in simple_wml."
gfgtdf Aug 11, 2018
83ee546
Help: Fix typos.
jostephd Jul 31, 2018
5fad21a
TSG S4: Fix typo.
jostephd Aug 3, 2018
ee8b70a
Help: Re-fix Ancient Wose description.
jostephd Aug 5, 2018
e720ef6
HttT S20b: Fix typos
jostephd Aug 17, 2018
0b49f33
HttT units: Fix typo
jostephd Aug 17, 2018
8a90f81
ANL worker: converting to flatland is not the same as creating a farm
sevu Aug 24, 2018
c2d09e9
fixup, use same capitalization
sevu Aug 24, 2018
fa66bfd
Game Load: Show the user-name difficulty name instead of the internal…
jostephd Aug 18, 2018
2d8f8ea
Add pofix entries for the recent typo fixes (resolves #3377)
jyrkive Aug 26, 2018
9a3084f
Pofix fixes
jyrkive Aug 26, 2018
7cfd220
Fix another pofix mistake
jyrkive Aug 26, 2018
76c1da1
DiD S10: use self dacaying object
sevu Jul 13, 2018
b6c7dd1
NR S02a: restrict movement by costs instead moves
sevu Jul 13, 2018
f25243f
DiD utils: use 1.13 syntax
sevu Jul 15, 2018
d99e659
TSG: S8b don't show the objectives when the mages arrive again
sevu Jul 15, 2018
90776d8
TSG S3: Don't kill the elves at the end
sevu Jul 15, 2018
b6616ff
TSG S3: change side switch procedure for Ethiliel
sevu Jul 15, 2018
4e91a6d
TSG S3: support debug mode :n and :cl
sevu Jul 16, 2018
c1bdccc
TSG S2: avoid the possibility of the AI neutralizing villages...
sevu Jul 17, 2018
3f36501
TSG S2: fix issues with killing the bandit leader first
sevu Jul 20, 2018
f993caa
TSG S7a-S9a: prepare to let Hylas die
sevu Jul 26, 2018
3435adc
NR: use 1.13 syntax for finding suitable units for [role]
sevu Jul 27, 2018
db95766
TSG S7a: duplicate less WML
sevu Jul 28, 2018
fe0613b
TSG S2: adjust AI settings
sevu Jul 28, 2018
252fa8c
TSG S8b: allow while mages to be loyal and have random gender
sevu Jul 31, 2018
e8455cc
TSG S5: Duo leader setup for the zombies
sevu Jul 31, 2018
b0bd8a7
TSG S4: Avoid submerging Rangers
sevu Aug 1, 2018
1eae58d
TSG S4: add female name string
sevu Aug 2, 2018
89c5dac
TSG: change inclusion of death events
sevu Aug 3, 2018
e772f6e
TSG S7b & S8b: use undead encampments instead of ordinary ones
sevu Aug 3, 2018
0ee46fa
TSG S5: Beast of the Lake is now loyal
sevu Aug 5, 2018
b5f7e8b
TSG S4: minor optimizations
sevu Aug 7, 2018
21dfccf
TSG 5: ensure no additional event is triggered during allying
sevu Aug 8, 2018
d3f791a
TSG S6a: may the queen be always female and have a more prominent ell…
sevu Aug 13, 2018
6c37f2c
TSG S2: add female strings for the units placed at start
sevu Aug 14, 2018
c1b5edb
TSG S5: reformat comments, add translation hint
sevu Aug 15, 2018
4ae3afb
TSG 9a: gender handling
sevu Aug 16, 2018
b1ab098
TSG S6a: Mermen will leave afterwards
sevu Aug 23, 2018
260339a
TSG S7b: use 1.13 code and make it debug safe
sevu Aug 27, 2018
f6e2a9f
TSG S8a: add redraw calls
sevu Aug 27, 2018
a3d9b7f
Don't scroll to an enemy leader that has an effective [hides] ability…
jostephd Aug 27, 2018
1ab3ec0
Attempted build fix
jyrkive Aug 27, 2018
25b2024
Lua AIs: use unit methods instead of wesnoth functions
mattsc Aug 27, 2018
5bc44fc
Messenger MAI Lua code: change proxy unit location directly
mattsc Aug 27, 2018
98e5f08
Lua AIs: remove unused debug output
mattsc Aug 27, 2018
fbbbcfc
Lua AIs: replace print() by std_print()
mattsc Aug 27, 2018
6800ccd
Game Load: Show list of enabled modifications (#3495)
jostephd Aug 27, 2018
1166bfb
Pofix: fix incorrect removal of a space
jyrkive Aug 27, 2018
b5c8c60
Lua AIs: get unit cost/level directly from proxy unit
mattsc Aug 27, 2018
695fa69
Micro AIs: simplify unit variable handling functions
mattsc Aug 28, 2018
cbeb882
Fix error: missing noexcept
GregoryLundberg Aug 28, 2018
2d09969
Fix error: no previous declaration
GregoryLundberg Aug 28, 2018
3906d78
Lua AIs: avoid using __cfg for accessing weapon specials
mattsc Aug 29, 2018
6ad4c7e
Lua AI utility functions: fix for chance-to-hit specials without id
mattsc Aug 29, 2018
08825af
Lua AIs: remove inclusions of unused libraries
mattsc Aug 29, 2018
02c830a
Lua AIs: remove another unused library inclusion
mattsc Aug 29, 2018
613ccd8
Fast Micro AI: code cleanup
mattsc Aug 30, 2018
37e83f1
Lua AIs: use math.huge to initialize extrema variables
mattsc Aug 30, 2018
3c558c7
Herding Micro AI: fix variabls not being local
mattsc Aug 30, 2018
f761493
Lua AIs: no need to set variables to nil explicitely
mattsc Aug 30, 2018
5301d07
Lua Console: Print an error message when not opening the console beca…
jostephd Aug 25, 2018
e09a765
Liberty S3: Add a story part
jostephd Jul 15, 2018
1ca80da
Fix various typos.
jostephd Jul 7, 2018
7ea5bd4
Liberty S3: Play orcish war drums
jostephd Aug 27, 2018
8e77bae
fixup "fix oos when undoing after ally chat"
gfgtdf Aug 21, 2018
7067402
put [resource] before other content; fixes #3345
gfgtdf Aug 28, 2018
e68a6ea
Lua AIs: don't initiate variables as empty tables
mattsc Aug 31, 2018
8799772
Lua AIs: don't compare variables with nil
mattsc Aug 31, 2018
98b8023
AToTB S2: rename custom AI file
mattsc Aug 31, 2018
59c7162
Experimental AI: fix eval/exec debug output
mattsc Aug 31, 2018
251d3e6
updated Ukrainian translation
ivanovic Aug 31, 2018
21c2e59
updated Chinese (Traditional) translation
ivanovic Aug 31, 2018
8009475
Experimental AI: convert to using external CAs
mattsc Sep 1, 2018
e32e6d6
Liberty S8: Fix ambiguous pronoun
jostephd Jul 21, 2018
8965939
Liberty S8: Fix family reference
jostephd Jul 21, 2018
2b6b1ed
Lua AIs: avoid calling wesnoth.get_terrain() more than needed
mattsc Sep 1, 2018
7fe7047
gui2/unit_create: Fix segfault on empty list when updating unit preview
irydacea Sep 1, 2018
dce8679
gui2/unit_create: Allow searching by race name as well
irydacea Sep 1, 2018
71c3a56
EI: Remove old TODO and add a new one
Aug 31, 2018
ba22ab7
EI S8: Fix event not being fired
Aug 31, 2018
3c1dd4d
EI S12-S16: Split objectives into main and alternative ones
Aug 31, 2018
fdfdb0a
EI S13: Rewrite dragon's AI
Aug 31, 2018
6dd55e4
AOI S3: Clear all enemies on victory
Aug 31, 2018
b9f0cd1
AOI S2: Prefer "id" to "speaker" in non-[message]'s SUFs
Aug 31, 2018
8b627d4
AOI: General AI rewrite
Aug 31, 2018
b47d6e3
Protect Unit MAI: remove unused configuration variables
mattsc Sep 2, 2018
740bd45
Fix bug in Fix_Xcode_Dependencies
hrubymar10 Sep 2, 2018
ed40649
Lua AIs: do not use engine's 'data' variable unless necessary
mattsc Sep 2, 2018
c52ce11
Lua AIs: replace tabs with spaces
mattsc Sep 2, 2018
b96ff34
Allow ties to be reported as such in the turns_over_advantage calcula…
joeylmaalouf Aug 9, 2018
8f08790
NR S13: slight bonus for AI controlled sides:
sevu Sep 3, 2018
3265026
NR S12: hide empty sides
sevu Sep 3, 2018
a7b8191
NR deaths: use one event for both lich brothers
sevu Sep 3, 2018
89c633f
DM S21: use type_adv_tree
sevu Sep 3, 2018
aea3a4f
recruit_rushers CA: check if castle_switch CA is present
mattsc Sep 3, 2018
e78237c
recruit_rushers CA: don't reserve village for passive leader
mattsc Sep 3, 2018
d40aa84
Desktop file: start from a shell
sevu Sep 3, 2018
4999b20
Experimental AI: adjustments to candidate action scores
mattsc Sep 3, 2018
9e5ec5f
Experimental AI: rename config file
mattsc Sep 3, 2018
98e760d
fix crash in ai code when a side has multiple leaders
gfgtdf Sep 3, 2018
56130d1
Appdata: change license identifier
sevu Sep 3, 2018
b044b28
Add keywords to the desktop file
sevu Sep 3, 2018
7e63932
Lua AIs: remove commented-out debug code
mattsc Sep 3, 2018
a2b4ce4
remove superfluous space
sevu Sep 3, 2018
ad59468
forwardport changelog entries
sevu Sep 4, 2018
fc6d71b
Lua AIs: use ai_helper.robust_move_and_attack()
mattsc Sep 4, 2018
fa7ccab
gui2/unit_create: Use unit type ids as filtering criteria as well
irydacea Sep 4, 2018
a89780f
add textdomains to appdata file:
sevu Sep 5, 2018
f09160a
fix syntax error in Chinese manual
sevu Sep 5, 2018
44ceaa1
ai_helper: get_unit functions should only return live units
mattsc Sep 6, 2018
46efcf1
Lua AIs: use ai_helper get_unit functions where applicable
mattsc Sep 6, 2018
647cdea
fix #3515 : random start time
gfgtdf Sep 5, 2018
d8b26a9
Fix build
jyrkive Sep 6, 2018
ee3e842
[animate_unit]: clear the animation after playing it
jyrkive Sep 6, 2018
98bec00
[heal_unit]: clear the animation after playing it (#3526)
newfrenchy83 Sep 7, 2018
319c98d
ai_helper: new function get_locations_no_borders()
mattsc Sep 6, 2018
56934ad
Lua AIs: use ai_helper.get_locations_no_borders()
mattsc Sep 6, 2018
c5e4149
generic_recruit_engine: remove unnecessary variable assignment
mattsc Sep 6, 2018
b8f1604
EI custom ogre AI: remove a commented out line
mattsc Sep 7, 2018
6714ef3
Fixes #3518
Pentarctagon Sep 7, 2018
49f6ef4
Fix unit tests in Xcode
hrubymar10 Sep 7, 2018
b71bb46
Bugfix generate random map unique names
rikardfalkeborn Aug 30, 2018
42c48d1
Move wmlxgettext to the data/tools directory so that it's automatical…
CelticMinstrel Sep 8, 2018
1606fdd
Allow lists in SLF location_id key (closes #3493)
CelticMinstrel Sep 9, 2018
489e958
Sync 1.14.4+dev changelog section
Vultraz Sep 9, 2018
c1a7006
Lua API: implicitly clear animator after playing it (#3536)
newfrenchy83 Sep 9, 2018
5aaccf2
MP Tombs of Kesorak: adjust comment, avoid darkening overlay
sevu Sep 9, 2018
5ad3216
core macros: don't clear nonexistant variable
sevu Sep 9, 2018
4d15d7e
ANL: remove superfluous temp variables
sevu Sep 9, 2018
b881c0e
TSG S5: fix typo in comment
sevu Sep 9, 2018
c48735c
Core Macro Reference: Fix hint
sevu Sep 9, 2018
21e6b39
fix #3396 lua_function= doesn't work in [effect][filter]
gfgtdf Sep 10, 2018
bc89512
add game_config.combat experience
gfgtdf Sep 10, 2018
9d6613a
fix 3541 : crash in lua tstring comparision
gfgtdf Sep 10, 2018
b46fedc
HttT S6: Allow canceling attack orders.
jostephd Aug 11, 2018
8e37c39
HttT S6: Trigger the additional undead as soon as the player touches …
jostephd Aug 12, 2018
f1e1a99
HttT S6: Support unlikely player behavior.
jostephd Aug 12, 2018
969fb71
Prevent C++ exception from escaping from is_user_banned()
loonycyborg Sep 11, 2018
74d5c42
fix #3532 : oos error in mp campaigns.
gfgtdf Sep 11, 2018
cfb8a63
Changelog entries for changes I committed
jyrkive Sep 12, 2018
2a21549
HttT S17: Explain the lava mechanic
jostephd Aug 14, 2018
1bbd40b
HttT S17: Add po comment
jostephd Aug 18, 2018
13b0036
units: Add a po comment in Elvish High Lord.
jostephd Aug 18, 2018
0835142
HttT S17: Fix "naught" and explain why only high-level mages.
jostephd Aug 18, 2018
983972d
fixup
jostephd Aug 19, 2018
d456fe0
HttT S17: Explain why Mages of Light aren't considered by the filter.
jostephd Aug 19, 2018
1e4c51f
https://github.com/wesnoth/wesnoth/pull/3473#discussion_r211090169
jostephd Aug 19, 2018
d10c833
HttT S17: Change again due to an ambiguity.
jostephd Aug 21, 2018
cebe98c
HttT S17: Add a po comments
jostephd Aug 21, 2018
7780801
HttT S17: Correct pronoun.
jostephd Aug 21, 2018
5787a8e
HttT S17: Further tweak dwarf's dialog.
jostephd Aug 23, 2018
657100f
HttT S17: Further updates to dialog
jostephd Aug 24, 2018
1001e45
HttT S17: Add comic relief.
jostephd Aug 24, 2018
d209d6e
HttT S17: Make Li'sar's dialog unconditional.
jostephd Aug 25, 2018
b69baf5
HttT S17: Show the 'Comic relief' comment to translators, too.
jostephd Aug 25, 2018
317ef28
Update changelog
CelticMinstrel Sep 12, 2018
1c57944
gui2: indicate that unit cannot advance
hryniuk Sep 6, 2018
1f17703
Menu: re-order and re-rank campaigns (including new ranks) (fixes #1222)
joeylmaalouf Aug 7, 2018
23df7b2
Menu: campaign order tweaks
joeylmaalouf Aug 30, 2018
b7964a1
WML [message]: Add left padding when the portrait is shown on the right.
jostephd Sep 7, 2018
6cc6fe8
WML [message]: Limit the text width for messages with portraits on bo…
jostephd Sep 7, 2018
ccaa9b7
Micro AI Demos: save maps in new format
sevu Sep 14, 2018
a10888c
Micro AI Demos: use Cme instead of Chw for lurkers map
sevu Sep 14, 2018
1018585
SoF S2t,S3t,S4t - Move scenery items to map file
Sep 9, 2018
0844dfb
SoF: General cleanup
Sep 9, 2018
2017657
SoF S1: Remove Caravans' upkeep cost
Sep 9, 2018
0f073b2
SoF S2: Place glyphs during prestart
Sep 9, 2018
95b3b95
SoF S4: Add the tunnel the dwarves came from to reach the mines
Sep 9, 2018
b14cbfb
SoF S5: Place the elvish encampment when the leader arrives
Sep 9, 2018
9ab08eb
SoF S6: Set correct speaker for [message]
Sep 9, 2018
b90d6aa
SoF S7: Don't let the player kill all of the enemies
Sep 9, 2018
8d8a46e
SoF S9: Fix some events and add TODOs
Sep 10, 2018
6814f85
SoF: Postpone Gryphon Riders availability
Sep 10, 2018
c28b241
SoF: add [show_if] to the objectives
Sep 12, 2018
ab1db38
updated Czech translation
ivanovic Sep 14, 2018
3f44f76
updated British English translation
ivanovic Sep 14, 2018
2ccd30b
updated French translation
ivanovic Sep 14, 2018
f6390ac
updated Scottish Gaelic translation
ivanovic Sep 14, 2018
a98e7af
updated Japanese translation
ivanovic Sep 14, 2018
4b29bd7
Reevaluate [show_if] conditions and delayed variable expansions befor…
jostephd Sep 12, 2018
19479d7
Add const annotation to new function
jostephd Sep 14, 2018
f6f7572
ANL: fix village gold being too low
sevu Sep 14, 2018
3d556e0
updated Hungarian translation
ivanovic Sep 15, 2018
13f2adf
Synchronized changelog with 1.14
jyrkive Sep 15, 2018
c4f8f75
Tutorial S1: display an undo message if impossible to reach next target
aszell Jun 22, 2018
7b36ccc
THoT: add potential workaround for #3547
sevu Sep 15, 2018
4c6de59
fixup
sevu Sep 15, 2018
72e3e49
THoT: replace [filter_wml]
sevu Sep 15, 2018
daf40f6
Fix changelog indentation
irydacea Sep 17, 2018
c3446eb
Multiple fixes to the changelog to make it look good on Steam
irydacea Sep 17, 2018
7e4d12e
pofix: 1.14 announcement rules for 1.14.5
irydacea Sep 17, 2018
20177db
prevent double execution of on_event.lua
Sep 16, 2018
ea3ba4a
updated Italian translation
ivanovic Sep 20, 2018
2053901
updated Spanish translation
ivanovic Sep 20, 2018
d443df9
Commandline: Add --campaign-skip-story option
jostephd Sep 7, 2018
a8bded6
Commandline: Encapsulate skip_story in play_controller
jostephd Sep 7, 2018
d5238ac
Commandline: --campaign-skip-story skips [message]s during prestart a…
jostephd Sep 7, 2018
e766cdc
WML: Support [filter_side] in [item]. (#3533)
jostephd Sep 22, 2018
f55e11e
Fix #3567: error when trying to send an error message to the client
jyrkive Sep 22, 2018
d8869b8
Fix: Chance to hit wasn't protected from becoming negative
jyrkive Sep 23, 2018
9514298
MP Create Game: Increase slider step size
jostephd Sep 7, 2018
50c85f4
Unit Display: When the recruiting or recruited units is invisible, do…
jostephd Sep 16, 2018
8086df2
Update Code::Blocks project (#3566)
newfrenchy83 Sep 26, 2018
c54f4e6
Help: Hide abilities with empty names.
jostephd Jul 21, 2018
9f45e8e
Commandline: Fix documentation of --render-image
jostephd Sep 19, 2018
97d1fcd
manpage: Fix option name typos and update documentation of --render-i…
jostephd Sep 22, 2018
da95fed
Update Code::Blocks project (#3585)
newfrenchy83 Sep 28, 2018
196764f
DM S08: Cleanup & improve ending sequence, fixing #3575
sigurdfdragon Sep 29, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
29 changes: 0 additions & 29 deletions .appveyor.vs2013.yml

This file was deleted.

5 changes: 0 additions & 5 deletions .appveyor.vs2015.yml
Expand Up @@ -15,11 +15,6 @@ before_build:
- 7z x VC14.ZIP
- ren external-VC14 external
- cd wesnoth
- mkdir projectfiles\VC14
- xcopy /E /I /H /Y projectfiles\VC12 projectfiles\VC14
- cd projectfiles\VC14
- "\"c:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\devenv.exe\" wesnoth.sln /upgrade"
- cd ..\..
- set PATH=C:\projects\external\dll;%PATH%
build_script:
- msbuild projectfiles\VC14\wesnoth.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
Expand Down
2 changes: 1 addition & 1 deletion .appveyor.vs2017.yml
Expand Up @@ -17,7 +17,7 @@ before_build:
- cd wesnoth
- set PATH=C:\projects\external\dll;%PATH%
build_script:
- msbuild projectfiles\VC12\wesnoth.sln /property:PlatformToolset=v141 /m /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- msbuild projectfiles\VC14\wesnoth.sln /property:PlatformToolset=v141 /m /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"

artifacts:
- path: wesnoth.exe
Expand Down
1 change: 1 addition & 0 deletions .dockerignore
@@ -0,0 +1 @@
.git
3 changes: 2 additions & 1 deletion .gitignore
Expand Up @@ -49,7 +49,7 @@ projectfiles/**/*objs*

# Visual Studio
projectfiles/VC*
!projectfiles/VC12
!projectfiles/VC14
projectfiles/VC*/.vs/
projectfiles/VC*/*.vc.*db
projectfiles/VC*/*.sdf
Expand Down Expand Up @@ -186,6 +186,7 @@ data/campaigns/**/images/**/.gitignore
[Tt]humbs.db
*Neuer Ordner*
.directory
fonts/.uuid

# extensions
*.pyc
Expand Down
17 changes: 8 additions & 9 deletions .travis.yml
Expand Up @@ -11,31 +11,30 @@ cache:

matrix:
include:
- compiler: clang
env: TOOL=scons CXXSTD=11 NLS=true
- compiler: gcc
env: CXXSTD=14 NLS=true LTS=1604 BRANCH=master

- compiler: gcc
env: TOOL=scons CXXSTD=14 NLS=false
env: TOOL=scons CXXSTD=17 NLS=false LTS=1804 BRANCH=master

- compiler: gcc
env: TOOL=scons CXXSTD=11 NLS=false OPT=-O0
env: TOOL=scons CXXSTD=14 NLS=false LTS=1604 BRANCH=master OPT=-O0

- compiler: gcc
env: TOOL=cmake CXXSTD=11 NLS=false
env: TOOL=cmake CXXSTD=14 NLS=false LTS=1604 BRANCH=master

- compiler: clang
env: TOOL=scons CXXSTD=11 NLS=false OPT=-O0
env: TOOL=scons CXXSTD=14 NLS=false LTS=1604 BRANCH=master OPT=-O0

- compiler: clang
env: TOOL=cmake CXXSTD=11 NLS=false
env: TOOL=cmake CXXSTD=14 NLS=false LTS=1604 BRANCH=master

- os: osx
compiler: clang
env: TOOL=scons CXXSTD=11 NLS=false OPT=-O0
env: TOOL=scons CXXSTD=14 NLS=false OPT=-O0

- os: osx
compiler: clang
osx_image: xcode9.2
env: TOOL=xcodebuild

install:
Expand Down
131 changes: 84 additions & 47 deletions CMakeLists.txt
@@ -1,4 +1,4 @@


# set minimum version
cmake_minimum_required(VERSION 2.8.5)

Expand Down Expand Up @@ -56,26 +56,20 @@ option(ENABLE_SERVER "Enable compilation of MP server" ON)
option(ENABLE_MYSQL "Enable building MP/add-ons servers with mysql support" OFF)
option(ENABLE_TESTS "Build unit tests")
option(ENABLE_NLS "Enable building of translations" ${ENABLE_GAME})
option(ENABLE_OMP "Enables OpenMP, and has additional dependencies" OFF)
option(ENABLE_LIBPNG "Enable support for writing png files (screenshots, images)" ON)
option(ENABLE_HISTORY "Enable using GNU history for history in lua console" ON)

if(NOT CMAKE_CROSSCOMPILING)
try_run(IEEE754_TEST_RETURN_CODE IEEE754_TEST_COMPILED ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src/compile_time_tests/ieee_754.cpp
CMAKE_FLAGS "-DCMAKE_CXX_STANDARD=11" COMPILE_OUTPUT_VARIABLE IEEE754_TEST_COMPILE_OUTPUT)
if(NOT IEEE754_TEST_COMPILED)
message(WARNING "Failed to compile the IEEE 754 test. Skipping it.")
message(${IEEE754_TEST_COMPILE_OUTPUT})
elseif(NOT IEEE754_TEST_RETURN_CODE EQUAL 0)
message(FATAL_ERROR "Your platform does not represent floating point numbers in the IEEE 754 format.")
endif()
else()
message(WARNING "You are cross-compiling. Skipping IEEE 754 test.")
# set what std version to use
if(NOT CXX_STD)
set(CXX_STD "14")
endif()

find_package(SDL2 2.0.4 REQUIRED)
if(ENABLE_GAME OR ENABLE_TESTS)
find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)
find_package(SDL2 2.0.4 REQUIRED)
endif(ENABLE_GAME OR ENABLE_TESTS)
find_package(Crypto 1.0 REQUIRED)
find_package(Boost 1.56 REQUIRED COMPONENTS iostreams program_options regex system thread random)
find_package(Boost 1.56 REQUIRED COMPONENTS iostreams program_options regex system random)

# no, gettext executables are not required when NLS is deactivated
find_package(Gettext)
Expand Down Expand Up @@ -152,6 +146,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
option(ENABLE_APPDATA_FILE "enable installation of an appdata file for appstream" ON)
endif(CMAKE_SYSTEM_NAME STREQUAL "Linux")

option(HARDEN "Whether to enable options to harden the executables" ON)
option(ENABLE_STRICT_COMPILATION "Sets the strict compilation mode" OFF)
option(ENABLE_PEDANTIC_COMPILATION "Sets the pedantic compilation mode" OFF)
option(ENABLE_DEBUG_WINDOW_LAYOUT "Add the debug option to allow the generation of debug layout files in dot format" OFF)
Expand Down Expand Up @@ -199,7 +194,7 @@ if(NOT DEFINED CXX_FLAGS_USER)

endif(NOT DEFINED CXX_FLAGS_USER)

set(COMPILER_FLAGS "-std=c++11 -Wall -Wextra -Werror=non-virtual-dtor -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wold-style-cast")
set(COMPILER_FLAGS "-std=c++${CXX_STD} -Wall -Wextra -Werror=non-virtual-dtor -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wold-style-cast -Wtrampolines")

if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Qunused-arguments -Wno-unknown-warning-option -Wmismatched-tags -Wno-conditional-uninitialized")
Expand All @@ -225,6 +220,14 @@ if(ENABLE_PEDANTIC_COMPILATION)

endif(ENABLE_PEDANTIC_COMPILATION)

# check for sanitizer options
if(SANITIZE)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=${SANITIZE}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${SANITIZE}")
# manually disable some optimizations to get better stacktraces if sanitizers are used
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fno-omit-frame-pointer -fno-optimize-sibling-calls")
endif(SANITIZE)

### Set the final compiler flags.

set(COMPILER_FLAGS "${COMPILER_FLAGS} ${CXX_FLAGS_USER}")
Expand All @@ -240,6 +243,51 @@ if(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "${COMPILER_FLAGS}")
)
endif(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "${COMPILER_FLAGS}")

# #
# Determine optimization level
# #

if(NOT OPT)
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
set(CMAKE_C_FLAGS_RELEASE "-O3")

set(CMAKE_CXX_FLAGS_DEBUG "-O0")
set(CMAKE_C_FLAGS_DEBUG "-O0")

if(PROFILER STREQUAL "perf")
set(CMAKE_CXX_FLAGS_PROFILE "-Og")
set(CMAKE_C_FLAGS_PROFILE "-Og")
else(PROFILER STREQUAL "perf")
set(CMAKE_CXX_FLAGS_PROFILE "-O0")
set(CMAKE_C_FLAGS_PROFILE "-O0")
endif(PROFILER STREQUAL "perf")
else(NOT OPT)
set(CMAKE_CXX_FLAGS_RELEASE "${OPT}")
set(CMAKE_C_FLAGS_RELEASE "${OPT}")

set(CMAKE_CXX_FLAGS_DEBUG "${OPT}")
set(CMAKE_C_FLAGS_DEBUG "${OPT}")

set(CMAKE_CXX_FLAGS_PROFILE "${OPT}")
set(CMAKE_C_FLAGS_PROFILE "${OPT}")
endif(NOT OPT)

# check for hardening options
if(HARDEN AND NOT WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -fstack-protector-strong")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE -fstack-protector-strong")

if(APPLE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -Wl,-pie")
else()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie -Wl,-z,relro,-z,now")
endif()

if(NOT CMAKE_CXX_FLAGS_DEBUG STREQUAL "-O0")
add_definitions(-D_FORTIFY_SOURCE=2)
endif()
endif(HARDEN AND NOT WIN32)

if(UNIX AND NOT CMAKE_COMPILER_IS_GNUCXX)
# Assume the compiler is the clang compiler.
set(CMAKE_EXE_LINKER_FLAGS "-lstdc++ -lm ${CMAKE_EXE_LINKER_FLAGS}")
Expand Down Expand Up @@ -270,9 +318,9 @@ RemoveFlag(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS SCRIPT "-rdynamic" "")
# #

# reset the base Release build option
MESSAGE("Replacing default flags used for Release build with -O3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-O3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
MESSAGE("Replacing default flags used for Release build with ${OPT} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "" CACHE STRING "" FORCE)
# set the arch to use for Release build if provided
if(ARCH)
Expand Down Expand Up @@ -369,9 +417,9 @@ set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_SOURCE_

# replace the default Debug flag of -g with -O0 -DDEBUG -ggdb3
# this matches the flags of scons' debug build
MESSAGE("Replacing flags used for Debug build -O0 -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
set(CMAKE_C_FLAGS_DEBUG "-O0 -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
MESSAGE("Replacing flags used for Debug build ${OPT} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_DEBUG}" CACHE STRING "" FORCE)

# adds GLIBCXX_DEBUG definitions
Expand All @@ -388,29 +436,29 @@ endif(GLIBCXX_DEBUG)

if(PROFILER STREQUAL "gprof" OR NOT PROFILER)
MESSAGE("Profiler is gprof")
set(CMAKE_CXX_FLAGS_PROFILE "-pg ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gprof" FORCE)
set(CMAKE_C_FLAGS_PROFILE "-pg ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gprof" FORCE)
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -pg ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gprof" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -pg ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gprof" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()

if(PROFILER STREQUAL "gcov")
MESSAGE("Profiler is gcov")
set(CMAKE_CXX_FLAGS_PROFILE "-fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gcov" FORCE)
set(CMAKE_C_FLAGS_PROFILE "-fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gcov" FORCE)
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gcov" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gcov" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()

if(PROFILER STREQUAL "gperftools")
MESSAGE("Profiler is gperftools")
set(CMAKE_CXX_FLAGS_PROFILE "${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gperftools" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gperftools" FORCE)
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gperftools" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with gperftools" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "-Wl,--no-as-needed,-lprofiler ${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()

if(PROFILER STREQUAL "perf")
MESSAGE("Profiler is perf")
set(CMAKE_CXX_FLAGS_PROFILE "-ggdb -Og ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with perf" FORCE)
set(CMAKE_C_FLAGS_PROFILE "-ggdb -Og ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with perf" FORCE)
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_PROFILE} -ggdb ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with perf" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_PROFILE} -ggdb ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_PROFILE}" CACHE STRING "Flags for profiling with perf" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_PROFILE}" CACHE STRING "" FORCE)
endif()

Expand Down Expand Up @@ -443,12 +491,6 @@ if(DEFAULT_PREFS_FILE)
endif(NOT DEFAULT_PREFS_FILE MATCHES "^/")
endif(DEFAULT_PREFS_FILE)

if(ENABLE_OMP)
find_package(OpenMP REQUIRED)
set(CMAKE_C_FLAGS "${OpenMP_C_FLAGS} ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS} ${CMAKE_C_FLAGS}")
endif(ENABLE_OMP)

if(ENABLE_DEBUG_WINDOW_LAYOUT)
add_definitions(-DDEBUG_WINDOW_LAYOUT_GRAPHS)
endif(ENABLE_DEBUG_WINDOW_LAYOUT)
Expand Down Expand Up @@ -497,13 +539,6 @@ if(ENABLE_GAME)
unset(LIBDBUS_FOUND CACHE)
endif()

find_package( PNG )
if(ENABLE_LIBPNG AND PNG_FOUND)
add_definitions(-DHAVE_LIBPNG)
else(ENABLE_LIBPNG AND PNG_FOUND)
message("Could not find lib PNG. Disabling support for writing PNG images.")
endif(ENABLE_LIBPNG AND PNG_FOUND)

find_package( History )
if(ENABLE_HISTORY AND HISTORY_FOUND)
add_definitions(-DHAVE_HISTORY)
Expand All @@ -520,9 +555,11 @@ if(ENABLE_POT_UPDATE_TARGET)
endif(ENABLE_POT_UPDATE_TARGET)

# get languages
file(READ po/LINGUAS LINGUAS)
string(REPLACE "\n" "" LINGUAS ${LINGUAS})
separate_arguments(LINGUAS)
if(ENABLE_NLS)
file(READ po/LINGUAS LINGUAS)
string(REPLACE "\n" "" LINGUAS ${LINGUAS})
separate_arguments(LINGUAS)
endif(ENABLE_NLS)

#
# Include subdirectories
Expand Down
2 changes: 1 addition & 1 deletion Doxyfile
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = "The Battle for Wesnoth"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 1.13.12
PROJECT_NUMBER = 1.15.0-dev

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down