1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-11-28 08:48:48 +02:00
Commit Graph

268 Commits

Author SHA1 Message Date
Hennadii Chernyshchyk
de33eb44f9
Port to OpenDingux handhelds 2022-12-13 03:55:54 +02:00
Ivan Savenko
f97d4c3630 Removed commented-out code 2022-12-12 18:50:14 +02:00
Ivan Savenko
0f2d4f119b Reverted -Werror due to new warnings in beta branch 2022-12-09 14:43:48 +02:00
Ivan Savenko
3e691d9033 Enable strict compilation by default in order for CI to use it 2022-12-09 14:17:03 +02:00
Ivan Savenko
db2a40600d Fixed some of the warnings detected by CI run 2022-12-08 23:20:42 +02:00
Ivan Savenko
31ac1e4ab2 Add path to libvcmi.so into RPATH so dynamic linker can find it 2022-12-08 12:46:40 +02:00
Ivan Savenko
4d494b0941 added ENABLE_STRICT_COMPILATION CMake option that sets -werror flag 2022-12-07 23:35:57 +02:00
Ivan Savenko
2855606a88 Enabled & fixed -Woverloaded-virtual warning from gcc/cland
- fixed almost all instances of overloaded-virtual warning
- cleared up inheritance & method overrides in code affected by warning
2022-12-07 21:50:45 +02:00
Ivan Savenko
111ac36417 Cleared up warning settings, enabled -werror for gcc/clang 2022-12-07 18:08:13 +02:00
Ivan Savenko
f8c67829a1 Restored single-app build to off by default 2022-12-06 22:30:34 +02:00
Ivan Savenko
2a492261e1 Fix building with cmake older than 3.12 2022-12-06 01:33:00 +02:00
Ivan Savenko
bc1ba2135d TEST COMMIT, will be reverted after successful Github Action run 2022-12-06 00:02:14 +02:00
Ivan Savenko
fa23965d0b Renamed for consistency BUILD_SINGLE_APP -> ENABLE_SINGLE_APP_BUILD 2022-12-06 00:00:56 +02:00
Ivan Savenko
5e37ad6836 Changes to single-app build
- client version of library is now always called vcmi, like in regular
builds (e.g. libvcmi.so)
- server version of library keeps its separate name
2022-12-05 22:57:43 +02:00
Ivan Savenko
d13bbabf08 Made copying of config & mods directories on build optional
Added option COPY_CONFIG_ON_BUILD, if set to OFF then post-process
command that copies config & mods directories to build destination will
be disabled.

This command may be convenient in most cases, but when only config file is
edited CMake won't trigger this command since lib was not changed.

At least on Linux, symlinks are more reliable alternative
2022-12-05 22:26:59 +02:00
Ivan Savenko
98f6173516 BUILD_SINGLE_APP is now CMake option 2022-12-05 22:21:21 +02:00
Ivan Savenko
1e2793af3a Attempt to fix cmake with older gcc 2022-11-28 23:05:36 +02:00
Ivan Savenko
f5f719b78e Enabled -Wmismatched-tags warning for gcc/clang since this apparently
lead to MSVC linker error
2022-11-28 21:46:24 +02:00
Andrey Filipenkov
c20ae90973 disable tests by default 2022-11-03 11:33:17 +03:00
Andrii Danylchenko
11790c7c02
Merge pull request #1083 from vcmi/fix-android
Move version definition into a separate cmake file
2022-10-23 10:39:25 +03:00
Andrii Danylchenko
6ef480971d Move version definition into a separate cmake file 2022-10-22 20:48:38 +03:00
Andrey Filipenkov
002e09fa2d [macOS] set copyright to Info.plist 2022-10-22 16:52:47 +03:00
Andrey Filipenkov
c9198311a1 [macOS] set bundle identifier to Info.plist 2022-10-22 16:52:27 +03:00
Andrii Danylchenko
b43e0ff9e4
Merge pull request #972 from vcmi/cpp-map-editor
Cpp map editor
2022-10-22 12:42:27 +03:00
Andrey Filipenkov
f10e5e3b99 [Conan] add iOS support 2022-10-16 13:25:38 +03:00
nordsoft
4cb31ea912 Merge remote-tracking branch 'upstream/develop' into cpp-map-editor 2022-10-08 23:24:57 +04:00
Nordsoft91
23f80c58dc
Apply suggestions from code review
Co-authored-by: Andrey Filipenkov <decapitator@ukr.net>
2022-10-08 22:55:15 +04:00
Andrey Filipenkov
92dd6d8c17 define app version only in CMakeLists
now it's propagated to code via macros
2022-10-04 12:29:38 +03:00
Andrey Filipenkov
af1f35779d raise app version in CMakeLists 2022-10-04 11:47:29 +03:00
Andrii Danylchenko
d07586ccf6
Merge pull request #1022 from kambala-decapitator/apple-set-app-version
[Apple] set proper app and build versions
2022-10-01 20:48:37 +03:00
Andrey Filipenkov
b766edb6af [iOS] don't nest AI and scripting libs under subdirectories
3rd party signing tools may ignore such directory layout
2022-10-01 12:36:48 +03:00
Andrey Filipenkov
4e1b441399 [macOS] set app and bundle version in app bundle's Info.plist generated by CPack 2022-09-30 13:25:14 +03:00
Andrey Filipenkov
3f61e6f964 [iOS] allow setting custom app name 2022-09-30 12:33:37 +03:00
Andrey Filipenkov
95e3400eb9 raise iOS deployment target to 12.0 2022-09-27 06:31:06 +03:00
Andrey Filipenkov
a5b62104d4 remove solved TODOs 2022-09-25 14:11:11 +03:00
nordsoft
d32898b39b Merge remote-tracking branch 'upstream/develop' into cpp-map-editor
# Conflicts:
#	CMakeLists.txt
2022-09-25 00:58:43 +04:00
Andrey Filipenkov
5f0a8419d3 install scripts directory only when scripting modules are enabled 2022-09-24 15:55:25 +03:00
Andrey Filipenkov
605d5b6481 add dedicated macro when building as single process
fix kambala-decapitator/vcmi#40
2022-09-24 15:55:25 +03:00
Andrey Filipenkov
2af7c29163 enable Foundation assertions only in Debug build 2022-09-24 15:55:24 +03:00
Andrey Filipenkov
e1c9903a45 extract iOS helpers into a shared lib 2022-09-24 15:55:24 +03:00
Andrey Filipenkov
7b411a5fc4 fix building vcmiERM for iOS 2022-09-24 15:55:24 +03:00
Andrey Filipenkov
902de3af7c CMake cleanup 2022-09-24 15:55:24 +03:00
Andrey Filipenkov
8dcd3146e7 generate zip with ipa structure using cpack
fix kambala-decapitator/vcmi#6
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
e0244c69a3 add CMake presets for iOS 2022-09-24 15:55:23 +03:00
Andrey Filipenkov
1bb6a20b76 get rid of the custom toolchain 2022-09-24 15:55:23 +03:00
Andrey Filipenkov
5e838008df merge launcher and client
launcher is a static lib now
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
c6e51852d0 add ability to build VCMI as single process
"Client process -> shared VCMI lib <- Server process" is turned into "shared Client-VCMI lib -> process <- static Server-VCMI lib"
- adds lib_client and lib_server targets that define distinct namespaces
- lib_client is a dynamic library which is shared with AI libs, lib_server is static
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
ede9f33328 fix linking with FFmpeg 2022-09-24 15:55:20 +03:00
Andrey Filipenkov
3388583089 use component-based install to copy only what's needed for every app 2022-09-24 15:55:20 +03:00
Andrey Filipenkov
fae295da88 allow building without codesigning 2022-09-24 15:55:20 +03:00
Andrey Filipenkov
67ef0c234d build Qt launcher, launch Client with it
kambala-decapitator/vcmi#17
2022-09-24 15:55:19 +03:00
Andrey Filipenkov
497bf58d32 disable modules 2022-09-24 15:55:19 +03:00
Andrey Filipenkov
5f97bf0be8 debug config in Xcode shouldn't produce dSYM files 2022-09-24 15:55:18 +03:00
Andrey Filipenkov
59fe73e454 some random cleanup 2022-09-24 15:55:18 +03:00
Andrey Filipenkov
7def214740 more Xcode-compatible Info.plist 2022-09-24 15:55:17 +03:00
Andrey Filipenkov
6e41e3154c fix running on device from Xcode
proper codesigning
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
cfa22c33ad use rpath properly 2022-09-24 15:55:17 +03:00
Andrey Filipenkov
b6c4126bed install files after building server/client
package required files inside app bundle
2022-09-24 15:55:17 +03:00
Andrey Filipenkov
92a7936202 add Info.plist to sources 2022-09-24 15:55:17 +03:00
Andrey Filipenkov
fa90fc0aa4 cosmetics 2022-09-24 15:55:16 +03:00
Andrey Filipenkov
d6a92f23aa fix leading whitespace 2022-09-24 15:55:16 +03:00
Andrey Filipenkov
7a50620e61 enable clang modules and framework auto-linking 2022-09-24 15:55:16 +03:00
Andrey Filipenkov
b824a90295 initial iOS support to fix building
tested with Xcode and Unix Makefiles
2022-09-24 15:55:15 +03:00
Andrii Danylchenko
735c4f149a Update vcpkg, fix QT paths 2022-09-24 10:53:09 +03:00
nordsoft
89d0de53da Merge remote-tracking branch 'upstream/develop' into features/cpp-map-editor
# Conflicts:
#	.github/workflows/github.yml
#	launcher/modManager/cmodlist.cpp
#	lib/CModHandler.cpp
#	lib/CModHandler.h
2022-09-22 17:09:47 +04:00
Andrii Danylchenko
b4d3445559
Merge pull request #971 from kambala-decapitator/fix-warnings
Fix most project warnings
2022-09-22 16:05:32 +03:00
Andrey Filipenkov
635d8c7883 silence varargs warning from fuzzylite 2022-09-22 11:54:10 +03:00
Andrey Filipenkov
7e6ed0583c disable all scripting code when configuring without scripting modules 2022-09-21 19:31:42 +03:00
Andrey Filipenkov
4058c2c18a model implicit ERM -> LUA dependency 2022-09-21 19:31:42 +03:00
Andrey Filipenkov
f54f8022e2 disable scripting modules by default 2022-09-21 19:31:42 +03:00
Andrey Filipenkov
e85f8a56bb make FFmpeg dependency optional 2022-09-18 09:25:10 +03:00
nordsoft
0b9f601d2c Squashing editor 2022-09-18 03:23:17 +04:00
Nordsoft91
99a9680f62 Final preparations for merge into develop (#780)
* version updated, change log updated from release draft
* horse sounds for terrains
* Update and freeze essential files
2022-09-11 11:31:27 +03:00
Andrey Filipenkov
d7650ce9c0
use Conan to make macOS CI builds for both Intel and ARM (#782)
* [CI] append platform to output artifact name if it's given
2022-08-30 17:29:00 +03:00
Andrey Filipenkov
37f56e075a specify that update_version target produces file Version.cpp
without it Xcode's new build system complains that Version.cpp doesn't exist and building freezes
2022-07-21 17:24:43 +03:00
Soar Qin
188607b05f Replace cotire with CMake builtin precompiled headers support (Requires CMake version >= 3.16) 2022-06-17 17:20:08 +03:00
Soar Qin
c87df8e704
Fix warnings/errors on MSVC (#753)
* Fix warnings/errors on MSVC
1. update googletest to tag release-1.11.0 to make googletest and
   googlemock compile on MSVC2022.
2. set gtest_force_shared_crt to ON in test cmake project to make tests
   compile on MSVC.
3. add /wd4251 and /wd4275 to MSVC compile flags to ignore DLL related
   warnings for class exports.
4. fix some other warnings and errors while compiling on MSVC2022.
2022-06-11 18:45:34 +03:00
Konstantin
1a6ee0d697
Launcher: Qt6 support. Qt 5.12 required (#746)
* Launcher: Qt6 support. Qt 5.12 required
2022-05-28 16:32:20 +03:00
Konstantin
8fc14369a4
CMake presets. (#744)
* CI: use single build action
* CMake: use imported targets
* CI: do not build boost for linux
* CMake: add FORCE_BUNDLED_MINIZIP option
* linux: use external minizip and fuzzylite
* CMake: add presets
* .gitignore: ignore cmake build dirs
* github: use cmake presets
2022-05-26 08:55:20 +03:00
Konstantin
c6b198ce14
Warning fix (I moved C++17 and CI to another branch) (#739)
* clang warning fixes
* use CMake 3.10 due to MXE CI does not have 3.13 yet

Co-authored-by: Konstantin <rilian@niisi.ras.ru>
2022-05-19 15:14:50 +03:00
Andrii Danylchenko
27b3a88dda Replace App Veyor 2021-08-21 09:32:52 +03:00
Andrii Danylchenko
b4241670ba Nullkiller: rename VCAI to AIGateway 2021-07-26 21:02:50 +03:00
Andrii Danylchenko
9c8d776398 Merge branch 'develop' into handlersAbstraction
# Conflicts:
#	CI/linux/before_install.sh
#	CI/mac/before_install.sh
#	CI/mxe/before_install.sh
#	lib/CModHandler.cpp
#	lib/mapObjects/CObjectClassesHandler.cpp
#	lib/mapObjects/CObjectClassesHandler.h
#	lib/mapObjects/CommonConstructors.cpp
#	server/CGameHandler.cpp
#	test/CMakeLists.txt
#	test/spells/effects/TeleportTest.cpp
2021-07-16 00:32:13 +03:00
Andrii Danylchenko
6d8373a473 Configure github actions 2021-07-13 14:56:35 +01:00
AlexVinS
ecaa9f5d0b Entities redesign and a few ERM features
* Made most Handlers derived from CHandlerBase and moved service API there.
* Declared existing Entity APIs.
* Added basic script context caching
* Started Lua script module
* Started Lua spell effect API
* Started script state persistence
* Started battle info callback binding
* CommitPackage removed
* Extracted spells::Caster to own header; Expanded Spell API.
* implemented !!MC:S, !!FU:E, !!FU:P, !!MA, !!VR:H, !!VR:C
* !!BU:C, !!BU:E, !!BU:G, !!BU:M implemented
* Allow use of "MC:S@varName@" to declare normal variable (technically v-variable with string key)
* Re-enabled VERM macros.
* !?GM0 added
* !?TM implemented
* Added !!MF:N
* Started !?OB, !!BM, !!HE, !!OW, !!UN
* Added basic support of w-variables
* Added support for ERM indirect variables
* Made !?FU regular trigger
* !!re (ERA loop receiver) implemented
* Fixed ERM receivers with zero args.
2021-02-14 19:05:43 +03:00
John Bolton
c61bae4060 Fixed RETURN_IF_BATTLE(). Undid disabled warnings. Fixed indentation. 2020-10-05 16:28:28 -07:00
John Bolton
a05ae78e67 Fixed lots of warnings.
Disabled the following (for MSVC only) that couldn't (or shouldn't) be fixed.

4003: not enough actual parameters for macro 'identifier'
4250: 'class1' : inherits 'class2::member' via dominance
4251: 'type' : class 'type1' needs to have dll-interface to be used by clients of class 'type2'
4275: non dll-interface class 'type1' used as base for dll-interface class 'type2'
2020-10-04 02:20:18 -07:00
laikh
92e3eb38e7 Fix bcrypt dependency for MINGW build 2020-07-05 21:10:29 +08:00
Michał Kalinowski
ec536e613c CMake more transitive
-Moving AIs cmake to target focusing code
-Beign explicit when link libraries
2019-03-28 16:56:51 +03:00
Alexander Shishkin
b00e935e4d
Warnings fixes (#538)
Warnings fixes
* Suppress `missing-braces` for Clang
* Fixed many C4275 warnings
* Fixed almost all Clang/GCC warnings
* Silence most frequent MSVC warning.
* Fixed some pessimizing-move warnings
* Fixed some unused capture warnings
2019-01-19 13:52:02 +03:00
Arseniy Shestakov
edcaaf036a MSVC: fixes for compatibility with latest Vcpkg packages 2018-08-27 22:19:11 +03:00
AlexVinS
ac293fb592 Disabled tests build until linking of tests broken by #467 merge will be fixed 2018-07-29 23:38:43 +03:00
karliss
ad2c429d8f CMake: unittest improvements (#447)
* Convert TestConfig to proper test environment.
* Copy test data to build directory.
* Get test recognized by ctest, but disable gtest discovery. Allowing ctest to run each test individually isn't currently practical because it is 50 times slower.
2018-04-15 18:02:31 +07:00
Arseniy Shestakov
66e9db4bc3 CMake: extend linker workaround for all MSVC versions for now.
Debug builds in MSVS 2017 are also affected.

32-bit Release builds in MSVS 2015 are probably affected as well.
Though in that case problem only appear for vcmitest, but not client.
2018-03-29 11:05:48 +07:00
Arseniy Shestakov
8577bba417 CMake: add workaround for Visual Studio 2015 linking issue
I tried to workaround it in code, but completely failed that.
So for now we'll just tell linker to ignore multiple definitions.
2018-03-29 02:02:00 +07:00
Arseniy Shestakov
e48797f7e8 CMake: enable /MP flag by default for Visual Studio solution
Can be toggled with ENABLE_MULTI_PROCESS_BUILDS option to CMake
2018-02-28 22:30:31 +08:00
Arseniy Shestakov
734441eb3b CMake: use CMAKE_DL_LIBS on Linux for linking with GNU gold
Gold only link what explicitly specified and we use dlopen.
2018-02-18 15:15:19 +08:00
Ivan Romanov
3c1c72319b CMake: update version on each compiling 2018-02-11 13:52:29 +03:00
Arseniy Shestakov
940c8a0b82 CMake: add $ORIGIN into RPATH for single-directory installation
End up that single-directory installation is useful for Snap package.
2017-09-08 03:43:44 +03:00
Arseniy Shestakov
610740011c CMake: print useful debug information on every build
That way we don't need to ask more questions regarding system where build failed.
2017-09-06 13:15:49 +03:00